In the accounting system, there are two items - Invoice and InvoiceType - define the invoicing mechanism.
An Invoice represents a detailed list of goods shipped or services rendered, along with the fees and charges associated. An Invoice captures the following information:
Title: A brief title or description of the invoice.
Invoice Date: The date when the invoice is issued.
Reference Date: An optional field that refers to the accounting period to which an invoice belongs.
Invoice Currency: The currency in which the invoice is issued.
Counterparty: The entity to whom the invoice is issued.
Gross Value and Net Value: Gross value is the total amount before any deductions, while net value is the amount after applying taxes, deductions, and discounts.
Invoice Type: The type of the invoice, linked via the foreign key to the Invoice Type.
Status: The status of the invoice which could be Draft, Submitted, Approved, Cancelled, Sent, or Paid.
InvoiceType defines different types of invoices that can be issued in the accounting system. Each InvoiceType comprises of:
Name: The name of the invoice type. This name is unique across the system to avoid confusion.
Processor: How an invoice is processed after it has been approved. This currently has to be a path to a processor defined as code.
Please note that each Invoice is associated with an Invoice Type. It helps categorize invoices and apply different processing methods based on their types.
When generating an invoice, make sure to fill out essential fields such as Title, Invoice Date, Invoice Currency, and Counterparty. Depending on the type of transaction being represented, appropriate invoice types should be chosen. All invoices start with a 'Draft' status, which then goes through various stages like Submitted, Approved, Sent, and finally Paid.
Remember, an accurate and well-structured invoice can significantly smooth out financial management and reduce confusion about payments.