Design¶
The Sale Module introduces the concepts that are required to manage sales. It also extends existing concepts so sales become an fully integrated part of the system.
Sale¶
The Sale concept is used to manage the selling process. Each sale, at any time, can be in one of several different states. A sale progress though these states until it is either done or gets cancelled. When some of these state changes happen the Employee that triggered the state change is also recorded.
Each sale contains details of the Party that the sale is made to, including details such as the party’s preferred Contact Method, and what Addresses the shipments and invoices must be sent to.
A sale is identified by a unique number that is generated automatically from the configured Sequence. It also has other general information like a sale date, description, and reference used by the customer.
The sale is made up from one, or more, sales lines. These lines can be arranged into a particular order, if required. Normally most sales lines provide information about which Products or items are included in the sale. Extra lines can be added for things like titles, comments or subtotals.
The total, untaxed, and tax amounts for a sale are derived from the amounts, prices and Taxes of the sale’s lines.
For sales of physical items, such as goods or assets, the Warehouse the items are dispatched from is required. The sale’s shipment method determines whether Customer Shipments are automatically created for the sale, and when during the process this happens. If customer shipments do get created then the Stock Moves on these shipments are linked to the sale lines and must be recreated or ignored if they get cancelled.
Invoices can be generated automatically at the correct time based on the invoice method. These invoices are created from data taken from the sale, and when invoicing based on shipment they also use the quantities from the shipments. The invoices are tracked by the sale, and if they are cancelled they must either be recreated or ignored.
Reports¶
Sale Report¶
The Sale Report is a document that can be printed out that contains all the relevant information about each sale, including the lines which have been sold.
Wizards¶
Handle Shipment Exception¶
The Handle Shipment Exception wizard helps the user ensure each sale has the correct Stock Moves associated with it. For stock moves that have been cancelled, it lets the user decide which should be re-created, and which should be ignored.
Handle Invoice Exception¶
The Handle Invoice Exception wizard helps the user make sure each sale only has the appropriate Invoices associated with it. If any of the sale’s invoices get cancelled this wizard provides the user with the option to re-create or ignore the cancelled invoice.
Modify Header¶
Some fields on a draft sale become read-only when lines are added to it. The Modify Header wizard allows the values in these fields to be safely updated.
Return Sale¶
The Return Sale wizard is used when a customer returns all or part of a sale. It creates new draft sales that match any selected sales, but with all the quantities negated.
Sale Context¶
The Sale Context allows the user to set a context in which a Product’s properties are then calculated.
This is used when showing a list of salable products. It allows the user to select a customer and some other properties, and then get a list of products that are available along with their prices in the selected Currency.
Sale Reporting¶
Each of the different Sale Reporting concepts are based on either an
Abstract
sales report, or an AbstractTimeseries
.
There is also a base Context
that is inherited and used to specify things
such as the date range that is used by the report.
The Abstract
provides the basic properties that makes up a sales report
including the number of sales and revenue.
The AbstractTimeseries
is used to extend this with a date.
This is used in sales reports that cover multiple periods of time.
These are combined together with additional specific properties to create the
different sales reports.
See also
Sales reports can be accessed from the main menu item:
By Customer¶
The sales reporting that is done By Customer splits the sales up based on
what each Customer bought.
This is done in two separate parts.
One that shows the sales, in total, for the selected period from the
Context
.
Another that breaks them down by date into smaller chunks.
By Product¶
Sales reporting that is done By Product splits up the sales based on the Product that was sold. This is structured as two parts. One that shows the total sales for the selected period of time, and another that shows how the sales were distributed over time.
By Category¶
The By Category sales reporting shows the sales based on the Category that a product is in. This works in the same way as the By Product sales reporting, but there is also an additional report that shows the categories in their natural tree structure.
By Region¶
The sales reporting that is done By Region shows sales based on where the customer is located. This is done by combining together in a tree structure the sales By Regions which can be opened to the sales By Country below which are the sales By Subdivision.
By Country¶
The By Country concept groups sales based on the Country in which the customer is located. This is done in two parts, one for total sales and one showing how the sales were distributed over time.
By Subdivision¶
The By Subdivision concept groups sales based on which Subdivision of a country a customer is located. This is done in two parts, one for total sales and one showing how the sales were distributed over time.
Wizards¶
Open Region¶
The Open Region wizard ensures that the correct type of time series gets opened. This may be a time series for either a country, or subdivision, depending on what line from the By Region was opened.
Configuration¶
The Sale Configuration concept is used for the settings that affect the general behaviour and default values for sales related activities.
Note
Some of the sales configuration options have no effect unless the Task Queue has been setup and some workers are running.