Invoicing

Drafts, posting, numbering

AvailableFinancemanifest

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.

FieldKindData classPersonal dataGroupAgents seeDescription
sale_order_idref → sale_ordernonenoinvoicing.userin clearSource sale order id
stateselect (draft, posted, cancelled)nonenoinvoicing.userin clearLifecycle: draft, posted or cancelled
total_minormoneynonenoinvoicing.userin clearInvoice total in minor units
numbertextnonenoinvoicing.userin clearGapless legal number, set when posted

Workflows ​

invoice ​

ActionMovesWho may run itApproval
invoice.poststate: draft → postedinvoicing.manageryes
invoice.cancelstate: draft → cancelledinvoicing.userno

Permission groups ​

Groups used by this app:

  • invoicing.manager
  • invoicing.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 ​

  • base
  • sales

Install ​

Built in. It is available in every instance and cannot be removed.

Build your own ​

The module guide shows how apps like this one are written