[ADD] Expenses: reinvoicing expenses

closes odoo/documentation#10394

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
This commit is contained in:
Lara Martini (larm) 2024-07-26 17:03:31 -04:00
parent cb30a15eb9
commit 45d88420e8
12 changed files with 159 additions and 97 deletions

View File

@ -84,111 +84,20 @@ Set a tax on each product in the :guilabel:`Vendor Taxes` and :guilabel:`Custome
applicable. It is considered good practice to use a tax that is configured with :ref:`Tax Included
in Price <taxes/included-in-price>`. Taxes will be automatically configured if this is set.
Re-invoice expenses to customers
================================
If expenses are tracked on customer projects, expenses can be automatically charged back to the
customer. This is done by creating an expense, referencing the :abbr:`SO (Sales Order)` the expense
should be added to, and then creating the expense report. Next, managers approve the expense report,
and the accounting department posts the journal entries. Finally, once the expense report is posted
to a journal, the expenses appear on the :abbr:`SO (Sales Order)` that was referenced. The sales
order can then be invoiced, thus invoicing the customer for the expense.
Setup
-----
First, specify the invoicing policy for each expense category. Go to :menuselection:`Expenses app
--> Configuration --> Expense Categories`. Click on the expense category to open the expense
category form. Under the :guilabel:`Invoicing` section, click the radio button next to the desired
selection for :guilabel:`Re-Invoicing Expenses`. Options are :guilabel:`None`, :guilabel:`At cost`,
and :guilabel:`Sales price`.
:guilabel:`Re-Invoicing Expenses`:
- :guilabel:`None`: Expense category will not be re-invoiced.
- :guilabel:`At cost`: Expense category will invoice expenses at their real cost.
- :guilabel:`At sales price`: Expense category will invoice the price set on the sale order.
Create an expense
-----------------
First, when :doc:`creating a new expense <expenses/log_expenses>`, the correct information needs to
be entered in order to re-invoice a customer. Select the *sales order* the expense will appear on in
the :guilabel:`Customer to Reinvoice` section, from the drop-down menu. Next, select the
:guilabel:`Analytic Account` the expense will be posted to. After the expense(s) are created, the
expense report needs to be :doc:`created <expenses/expense_reports>` and :ref:`submitted
<expenses/submit>` as usual.
.. image:: expenses/reinvoice-expense.png
:align: center
:alt: Ensure the customer to be invoiced is called out on the expense.
.. important::
Selecting a :guilabel:`Customer to Reinvoice` when creating an expense is critical, since this is
what causes the expenses to be automatically invoiced after an expense report is approved.
The :guilabel:`Customer to Reinvoice` field can be modified *until an expense report is*
**approved**, then the field is no longer able to be modified.
Validate and post expenses
--------------------------
Only employees with permissions (typically managers or supervisors) can :doc:`approve expenses
<expenses/approve_expenses>`. Before approving an expense report, ensure the :guilabel:`Analytic
Distribution` is set on every expense line of a report. If an :guilabel:`Analytic Distribution` is
missing, assign the correct accounts from the drop-down menu, and click :guilabel:`Approve` or
:guilabel:`Refuse`.
The accounting department is typically responsible for :doc:`posting journal entries
<expenses/post_expenses>`. 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)`.
Invoice expenses
----------------
Once the :abbr:`SO (Sales Order)` has been updated, it is time to invoice the customer. After the
expense report has been approved and the journal entries have been posted, click the
:guilabel:`Sales Orders` smart button to open the :abbr:`SO (Sales Order)`. The expenses to be
re-invoiced are now on the :abbr:`SO (Sales Order)`.
.. image:: expenses/sales-order.png
:align: center
:alt: After the expense report is posted to the journal entry, the sales order can be called up
by clicking on the sales order number.
.. note::
More than one :abbr:`SO (Sales Order)` can be referenced on an expense report. If more than one
:abbr:`SO (Sales Order)` is referenced, the :guilabel:`Sales Orders` smart button will list the
number of :abbr:`SO (Sales Order)`'s. If multiple :abbr:`SO (Sales Order)`'s are listed, the
:guilabel:`Sales Orders` smart button opens a list view of all the :abbr:`SO (Sales Order)`'s on
the expense report. Click on a :abbr:`SO (Sales Order)` to open the individual :abbr:`SO (Sales
Order)`.
The expenses are listed in the :abbr:`SO (Sales Order)` :guilabel:`Order Lines` tab.
.. image:: 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 select if the invoice is for a :guilabel:`Regular
invoice`, a :guilabel:`Down payment (percentage)`, or a :guilabel:`Down payment (fixed amount)` by
clicking the radio button next to it. Then, click :guilabel:`Create Invoice`. The customer has now
been invoiced for the expenses.
.. seealso::
- :doc:`expenses/log_expenses`
- :doc:`expenses/expense_reports`
- :doc:`expenses/approve_expenses`
- :doc:`expenses/post_expenses`
- :doc:`expenses/reimburse`
- :doc:`expenses/reinvoice_expenses`
.. toctree::
:titlesonly:
expenses/approve_expenses
expenses/log_expenses
expenses/expense_reports
expenses/approve_expenses
expenses/post_expenses
expenses/reimburse
expenses/reinvoice_expenses

View File

@ -11,6 +11,8 @@ Expenses are color-coded by status. Any expense with a status of :guilabel:`To R
that still need to be added to an expense report) is shown in blue text. All other statuses
(:guilabel:`To Submit`, :guilabel:`Submitted`, and :guilabel:`Approved`) the text appears in black.
.. _expenses/create_report:
Create expense reports
======================

View File

@ -17,7 +17,7 @@ expense reports, navigate to :menuselection:`Expenses app --> Expense Reports`.
**only** approved expense reports that need to be posted, adjust the filters on the left side, so
only the :guilabel:`Approved` checkbox is ticked.
.. image:: post-expenses/post-reports.png
.. image:: post_expenses/post-reports.png
:align: center
:alt: View reports to post by clicking on expense reports, then reports to post.
@ -70,6 +70,6 @@ checkbox next to each report being approved.
Next, click the :guilabel:`Post Entries` button.
.. image:: post-expenses/post-entries.png
.. image:: post_expenses/post-entries.png
:align: center
:alt: Post multiple reports at a time from the Expense Reports view, with the Approved filter.

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,151 @@
===================
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 <expenses/reinvoice-create>`, referencing the
sales order the expense is added to, and then :ref:`creating an expense report
<expenses/reinvoice-report>`.
Next, managers :ref:`approve the expense report <expenses/reinvoice-approve>`, before the accounting
department :ref:`posts the journal entries <expenses/reinvoice-approve>`.
Finally, once the expense report is posted to a journal, the expenses appears on the specified
:abbr:`SO (Sales Order)`. The :abbr:`SO (Sales Order)` is then :ref:`invoiced <expenses/reinvoice>`,
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
<../../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:
- :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>`
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`:
- :guilabel:`No`: The expense category cannot be re-invoiced.
- :guilabel:`At cost`: The expense category invoices expenses at the cost set on the expense
category form.
- :guilabel:`Sales price`: The expense category invoices at the sales price set on the expense form.
.. _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.
Next, select the :guilabel:`Analytic Distribution` the expense is posted to. Multiple accounts can
be selected, if desired.
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%`.
.. example::
A painting company agrees to paint an office building that houses two different companies. During
the estimate, a meeting is held at the office location to discuss the project.
Both companies agree to pay for the travel expenses for the painting company employees. When
creating the expenses for the mileage and hotels, **both companies** are listed in the
:guilabel:`Analytic Distribution` line, for 50% each.
.. _expenses/reinvoice-report:
Create an expense report
========================
After the expenses are created, the expense report must be :ref:`created <expenses/create_report>`
and :ref:`submitted <expenses/submit>`, in the same manner as all other expenses.
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.png
:align: center
:alt: Ensure the customer to be invoiced is called out on the expense.
.. 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 is
no longer able to be modified.
.. _expenses/reinvoice-approve:
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.
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::
The :guilabel:`Approve` button **only** appears after an expense report has been :ref:`submitted
<expenses/submit>`.
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.
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
================
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.
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)`.
.. note::
More than one :abbr:`SO (Sales Order)` can be referenced on an expense report. If more than one
:abbr:`SO (Sales Order)` is referenced, clicking the :guilabel:`Sales Orders` smart button opens
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.
.. 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.
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.

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB