[IMP] sales: reinvoice expenses to customers
closes odoo/documentation#5590 Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
@ -1,65 +1,228 @@
|
|||||||
================================
|
===============================
|
||||||
Re-invoice expenses to customers
|
Reinvoice expenses to customers
|
||||||
================================
|
===============================
|
||||||
|
|
||||||
It often happens that your employees have to spend their personal money
|
While working on a project for a client, employees often have to spend their own money on various
|
||||||
while working on a project for your client. Let's take the example of a
|
expenses related to the project.
|
||||||
consultant paying for a hotel to work on the site of your client. As a
|
|
||||||
company, you would like to be able to invoice that expense to your
|
|
||||||
client.
|
|
||||||
|
|
||||||
Expenses configuration
|
For example, an employee may need to use their own money to pay for a hotel, while they provide an
|
||||||
======================
|
on-site service for a client. As a company, this expense should be reinvoiced to the customer. With
|
||||||
|
Odoo, these kinds of expenses can quickly be reinvoiced to the customer related to the project.
|
||||||
|
|
||||||
To track & invoice expenses, you will need the expenses app. Go to
|
Expenses application
|
||||||
:menuselection:`Apps --> Expenses` to install it.
|
====================
|
||||||
|
|
||||||
You should also activate the analytic accounts feature to link expenses
|
To be able to reinvoice a customer for an expense, the *Expenses* application **must** be installed.
|
||||||
to the sales order, to do so, go to :menuselection:`Invoicing -->
|
|
||||||
Configuration --> Settings` and activate *Analytic Accounting*.
|
|
||||||
|
|
||||||
Add expenses to your sales order
|
To install the *Expenses* application, navigate to :menuselection:`main Odoo dashboard --> Apps`,
|
||||||
================================
|
and click :guilabel:`Install` on the *Expenses* application block. When clicked, Odoo installs the
|
||||||
|
application, refreshes the page, and returns to the main Odoo dashboard.
|
||||||
|
|
||||||
From the expense app, you or your consultant can create a new one, e.g.
|
Add expenses to sales orders
|
||||||
the hotel for the first week on the site of your customer.
|
============================
|
||||||
|
|
||||||
You can then enter a relevant description and select an existing product
|
To begin, have a sales order confirmed in the *Sales* app to which a reinvoiced expense can be
|
||||||
or create a new one from right there.
|
added. Or, create a new sales order from scratch. To do that, navigate to the :menuselection:`Sales
|
||||||
|
app --> New`. Doing so reveals a blank quotation form.
|
||||||
|
|
||||||
.. image:: expense/expense01.png
|
Then, add a :guilabel:`Customer`, and add a product to the :guilabel:`Order Lines` tab, by clicking
|
||||||
|
:guilabel:`Add a product`. Next, select a product from the drop-down menu.
|
||||||
|
|
||||||
|
Lastly, click :guilabel:`Confirm` to confirm the sales order.
|
||||||
|
|
||||||
|
.. image:: expense/confirmed-sales-order.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: This is how a confirmed sales order looks in the Odoo Sales application.
|
||||||
|
|
||||||
Here, we are creating a *Hotel* product:
|
With the sales order confirmed, it's time to create an expense.
|
||||||
|
|
||||||
.. image:: expense/expense02.png
|
To do that, navigate to the *Expenses* application, by going to :menuselection:`main Odoo dashboard
|
||||||
|
--> Expenses`.
|
||||||
|
|
||||||
|
Then, from the *Expenses* dashboard, click :guilabel:`New` to reveal a blank expenses form.
|
||||||
|
|
||||||
|
.. image:: expense/blank-expenses-form.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: A blank expenses form in the Odoo Expenses application.
|
||||||
|
|
||||||
Under the invoicing tab, select *Delivered quantities* and either *At
|
On the expenses form, add a :guilabel:`Description` to easily reference the expense.
|
||||||
cost* or *Sales price* as well depending if you want to invoice the
|
|
||||||
cost of your expense or a previously agreed on sales price.
|
|
||||||
|
|
||||||
.. image:: expense/expense03.png
|
Then, in the :guilabel:`Category` field, select one of the following options from the drop-down
|
||||||
|
menu:
|
||||||
|
|
||||||
|
- :guilabel:`Communication`: any form of communication related to a project/order.
|
||||||
|
- :guilabel:`Others`: expense that doesn't fit into any other categories.
|
||||||
|
- :guilabel:`Meals`: any form of meal costs related to a project/order.
|
||||||
|
- :guilabel:`Gifts`: any form of gift costs related to a project/order.
|
||||||
|
- :guilabel:`Mileage`: any form of mileage (gas) costs related to project/order.
|
||||||
|
- :guilabel:`Travel \& Accommodation`: any travel or accommodation costs related to a project/order.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
New expense categories can be created from an expense form, by clicking the :guilabel:`Category`
|
||||||
|
field drop-down menu, selecting :guilabel:`View All`, and clicking :guilabel:`New` from the
|
||||||
|
:guilabel:`Search:Category` pop-up window.
|
||||||
|
|
||||||
|
.. image:: expense/expense-category-pop-up.png
|
||||||
|
:align: center
|
||||||
|
:alt: The Search:Category expenses pop-up window from a blank expenses form in Odoo Expenses.
|
||||||
|
|
||||||
|
For this sample workflow, which will reinvoice a customer for a brief hotel stay, the
|
||||||
|
:guilabel:`Category` for this example is :guilabel:`[TRANS \& ACC] Travel \& Accommodation`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The following example requires the *Sales*, *Accounting*, and *Expense* apps to view/modify all
|
||||||
|
the fields mentioned during the workflow.
|
||||||
|
|
||||||
|
Beneath the :guilabel:`Category` field, enter in the amount to be expensed in the :guilabel:`Total`
|
||||||
|
field.
|
||||||
|
|
||||||
|
Next, designate if there are any :guilabel:`Included taxes` in the :guilabel:`Total`. If a
|
||||||
|
preconfigured tax amount is selected from the :guilabel:`Included taxes` field, Odoo auto-calculates
|
||||||
|
the taxed amount, based on the amount entered in the :guilabel:`Total` field.
|
||||||
|
|
||||||
|
Then, choose which :guilabel:`Employee` was responsible for the expense, and choose an option in the
|
||||||
|
:guilabel:`Paid By` field: :guilabel:`Employee (to reimburse)` or :guilabel:`Company`.
|
||||||
|
|
||||||
|
In this case, our employee paid for the hotel with their own money, so the :guilabel:`Employee (to
|
||||||
|
reimburse)` option is chosen.
|
||||||
|
|
||||||
|
On the right-hand side of the expenses form, the option to add a :guilabel:`Bill Reference` is
|
||||||
|
available. Beneath that, the auto-populated :guilabel:`Expense Date` and :guilabel:`Account` fields
|
||||||
|
are available.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The :guilabel:`Expense Date` and :guilabel:`Account` field can be modified, if needed.
|
||||||
|
|
||||||
|
Next, in the :guilabel:`Customer to Reinvoice` field, click the blank field to reveal a drop-down
|
||||||
|
menu. From this drop-down menu, select the appropriate sales order to which this expense should be
|
||||||
|
attached. This field **must** be filled, in order to reinvoice a customer for an expense.
|
||||||
|
|
||||||
|
Lastly, the option to modify the :guilabel:`Analytic Distribution` and :guilabel:`Company` fields
|
||||||
|
are available. These fields are *not* required to complete a reinvoiced expense to a customer, but
|
||||||
|
are available to modify, if needed.
|
||||||
|
|
||||||
|
Also, at the bottom of the expense form, there is a :guilabel:`Notes...` section, wherein any notes
|
||||||
|
related to this expense can be added, if needed.
|
||||||
|
|
||||||
|
.. image:: expense/filled-in-expense-form.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: A filled out expenses form in the Odoo Expenses application.
|
||||||
|
|
||||||
To modify or create more products go to :menuselection:`Expenses -->
|
At the top of the expense form, there are buttons to :guilabel:`Attach Receipt`, :guilabel:`Create
|
||||||
Configuration --> Expense products`.
|
Report`, and :guilabel:`Split Expense`.
|
||||||
|
|
||||||
Back on the expense, add the original sale order in the expense to
|
If there is a physical or digital receipt that should be attached to the expense, click
|
||||||
submit.
|
:guilabel:`Attach Receipt`.
|
||||||
|
|
||||||
.. image:: expense/expense04.png
|
If the cost of this expense needs to be split, click :guilabel:`Split Expense`. This feature can be
|
||||||
|
used for a number of reasons (spitting expense with another employee, to accommodate different tax
|
||||||
|
rates, etc.).
|
||||||
|
|
||||||
|
If neither of these options are necessary, click :guilabel:`Create Report` to lock in the expense
|
||||||
|
report that was just configured.
|
||||||
|
|
||||||
|
Doing so reveals an :guilabel:`Expense Report Summary` for the new expense.
|
||||||
|
|
||||||
|
.. image:: expense/expense-report-summary-form.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: An expense report summary in the Odoo Expenses application.
|
||||||
|
|
||||||
It can then be submitted to the manager, approved and finally posted.
|
Here, once the details related to the expense have been confirmed, click :guilabel:`Submit to
|
||||||
|
Manager`. This sends the expense report to the approving manager, who will review the expense.
|
||||||
|
|
||||||
.. image:: expense/expense05.png
|
The manager in charge of reviewing and approving the expense will inspect the details related to
|
||||||
|
the expense, and if there are no issues, they will click the :guilabel:`Approve` button — which
|
||||||
|
*only* appears on the manager's view of the :guilabel:`Expense Report Summary` that's been submitted
|
||||||
|
to the manager by the employee.
|
||||||
|
|
||||||
|
.. image:: expense/expense-report-summary-manager-approve.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: An expense report summary that a manager will approve with an Approve button.
|
||||||
|
|
||||||
.. image:: expense/expense06.png
|
Once approved, the buttons at the top of the :guilabel:`Expense Report Summary` change once again.
|
||||||
|
At this point, the buttons at the top of the :guilabel:`Expense Report Summary` are: :guilabel:`Post
|
||||||
|
Journal Entries`, :guilabel:`Report in Next Payslip`, :guilabel:`Refuse`, and :guilabel:`Reset to
|
||||||
|
Draft`.
|
||||||
|
|
||||||
|
.. image:: expense/expense-report-summary-manager-post-journal.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: An expense report summary with post journal entries button at the top of the form.
|
||||||
|
|
||||||
.. image:: expense/expense07.png
|
When the manager is satisfied with the :guilabel:`Expense Report Summary`, they'll click
|
||||||
|
:guilabel:`Post Journal Entries`.
|
||||||
|
|
||||||
|
Upon clicking :guilabel:`Post Journal Entries`, that button disappears, and the :guilabel:`Analytic
|
||||||
|
Distribution` column in the :guilabel:`Expense` tab is filled with the sales order that was
|
||||||
|
initially configured to the expense in the :guilabel:`Customer to Reinvoice` field.
|
||||||
|
|
||||||
|
Reinvoice expense
|
||||||
|
=================
|
||||||
|
|
||||||
|
With those steps completed, it's time to return to the sales order to complete the reinvoice of the
|
||||||
|
expense to the customer.
|
||||||
|
|
||||||
|
To do that, navigate to :menuselection:`main Odoo dashboard --> Sales app`, and select the
|
||||||
|
appropriate sales order that should be reinvoiced for the expense.
|
||||||
|
|
||||||
|
On the sales form, the newly-configured expense is now in the :guilabel:`Order Lines` tab, with its
|
||||||
|
:guilabel:`Delivered` column filled in, and ready to be invoiced.
|
||||||
|
|
||||||
|
.. image:: expense/sales-order-with-expense-order-lines.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: A sales order with the configured expense ready to be invoiced in the Order Lines tab.
|
||||||
|
|
||||||
It will then be in the sales order and ready to be invoiced.
|
After confirming the details of the expense, click :guilabel:`Create Invoice` at the top of the
|
||||||
|
sales order. When clicked, a :guilabel:`Create invoices` pop-up window appears.
|
||||||
|
|
||||||
|
.. image:: expense/create-invoices-popup.png
|
||||||
|
:align: center
|
||||||
|
:alt: A create invoices pop-up window that appears when the Create Invoice is clicked.
|
||||||
|
|
||||||
|
From this pop-up window, leave the :guilabel:`Create Invoice` field on the default
|
||||||
|
:guilabel:`Regular invoice` option, and click :guilabel:`Create Draft Invoice`.
|
||||||
|
|
||||||
|
Doing so reveals a :guilabel:`Customer Invoice Draft` showing *only* the expense in the
|
||||||
|
:guilabel:`Invoice Lines` tab.
|
||||||
|
|
||||||
|
.. image:: expense/customer-invoice-draft-with-expense.png
|
||||||
|
:align: center
|
||||||
|
:alt: A customer invoice draft with the expense in the Invoice Lines tab of the form.
|
||||||
|
|
||||||
|
If all the information related to the expense is correct, click :guilabel:`Confirm` to confirm the
|
||||||
|
invoice. Doing so moves the status of the invoice from :guilabel:`Draft` to :guilabel:`Posted`.
|
||||||
|
|
||||||
|
To send the invoice to the customer, click :guilabel:`Send \& Print`. Doing so reveals a
|
||||||
|
:guilabel:`Send` pop-up window, with a preconfigured message and PDF invoice in the body of the
|
||||||
|
message. The message can be reviewed and modified, if needed.
|
||||||
|
|
||||||
|
Once ready, click :guilabel:`Send \& Print` to send the invoice to the customer. When clicked, the
|
||||||
|
pop-up window disappears, and Odoo sends the message/invoice to the customer. Additionally, a PDF of
|
||||||
|
the invoice is automatically downloaded for record-keeping and/or printing purposes.
|
||||||
|
|
||||||
|
Back on the :guilabel:`Customer Invoice`, click the :guilabel:`Register Payment` button when the
|
||||||
|
customer pays for the invoiced expense.
|
||||||
|
|
||||||
|
.. image:: expense/customer-invoice-register-payment.png
|
||||||
|
:align: center
|
||||||
|
:alt: A customer invoice with the register payment button ready to be clicked.
|
||||||
|
|
||||||
|
When :guilabel:`Register Payment` is clicked, a :guilabel:`Register Payment` pop-up window appears.
|
||||||
|
In this pop-up window, the necessary fields are auto-populated with the correct information. After
|
||||||
|
reviewing the information, click :guilabel:`Create Payment`.
|
||||||
|
|
||||||
|
.. image:: expense/register-payment-popup.png
|
||||||
|
:align: center
|
||||||
|
:alt: A register payment pop-up window on a customer invoice in Odoo Sales.
|
||||||
|
|
||||||
|
Once :guilabel:`Create Payment` is clicked, the pop-up window disappears, and a green :guilabel:`In
|
||||||
|
Payment` banner is in the upper-right corner of the invoice, signifying this invoice is paid for in
|
||||||
|
full. Thus, completing the workflow.
|
||||||
|
|
||||||
|
.. image:: expense/expense-invoice-in-payment-banner.png
|
||||||
|
:align: center
|
||||||
|
:alt: A register payment pop-up window on a customer invoice in Odoo Sales.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
- :doc:`invoicing_policy`
|
||||||
|
- :doc:`time_materials`
|
||||||
|
- :doc:`milestone`
|
||||||
|
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 861 B |
Before Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 23 KiB |