TradeService Field Service Manager
PHP/MySQL licensed edition 4.12.0

Version 4.12.0: Admin-managed message templates with previews and shared SMS/email delivery wording.

Version 4.11.0: Server-side main lists with search, filters, bounded pages and linked payment totals.

Version 4.10.2: Readable Overview action buttons and aligned filter controls.

Version 4.10.1: Shared control sizes, responsive manager forms and contained calendar scrolling.

Version 4.10.0: Compact Overview with server pagination, dated activity, author and role history, filters and retained administrator-only record deletion.

Version 4.9.2: Shared setup help for repeated options; new installations start with General Service.

Version 4.9.1: Hide single-service trade controls; inline multi-service selection and compact filters.

Version 4.9.0: Grouped searchable navigation, mobile menu, settings categories, compact lists and workflow section links.

Version 4.8.1: Latest-only update checks, persistent update progress and correct agreement access errors.

Version 4.8.0: Searchable Help & Support guides and administrator-only read-only installation diagnostics.

Version 4.7.0: Service agreement register with client search, dates, covered work, due filter and job preparation.

Version 4.6.0: Partial purchase order receipts, remaining quantities and stale receipt protection.

Version 4.5.0: Messages center with email/SMS history, filters, pagination, linked records and existing SMS composer.

Version 4.4.4: Inline field explanations and expandable setup instructions throughout settings.

Version 4.4.3: Mandatory Google reCAPTCHA v2 on public requests; configure keys before reopening the form.

Version 4.4.2: Refresh data on menu navigation, notification diagnostics/test and SMTP acceptance handling.

Version 4.4.1: Optional administrator email alerts for new website requests, configurable recipient and SMTP delivery log.

Version 4.4.0: Public website request form, admin enable/disable, Requests intake, mobile layout fix.

Version 4.3.0: My Day. Mobile-friendly assigned visits, date/status filters, client calls, directions, job files and direct on-site checklists. Internet required.

Version 3.22.0: Business Analytics. Administrator dashboard with equal-length period comparison, invoice sales, receipts, average invoice, quote approval, monthly trends, sales by source/customer, work-order cohorts, recorded direct contribution, technician schedule and CSV export. Read-only calculations use existing records; no database migration.

Version 3.21.1: cumulative update package for 3.19.0 and later. Includes all application code changes needed since 3.19.0, including 3.20 routes and 3.21 workflows, without replacing configuration, license or uploaded files.

Version 3.21.0: custom workflow templates, mandatory stage checklists, per-job progress, immutable template snapshots and actor history. Available to administrators and dispatchers; templates are created by administrators. Workflow completion does not close a work order.

Version 3.20.0: advanced dispatch and routes. Map & Routes now shows a selectable workday map, technician-by-technician stop lists, unassigned visits and full Google Maps directions. Administrators can define service zones, a depot/start address, return-to-base behaviour, dispatch buffer and long-leg thresholds. An optional server-side Google Routes API connection calculates driving time and distance, caches results for six hours, and warns when the gap between appointments is too short. The API key is never returned to the browser, technicians can retrieve only their own route, and the route cache table is created automatically.

Version 3.19.0: Twilio SMS and communication history. Administrators connect their own Twilio number or Messaging Service, test delivery, review accepted and failed messages, and register a signed inbound-message webhook. Administrators and dispatchers can send editable appointment or document messages directly from work-order and document lists. Client-level SMS consent is required. Hourly cron can send duplicate-safe appointment SMS reminders with configurable timing and templates. Credentials remain server-side and the Auth Token is never returned to the browser.

Version 3.18.1: secure team invitations and account recovery. Administrators create a team member without choosing or seeing that person's password. The member receives a single-use 48-hour invitation, confirms a private password, and can sign in immediately. Administrators can resend pending invitations, send 30-minute password-reset links, deactivate accounts and change roles. Tokens are stored as SHA-256 hashes, become invalid after use, and no password is returned by the API or sent by email.

Version 3.18.0: secure Customer Portal. Administrators can issue, copy, email, revoke and regenerate a private customer link. Customers can review upcoming and past visits, work-order status, quotes, invoices, service reports, balances and payment status without an employee login. Documents reuse the protected quote-approval and Stripe payment flows. Portal tokens are hidden from technicians and dispatchers, protected from ordinary record updates, excluded from search results, and every portal action is audited.

Version 3.3 adds reliable email delivery and automatic reminders:
- authenticated SMTP with TLS/SSL and a test-email workflow;
- SMTP credentials managed by administrators without exposing the saved password;
- delivery log with real server errors instead of false success messages;
- document emails use the shared authenticated delivery service;
- appointment reminders before scheduled visits;
- quote follow-ups after a configurable number of days;
- overdue invoice reminders based on the remaining balance;
- protected hourly cron URL and duplicate-reminder prevention.

Version 3.2 adds customer quote approval:
- customers can approve or decline an issued quote from its secure link;
- approval requires an authorization confirmation and customer name;
- response time, comment and unique confirmation code are saved;
- approved/declined status appears in the manager and printed document;
- expired quotes no longer accept a response;
- an invoice can be created directly from an approved quote;
- quote tokens and response history are removed from the new invoice copy.

Version 3.1.1 adds central update discovery:
- administrators can check the installed version from Settings;
- the app reads the public release catalog from tradeservice.ca;
- available update packages download from the official release center;
- no business or customer data is sent during the update check.

Version 3.1 adds team and dispatch foundations:
- administrator, dispatcher and technician roles;
- automatic safe migration of existing user accounts;
- team member creation, editing, password reset and activation;
- active-user limits enforced from licensed seat count;
- technician assignment on jobs;
- schedule search and filtering by technician;
- assigned technician displayed in job lists;
- technician financial and settings restrictions enforced server-side;
- existing clients, jobs and documents remain unchanged during upgrade.

Version 3.0 adds white-label installation and offline digitally signed licenses:
- Ed25519 signature validation;
- exact-domain and wildcard-subdomain binding;
- expiration or perpetual licenses;
- customer, plan and seat metadata;
- activation screen and license information in Settings;
- generic company branding, initials and document footer/service area;
- selectable Canadian time zone during installation;
- separate private license-issuing console for the product owner.

All functional improvements from Appliance Repair Pro 2.10 are retained.

Version 3.0.1 adds RSA/OpenSSL FSM2 licenses for shared hosting without PHP Sodium while retaining compatibility with older FSM1 keys.

Version 3.9.0: administrator-only deletion for clients, requests, jobs, draft documents, payments and expenses, plus invoice voiding, dependency checks, job file cleanup, payment balance recalculation and retained audit events.

Version 3.10.0: optional weekly working hours, full-day time off and server-side scheduling checks for team members.

Version 3.11.0: optional per-install Stripe Checkout card payment links for issued invoices and deposits, signed webhook confirmation and payment reconciliation flags.

Version 3.12.0: parts catalog, suppliers, immutable stock movements, job reservations, purchase orders, low-stock indicators and automatic invoice part lines.

Version 3.12.1: emergency hosting compatibility fix; inventory migration is isolated from core startup, purchase-order JSON uses compatible LONGTEXT storage, exports and record deletion tolerate a pending inventory migration.

Version 3.13.0: expanded expense capture, period-based accounting dashboard, GST/PST bookkeeping summary, cash collections, operating result, accounts-receivable aging and accountant-ready CSV exports. Existing expense records remain compatible and no database import is required.

Version 3.13.1: shared-hosting inventory repair. Inventory tables now use conservative quoted MySQL/MariaDB DDL, optional indexes cannot block setup, partial migrations resume safely and the exact failing table is reported to administrators. Existing records and tables are never removed.

Version 3.13.2: full stability audit. Strict calendar and time validation prevents invalid visits and purchase orders, failed attachment database writes no longer leave orphan files, dashboard receivables exclude drafts, invalid application URLs cannot crash Settings, and browser assets use fresh cache versions. No database import is required.

Version 3.14.0: secure one-click updates. Administrators can check and install the latest signed TradeService update directly from Settings. Packages are downloaded server-side from tradeservice.ca, verified with the licensing RSA key and SHA-256, checked for unsafe paths, backed up and installed with automatic rollback on failure. Protected data and uploads are never included in an update.

Version 3.15.0: expanded work orders. Jobs now include a unique work-order number, priority, source, job type, promised date and customer reference. Administrators and dispatchers can use quick workflow transitions, status and priority filters, operational KPI cards and overdue indicators. Existing jobs remain compatible and receive defaults when next saved.

Version 3.16.0: advanced work-order execution. One work order can cover multiple appliances, every visit has a type, completion requirements can be configured per job, customer-visible and internal notes are separated, cancellations require a reason, and warranty callbacks can link to the completed original work order. Completing the last visit automatically applies the configured warranty date.

Version 3.17.0: job costing and actual profitability. Administrators can record planned and actual hours, hourly, flat or revenue-percentage technician pay, external parts and direct job costs. Inventory usage and linked expenses feed each work order automatically. Reports show revenue, collected revenue, total costs, technician earnings, actual profit, margin and a protected CSV export. Financial fields are removed from dispatcher and technician API responses.
