A 42-step Order-to-Cash walkthrough from lead to cash, and the defects it found - wrong dashboard figures, an unprotected credit release, and invoice and date handling.
Lead, Quotation, Order and Receipt Dates; Lead Activities
- Date fields on leads, quotations, orders, deliveries, invoices and receipts defaulted to a date-and-time; when omitted by an API caller, creating a lead failed with a server error after the record was already saved. They now default to the local date.
- Lead activities could not be edited; they can again.
- Naive date-times were shifted by 5 h 53 m (historical local mean time) instead of 5 h 30 m.
- The Lead Add Activity dialog defaulted its date to UTC; it now uses local time.
- Creating an opportunity now returns its id and number; a delivery-note item over-delivery returns a clear message instead of an HTML error page.
Sending an Invoice Updates the Sales Order Lines It Bills
Order lines count only sent invoices, but the line figures were refreshed only when an invoice line was saved, so a sent invoice left the order at “Not invoiced”. They now refresh when the invoice status changes. Dispatching a delivery by status also now records the dispatch date.
CRM and Receivables Dashboard Figures Corrected
- Revenue (MTD) summed every order ever raised, unconverted; it is now month-to-date and in company currency.
- Overdue invoices counted CRM invoices, which a receipt never marks paid, so paid invoices stayed overdue (8.2 cr against 0.89 cr). The ledger is now the source, on both the CRM and Receivables dashboards.
- Late and blocked values added dollars to rupees.
- The Sales Order dashboard cache was never refreshed when an order changed and summed native-currency amounts; it is now refreshed and in company currency.
Order-to-Cash Walkthrough and Training Guide
A guided 42-step walkthrough from lead through customer, opportunity, quotation (with revision), order (credit block, release and cancel), delivery, invoice and receipt to dashboards reconciled to the registers, with a matching training guide.
Credit Release and Rejection Now Require Permission
Approving or rejecting a credit block, and listing the pending credit approvals, had no permission check, so any signed-in user could release any credit block. They now require credit.release_credit and credit.view_credit. The pending-approvals route, which returned 404, is also reachable.