Skip to content

[DEMO] hr-expense trip suite — sales-rep budget + approvals walk#4

Open
dnplkndll wants to merge 78 commits into
19.0-hr_expense_tripfrom
19.0-demo-trip-suite
Open

[DEMO] hr-expense trip suite — sales-rep budget + approvals walk#4
dnplkndll wants to merge 78 commits into
19.0-hr_expense_tripfrom
19.0-demo-trip-suite

Conversation

@dnplkndll

@dnplkndll dnplkndll commented Jun 19, 2026

Copy link
Copy Markdown

Combined eval branch stacking the optional Trip layer over base hr-expense so the whole story installs as one unit: hr_expense_trip + advance_clearing(_trip) + payment(_trip).

Purpose: evaluate the trip's value for a common SMB case — a sales rep whose trips need a budget (a prepaid advance) and approvals (the trip workflow), with expenses grouped and reimbursed once. The Trip is opt-in; the plain per-expense flow is unchanged when no trip is used.

Builds on the trip foundation (#1) and the two bridges (#2 payment, #3 advance). See DEMO_trip_suite.md for the full base-vs-trip narrative. Eval on the runboat build (admin/admin).

Sales-rep walk (captured on the runboat build)

Scenario: rep Riley Carter, a $2,000 prepaid travel advance, and a Q1 East Coast Sales Tour with three expenses (flight $480, hotel $640, client dinner $185), all managed and approved by the expense manager.

1 — Trip container. One record holds the whole tour: the prepaid advance (Trip Advance / Advance Remaining), the workflow status bar (Draft → Requested → Collect Receipts → Done), and every expense for the trip. Apply Advance clears the trip's expenses against the advance in one click.

Trip form

2 — Line-level linkage. Each expense line carries both its Trip and the Clearing Advance it was reconciled against — the chatter logs the advance link. This is the bridge wiring (hr_expense_advance_clearing_trip) at the line level.

Expense line with trip + advance

3 — Base contrast. Without trips, the same expenses are loose lines in the flat firehose — no budget, no grouping, no single approval or reimbursement step. The Trip layer is what turns this list into the managed tour above.

Base flat list

Saran440 and others added 30 commits May 27, 2026 09:10
(cherry picked from commit 958f048)
(cherry picked from commit 3117aaf)
(cherry picked from commit 8af8d1d)
(cherry picked from commit 58e36ee)
(cherry picked from commit e209ca1)
(cherry picked from commit cb26762)
(cherry picked from commit 956f61c)
(cherry picked from commit dac1f33)
Currently translated at 100.0% (6 of 6 strings)

Translation: hr-expense-16.0/hr-expense-16.0-hr_expense_payment
Translate-URL: https://translation.odoo-community.org/projects/hr-expense-16-0/hr-expense-16-0-hr_expense_payment/it/
(cherry picked from commit 4aee4df)
(cherry picked from commit 7069276)
(cherry picked from commit cd2e59b)
(cherry picked from commit 0cf4e03)
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: hr-expense-16.0/hr-expense-16.0-hr_expense_payment
Translate-URL: https://translation.odoo-community.org/projects/hr-expense-16-0/hr-expense-16-0-hr_expense_payment/
(cherry picked from commit 57cb790)
(cherry picked from commit 02e018f)
(cherry picked from commit c9932e4)
(cherry picked from commit 72ceb08)
(cherry picked from commit df0b0b0)
(cherry picked from commit 6a3bf00)
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: hr-expense-18.0/hr-expense-18.0-hr_expense_payment
Translate-URL: https://translation.odoo-community.org/projects/hr-expense-18-0/hr-expense-18-0-hr_expense_payment/
(cherry picked from commit fecb164)
Currently translated at 100.0% (5 of 5 strings)

Translation: hr-expense-18.0/hr-expense-18.0-hr_expense_payment
Translate-URL: https://translation.odoo-community.org/projects/hr-expense-18-0/hr-expense-18-0-hr_expense_payment/it/
(cherry picked from commit 0b64eb0)
kittiu and others added 30 commits May 29, 2026 16:37
Currently translated at 100.0% (57 of 57 strings)

Translation: hr-expense-15.0/hr-expense-15.0-hr_expense_advance_clearing
Translate-URL: https://translation.odoo-community.org/projects/hr-expense-15-0/hr-expense-15-0-hr_expense_advance_clearing/it/
(cherry picked from commit 3a273f0)
Currently translated at 100.0% (56 of 56 strings)

Translation: hr-expense-16.0/hr-expense-16.0-hr_expense_advance_clearing
Translate-URL: https://translation.odoo-community.org/projects/hr-expense-16-0/hr-expense-16-0-hr_expense_advance_clearing/it/
(cherry picked from commit 1d62501)
…company so that the correct property can be retrieved

(cherry picked from commit 213cb2f)
…s might intervene.

TT55529

(cherry picked from commit 4a89241)
Currently translated at 100.0% (56 of 56 strings)

Translation: hr-expense-18.0/hr-expense-18.0-hr_expense_advance_clearing
Translate-URL: https://translation.odoo-community.org/projects/hr-expense-18-0/hr-expense-18-0-hr_expense_advance_clearing/it/
(cherry picked from commit 533941a)
…patibility)

Since some other modules can introduce other moves to the expense sheet,
this refactor allow some compatibility between those modules without
changing behavior on this module.

(cherry picked from commit 2be9623)
hr.expense.sheet was removed in 19.0; retarget the payment register to hr.expense.
hr.expense.sheet removed in 19.0; retarget to hr.expense (+ hr.employee.base->hr.employee).
…type)

Bridge module (auto_install) depending on hr_expense_payment + hr_expense_trip.
Adds a 'Pay Trip' action that registers a single payment over the trip's posted,
unpaid expenses via the standard expense register-payment flow.
…totype)

Bridge module (auto_install) depending on hr_expense_advance_clearing +
hr_expense_trip. Adds a Trip Advance on the trip and an 'Apply Advance' action
that clears the trip's regular expenses against it in one step.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.