Point Of Sale - Multiple Cash Control

pos_multiple_control
REPOSITORY
REPOSITORYOCA/pos
GIT
GIThttps://github.com/OCA/pos.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/pos/tree/12.0/pos_multiple_control
VERSION
VERSION 1.3.1
CATEGORY
CATEGORYPoint of Sale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSSylvain LE GAL, GitHub, Ivàn Todorovich, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Quentin Dupont
WEBSITE
WEBSITEhttps://github.com/OCA/pos
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/pos:
    - pos_cash_move_reason
odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - account
    - analytic
    - portal
    - http_routing
    - digest
    - web_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
view_account_bank_statement_cashbox_form account.bank.statement.cashbox form New
view_account_journal_form account.journal field Inherits account.view_account_journal_form
view_account_journal_tree account.journal field Inherits account.view_account_journal_tree
view_pos_config_form pos.config xpath Inherits point_of_sale.pos_config_view_form
view_pos_config_kanban pos.config xpath Inherits point_of_sale.view_pos_config_kanban
view_pos_session_form pos.session field Inherits point_of_sale.view_pos_session_form
view_wizard_update_bank_statement_form wizard.update.bank.statement form New
Models touched (9)

New fields (7)
  • cashbox_ending Many2one → account.bank.statement.cashbox
    comodel_name='account.bank.statement.cashbox' string='Cashbox end'
  • cashbox_starting Many2one → account.bank.statement.cashbox
    comodel_name='account.bank.statement.cashbox' string='Cashbox start'
  • control_balance Float
    compute='_compute_control_balance' digits=dp.get_precision('Account') string='Controled Balance'
  • control_difference Float
    compute='_compute_control_difference' digits=dp.get_precision('Account') string='Control Difference'
  • display_autosolve Boolean
    compute='_compute_display_autosolve' string='Display autosolve'
  • is_pos_control Boolean
    compute='_compute_is_pos_control' store=True string='Pos control Bank statement'
  • pos_session_state Char
    compute='_compute_pos_session_state' string='Pos session state'
Public methods (4)
  • automatic_solve(self)
    @api.multi@api.depends('pos_session_state')
  • open_cashbox_balance(self, balance_moment)
  • open_cashbox_ending_balance(self)
  • open_cashbox_starting_balance(self)

New fields (2)
  • is_pattern Boolean
    default=False string='Is a selectable pattern'
  • name Char
    string='Name'
Public methods (0)

No public methods.

New fields (2)
  • balance_moment Selection
    default='bydefault' selection=_BALANCE_MOMENT_SELECTION string='Balance moment'
  • number Integer
    default=1
Public methods (0)

No public methods.

New fields (2)
  • cashbox_default Many2one → account.bank.statement.cashbox
    comodel_name='account.bank.statement.cashbox' string='Cashbox Defaut'
  • pos_control Boolean
    default=False help='If you want this journal to be controled at closing of point of sale, check this option' string='POS Journal Control'
Public methods (1)
  • onchange_type(self)
    @api.onchange('type')

New fields (2)
  • autosolve_limit Float
    default=20 description='Limit for autosolving bank statement' string='Autosolve limit'
  • autosolve_pos_move_reason Many2one → pos.move.reason
    comodel_name='pos.move.reason' default='' description='Product used to autosolve control difference' domain="['|', ('is_income_reason', '=', True), ('is_expense_reason', '=', True)]" string='Autosolve pos move reason'
Public methods (1)
  • open_new_session(self, openui)
    @api.multi

New fields (8)
  • control_register_balance Float
    compute='_compute_control_register_balance' string='Real Closing Balances'
  • control_register_balance_end Float
    compute='_compute_control_register_balance_end' string='Theoretical Closing Balances'
  • control_register_balance_start Float
    compute='_compute_control_register_balance_start' string='Opening Balances'
  • control_register_difference Float
    compute='_compute_control_register_difference' string='Total difference'
  • control_register_total_entry_encoding Float
    compute='_compute_control_register_total_entry_encoding' string='Transactions'
  • control_statement_ids One2many → account.bank.statement
    comodel_name='account.bank.statement' related='statement_ids' string='Control statements'
  • statement_ids One2many
    readonly=False
  • summary_statement_ids One2many → account.bank.statement
    comodel_name='account.bank.statement' related='statement_ids' string='Summary statements'
Public methods (5)
  • action_pos_session_closing_control(self)
    @api.multi
  • action_pos_session_new_session(self)
    @api.multi
  • action_pos_session_validate(self)
    @api.multi
  • open_cashbox_opening(self)
    @api.multi
  • wkf_action_closing_control(self)
    @api.multi

New fields (12)
  • balance_end Monetary
    compute='_compute_balance_end' default=0.0 string='Computed Balance'
  • balance_end_real Monetary
    compute='_compute_balance_end_real' default=0.0 string='Real End Balance'
  • balance_moment Selection
    default='bydefault' selection=_BALANCE_MOMENT_SELECTION string='Balance moment'
  • balance_start Monetary
    compute='_compute_balance_start' default=0.0 string='Starting Balance'
  • balance_start_real Monetary
    compute='_compute_balance_start_real' default=0.0 string='Real Start Balance'
  • cashbox_lines One2many → wizard.update.cashbox.line
    comodel_name='wizard.update.cashbox.line' default=_default_cashbox_lines inverse_name='wiz_id'
  • currency_id Many2one → res.currency
    comodel_name='res.currency' related='statement_id.currency_id'
  • journal_id Many2one → account.journal
    comodel_name='account.journal' related='statement_id.journal_id'
  • name Char
    related='statement_id.name'
  • session_id Many2one → pos.session
    comodel_name='pos.session' default=_default_session_id readonly=True required=True string='Current Session'
  • statement_id Many2one → account.bank.statement
    comodel_name='account.bank.statement'
  • total_entry_encoding Monetary
    related='statement_id.total_entry_encoding'
Public methods (2)
  • action_confirm(self)
    @api.multi
  • default_get(self, flds)
    @api.model

New fields (2)
  • cashbox_lines_ids One2many → wizard.update.cashbox.line
    comodel_name='wizard.update.cashbox.line' inverse_name='cashbox_id' string='Cashbox Lines'
  • total Float
    compute='_total' digits=0 readonly=True string='Total'
Public methods (0)

No public methods.

New fields (7)
  • balance_moment Selection
    related='wiz_id.balance_moment' string='Balance moment'
  • cashbox_id Many2one → wizard.update.cashbox
    comodel_name='wizard.update.cashbox' string='Cashbox'
  • coin_value Float
    digits=0 required=True string='Coin/Bill Value'
  • currency_id Many2one → res.currency
    comodel_name='res.currency' related='wiz_id.currency_id'
  • number Integer
    default=1 help='Opening Unit Numbers' string='Number of Coins/Bills'
  • subtotal Float
    compute='_sub_total' digits=0 readonly=True string='Subtotal'
  • wiz_id Many2one → wizard.update.bank.statement
    comodel_name='wizard.update.bank.statement' string='Wizard'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/pos
PULL REQUEST
PULL REQUEST[14.0] [mig] pos_multiple_control (#677)