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 IDNameModelTypeStatus
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)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    comodel_name='res.company' default=_default_company_id required=True string='Company'
  • expense_account_id Many2one → account.account
    comodel_name='account.account' string='Expense Account'
  • income_account_id Many2one → account.account
    comodel_name='account.account' string='Income Account'
  • is_expense_reason Boolean
    default=True
  • is_income_reason Boolean
    default=True
  • journal_ids Many2many → account.journal
    comodel_name='account.journal' default=_default_journal_ids string='Accounting Journals'
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (2)
  • display_move_reason_expense Boolean
    compute='_compute_display_move_reason'
  • display_move_reason_income Boolean
    compute='_compute_display_move_reason'
Public methods (2)
  • button_move_expense(self)
  • button_move_income(self)

New fields (7)
  • amount Float
    required=True
  • journal_id Many2one → account.journal
    comodel_name='account.journal' domain="[('id', 'in', journal_ids)]" required=True string='Journal'
  • journal_ids Many2many → account.journal
    comodel_name='account.journal' related='move_reason_id.journal_ids'
  • move_reason_id Many2one → pos.move.reason
    comodel_name='pos.move.reason' required=True string='Move Reason'
  • move_type Selection
    default=_default_move_type selection=_MOVE_TYPE_SELECTION
  • name Char
    required=True string='Reason'
  • session_id Many2one → pos.session
    comodel_name='pos.session' default=_default_session_id readonly=True required=True string='Current Session'
Public methods (3)
  • apply(self)
  • onchange_move_type(self)
    @api.onchange('move_type')
  • onchange_reason(self)
    @api.onchange('move_reason_id')

Loading…

Loading…

Loading…

Loading…

Loading…