Invoicing
Drafts, posting, numbering
What it is for
Prepare customer invoices as drafts and post them to give each one its gapless legal number. Posting is the one step in the built-in apps that always needs a person: an agent can prepare the draft and propose the posting, and a human with the right permission approves it.
What the package does and does not do
Customer invoices: drafts, posting with a gapless legal number, cancellation.
Models
invoice
A customer invoice; posted invoices are corrected only by credit notes
Read group: invoicing.user. Write group: invoicing.user.
| Field | Kind | Data class | Personal data | Group | Agents see | Description |
|---|---|---|---|---|---|---|
sale_order_id | ref → sale_order | none | no | invoicing.user | in clear | Source sale order id |
state | select (draft, posted, cancelled) | none | no | invoicing.user | in clear | Lifecycle: draft, posted or cancelled |
total_minor | money | none | no | invoicing.user | in clear | Invoice total in minor units |
number | text | none | no | invoicing.user | in clear | Gapless legal number, set when posted |
Workflows
invoice
| Action | Moves | Who may run it | Approval |
|---|---|---|---|
invoice.post | state: draft → posted | invoicing.manager | yes |
invoice.cancel | state: draft → cancelled | invoicing.user | no |
Permission groups
Groups used by this app:
invoicing.managerinvoicing.user
Approval steps
Steps an agent can only propose:
invoice.post
What agents can and cannot do
An agent can read, search, create and update records of this app, and run the actions that need no approval, within the permission groups of its token.
It can only propose these steps, and a person must approve them: invoice.post, invoice.delete.
Dependencies
basesales
Install
Built in. It is available in every instance and cannot be removed.