TIP: You can type at any time to perform a new search.
POS cash in-out reason
pos_cash_move_reason · OCA/pos
Security findings
Migration considerations
view_pos_move_reason_tree— View 'view_pos_move_reason_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/pos · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Point Of sale
- Folder size
- 0.72 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/pos
- Last tracking update
- 2026-08-07 08:23:00
- Authors
- ACSONE SA/NV, Odoo Community Association (OCA), GRAP
- Maintainers
- ACSONE SA/NV, Odoo Community Association (OCA), GRAP
- Committers
- Weblate, OCA-git-bot, oca-ci, chaule97
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
This module allow to define some reasons for the functionality of "Put Money In" and "Take Money Out" available in point of sale session. So, with this module it's possible to impact directly an expense or income account which is defined on the related reasons and create according accounting entries. **Typical Use Case (not exhaustive)** - You want to track **Bank deposit** moves, using an intermediate bank account named 'Cash Awaiting Bank Deposit'. (In France, for instance, "581 - Espèce en attente d'encaissement") - You want to allow payments from Cash Journal to pay recurring little expenses. (Gasoline, parking meter, etc.)
Code Analysis
Views touched (4)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_pos_move_reason_form |
pos.move.reason.form (in pos_cash_move_reason) | pos.move.reason | form | New |
view_pos_move_reason_tree |
pos.move.reason.tree (in pos_cash_move_reason) | pos.move.reason | tree | New |
view_pos_session_form |
pos.session.form (in pos_cash_move_reason) | pos.session | form | Inherits point_of_sale.view_pos_session_form |
view_wizard_pos_move_reason_form |
wizard.pos.move.reason | form | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (3)
New fields (8)
-
activeBooleandefault=True -
company_idMany2one → res.companycomodel_name='res.company'default=_default_company_idrequired=Truestring='Company' -
expense_account_idMany2one → account.accountcomodel_name='account.account'string='Expense Account' -
income_account_idMany2one → account.accountcomodel_name='account.account'string='Income Account' -
is_expense_reasonBooleandefault=True -
is_income_reasonBooleandefault=True -
journal_idsMany2many → account.journalcomodel_name='account.journal'default=_default_journal_idsstring='Accounting Journals' -
nameCharrequired=True
No public methods.
New fields (2)
-
display_move_reason_expenseBooleancompute='_compute_display_move_reason' -
display_move_reason_incomeBooleancompute='_compute_display_move_reason'
-
button_move_expense(self) -
button_move_income(self)
New fields (7)
-
amountFloatrequired=True -
journal_idMany2one → account.journalcomodel_name='account.journal'domain="[('id', 'in', journal_ids)]"required=Truestring='Journal' -
journal_idsMany2many → account.journalcomodel_name='account.journal'related='move_reason_id.journal_ids' -
move_reason_idMany2one → pos.move.reasoncomodel_name='pos.move.reason'required=Truestring='Move Reason' -
move_typeSelectiondefault=_default_move_typeselection=_MOVE_TYPE_SELECTION -
nameCharrequired=Truestring='Reason' -
session_idMany2one → pos.sessioncomodel_name='pos.session'default=_default_session_idreadonly=Truerequired=Truestring='Current Session'
-
apply(self) -
onchange_move_type(self)@api.onchange('move_type') -
onchange_reason(self)@api.onchange('move_reason_id')
Loading…
Loading…
Loading…
Loading…
Loading…