[IMP] Expenses: Updating reinvoice expenses

closes odoo/documentation#15227

X-original-commit: 75731551e1
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
This commit is contained in:
larm-odoo
2025-11-05 21:10:23 +00:00
parent 897b1ab1ae
commit 013038e1c5
7 changed files with 57 additions and 54 deletions

View File

@@ -1,18 +1,18 @@
=================== ==================
Re-invoice expenses Reinvoice expenses
=================== ==================
If expenses are tracked on customer projects, they can be automatically charged back to the 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 customer. This is done by :ref:`logging an expense <expenses/reinvoice-create>`, referencing the
sales order the expense is added to, and then :ref:`creating an expense report corresponding sales order, and then :ref:`creating an expense report
<expenses/reinvoice-report>`. <expenses/reinvoice-expense-report>`.
Next, managers :ref:`approve the expense report <expenses/reinvoice-approve>`, before the accounting Next, managers :ref:`approve the expense report <expenses/reinvoice-approve>`, then the accounting
department :ref:`posts the journal entries <expenses/reinvoice-approve>`. department :ref:`post the journal entries <expenses/reinvoice-approve>`.
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 <expenses/reinvoice>`, :abbr:`SO (Sales Order)`. When the :abbr:`SO (Sales Order)` is :ref:`invoiced <expenses/reinvoice>`,
thus charging the customer for the expenses. the customer is charged for the expenses.
.. important:: .. important::
Approving expenses, posting expenses to accounting, and reinvoicing expenses on :abbr:`SOs (Sales Approving expenses, posting expenses to accounting, and reinvoicing expenses on :abbr:`SOs (Sales
@@ -26,8 +26,8 @@ thus charging the customer for the expenses.
- :doc:`Log expenses <../expenses/log_expenses>` - :doc:`Log expenses <../expenses/log_expenses>`
- :doc:`Expense reports <../expenses/expense_reports>` - :doc:`Expense reports <../expenses/expense_reports>`
- :doc:`Approving expenses <../expenses/approve_expenses>` - :doc:`Approve expenses <../expenses/approve_expenses>`
- :doc:`Posting expenses in accounting <../expenses/post_expenses>` - :doc:`Post expenses <../expenses/post_expenses>`
Setup Setup
===== =====
@@ -35,41 +35,47 @@ Setup
First, specify the invoicing policy for each expense category. Navigate to :menuselection:`Expenses 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 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 category form. Under the :guilabel:`INVOICING` section, click the radio button next to the desired
selection for :guilabel:`Re-Invoice Expenses`: selection for :guilabel:`Re-Invoice costs`:
- :guilabel:`No`: The expense category cannot be re-invoiced. - :guilabel:`No`: The expense category **cannot** be reinvoiced.
- :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 :guilabel:`Cost` set on the
category form. expense category form.
- :guilabel:`Sales price`: The expense category invoices at the sales price set on the expense form. - :guilabel:`Sales price`: The expense category invoices at the :guilabel:`Sales Price` set on the
expense form.
.. _expenses/reinvoice-create: .. _expenses/reinvoice-create:
Create an expense Log an expense
================= ==============
First, when :doc:`creating a new expense <../expenses/log_expenses>`, the correct information needs 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 to be entered to reinvoice the expense to a customer. Using the drop-down menu, select the :abbr:`SO
:abbr:`SO (Sales Order)` to add the expense to in the :guilabel:`Customer to Reinvoice` field. (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 Next, select the :guilabel:`Analytic Distribution` the expense is posted to. The options available
be selected, if desired. are pulled from the **Projects** app.
To add another :guilabel:`Analytic Distribution`, click on the line to reveal the Multiple projects can be selected, if desired. To add another :guilabel:`Analytic Distribution`,
:guilabel:`Analytic` pop-over window. Click :guilabel:`Add a line`, then select the desired click on the line to reveal the :guilabel:`Analytic` pop-over window. Click :guilabel:`Add a line`,
:guilabel:`Analytic Distribution` from the drop-down field. If selecting more than one then select the desired :guilabel:`Analytic Distribution` from the drop-down menu.
: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 .. image:: reinvoice_expenses/reinvoice-expense-form.png
total of all selected accounts equals `100%`. :alt: An expense entry to reinvoice a project to the customer, for the gallery seating project.
.. important::
If selecting more than one :guilabel:`Analytic Distribution`, the :guilabel:`Percentage` fields
**must** be modified. Both fields are populated with `100%`, by default. Adjust the percentages
for all the fields, so the total of all selected accounts equals `100%`.
.. example:: .. example::
A painting company agrees to paint an office building that houses two different companies. During A furniture company is building seating for two different locations for one client. The client
the estimate, a meeting is held at the office location to discuss the project. agrees to pay for all travel expenses for site visits related to these two projects. The
furniture company plans one trip to visit *both* locations.
Both companies agree to pay for the travel expenses for the painting company employees. When When creating the expenses for travel expenses, **both projects** are listed in the
creating the expenses for the mileage and hotels, **both companies** are listed in the
:guilabel:`Analytic Distribution` line, for 50% each. :guilabel:`Analytic Distribution` line, for 50% each.
.. _expenses/reinvoice-report: .. _expenses/reinvoice-expense-report:
Create an expense report Create an expense report
======================== ========================
@@ -81,10 +87,6 @@ Once the expense report is submitted, a :icon:`fa-money` :guilabel:`Sales Orders
appears at the top-center of both the expense report, and each individual expense record being appears at the top-center of both the expense report, and each individual expense record being
reinvoiced. reinvoiced.
.. image:: reinvoice_expenses/reinvoice-expense.png
:align: center
:alt: Ensure the customer to be invoiced is called out on the expense.
.. important:: .. important::
Selecting the proper :abbr:`SO (Sales Order)` in the :guilabel:`Customer to Reinvoice` field is 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 **critical**, since this is how expenses are automatically invoiced after an expense report is
@@ -94,21 +96,20 @@ reinvoiced.
**approved**. After an expense report is approved, the :guilabel:`Customer to Reinvoice` field is **approved**. After an expense report is approved, the :guilabel:`Customer to Reinvoice` field is
no longer able to be modified. no longer able to be modified.
.. image:: reinvoice_expenses/reinvoice-approved.png
:alt: An expense report with a sales order smart button for reinvoicing.
.. _expenses/reinvoice-approve: .. _expenses/reinvoice-approve:
Approve and post expenses Approve and post expenses
========================= =========================
Before :doc:`approving an expense report <../expenses/approve_expenses>`, ensure the Before :doc:`approving an expense report <../expenses/approve_expenses>`, ensure the
:guilabel:`Analytic Distribution` section is populated for every expense line. :guilabel:`Analytic Distribution` section is populated for every relevant expense line.
If an :guilabel:`Analytic Distribution` entry is missing, assign the correct accounts from the If an :guilabel:`Analytic Distribution` entry is missing, assign the correct accounts from the
drop-down menu, then click :guilabel:`Approve`. 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:: .. note::
The :guilabel:`Approve` button **only** appears after an expense report has been :ref:`submitted The :guilabel:`Approve` button **only** appears after an expense report has been :ref:`submitted
<expenses/submit>`. <expenses/submit>`.
@@ -128,9 +129,9 @@ Invoice expenses
After the expense report has been approved, and the journal entries have been posted, the :abbr:`SO 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. (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 Navigate to the expense report, and click the :icon:`fa-money` :guilabel:`Sales Orders` smart button
open the :abbr:`SO (Sales Order)`. The expenses to be re-invoiced now appear on the :abbr:`SO (Sales to open the :abbr:`SO (Sales Order)`. The expenses to be reinvoiced now appear on the :abbr:`SO
Order)`. (Sales Order)`.
.. note:: .. note::
More than one :abbr:`SO (Sales Order)` can be referenced on an expense report. If more than one More than one :abbr:`SO (Sales Order)` can be referenced on an expense report. If more than one
@@ -140,12 +141,14 @@ Order)`.
The expenses are listed in the :abbr:`SO (Sales Order)` :guilabel:`Order Lines` tab. 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. 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 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 a :guilabel:`Down payment (fixed amount)`. Then, click :guilabel:`Create Draft`. Doing so creates a
creates a draft invoice for the customer. Click :guilabel:`Confirm` to confirm the invoice, and the draft invoice for the customer. Click :guilabel:`Confirm` to confirm the invoice, and the customer
customer is invoiced for the expenses. is invoiced for the expenses.
.. image:: reinvoice_expenses/reinvoiced.png
:alt: See the expenses listed on the sales order after clicking into it.
.. seealso::
:doc:`../../sales/sales/invoicing`

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB