Advanced Multi-line Expenses
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 75.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Expenses (hr_expense)
• Employees (hr) • Invoicing (account) • Discuss (mail) |
| Lines of code | 420 |
| Technical Name |
multi_line_expenses |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Expenses (hr_expense)
• Employees (hr) • Invoicing (account) • Discuss (mail) |
| Lines of code | 420 |
| Technical Name |
multi_line_expenses |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
HR Expense Multi-Line Split
Split a single expense receipt into multiple itemized lines - each with its own account, taxes, and analytic distribution. Perfect for complex receipts that combine multiple product categories, different tax treatments, or need per-line cost allocation.
In standard Odoo Expenses, each expense report line represents a single product/category with one account and one set of taxes.
This creates significant limitations for real-world expense reporting:
- Office supply receipt with stationery (0% tax) + electronics (21% tax) - cannot split correctly
- Restaurant bill with food (10% tax) + alcohol (21% tax) - different tax treatments
- Hotel invoice with room (0% VAT) + breakfast (10% VAT) + parking (21% VAT)
- Travel expense combining flight, hotel, and meals - different accounts for each
- Mixed purchase receipt needing per-line analytic distribution across cost centers
This module adds a "Multi-line Expense" toggle to expense lines. When enabled, the expense becomes a parent container for multiple Expense Lines - each with its own description, product category, account, quantity, price, taxes, and analytic distribution. The total amount automatically sums across all lines, and each line generates its own journal entry lines during accounting.
- Multi-Line Toggle: One-click switch to transform any expense into a multi-line container
- Itemized Sub-Lines: Each sub-line has its own description, product, account, quantity, price, taxes, and analytic distribution
- Automatic Total Calculation: Expense total automatically sums all sub-line amounts
- Per-Line Accounting: Each sub-line generates its own journal entry lines during expense validation
- Analytic Distribution per Line: Allocate costs to different analytic accounts per sub-line
- Tax Breakdown per Line: Different tax rates per line - fully integrated with Odoo's tax engine
- Journal Items Preview: View generated accounting entries directly from the expense form
- One-Copy Seed: Enabling multi-line auto-seeds a line from the original expense values
- Company-Paid & Vendor Bill Support: Fully compatible with both payment modes
- Split Expense Disabled: Automatic hiding of split wizard when multi-line is enabled
1. Standard Expense - Single Line Only
Standard Odoo expense: one product, one account, one set of taxes.
2. Enable Multi-Line Toggle
Toggle "Multi-line Expense" switch on any expense line.
3. Add Itemized Sub-Lines
Add multiple lines - each with its own product, account, taxes, and analytic distribution.
4. Journal Items Preview
View generated accounting entries per sub-line before submitting.
Installation & Configuration
- Install the Module: Install through Odoo Apps or manually copy to addons path
- Dependencies: Requires
hr_expenseandaccountmodules - Restart Server & Update: Restart Odoo and update the app list
- No Additional Configuration: Module works immediately after installation
- Test: Create new expense -> Toggle "Multi-line Expense" -> Add sub-lines -> Submit report
Step 1: Create a New Expense
Go to Expenses -> My Expenses -> Create. Fill in basic expense details as usual.
Step 2: Enable Multi-line Mode
Toggle the "Multi-line Expense" switch at the top of the expense form. The interface changes to show a new "Expense Lines" tab.
Note:A seed line is automatically created from the original expense values to get you started.
Step 3: Add Itemized Sub-Lines
In the "Expense Lines" tab, add or edit lines. Each line has:
- Category (Product): Select expense category
- Description: Detailed description of the line item
- Account: Accounting account for this line
- Quantity & Unit Price: Quantity and unit price
- Taxes: Select applicable tax rates per line
- Analytic Distribution: Allocate to analytic accounts
Step 4: Verify Total Amount
The expense total automatically sums all sub-line amounts. You can see the running total at the bottom of the lines table.
Step 5: Review Journal Items (Preview)
Switch to the "Journal Items" tab to preview the accounting entries that will be created. Each sub-line generates its own debit/credit entries with the assigned account, taxes, and analytic distribution.
Step 6: Submit Expense Report
Add the expense to a report and submit for approval. When approved and validated:
- Vendor Bill: Each sub-line becomes a separate journal entry line
- Company-Paid: Each sub-line contributes to the payment base line calculation
- Accounting entries respect per-line accounts, taxes, and analytic distributions
Pro Tip - Common Use Cases
Office Supply Receipt: Stationery (0% tax, Office Supplies account) + Electronics (21% tax, IT Equipment account)
Restaurant Bill: Food (10% tax, Meals account) + Alcohol (21% tax, Entertainment account)
Hotel Invoice: Room (0% VAT) + Breakfast (10% VAT) + Parking (21% VAT) + Conference Facilities (0% VAT)
Travel: Flight (Travel account) + Hotel (Lodging account) + Meals (Per Diem account)
Important - Multi-Line vs Split Expense
The standard "Split Expense" wizard is automatically hidden when multi-line mode is enabled. Use multi-line mode for complex receipts requiring different accounts/taxes per item. Use split wizard for dividing a single expense across multiple employees (e.g., team lunch).
Office Supply Receipts
Split stationery (0% tax) from electronics (21% tax) - different accounts, different VAT rates.
Restaurant & Catering
Food (10% tax) vs Alcohol (21% tax) - separate tax treatment on same receipt.
Hotel Stays
Room (Lodging), Breakfast (Meals), Parking (Transport) - each with own account and tax rate.
Conference & Event Costs
Registration fee (0% VAT), Travel (0% VAT), Accommodation (10% VAT), Meals (10% VAT).
Equipment Purchases
Hardware (IT Equipment), Software (Software Licenses), Accessories (Office Supplies).
Multi-Cost Center Allocation
Same receipt allocated to different departments via per-line analytic distribution.
Accurate Tax Reporting
Each line applies correct tax rate - no more using average tax rates for mixed receipts.
Precise Cost Allocation
Each expense item assigned to correct account and analytic cost center.
Clean Audits
Journal entries exactly reflect the original receipt - audit trail is clear and detailed.
Time Savings
Enter one expense instead of creating multiple separate expenses for the same receipt.
Do You Need Assistance or Have a Feature Request?
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module