[IMP] sales: reinvoice expenses to customers
closes odoo/documentation#6826
X-original-commit: a4a9335dd1
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 your client. Let's take the example of a
|
||||
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.
|
||||
While working on a project for a client, employees often have to spend their own money on various
|
||||
expenses related to the project.
|
||||
|
||||
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
|
||||
:menuselection:`Apps --> Expenses` to install it.
|
||||
Expenses application
|
||||
====================
|
||||
|
||||
You should also activate the analytic accounts feature to link expenses
|
||||
to the sales order, to do so, go to :menuselection:`Invoicing -->
|
||||
Configuration --> Settings` and activate *Analytic Accounting*.
|
||||
To be able to reinvoice a customer for an expense, the *Expenses* application **must** be installed.
|
||||
|
||||
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.
|
||||
the hotel for the first week on the site of your customer.
|
||||
Add expenses to sales orders
|
||||
============================
|
||||
|
||||
You can then enter a relevant description and select an existing product
|
||||
or create a new one from right there.
|
||||
To begin, have a sales order confirmed in the *Sales* app to which a reinvoiced expense can be
|
||||
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
|
||||
: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
|
||||
:alt: A blank expenses form in the Odoo Expenses application.
|
||||
|
||||
Under the invoicing tab, select *Delivered quantities* and either *At
|
||||
cost* or *Sales price* as well depending if you want to invoice the
|
||||
cost of your expense or a previously agreed on sales price.
|
||||
On the expenses form, add a :guilabel:`Description` to easily reference the expense.
|
||||
|
||||
.. 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
|
||||
:alt: A filled out expenses form in the Odoo Expenses application.
|
||||
|
||||
To modify or create more products go to :menuselection:`Expenses -->
|
||||
Configuration --> Expense products`.
|
||||
At the top of the expense form, there are buttons to :guilabel:`Attach Receipt`, :guilabel:`Create
|
||||
Report`, and :guilabel:`Split Expense`.
|
||||
|
||||
Back on the expense, add the original sale order in the expense to
|
||||
submit.
|
||||
If there is a physical or digital receipt that should be attached to the expense, click
|
||||
: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
|
||||
: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
|
||||
: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
|
||||
: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
|
||||
: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 |