In order to better automate all the ‘pieces parts’ from customer quotations up to final invoicing, I’d like to outline some initial aspects deemed to be necessary to satisfy reliable company audit trail processes but aren’t provided by the base Tryton platform.
The goal is to quickly establish a blueprint.
First, to set the scope, this post primarily concerns databases having the sale_history module activated, where quotations are versioned, that is object to discussion/negotiation with the customer.
Indirectly concerned is with the sale_amendment module activated, mostly because of the simple fact that it uses versioning for amendments of confirmed orders.
The initial needs statement:
- Each revision of a quotation needs to have a quotation_date that is persistent and chronological,
- For each revision of a quotation it should be possible to recuperate the [cached] report,
- If a customer signs a previous revision of a quotation, or refers to one in their order form, it should be possible to revert back to that revision in order to confirm, without creating a new revision.
Why these needs?
As indicated, in a reliable audit trail for customer quotation to invoicing, the document management system of Tryton should be able to reproduce with fidelity the quotation initially issued and communicated to the customer… much like it does with invoices using the invoice cache.
This is because the quotation is a legal document issued by the company to initiate the contract process with the customer.
If the customer signs an issued quotation, or issues his own order form referencing the quotation number and date with reference to the quoted products and/or services with prices or the total amount, and does so prior to the validity expiration date of the quotation, then the sale contract has been made.
The quotation_date permits not only to print the quotation report, but also permits accessing a date that is not overwritten with the closing sale date which, naturally, is not the same as the quotation_date though currently it is thus used while in the ‘quotation’ state.
The tuple which uniquely identifies a quotation is the quotation number and date.
If there has been any revisions, the revision becomes part of the quotation number with a new quotation date, which naturally must not be prior to a previous revisions’ quotation_date.
Though I mention only sales here, it seems logical that the same needs apply to purchases, with possibly the exception of caching the quotation report…
For the company’s role as customer, it is probably the confirmed order that should be focused upon as opposed to the suppliers quotation, which is probably manually cached as file attachment(s).