diff --git a/content/applications/finance/expenses.rst b/content/applications/finance/expenses.rst index 12af778f3..99b035521 100644 --- a/content/applications/finance/expenses.rst +++ b/content/applications/finance/expenses.rst @@ -4,231 +4,533 @@ Expenses ======== -**Odoo Expenses** streamlines the management of expenses. Employees can submit their expenses; -managers can approve them; accountants can record them and process the payments. +Odoo **Expenses** streamlines the management of expenses. After an employee submits their expenses +in Odoo, the expenses are reviewed by management and accounting teams. Once approved, payments can +then be processed and disbursed back to the employee for reimbursement(s). .. seealso:: - - `Odoo Expenses: product page `_ + `Odoo Expenses: product page `_ -How to set expense types -======================== +Set expense types +================= -The first step to track expenses is to configure the expense types (managed as products in Odoo) -that your company allows, from the *Configuration* menu. -When a specific expense is reimbursed at a fixed price, set a cost on the product. -Otherwise keep the cost at 0.0 and employees will report the real cost per expense. +The first step to track expenses is to configure the different *expense types* for the company +(managed as *products* in Odoo). Each "product" can be as specific or generalized as needed. Go to +:menuselection:`Expenses app --> Configuration --> Expense Products` to view the current expensable +products in a default kanban view. -.. image:: expenses/product.png +.. image:: expenses/products.png :align: center + :alt: Set expense costs on products. -Here are some examples: - -* Restaurant: - - * Cost: 0.00 (the cost of the ticket will be recorded on every expense) -* Travel with Personal Car: - - * Cost: 0.30 (the price per mile reimbursed by the company is fixed) -* Hotel: - - * Cost: 0.00 (the cost of the ticket will be recorded on every expense) - -* Others: - - * Cost: 0.0 - -Don't forget to set an expense tax on each expense type -(and an account if you use Odoo Accounting). -It's usually a good practice to use a tax that is configured -with :ref:`Tax Included in Price `. -That way, employees report expenses with -prices including taxes, which is usually the expected behaviour. +To create a new expense product, click :guilabel:`Create`. A product form will appear. Only two +fields are required, the :guilabel:`Product Name` and the :guilabel:`Unit of Measure`. Enter the +:guilabel:`Product Name` in the field, and select the :guilabel:`Unit of Measure` from the drop-down +menu (most products will be set to :guilabel:`Units`). .. tip:: - The *Sales* app allows you to specify units of measure for your - expense types (units, miles, nights, etc.). - Go to :menuselection:`Sales --> Configuration --> Settings` and check - *Some products may be sold/purchased in different units of measure (advanced)*. + The *Sales* app is where specification on the units of measure are created and edited (e.g. + units, miles, nights, etc.). Go to :menuselection:`Sales app --> Configuration --> Settings` and + ensure `Units of Measure` is checked off in the `Product Catalog` section. Click on the + :guilabel:`Units of Measure` internal link to view, create, and edit the units of measure. Refer + to :doc:`this document ` to + learn more about units of measure and how to configure them. - -How to record expenses -====================== - -Manually --------- - -As an employee (Employee in user access rights), you can record -expenses from :menuselection:`My Expenses --> Expenses to Submit`. - -.. image:: expenses/submit_01.png +.. image:: expenses/new-expense-product.png :align: center + :alt: Set expense costs on products. -1. Select the related product and enter either the total amount - you paid (with Quantity = 1) or the unit price if Quantity is - countable (e.g. number of hotel nights). -2. Enter the expense date. -3. Choose if you paid the bill on your own (and expect to be reimbursed) - or if the company paid directly (e.g. if you used a company's credit card). -4. Set the bill reference, add some notes if requested and attach a - photo/scan of the receipt from the discussion thread. - That will help the manager and the accountant validate it. +The :guilabel:`Cost` field on the product form is populated with a value of `0.00` by default. When +a specific expense should always be reimbursed for a particular price, enter that amount in the +:guilabel:`Cost` field. Otherwise, leave the :guilabel:`Cost` set to `0.00`, and employees will +report the actual cost when submitting an expense report. -.. image:: expenses/submit_02.png +.. example:: + Here are some examples for when to set a specific :guilabel:`Cost` on a product vs. leaving the + :guilabel:`Cost` at `0.00`: + + - **Meals**: Set the :guilabel:`Cost` to `0.00`. When an employee logs an expense for a meal, they + enter the actual amount of the bill and will be reimbursed for that amount. An expense for a + meal costing $95.23 would equal a reimbursement for $95.23. + - **Mileage**: Set the :guilabel:`Cost` to `0.30`. When an employee logs an expense for + "mileage", they enter the number of miles driven, and are reimbursed 0.30 per mile they + entered. An expense for 100 miles would equal a reimbursement for $30.00. + - **Monthly Parking**: Set the :guilabel:`Cost` to `75.00`. When an employee logs an expense for + "monthly parking", the reimbursement would be for $75.00. + - **Expenses**: Set the :guilabel:`Cost` to `0.00`. When an employee logs an expense that is not + a meal, mileage, or monthly parking, they use the generic :guilabel:`Expenses` product. An + expense for a laptop costing $350.00 would be logged as an :guilabel:`Expenses` product, and + the reimbursement would be for $350.00. + +Select an :guilabel:`Expense Account` if using the Odoo *Accounting* app. It is recommended to check +with the accounting department to determine the correct account to reference in this field as it +will affect reports. + +Set a tax on each product in the :guilabel:`Vendor Taxes` and :guilabel:`Customer Taxes` fields if +applicable. It is considered good practice to use a tax that is configured with :ref:`Tax Included +in Price `. Taxes will be automatically configured if this is set. + +.. _expenses/new: + +Record expenses +=============== + +Manually create a new expense +----------------------------- + +To record a new expense, begin in the main :menuselection:`Expenses` app dashboard, which presents +the default :guilabel:`My Expenses to Report` view. This view can also be accessed from +:menuselection:`Expenses app --> My Expenses --> My Expenses to Report`. + +First, click :guilabel:`Create`, and then fill out the various fields on the form. + +- :guilabel:`Description`: Enter a short description for the expense in the :guilabel:`Description` + field. This should be short and informative, such as `lunch with client` or `hotel for + conference`. +- :guilabel:`Product`: Select the product from the drop-down menu that most closely corresponds to + the expense. For example, an airplane ticket would be appropriate for an expense + :guilabel:`Product` named :guilabel:`Air Travel`. +- :guilabel:`Unit Price`: Enter the total amount paid for the expense in one of two ways: + + #. If the expense is for one single item/expense, enter the cost in the :guilabel:`Unit Price` + field, and leave the :guilabel:`Quantity` `1.00`. + #. If the expense is for multiples of the same item/expense, enter the price *per unit* in the + :guilabel:`Unit Price` field, and enter the *quantity of units* in the :guilabel:`Quantity` + field. + + .. example:: + In the case of a hotel stay, for example, the :guilabel:`Unit Price` would be set as the + cost *per night*, and set the :guilabel:`Quantity` to the *number of nights* stayed. + +- :guilabel:`Taxes`: If taxes were paid on the expense, select the tax percentage using the + drop-down menu. Tax options are pre-configured based on the localization setting selected when the + database was created. Adding any new taxes should only be done when necessary. + + .. note:: + When a tax is selected, the :guilabel:`Total` value will update in real time to show the added + taxes. + +- :guilabel:`Paid By`: Click the radio button to indicate who paid for the expense and should be + reimbursed. If the employee paid for the expense (and should be reimbursed) select + :guilabel:`Employee (to reimburse)`. If the company paid directly instead (e.g. if the company + credit card was used to pay for the expense) select :guilabel:`Company`. +- :guilabel:`Expense Date`: Using the calendar module, enter the date the expense was incurred. Use + the :guilabel:`< (left)` and :guilabel:`> (right)` arrows to navigate to the correct month, then + click on the specific day to enter the selection. +- :guilabel:`Bill Reference`: If there is any reference text that should be included for the + expense, enter it in this field. +- :guilabel:`Account`: Select the expense account that this expense should be logged on from the + drop-down menu. +- :guilabel:`Employee`: Using the drop-down menu, select the employee this expense is for. +- :guilabel:`Customer to Reinvoice`: If the expense is something that should be paid for by a + customer, select the customer that will be invoiced for this expense from the drop-down menu. For + example, if a customer wishes to have an on-site meeting, and agrees to pay for the expenses + associated with it (such as travel, hotel, meals, etc.), then all expenses tied to that meeting + would indicate that customer as the :guilabel:`Customer to Reinvoice`. +- :guilabel:`Analytic Account`: Select the account the expense should be written against from the + drop-down menu. +- :guilabel:`Company`: If multiple companies are set-up, select the company this expense should be + filed for from the drop-down menu. If there is only one company, this field will be automatically + populated. +- :guilabel:`Notes...`: If any notes are needed in order to clarify the expense, enter them in the + notes field. + +Once all the fields have been filled out, click :guilabel:`Save`. + +.. image:: expenses/expense-filled-in.png :align: center + :alt: A filled in expense form for a client lunch. -In one click from emails ------------------------- +Attach a receipt +~~~~~~~~~~~~~~~~ -Let your employees record their expenses from a simple email. -Make a snapshot of the receipt and send it by email, or simply forward a bill! +After the expense is saved, the next step is to attach a receipt. A new :guilabel:`Attach Receipt` +button appears after the entry is saved, beneath the former :guilabel:`Save` button (which turns +into an :guilabel:`Edit` button). -The only thing to do is setting up an email alias in -:menuselection:`Expenses --> Configuration --> Settings` (e.g. *expenses* @mycompany.odoo.com). -For security purposes, only authenticated employee emails -(cfr. *Work Email* in employee detail form) are accepted. - -.. tip:: - The expense product is set automatically if the mail subject contains - the product's internal reference in first position. - Type the expense amount in the mail subject to set it on the expense too (e.g. Ref001 Food 100€). - -How to submit expenses to managers -================================== - -When you are ready to submit your expenses to your manager -(e.g. at the end of a business trip, or once a month), -go to the menu :menuselection:`My Expenses --> Expenses to Submit`. Select all expenses -from the list view and click on :menuselection:`Action --> Submit to Manager`. -Save the newly created expense report (i.e. set of expenses), -and wait for your manager to approve it. - -.. image:: expenses/submit_03.png +.. image:: expenses/save-receipt.png :align: center + :alt: Attach a receipt after saving the record. -You can also submit expenses one by one from the *Submit to Manager* -button on the form view of an expense. +Click the new :guilabel:`Attach Receipt` button, and a file explorer appears. Navigate to the +receipt to be attached, and click :guilabel:`Open`. A new :guilabel:`Receipts` smart button appears +at the top, and the new receipt is recorded in the chatter. More than one receipt can be attached to +an individual expense, as needed. The number of receipts attached to the expense will be noted on +the smart button. -All your submitted expense reports can be found in -:menuselection:`Expenses --> My Expenses --> Expense Reports`. - - -How to approve expenses -======================= - -HR and team managers get an overview of all expense reports to -validate from the top menu :menuselection:`To Approve --> Expense Reports to Approve`. -Such users must have at least *Officers* access rights for *Expenses*. - -.. image:: expenses/approval_01.png +.. image:: expenses/receipt-smartbutton.png :align: center + :alt: Attach a receipt after saving the record. -They can review expense reports, approve or reject them, as well as providing -feedback thanks to the integrated communication tool. +Automatically create new expenses from an email +----------------------------------------------- -.. image:: expenses/approval_02.png +Instead of individually creating each expense in the *Expenses* app, expenses can be automatically +created by sending an email to an email alias. + +To do so, first, an email alias needs to be configured. Go to :menuselection:`Expenses app --> +Configuration --> Settings`. Ensure :guilabel:`Incoming Emails` is checked off. + +.. image:: expenses/email-alias.png :align: center - -As a team manager you can easily find the expense reports of your team members. -You need to be set as manager in the detail form of those employees. - -.. image:: expenses/approval_03.png - :align: center - - -How to post expenses in accounting -================================== - -Once expense reports approved by managers, the accounting department -goes to :menuselection:`Expenses --> Accountant --> Expense Reports To Post` to check -accounts, products and taxes. They can click *Post Journal Entries* -to post related journal entries into your books. -To do so, the user must have following access rights: - -* Accounting: Accountant or Adviser -* Expenses: Manager + :alt: Create the domain alias by clicking the link. .. note:: - To post an expense, a *Home Address* must be set on the employee. - If you get a related blocking message when posting, click the employee, - go to *Personal Information* tab and select/create the contact of your employee - in the address book. - A contact has been automatically created if this person is using Odoo. + If the domain alias needs to be set up, :guilabel:`Setup your domain alias` will appear beneath + the incoming emails check box instead of the email address field. Refer to this documentation for + setup instructions and more information: :doc:`/administration/maintain/domain_names`. Once the + domain alias is configured, the email address field will be visible beneath the incoming emails + section. -How to reimburse employees -========================== +Next, enter the email address to be used in the email field, then click :guilabel:`Save`. Now that +the email address has been entered, emails can be sent to that alias to create new expenses without +having to be in the Odoo database. -You can now see all the expense reports to reimburse in -:menuselection:`Expenses --> Accountant --> Expense Reports To Pay`. -To record the payment or pay by check, click *Register a Payment*. +To submit an expense via email, create a new email and enter the product's *internal reference* code +(if available) and the amount of the expense in the email subject. Next, attach the receipt to the +email. Odoo creates the expense by taking the information in the email subject and combining it with +the receipt. -See how you can easily manage the payment process in Odoo: +To check an expense product's internal reference, go to :menuselection:`Expenses app --> +Configuration --> Expense Products`. If an internal reference is listed on the product, it is +visible in this view as :guilabel:`(Ref###)`. -* :doc:`accounting/payments/pay_checks` -* :doc:`accounting/payments/pay_sepa` +.. image:: expenses/internal-ref-numbers.png + :align: center + :alt: Internal reference numbers are listed in the main Expense Products view. +To add an internal reference on an expense product, click on the product, then click +:guilabel:`Edit`. In edit mode, enter the :guilabel:`Internal Reference` in the field. Beneath the +:guilabel:`Internal Reference` field, this sentence appears: :guilabel:`Use this reference as a +subject prefix when submitting by email.`. -How to re-invoice expenses to your customers -============================================ +.. image:: expenses/meals-internal-reference.png + :align: center + :alt: Internal reference numbers are listed in the main Expense Products view. -If you track expenses on customer projects, you can charge them back to -your customers automatically. +.. note:: + For security purposes, only authenticated employee emails are accepted by Odoo when creating an + expense from an email. To confirm an authenticated employee email address, go to the employee + card in the :guilabel:`Employees` app, and refer to the :guilabel:`Work Email` in the main field. + + .. image:: expenses/authenticated-email-address.png + :align: center + :alt: Create the domain alias by clicking the link. + +.. example:: + If submitting an expense via email for a $25.00 meal during a work trip, the email subject would + be `Ref005 Meal $25.00`. + + Explanation: + + - The :guilabel:`Internal Reference` for the expense product `Meals` is `Ref005` + - The :guilabel:`Cost` for the expense is `$25.00` + +Create an expense report +======================== + +When expenses are ready to submit (such as at the end of a business trip, or once a month), an +*expense report* needs to be created. Go to the main :menuselection:`Expenses` app dashboard, which +displays a default :guilabel:`My Expenses` view, or go to :menuselection:`Expenses app --> My +Expenses --> My Expenses to Report`. + +First, each individual expense for the report must be selected by clicking the check box next to +each entry, or quickly select all the expenses in the list by clicking the check box next to +:guilabel:`Expense Date`. + +.. image:: expenses/create-report.png + :align: center + :alt: Select the expenses to submit, then create the report. + +Once the expenses have been selected, click the :guilabel:`Create Report` button. The new report +appears with all the expenses listed, and the number of documents is visible in the +:guilabel:`Documents` smart button. + +It is recommended to add a short summary for each report to help keep expenses organized. Click the +:guilabel:`Edit` button, and the :guilabel:`Expense Report Summary` field appears. Enter a short +description for the expense report (such as `Client Trip NYC`, or `Repairs for Company Car`). Next, +select a :guilabel:`Manager` from the drop-down menu to assign a manager to review the report. + +.. image:: expenses/expense-report-summary.png + :align: center + :alt: Enter a short description and select a manager for the report. + +If some expenses are not on the report that should be, they can still be added. Click :guilabel:`Add +a line` at the bottom of the :guilabel:`Expense` tab. Click the check box next to each expense to +add, then click :guilabel:`Select`. The items now appear on the report that was just created. + +.. image:: expenses/add-an-expense-line.png + :align: center + :alt: Add more expenses to the report before submitting. + +.. note:: + :guilabel:`Add a line` only appears when the document is in edit mode. It does not appear + otherwise. + +When all edits have been completed, click :guilabel:`Save`. + +Submit an expense report +------------------------ + +When an expense report is completed, the next step is to submit the report to a manager for +approval. Reports must be individually submitted, and cannot be submitted in batches. Open the +specific report from the list of expense reports (if the report is not already open). To view all +expense reports, go to :menuselection:`Expenses app --> My Expenses --> My Reports`. + +If the list is large, grouping the results by status may be helpful since only reports that are in a +:guilabel:`Draft` mode need to be submitted, reports with an :guilabel:`Approved` or +:guilabel:`Submitted` status do not. + +.. image:: expenses/expense-status.png + :align: center + :alt: Submit the report to the manager. + +.. note:: + The status of each report is shown in the :guilabel:`Status` column on the far right. If the + :guilabel:`Status` column is not visible, click the :guilabel:`⋮ (additional options)` icon at + the end of the row, and check the box next to :guilabel:`Status`. + +Click on a report to open it, then click :guilabel:`Submit To Manager`. After submitting a report, +the next step is to wait for the manager to approve it. + +.. important:: + The :ref:`expenses/approve`, :ref:`expenses/post`, and :ref:`expenses/reimburse` sections are + **only** for users with the *necessary rights*. + +.. _expenses/approve: + +Approve expenses +================ + +In Odoo, not just anyone can approve expense reports— only users with the necessary rights (or +permissions) can. This means that a user must have at least *Team Approver* rights for the +*Expenses* app. Employees with the necessary rights can review expense reports, and approve or +reject them, as well as provide feedback thanks to the integrated communication tool. + +To see who has rights to approve, go to the main :menuselection:`Settings` app and click on +:guilabel:`Manage Users`. + +.. note:: + If the *Settings* app is not available, then certain rights are not set on the account. In the + :guilabel:`Access Rights` tab of a user's card in the :menuselection:`Settings` app, the + :guilabel:`Administration` section is set to one of three options: + + - :guilabel:`None (blank)`: The user cannot access the *Settings* app at all. + - :guilabel:`Access Rights`: The user can only view the :guilabel:`User's & Companies` section of + the *Settings* app. + - :guilabel:`Settings`: The user has access to the entire *Settings* app with no restrictions. + + Please refer to :doc:`this document ` to learn more + about managing users and their access rights. + +Click on an individual to view their card, which displays the :guilabel:`Access Rights` tab in the +default view. Scroll down to the :guilabel:`Human Resources` section. Under :guilabel:`Expenses`, +there are four options: + +- :guilabel:`None (blank)`: A blank field means the user has no rights to view or approve expense + reports, and can only view their own. +- :guilabel:`Team Approver`: The user can only view and approve expense reports for their own + specific team. +- :guilabel:`All Approver`: The user can view and approve any expense report. +- :guilabel:`Administrator`: The user can view and approve any expense report as well as access the + reporting and configuration menus in the *Expenses* app. + +Users who are able to approve expense reports (typically managers) can easily view all expense +reports to validate. Go to :menuselection:`Expenses app --> Expense Reports --> Reports to +Approve`. This view lists all the expense reports that have been submitted but not approved, as +noted by the :guilabel:`Submitted` tag in the status column. + +.. image:: expenses/reports-to-approve.png + :align: center + :alt: Reports to validate are found on the Reports to Approve page. + +Reports can be approved in two ways (individually or several at once) and refused only one way. To +approve multiple expense reports at once, remain in the list view. First, select the reports to +approve by clicking the check box next to each report, or click the box next to :guilabel:`Employee` +to select all reports in the list. Next, click on the :guilabel:`⚙️ Action (gear)` icon, then click +:guilabel:`Approve Report`. + +.. image:: expenses/approve-report.png + :align: center + :alt: Approve multiple reports by clicking the checkboxes next to each report. + +To approve an individual report, click on a report to go to a detailed view of that report. In this +view, several options are presented: :guilabel:`Approve`, :guilabel:`Refuse`, or :guilabel:`Reset to +draft`. Click :guilabel:`Approve` to approve the report. + +If :guilabel:`Refuse` is clicked, a pop-up window appears. Enter a brief explanation for the refusal +in the :guilabel:`Reason to refuse Expense` field, then click :guilabel:`Refuse`. + +.. image:: expenses/refuse-expense.png + :align: center + :alt: Send messages in the chatter. + +Team managers can easily view all the expense reports for their team members. While in the +:guilabel:`Reports to Approve` view, click on :guilabel:`Filters`, then click :guilabel:`My Team`. +This presents all the reports for the manager's team. + +.. image:: expenses/my-team-filter.png + :align: center + :alt: Select the My Team filter. + +.. note:: + If more information is needed, such as a receipt is missing, communication is easy from the + chatter. In an individual report, simply type in a message, tagging the proper person (if + needed), and post it to the chatter by clicking :guilabel:`Send`. The message is posted in the + chatter, and the person tagged will be notified via email of the message, as well as anyone + following. + + .. image:: expenses/chatter.png + :align: center + :alt: Send messages in the chatter. + +.. _expenses/post: + +Post expenses in accounting +=========================== + +Once an expense report is approved, the next step is to post the report to the accounting journal. +To view all expense reports to post, go to :menuselection:`Expenses --> Expense Reports --> Reports +To Post`. + +.. image:: expenses/post-reports.png + :align: center + :alt: View reports to post by clicking on expense reports, then reports to post. + +Just like approvals, expense reports can be posted in two ways (individually or several at once). To +post multiple expense reports at once, remain in the list view. First, select the reports to post by +clicking the check box next to each report, or click the box next to :guilabel:`Employee` to select +all reports in the list. Next, click on the :guilabel:`⚙️ Action (gear)` icon, then click +:guilabel:`Post Entries`. + +.. image:: expenses/post-entries.png + :align: center + :alt: Post multiple reports from the Post Entries view. + +To post an individual report, click on a report to go to the detailed view of that report. In this +view, several options are presented: :guilabel:`Post Journal Entries`, :guilabel:`Report In Next +Payslip`, or :guilabel:`Refuse`. Click :guilabel:`Post Journal Entries` to post the report. + +If :guilabel:`Refuse` is clicked, a pop-up window appears. Enter a brief explanation for the refusal +in the :guilabel:`Reason to refuse Expense` field, then click :guilabel:`Refuse`. Refused reports +can be viewed by going to :menuselection:`Expenses app --> Expense Reports --> All Reports`. This +list shows all reports, including the refused ones. + +.. note:: + To post expense reports to an accounting journal, the user must have following access rights: + + - Accounting: Accountant or Adviser + - Expenses: Manager + +.. _expenses/reimburse: + +Reimburse employees +=================== + +After an expense report is posted to an accounting journal, the next step is to reimburse the +employee. To view all expense reports to pay, go to :menuselection:`Expenses --> Expense Reports --> +Reports To Pay`. + +.. image:: expenses/reports-to-pay.png + :align: center + :alt: View reports to pay by clicking on expense reports, then reports to pay. + +Just like approvals and posting, expense reports can be paid in two ways (individually or several at +once). To pay multiple expense reports at once, remain in the list view. First, select the reports +to pay by clicking the check box next to each report, or click the box next to :guilabel:`Employee` +to select all reports in the list. Next, click on the :guilabel:`⚙️ Action (gear)` icon, then click +:guilabel:`Register Payment`. + +.. image:: expenses/register-payment.png + :align: center + :alt: Post multiple reports by clicking the checkboxes, clicking the gear, then post the entries. + +To pay an individual report, click on a report to go to a detailed view of that report. Click +:guilabel:`Register Payment` to pay the employee. + +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 report, then creating a sales order with the expensed +items on it. Then, managers approve the expense report, and the accounting department posts the +journal entries. Finally, the customer is invoiced. Setup ----- -- Enable **Customer Billing** in the Expenses settings +First, specify the invoicing policy for each expense product. Go to :menuselection:`Expenses app --> +Configuration --> Expense Products`. Click on the expense product to edit, then click +:guilabel:`Edit`. Under the :guilabel:`Invoicing` section, select the :guilabel:`Invoicing Policy` +and :guilabel:`Re-Invoicing Policy` by clicking the radio button next to the desired selection. -- Go to the product configuration menu and set the invoicing method on - all your Expense types: +:guilabel:`Invoicing Policy`: - - Ordered quantities: it will invoice expenses based on the ordered - quantity +- :guilabel:`Ordered quantities`: Expense product will only invoice expenses based on the ordered + quantity. +- :guilabel:`Delivered quantities`: Expense product will only invoice expenses based on the + delivered quantity. - - Delivered quantities: it will invoice expenses based on the - expenses quantity +:guilabel:`Re-Invoicing Policy`: - - At cost: will invoice expenses at their real cost. +- :guilabel:`No`: Expense product will not be re-invoiced. +- :guilabel:`At cost`: Expense product will invoice expenses at their real cost. +- :guilabel:`At sales price`: Expense product will invoice the price set on the sale order. - - At sales price: will invoice based on a fixed sales price set on - the sale order. +Create an expense +----------------- -.. image:: expenses/invoicing_01.png - :align: center +First, when :ref:`creating a new expense `, the correct information needs to be +entered in order to re-invoice a customer. Select the :guilabel:`Customer to Reinvoice` from the +drop-down menu. Next, select the :guilabel:`Analytic Account` the expense will be posted to. -Create an order ---------------- +.. image:: expenses/reinvoice-expense.png + :align: center + :alt: Ensure the customer to be invoiced is called out on the expense. -- As a salesman, create and confirm a Sales Order for the services - delivered to your customer. If you don't put any expense in the - order, it will be added automatically once posted by the - accountant. +Create a quote and sales order +------------------------------ -- Link the expense to the Sale Order. +In the :menuselection:`Sales` app, create a quote for the customer being invoiced, listing the +expense products. First, click :guilabel:`Create` to create a new quotation. Next, select the +:guilabel:`Customer` being invoiced for the expenses from the drop-down menu. -.. image:: expenses/invoicing_02.png - :align: center +In the :guilabel:`Order Lines` tab, click :guilabel:`Add a product`. In the :guilabel:`Product` +field, select the first item being invoiced from the drop-down menu, or type in the product name. +Then, update the :guilabel:`Quantity`, the :guilabel:`Delivered` quantity, and the :guilabel:`Unit +Price` if needed. Repeat this for all products being invoiced. When all the products have been added +to the quote, click :guilabel:`Confirm` and the quotation becomes a sales order. -Submit, validate and post expenses ----------------------------------- +.. image:: expenses/expenses-salesorder.png + :align: center + :alt: Create and confirm the sales order with the expenses listed as products. -- As a manager, make sure the analytic account is set on every expense - line on approving expenses reports. Click the line to add one if - missing. Employees are already able to set one when submitting. +Once the quote turns into a sales order, a :guilabel:`Delivered` column appears. The delivered +quantity must be updated for each item. Click on the `0.000` field for each product, and enter the +delivered quantity. When all delivered quantities have been entered, click :guilabel:`Save`. -.. image:: expenses/invoicing_03.png - :align: center +Validate and post expenses +-------------------------- -- As an accountant, post journal entries. +Only employees with permissions (typically managers or supervisors) can :ref:`approve expenses +`. Before approving an expense report, ensure the :guilabel:`Analytic Account` is +set on every expense line of a report. If an :guilabel:`Analytic Account` is missing, click +:guilabel:`Edit` and select the correct account from the drop-down menu, then click +:guilabel:`Approve` or :guilabel:`Refuse`. + +The accounting department is typically responsible for :ref:`posting journal entries +`. Once an expense report is approved, it can then be posted. Invoice expenses ---------------- -Now you can invoice the order. It shows up in -:menuselection:`Sales --> Invoicing --> Sales` -to Invoice. The expenses have been added automatically in the order -lines. Such items show up in blue (i.e. to invoice). +Once the quote has turned into a sales order, and the expense report has been approved, it is time +to invoice the customer. Go to :menuselection:`Sales app --> To Invoice --> Orders to Invoice` to +view the sales orders ready to be invoiced. -.. image:: expenses/invoicing_04.png - :align: center - -e (i.e. to invoice). +Next, find the sales order related to the expense report, click into it, and then click +:guilabel:`Create Invoice` and a :guilabel:`Create invoices` pop-up window appears. Select if the +invoice is a :guilabel:`Regular invoice`, :guilabel:`Down payment (percentage)`, or :guilabel:`Down +payment (fixed amount)` by clicking the radio button next to the selection. For either down payment +options, enter the amount (fixed or percentage) in the :guilabel:`Down Payment Amount` field. +Finally, click either :guilabel:`create and view invoice` or :guilabel:`create invoice`. diff --git a/content/applications/finance/expenses/add-an-expense-line.png b/content/applications/finance/expenses/add-an-expense-line.png new file mode 100644 index 000000000..efb27511c Binary files /dev/null and b/content/applications/finance/expenses/add-an-expense-line.png differ diff --git a/content/applications/finance/expenses/approval_01.png b/content/applications/finance/expenses/approval_01.png deleted file mode 100644 index c617cbbd6..000000000 Binary files a/content/applications/finance/expenses/approval_01.png and /dev/null differ diff --git a/content/applications/finance/expenses/approval_02.png b/content/applications/finance/expenses/approval_02.png deleted file mode 100644 index 7441b7b5e..000000000 Binary files a/content/applications/finance/expenses/approval_02.png and /dev/null differ diff --git a/content/applications/finance/expenses/approval_03.png b/content/applications/finance/expenses/approval_03.png deleted file mode 100644 index aec7ac273..000000000 Binary files a/content/applications/finance/expenses/approval_03.png and /dev/null differ diff --git a/content/applications/finance/expenses/approve-report.png b/content/applications/finance/expenses/approve-report.png new file mode 100644 index 000000000..581c8e162 Binary files /dev/null and b/content/applications/finance/expenses/approve-report.png differ diff --git a/content/applications/finance/expenses/authenticated-email-address.png b/content/applications/finance/expenses/authenticated-email-address.png new file mode 100644 index 000000000..b67932795 Binary files /dev/null and b/content/applications/finance/expenses/authenticated-email-address.png differ diff --git a/content/applications/finance/expenses/chatter.png b/content/applications/finance/expenses/chatter.png new file mode 100644 index 000000000..d0df17d5d Binary files /dev/null and b/content/applications/finance/expenses/chatter.png differ diff --git a/content/applications/finance/expenses/create-new-expense.png b/content/applications/finance/expenses/create-new-expense.png new file mode 100644 index 000000000..4f3aa30c5 Binary files /dev/null and b/content/applications/finance/expenses/create-new-expense.png differ diff --git a/content/applications/finance/expenses/create-report.png b/content/applications/finance/expenses/create-report.png new file mode 100644 index 000000000..a43ebfcc5 Binary files /dev/null and b/content/applications/finance/expenses/create-report.png differ diff --git a/content/applications/finance/expenses/email-alias.png b/content/applications/finance/expenses/email-alias.png new file mode 100644 index 000000000..981229cb6 Binary files /dev/null and b/content/applications/finance/expenses/email-alias.png differ diff --git a/content/applications/finance/expenses/expense-filled-in.png b/content/applications/finance/expenses/expense-filled-in.png new file mode 100644 index 000000000..ec1cb3e30 Binary files /dev/null and b/content/applications/finance/expenses/expense-filled-in.png differ diff --git a/content/applications/finance/expenses/expense-report-summary.png b/content/applications/finance/expenses/expense-report-summary.png new file mode 100644 index 000000000..1dc15fb1b Binary files /dev/null and b/content/applications/finance/expenses/expense-report-summary.png differ diff --git a/content/applications/finance/expenses/expense-status.png b/content/applications/finance/expenses/expense-status.png new file mode 100644 index 000000000..35faade48 Binary files /dev/null and b/content/applications/finance/expenses/expense-status.png differ diff --git a/content/applications/finance/expenses/expenses-salesorder.png b/content/applications/finance/expenses/expenses-salesorder.png new file mode 100644 index 000000000..cccd3130a Binary files /dev/null and b/content/applications/finance/expenses/expenses-salesorder.png differ diff --git a/content/applications/finance/expenses/internal-ref-numbers.png b/content/applications/finance/expenses/internal-ref-numbers.png new file mode 100644 index 000000000..6c06080bc Binary files /dev/null and b/content/applications/finance/expenses/internal-ref-numbers.png differ diff --git a/content/applications/finance/expenses/invoicing_01.png b/content/applications/finance/expenses/invoicing_01.png deleted file mode 100644 index 8ce46d28c..000000000 Binary files a/content/applications/finance/expenses/invoicing_01.png and /dev/null differ diff --git a/content/applications/finance/expenses/invoicing_02.png b/content/applications/finance/expenses/invoicing_02.png deleted file mode 100644 index 3dea275ff..000000000 Binary files a/content/applications/finance/expenses/invoicing_02.png and /dev/null differ diff --git a/content/applications/finance/expenses/invoicing_03.png b/content/applications/finance/expenses/invoicing_03.png deleted file mode 100644 index 1f89a376e..000000000 Binary files a/content/applications/finance/expenses/invoicing_03.png and /dev/null differ diff --git a/content/applications/finance/expenses/invoicing_04.png b/content/applications/finance/expenses/invoicing_04.png deleted file mode 100644 index 530b4e197..000000000 Binary files a/content/applications/finance/expenses/invoicing_04.png and /dev/null differ diff --git a/content/applications/finance/expenses/meals-internal-reference.png b/content/applications/finance/expenses/meals-internal-reference.png new file mode 100644 index 000000000..7f6471637 Binary files /dev/null and b/content/applications/finance/expenses/meals-internal-reference.png differ diff --git a/content/applications/finance/expenses/my-team-filter.png b/content/applications/finance/expenses/my-team-filter.png new file mode 100644 index 000000000..8c3038123 Binary files /dev/null and b/content/applications/finance/expenses/my-team-filter.png differ diff --git a/content/applications/finance/expenses/new-expense-form.png b/content/applications/finance/expenses/new-expense-form.png new file mode 100644 index 000000000..645a49265 Binary files /dev/null and b/content/applications/finance/expenses/new-expense-form.png differ diff --git a/content/applications/finance/expenses/new-expense-product.png b/content/applications/finance/expenses/new-expense-product.png new file mode 100644 index 000000000..b1851df74 Binary files /dev/null and b/content/applications/finance/expenses/new-expense-product.png differ diff --git a/content/applications/finance/expenses/post-entries.png b/content/applications/finance/expenses/post-entries.png new file mode 100644 index 000000000..91cdaad33 Binary files /dev/null and b/content/applications/finance/expenses/post-entries.png differ diff --git a/content/applications/finance/expenses/post-reports.png b/content/applications/finance/expenses/post-reports.png new file mode 100644 index 000000000..7c8b31788 Binary files /dev/null and b/content/applications/finance/expenses/post-reports.png differ diff --git a/content/applications/finance/expenses/product.png b/content/applications/finance/expenses/product.png deleted file mode 100644 index 6fb15f3ac..000000000 Binary files a/content/applications/finance/expenses/product.png and /dev/null differ diff --git a/content/applications/finance/expenses/products.png b/content/applications/finance/expenses/products.png new file mode 100644 index 000000000..2ebc1643b Binary files /dev/null and b/content/applications/finance/expenses/products.png differ diff --git a/content/applications/finance/expenses/receipt-smartbutton.png b/content/applications/finance/expenses/receipt-smartbutton.png new file mode 100644 index 000000000..04a5078f3 Binary files /dev/null and b/content/applications/finance/expenses/receipt-smartbutton.png differ diff --git a/content/applications/finance/expenses/refuse-expense.png b/content/applications/finance/expenses/refuse-expense.png new file mode 100644 index 000000000..8537b3ea4 Binary files /dev/null and b/content/applications/finance/expenses/refuse-expense.png differ diff --git a/content/applications/finance/expenses/register-payment.png b/content/applications/finance/expenses/register-payment.png new file mode 100644 index 000000000..dd2e666c9 Binary files /dev/null and b/content/applications/finance/expenses/register-payment.png differ diff --git a/content/applications/finance/expenses/reinvoice-expense.png b/content/applications/finance/expenses/reinvoice-expense.png new file mode 100644 index 000000000..5ebf55231 Binary files /dev/null and b/content/applications/finance/expenses/reinvoice-expense.png differ diff --git a/content/applications/finance/expenses/reports-to-approve.png b/content/applications/finance/expenses/reports-to-approve.png new file mode 100644 index 000000000..76f8864fa Binary files /dev/null and b/content/applications/finance/expenses/reports-to-approve.png differ diff --git a/content/applications/finance/expenses/reports-to-pay.png b/content/applications/finance/expenses/reports-to-pay.png new file mode 100644 index 000000000..981781831 Binary files /dev/null and b/content/applications/finance/expenses/reports-to-pay.png differ diff --git a/content/applications/finance/expenses/save-receipt.png b/content/applications/finance/expenses/save-receipt.png new file mode 100644 index 000000000..b06cf9c1e Binary files /dev/null and b/content/applications/finance/expenses/save-receipt.png differ diff --git a/content/applications/finance/expenses/submit_01.png b/content/applications/finance/expenses/submit_01.png deleted file mode 100644 index cd06043ab..000000000 Binary files a/content/applications/finance/expenses/submit_01.png and /dev/null differ diff --git a/content/applications/finance/expenses/submit_02.png b/content/applications/finance/expenses/submit_02.png deleted file mode 100644 index 966e1fc5a..000000000 Binary files a/content/applications/finance/expenses/submit_02.png and /dev/null differ diff --git a/content/applications/finance/expenses/submit_03.png b/content/applications/finance/expenses/submit_03.png deleted file mode 100644 index 54f062d6e..000000000 Binary files a/content/applications/finance/expenses/submit_03.png and /dev/null differ