diff --git a/content/applications/finance/expenses.rst b/content/applications/finance/expenses.rst index 5755b9a7e..9daf705d2 100644 --- a/content/applications/finance/expenses.rst +++ b/content/applications/finance/expenses.rst @@ -11,6 +11,8 @@ processed, and disbursed back to the employee for reimbursement. .. seealso:: `Odoo Expenses: product page `_ +.. _expenses/expense-categories: + Set expense categories ====================== diff --git a/content/applications/finance/expenses/reinvoice_expenses.rst b/content/applications/finance/expenses/reinvoice_expenses.rst index bd54154f6..b10dc06a3 100644 --- a/content/applications/finance/expenses/reinvoice_expenses.rst +++ b/content/applications/finance/expenses/reinvoice_expenses.rst @@ -4,62 +4,114 @@ 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`: +The **Sales** and **Accounting** apps must be installed for this configuration. + +In the **Expense** app, 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 +- :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* | *Sales price* | *Not enabled* | ++=============+===========================================================================+===========================================================+======================================+ +| *Category* | **COMM** | **FOOD** | **EXP_GEN** | ++-------------+---------------------------------------------------------------------------+-----------------------------------------------------------+--------------------------------------+ +|*Description*| Communication expenses such as phone bills, postage, etc. | Meal expenses such as restaurants, business lunches, etc | Others | ++-------------+---------------------------------------------------------------------------+-----------------------------------------------------------+--------------------------------------+ +| *Category* | **TRANS & ACCT** | **MIL** | **GIFT** | ++-------------+---------------------------------------------------------------------------+-----------------------------------------------------------+--------------------------------------+ +|*Description*| Travel and accommodation expenses such as hotel, plane ticket, taxi, etc. | Mileage. | Gifts to customers or vendors. | ++-------------+---------------------------------------------------------------------------+-----------------------------------------------------------+--------------------------------------+ + +Set the re-invoicing policy +--------------------------- + +To set a re-invoicing policy on an expense category, navigate to :menuselection:`Expenses app --> +Configuration --> Expense Categories`. Either open the desired expense category, or :ref:`create a +new one `. + +In the :guilabel:`INVOICING` section, select either :guilabel:`At cost` or :guilabel:`Sales price` +for the :guilabel:`Re-invoice Costs` field. + +.. image:: reinvoice_expenses/expense-category-form.png + :alt: Sample of the Expense Category form in the Expense app. + .. _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 re-invoice an expense, first :doc:`create an expense record `. 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. + +.. seealso:: + To see detailed instructions on completing an expense form, refer to the :doc:`Log expenses + ` page. + +Optional: Analytic Distribution +------------------------------- + +.. important:: + For the :guilabel:`Analytic Distribution` field to be visible the **Accounting** app must be + installed, :guilabel:`Analytic Accounting`, and :guilabel:`Analytic Plans` must be configured. + Refer to :doc:`Analytics accounting <../accounting/reporting/analytic_accounting>` for more + information. 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 @@ -74,39 +126,35 @@ total of all selected accounts equals `100%`. 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. +After the expenses are created, click :guilabel:`Create report`. Once the expense report is +submitted, the :icon:`fa-money` :guilabel:`Sales Orders` and :icon:`fa-file-text-o` +:guilabel:`Expenses` smart buttons appear at the top of the expense report. The smart buttons will +display the number of :abbr:`SOs (Sales Orders)` and expenses linked to the expense 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 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. +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 - **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. +.. image:: reinvoice_expenses/reinvoice-expense-report.png + :alt: Sample of an expense report in the Expense app. + +.. seealso:: + For detailed instructions to create and submit an expense report, refer to the :doc:`Expense + reports ` page. + + .. _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`. +Before approving an expense report, ensure all the information for every expense line is correct, +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,38 +162,108 @@ 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)`. +.. seealso:: + For detailed instructions to approve an expense report, refer to the :doc:`Approve expenses + ` page. + .. _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 - :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. + :abbr:`SO (Sales Order)` is referenced, clicking the :icon:`fa-money` :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. +.. example:: + A electronics repair company has a large customer base. Their service charges vary depending on + the product they service. A technician uses different components depending on the product they + service and services five customers per day on average. + + After each job the technician submits an expense and associates the appropriate :abbr:`SO (Sales + Order)` for each. At the end of the day, the technician selects all of the expenses and creates + an expense report for the manager to review and approve. + + When the expense report gets created, several :abbr:`SOs (Sales Order)` are linked to it. The + :icon:`fa-file-text-o` :guilabel:`Expenses` and :icon:`fa-money` :guilabel:`Sales Orders` smart + buttons display the number of linked records on the top of the expense report. + + .. image:: reinvoice_expenses/expense-report-multi-so.png + :alt: See the expenses listed on the sales order after clicking into it. + +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 pre-configured 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 +=============== + +Depending on the payment configuration in the **Accounting** app, there are several ways to process +payment for an invoice. This workflow incorporates the customer portal and manual verification. The +customer is responsible for submitting the invoice payment and the accounting department is +responsible for verification. + +.. note:: + For online payments through the customer portal, the :doc:`Invoice Online Payment + <../../finance/payment_providers>` feature must be enabled on the **Accounting** app. Also a + payment method must be set up. + +Navigate to the invoice by clicking the :menuselection:`Expenses app --> Expense Reports` and select +the desired expense report. + +Click the :icon:`fa-money` :guilabel:`Sales Orders` smart button, then select the desired :abbr:`SO +(Sales Order)`. Click the :icon:`fa-pencil-square-o` :guilabel:`Invoices` smart button. + +After clicking :guilabel:`Send & Print`, the invoice is emailed to the customer and published online +on the customer portal. Click :guilabel:`Preview` to see the customer's view of the invoice and +payment methods. + +Once the customer pays online, the invoice gets an :guilabel:`In Payment` banner. The +:icon:`fa-bars` :guilabel:`Payments` and :icon:`fa-money` :guilabel:`Payment Transaction` smart +buttons display at the top of the invoice form. + +Click the :icon:`fa-bars` :guilabel:`Payments` smart button to go to the :guilabel:`Pay` form. Click +:guilabel:`Validate` to confirm that the invoice payment has been received. The Pay form is +automatically updated to :guilabel:`Paid`. 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 000000000..f62ca3b9e 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/expense-report-multi-so.png b/content/applications/finance/expenses/reinvoice_expenses/expense-report-multi-so.png new file mode 100644 index 000000000..b471b5c7d Binary files /dev/null and b/content/applications/finance/expenses/reinvoice_expenses/expense-report-multi-so.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 000000000..b3b803ec2 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 7a595b6f6..000000000 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 000000000..50c6ea538 Binary files /dev/null and b/content/applications/finance/expenses/reinvoice_expenses/sample-expense-form-hotel.png differ