diff --git a/content/applications/finance/expenses/reinvoice_expenses.rst b/content/applications/finance/expenses/reinvoice_expenses.rst index bd54154f6d..8cd28d15ba 100644 --- a/content/applications/finance/expenses/reinvoice_expenses.rst +++ b/content/applications/finance/expenses/reinvoice_expenses.rst @@ -4,62 +4,150 @@ Re-invoice expenses If expenses are tracked on customer projects, they can be automatically charged back to the customer. This is done by :ref:`creating an expense `, referencing the -sales order the expense is added to, and then :ref:`creating an expense report +sales order to which it is added, then :ref:`creating an expense report `. Next, managers :ref:`approve the expense report `, before the accounting department :ref:`posts the journal entries `. -Finally, once the expense report is posted to a journal, the expenses appears on the specified +Finally, once the expense report is posted to a journal, the expenses appear on the specified :abbr:`SO (Sales Order)`. The :abbr:`SO (Sales Order)` is then :ref:`invoiced `, thus charging the customer for the expenses. .. important:: Approving expenses, posting expenses to accounting, and reinvoicing expenses on :abbr:`SOs (Sales - Orders)` is **only** possible for users with the appropriate :doc:`access rights + Orders)` are **only** possible for users with the appropriate :doc:`access rights <../../general/users/access_rights>`. .. seealso:: - This document provides lower-level instructions for the creation, submission, approval, and - posting of expenses. For fully-detailed instructions for any of these steps, refer to the - following documentation: + This document provides lower-level instructions to create, submit, approve, and post expenses. + For fully-detailed instructions for any of these steps, refer to the following documentation: - - :doc:`Log expenses <../expenses/log_expenses>` - - :doc:`Expense reports <../expenses/expense_reports>` - - :doc:`Approving expenses <../expenses/approve_expenses>` - - :doc:`Posting expenses in accounting <../expenses/post_expenses>` + - :doc:`Log expenses ` + - :doc:`Expense reports ` + - :doc:`Approving expenses ` + - :doc:`Posting expenses in accounting ` Setup ===== First, specify the invoicing policy for each expense category. Navigate to :menuselection:`Expenses app --> Configuration --> Expense Categories`. Click on an expense category to view the expense -category form. Under the :guilabel:`INVOICING` section, click the radio button next to the desired -selection for :guilabel:`Re-Invoice Expenses`: +category form. + +Under the :guilabel:`INVOICING` section, click the radio button next to the desired selection for +:guilabel:`Re-Invoice Expenses`: - :guilabel:`No`: The expense category cannot be re-invoiced. -- :guilabel:`At cost`: The expense category invoices expenses at the cost set on the expense +- :guilabel:`At cost`: The expense category invoices expenses at the price set on the expense category form. - :guilabel:`Sales price`: The expense category invoices at the sales price set on the expense form. +The default expense categories have the following re-invoicing policies: + + **At cost** + +- [COMM] Communication +- [TRANS & ACC] Travel & Accommodation + +**Sales price** + +- [FOOD] Meals +- [MIL] Mileage + +**Not enabled** + +- [EXP_GEN] Others +- [GIFT] Gifts + +Create an expense category +-------------------------- + +To create a new expense category, navigate to :menuselection:`Expenses app --> Configuration --> +Expense Categories`. Click :guilabel:`New`, and a new expense category form loads. + +Fill in the :guilabel:`Product Name` and in the :guilabel:`GENERAL INFORMATION` section fill in: + +- :guilabel:`Cost` +- :guilabel:`Unit of Measure` +- :guilabel:`Internal Reference` +- :guilabel:`Product Category` + +In the :guilabel:`ACCOUNTING` section fill in: + +- :guilabel:`Expense Account` + + .. note:: + Check with the accounting department to determine the correct account to reference in this + field as it affects various reports. + +- :guilabel:`Vendor Taxes` and :guilabel:`Customer Taxes` + + .. note:: + The :guilabel:`Customer Taxes` field is only visible if the **Sales** app is installed, and + either the :guilabel:`At cost` or :guilabel:`Sales Price` options are selected in the + invoicing section. + + .. tip:: + It is considered good practice to use a tax that is configured with :guilabel:`Tax Included in + Price`. Taxes are automatically configured if these are set. + +.. image:: reinvoice_expenses/expense-category-form.png + :alt: Sample of the Expense Category form in the Expense app. + +In the :guilabel:`INOVOICING` section, select either :guilabel:`At cost` or :guilabel:`Sales price` +for the :guilabel:`Re-invoice Costs` field. Click the :icon:`fa-cloud-upload` :guilabel:`(Save +manually)` icon to accept the new expense category. + .. _expenses/reinvoice-create: Create an expense ================= -First, when :doc:`creating a new expense <../expenses/log_expenses>`, the correct information needs -to be entered to re-invoice the expense to a customer. Using the drop-down menu, select the -:abbr:`SO (Sales Order)` to add the expense to in the :guilabel:`Customer to Reinvoice` field. +To see detailed instructions on completing an expense form, refer to the :doc:`Log expenses +` page. + +.. note:: + This section focuses on the information required to reinvoice an expense to an :abbr:`SO (Sales + Order)`. + +Navigate to the :guilabel:`Expense app` and click :guilabel:`New` to reveal a blank expense form. On +the expenses form, add a :guilabel:`Description` to reference the expense. + +Then, for the :guilabel:`Category` field, select the desired expense category from the drop-down +menu. Next, fill in the correct information for the following fields: + +- :guilabel:`Total` +- :guilabel:`Included Taxes` +- :guilabel:`Employee` +- :guilabel:`Paid By` + +The :guilabel:`Expense Date` and :guilabel:`Account` fields are auto-populated, but can be modified +if needed. In the :guilabel:`Customer to Reinvoice` field, use the drop-down menu to select the +:abbr:`SO (Sales Order)` to add the expense to. + +.. important:: + Selecting the proper :abbr:`SO (Sales Order)` in the :guilabel:`Customer to Reinvoice` field is + critical, since this is how expenses are automatically invoiced after an expense report is + approved. + + The :guilabel:`Customer to Reinvoice` field can be modified only until an expense report is + approved. After an expense report is approved, the :guilabel:`Customer to Reinvoice` field cannot + be modified. Next, select the :guilabel:`Analytic Distribution` the expense is posted to. Multiple accounts can be selected, if desired. +.. image:: reinvoice_expenses/sample-expense-form-hotel.png + :alt: Sample of a complete expense form in the Expense app. + To add another :guilabel:`Analytic Distribution`, click on the line to reveal the :guilabel:`Analytic` pop-over window. Click :guilabel:`Add a line`, then select the desired -:guilabel:`Analytic Distribution` from the drop-down field. If selecting more than one -:guilabel:`Analytic Distribution`, the :guilabel:`Percentage` fields **must** be modified. By -default, both fields are populated with `100%`. Adjust the percentages for all the fields, so the -total of all selected accounts equals `100%`. +:guilabel:`Analytic Distribution` from the drop-down field. + +If selecting more than one :guilabel:`Analytic Distribution`, the :guilabel:`Percentage` fields +**must** be modified. By default, both fields are populated with `100%`. Adjust the percentages for +all the fields, so the total of all selected accounts equals `100%`. .. example:: A painting company agrees to paint an office building that houses two different companies. During @@ -69,21 +157,27 @@ total of all selected accounts equals `100%`. creating the expenses for the mileage and hotels, **both companies** are listed in the :guilabel:`Analytic Distribution` line, for 50% each. +.. note:: + For the Analytic Distrubution field to be visible the **Accounting** app must be installed and + :doc:`Analytics plans <../accounting/reporting/analytic_accounting>` must be configured. + .. _expenses/reinvoice-report: Create an expense report ======================== -After the expenses are created, the expense report must be :ref:`created ` -and :ref:`submitted `, in the same manner as all other expenses. +.. note:: + For detailed instructions to create and submit an expense report, refer to the :doc:`Expense + reports ` page. + +After the expenses are created, click :guilabel:`Create report`. Once the expense report is +submitted, a :icon:`fa-money` :guilabel:`Sales Orders` smart button appears at the top-center of +both the expense report and each expense record being reinvoiced. -Once the expense report is submitted, a :icon:`fa-money` :guilabel:`Sales Orders` smart button -appears at the top-center of both the expense report, and each individual expense record being -reinvoiced. +.. image:: reinvoice_expenses/reinvoice-expense-report.png + :alt: Sample of an expense report in the Expense app. -.. image:: reinvoice_expenses/reinvoice-expense.png - :align: center - :alt: Ensure the customer to be invoiced is called out on the expense. +Next, click :guilabel:`Submit to Manager` to request approval from the assigned Manager. .. important:: Selecting the proper :abbr:`SO (Sales Order)` in the :guilabel:`Customer to Reinvoice` field is @@ -99,14 +193,15 @@ reinvoiced. Approve and post expenses ========================= -Before :doc:`approving an expense report <../expenses/approve_expenses>`, ensure the -:guilabel:`Analytic Distribution` section is populated for every expense line. +.. note:: + For detailed instructions to approve an expense report, refer to the :doc:`Approve expenses + ` page. -If an :guilabel:`Analytic Distribution` entry is missing, assign the correct accounts from the -drop-down menu, then click :guilabel:`Approve`. +Before approving an expense report, ensure the :guilabel:`Analytic Distribution` section is +populated for every expense line. If an :guilabel:`Analytic Distribution` entry is missing, assign +the correct accounts from the drop-down menu, then click :guilabel:`Approve`. .. image:: reinvoice_expenses/analytic-dist.png - :align: center :alt: The expense report with all the Analytic Distribution lines populated. .. note:: @@ -114,23 +209,24 @@ drop-down menu, then click :guilabel:`Approve`. `. The accounting department is typically responsible for :doc:`posting journal entries -<../expenses/post_expenses>`. To post expenses to an accounting journal, click :guilabel:`Post -Journal Entries`. Once an expense report is approved, it can then be posted. +`. To post expenses to an accounting journal, click :guilabel:`Post Journal Entries`. +Once an expense report is approved, it can then be posted. The :abbr:`SO (Sales Order)` is **only** updated *after* the journal entries are posted. Once the journal entries are posted, the expenses now appear on the referenced :abbr:`SO (Sales Order)`. .. _expenses/reinvoice: -Invoice expenses -================ +Invoice expenses to the customer +================================ -After the expense report has been approved, and the journal entries have been posted, the :abbr:`SO -(Sales Order)` is updated, and the customer can be invoiced. +Once the expense report is approved and the corresponding journal entries are posted, the :abbr:`SO +(Sales Order)` is automatically updated, allowing the customer to be invoiced. The accounting +department is typically responsible for generating the final invoice. -Select the expense report, and click the :icon:`fa-money` :guilabel:`Sales Orders` smart button to -open the :abbr:`SO (Sales Order)`. The expenses to be re-invoiced now appear on the :abbr:`SO (Sales -Order)`. +Select the desired expense report, and click the :icon:`fa-money` :guilabel:`Sales Orders` smart +button to open the :abbr:`SO (Sales Order)`. The expenses to be re-invoiced now appear on the +:abbr:`SO (Sales Order)`. .. note:: More than one :abbr:`SO (Sales Order)` can be referenced on an expense report. If more than one @@ -138,14 +234,48 @@ Order)`. a list displaying all the :abbr:`SOs (Sales Order)` associated with that expense report. Click on a :abbr:`SO (Sales Order)` to open the individual :abbr:`SO (Sales Order)` details. -The expenses are listed in the :abbr:`SO (Sales Order)` :guilabel:`Order Lines` tab. +On the :abbr:`SO (Sales Order)` form, the expenses are now line items in the :guilabel:`Order Lines` +tab, with their :guilabel:`Delivered` column filled in, and ready to be invoiced. .. image:: reinvoice_expenses/so-details.png - :align: center :alt: See the expenses listed on the sales order after clicking into it. -Next, click :guilabel:`Create Invoice`, and a :guilabel:`Create invoices` pop-up window appears. +Click :guilabel:`Create Invoice`, and a :guilabel:`Create invoices` pop-up window appears. + Select if the invoice is a :guilabel:`Regular invoice`, a :guilabel:`Down payment (percentage)`, or -a :guilabel:`Down payment (fixed amount)`. Then, click :guilabel:`Create Draft Invoice`. Doing so -creates a draft invoice for the customer. Click :guilabel:`Confirm` to confirm the invoice, and the -customer is invoiced for the expenses. +a :guilabel:`Down payment (fixed amount)`, and click :guilabel:`Create Draft Invoice`. A customer +invoice draft window displays the products and expenses in the :guilabel:`Invoice Lines` tab. + +.. note:: + For an :abbr:`SO (Sales Order)` with a product and a expense, if the product has not been + delivered to the customer, only the expense is listed in the :guilabel:`Invoice Lines` tab of the + invoice. Creating two invoices for one :abbr:`SO (Sales Order)` is possible. + +Click :guilabel:`Confirm` to change the invoice status from :guilabel:`Draft` to :guilabel:`Posted`. + +To email the invoice to the customer, click :guilabel:`Send & Print`. A document layout +configuration pop-up window appears for layout customization. + +Click :guilabel:`Save`, and a pop-up window with a preconfigured email message and a PDF invoice in +its body displays. The message can be reviewed and modified, if needed. + +Click :guilabel:`Send & Print` to email the invoice to the customer. The pop-up window disappears, +and Odoo sends the invoice to the customer. Additionally, a PDF of the invoice is automatically +downloaded for record-keeping and printing purposes. + +Invoice payment +=============== + +On the :guilabel:`Customer Invoice`, click :guilabel:`Register Payment` after the customer pays for +the invoice. + +A :guilabel:`Pay` pop-up window appears, and the necessary fields are auto-populated with the +correct information. After reviewing the information, click :guilabel:`Create Payment`. + +A green :guilabel:`In Payment` banner appears in the upper-right corner of the invoice, indicating +that the invoice is paid in full. + +A :guilabel:`Payments` smart button displays at the top of the form. Click :guilabel:`Payments` to +go to the :guilabel:`Pay` form. Click :guilabel:`Validate` to confirm the invoice is paid for in +full. Thus, completing the workflow. + diff --git a/content/applications/finance/expenses/reinvoice_expenses/expense-category-form.png b/content/applications/finance/expenses/reinvoice_expenses/expense-category-form.png new file mode 100644 index 0000000000..d592e797a3 Binary files /dev/null and b/content/applications/finance/expenses/reinvoice_expenses/expense-category-form.png differ diff --git a/content/applications/finance/expenses/reinvoice_expenses/reinvoice-expense-report.png b/content/applications/finance/expenses/reinvoice_expenses/reinvoice-expense-report.png new file mode 100644 index 0000000000..b3b803ec2f Binary files /dev/null and b/content/applications/finance/expenses/reinvoice_expenses/reinvoice-expense-report.png differ diff --git a/content/applications/finance/expenses/reinvoice_expenses/reinvoice-expense.png b/content/applications/finance/expenses/reinvoice_expenses/reinvoice-expense.png deleted file mode 100644 index 7a595b6f63..0000000000 Binary files a/content/applications/finance/expenses/reinvoice_expenses/reinvoice-expense.png and /dev/null differ diff --git a/content/applications/finance/expenses/reinvoice_expenses/sample-expense-form-hotel.png b/content/applications/finance/expenses/reinvoice_expenses/sample-expense-form-hotel.png new file mode 100644 index 0000000000..50c6ea538a Binary files /dev/null and b/content/applications/finance/expenses/reinvoice_expenses/sample-expense-form-hotel.png differ