Account Cash Deposit

account_cash_deposit
REPOSITORY
REPOSITORYOCA/account-financial-tools
GIT
GIThttps://github.com/OCA/account-financial-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-financial-tools/tree/18.0/account_cash_deposit
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-financial-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds support for **cash deposits at the bank**. It also
supports the other way around: **ordering cash at the bank**. It allows
to declare the kind of cash you want to deposit (or order): bank notes,
coins and coin rolls and the quantity for each of them. Coins are rarely
used, because most banks only allow to deposit/order coin rolls.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
account_cash_deposit_form account.cash.deposit form New
account_cash_deposit_search account.cash.deposit search New
account_cash_deposit_tree account.cash.deposit list New
account_cash_order_reception_form account.cash.order.reception form New
cash_unit_form cash.unit form New
cash_unit_tree cash.unit list New
report_cashdeposit report_cashdeposit ir.ui.view qweb New
view_currency_form res.currency sheet Inherits base.view_currency_form
Models touched (5)

New fields (15)
  • bank_journal_id Many2one → account.journal
    check_company=True domain="[('company_id', '=', company_id), ('type', '=', 'bank'), ('bank_account_id', '!=', False)]" required=True string='Bank Account' tracking=True args: 'account.journal'
  • cash_journal_id Many2one → account.journal
    check_company=True domain="[('company_id', '=', company_id), ('type', '=', 'cash')]" required=True string='Cash Box' tracking=True args: 'account.journal'
  • coin_amount Monetary
    currency_field='currency_id' help='If your bank has a coin counting machine, enter the total amount of coins counted by the machine instead of creating a line for each type of coin.' string='Loose Coin Amount' tracking=True
  • company_id Many2one → res.company
    required=True tracking=True args: 'res.company'
  • currency_id Many2one → res.currency
    required=True tracking=True args: 'res.currency'
  • date Date
    copy=False help='Used as date for the journal entry.' tracking=True
  • is_reconcile Boolean
    compute='_compute_is_reconcile' store=True string='Reconciled'
  • line_ids One2many → account.cash.deposit.line
    string='Lines' args: 'account.cash.deposit.line', 'parent_id'
  • move_id Many2one → account.move
    check_company=True readonly=True string='Journal Entry' args: 'account.move'
  • name Char
    copy=False default=<expr> readonly=True size=64 string='Reference'
  • notes Text
  • operation_type Selection
    readonly=True required=True args: [('deposit', 'Cash Deposit'), ('order', 'Cash Order')]
  • order_date Date
    default=fields.Date.context_today
  • state Selection
    default='draft' readonly=True string='Status' tracking=True args: [('draft', 'Draft'), ('confirmed', 'Confirmed'), ('done', 'Done')]
  • total_amount Monetary
    compute='_compute_total_amount' currency_field='currency_id' precompute=True store=True tracking=True
Public methods (7)
  • backtodraft(self)
  • confirm_order(self)
  • create(self, vals_list)
    @api.model_create_multi
  • currency_change(self)
    @api.onchange('currency_id')
  • default_get(self, fields_list)
    @api.model
  • unlink(self)
  • validate(self, force_date=None)

New fields (6)
  • cash_unit_id Many2one → cash.unit
    domain="[('currency_id', '=', currency_id)]" required=True args: 'cash.unit'
  • currency_id Many2one
    related='parent_id.currency_id' store=True
  • parent_id Many2one → account.cash.deposit
    ondelete='cascade' args: 'account.cash.deposit'
  • qty Integer
    string='Quantity'
  • subtotal Monetary
    compute='_compute_subtotal' precompute=True store=True
  • tree_order Float
    related='cash_unit_id.tree_order' store=True
Public methods (0)

No public methods.

New fields (4)
  • currency_id Many2one
    related='order_id.currency_id'
  • date Date
    default=fields.Date.context_today required=True string='Cash Reception Date'
  • order_id Many2one → account.cash.deposit
    readonly=True string='Cash Order' args: 'account.cash.deposit'
  • total_amount Monetary
    related='order_id.total_amount'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • run(self)

New fields (8)
  • active Boolean
    default=True
  • auto_create Selection
    help='If set, a line for this cash unit will be created by default on a new cash deposit or a new cash order or both.' args: [('deposit', 'Deposit'), ('order', 'Order'), ('both', 'Both')]
  • cash_type Selection
    help='This field should never be modified.' required=True string='Type' args: [('note', 'Note'), ('coin', 'Coin'), ('coinroll', 'Coin Roll')]
  • coinroll_qty Integer
    help='This field should never be modified.' string='Coin Quantity'
  • currency_id Many2one → res.currency
    ondelete='cascade' args: 'res.currency'
  • total_value Monetary
    compute='_compute_all' store=True
  • tree_order Float
    compute='_compute_all' store=True
  • value Monetary
    help='This field should never be modified. For a coin roll, you must enter the value of the coin.' required=True
Public methods (1)
  • name_search(self, name='', args=None, operator='ilike', limit=100)
    @api.model

New fields (1)
  • cash_unit_ids One2many → cash.unit
    string='Cash Units' args: 'cash.unit', 'currency_id'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-financial-tools
GIT
GIThttps://github.com/OCA/account-financial-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-financial-tools/tree/16.0/account_cash_deposit
VERSION
VERSION 1.4.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Víctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-financial-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:47
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
account_cash_deposit_form account.cash.deposit form New
account_cash_deposit_search account.cash.deposit search New
account_cash_deposit_tree account.cash.deposit tree New
account_cash_order_reception_form account.cash.order.reception form New
cash_unit_form cash.unit form New
cash_unit_tree cash.unit tree New
report_cashdeposit report_cashdeposit ir.ui.view qweb New
view_currency_form res.currency sheet Inherits base.view_currency_form
Models touched (5)

New fields (15)
  • bank_journal_id Many2one → account.journal
    check_company=True domain="[('company_id', '=', company_id), ('type', '=', 'bank'), ('bank_account_id', '!=', False)]" readonly=True required=True states={'draft': [('readonly', '=', False)]} string='Bank Account' tracking=True args: 'account.journal'
  • cash_journal_id Many2one → account.journal
    check_company=True domain="[('company_id', '=', company_id), ('type', '=', 'cash')]" readonly=True required=True states={'draft': [('readonly', '=', False)]} string='Cash Box' tracking=True args: 'account.journal'
  • coin_amount Monetary
    currency_field='currency_id' help='If your bank has a coin counting machine, enter the total amount of coins counted by the machine instead of creating a line for each type of coin.' readonly=True states={'draft': [('readonly', '=', False)]} string='Loose Coin Amount' tracking=True
  • company_id Many2one → res.company
    readonly=True required=True states={'draft': [('readonly', '=', False)]} tracking=True args: 'res.company'
  • currency_id Many2one → res.currency
    readonly=True required=True states={'draft': [('readonly', '=', False)]} tracking=True args: 'res.currency'
  • date Date
    copy=False help='Used as date for the journal entry.' states={'done': [('readonly', '=', True)]} tracking=True
  • is_reconcile Boolean
    compute='_compute_is_reconcile' store=True string='Reconciled'
  • line_ids One2many → account.cash.deposit.line
    readonly=True states={'draft': [('readonly', '=', False)]} string='Lines' args: 'account.cash.deposit.line', 'parent_id'
  • move_id Many2one → account.move
    check_company=True readonly=True string='Journal Entry' args: 'account.move'
  • name Char
    copy=False default='/' readonly=True size=64 string='Reference'
  • notes Text
  • operation_type Selection
    readonly=True required=True args: [('deposit', 'Cash Deposit'), ('order', 'Cash Order')]
  • order_date Date
    default=fields.Date.context_today readonly=True states={'draft': [('readonly', '=', False)]}
  • state Selection
    default='draft' readonly=True string='Status' tracking=True args: [('draft', 'Draft'), ('confirmed', 'Confirmed'), ('done', 'Done')]
  • total_amount Monetary
    compute='_compute_total_amount' currency_field='currency_id' precompute=True store=True tracking=True
Public methods (9)
  • backtodraft(self)
  • confirm_order(self)
  • create(self, vals_list)
    @api.model_create_multi
  • currency_change(self)
    @api.onchange('currency_id')
  • default_get(self, fields_list)
    @api.model
  • get_report(self)
  • name_get(self)
  • unlink(self)
  • validate(self, force_date=None)

New fields (6)
  • cash_unit_id Many2one → cash.unit
    domain="[('currency_id', '=', currency_id)]" required=True args: 'cash.unit'
  • currency_id Many2one
    related='parent_id.currency_id' store=True
  • parent_id Many2one → account.cash.deposit
    ondelete='cascade' args: 'account.cash.deposit'
  • qty Integer
    string='Quantity'
  • subtotal Monetary
    compute='_compute_subtotal' precompute=True store=True
  • tree_order Float
    related='cash_unit_id.tree_order' store=True
Public methods (0)

No public methods.

New fields (4)
  • currency_id Many2one
    related='order_id.currency_id'
  • date Date
    default=fields.Date.context_today required=True string='Cash Reception Date'
  • order_id Many2one → account.cash.deposit
    readonly=True string='Cash Order' args: 'account.cash.deposit'
  • total_amount Monetary
    related='order_id.total_amount'
Public methods (1)
  • run(self)

New fields (8)
  • active Boolean
    default=True
  • auto_create Selection
    help='If set, a line for this cash unit will be created by default on a new cash deposit or a new cash order or both.' args: [('deposit', 'Deposit'), ('order', 'Order'), ('both', 'Both')]
  • cash_type Selection
    help='This field should never be modified.' required=True string='Type' args: [('note', 'Note'), ('coin', 'Coin'), ('coinroll', 'Coin Roll')]
  • coinroll_qty Integer
    help='This field should never be modified.' string='Coin Quantity'
  • currency_id Many2one → res.currency
    ondelete='cascade' args: 'res.currency'
  • total_value Monetary
    compute='_compute_all' store=True
  • tree_order Float
    compute='_compute_all' store=True
  • value Monetary
    help='This field should never be modified. For a coin roll, you must enter the value of the coin.' required=True
Public methods (2)
  • name_get(self)
  • name_search(self, name='', args=None, operator='ilike', limit=100)
    @api.model

New fields (1)
  • cash_unit_ids One2many → cash.unit
    string='Cash Units' args: 'cash.unit', 'currency_id'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-financial-tools
GIT
GIThttps://github.com/OCA/account-financial-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-financial-tools/tree/14.0/account_cash_deposit
VERSION
VERSION 1.3.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, oca-travis, Weblate, OCA-git-bot, sergiocorato, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-financial-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
account_cash_deposit_form account.cash.deposit form New
account_cash_deposit_search account.cash.deposit search New
account_cash_deposit_tree account.cash.deposit tree New
account_cash_order_reception_form account.cash.order.reception form New
cash_unit_form cash.unit form New
cash_unit_tree cash.unit tree New
report_cashdeposit report_cashdeposit ir.ui.view qweb New
view_currency_form res.currency sheet Inherits base.view_currency_form
Models touched (5)

New fields (15)
  • bank_journal_id Many2one → account.journal
    check_company=True domain="[('company_id', '=', company_id), ('type', '=', 'bank'), ('bank_account_id', '!=', False)]" readonly=True required=True states={'draft': [('readonly', '=', False)]} string='Bank Account' tracking=True args: 'account.journal'
  • cash_journal_id Many2one → account.journal
    check_company=True domain="[('company_id', '=', company_id), ('type', '=', 'cash')]" readonly=True required=True states={'draft': [('readonly', '=', False)]} string='Cash Box' tracking=True args: 'account.journal'
  • coin_amount Monetary
    currency_field='currency_id' help='If your bank has a coin counting machine, enter the total amount of coins counted by the machine instead of creating a line for each type of coin.' readonly=True states={'draft': [('readonly', '=', False)]} string='Loose Coin Amount' tracking=True
  • company_id Many2one → res.company
    readonly=True required=True states={'draft': [('readonly', '=', False)]} string='Company' tracking=True args: 'res.company'
  • currency_id Many2one → res.currency
    readonly=True required=True states={'draft': [('readonly', '=', False)]} string='Currency' tracking=True args: 'res.currency'
  • date Date
    copy=False help='Used as date for the journal entry.' states={'done': [('readonly', '=', True)]} string='Date' tracking=True
  • is_reconcile Boolean
    compute='_compute_is_reconcile' store=True string='Reconciled'
  • line_ids One2many → account.cash.deposit.line
    readonly=True states={'draft': [('readonly', '=', False)]} string='Lines' args: 'account.cash.deposit.line', 'parent_id'
  • move_id Many2one → account.move
    check_company=True readonly=True string='Journal Entry' args: 'account.move'
  • name Char
    copy=False default='/' readonly=True size=64 string='Reference'
  • notes Text
  • operation_type Selection
    readonly=True required=True string='Operation Type' args: [('deposit', 'Cash Deposit'), ('order', 'Cash Order')]
  • order_date Date
    default=fields.Date.context_today readonly=True states={'draft': [('readonly', '=', False)]}
  • state Selection
    default='draft' readonly=True string='Status' tracking=True args: [('draft', 'Draft'), ('confirmed', 'Confirmed'), ('done', 'Done')]
  • total_amount Monetary
    compute='_compute_total_amount' currency_field='currency_id' store=True string='Total Amount' tracking=True
Public methods (9)
  • backtodraft(self)
  • confirm_order(self)
  • create(self, vals)
    @api.model
  • currency_change(self)
    @api.onchange('currency_id')
  • default_get(self, fields_list)
    @api.model
  • get_report(self)
  • name_get(self)
  • unlink(self)
  • validate(self, force_date=None)

New fields (6)
  • cash_unit_id Many2one → cash.unit
    domain="[('currency_id', '=', currency_id)]" required=True args: 'cash.unit'
  • currency_id Many2one
    related='parent_id.currency_id' store=True
  • parent_id Many2one → account.cash.deposit
    ondelete='cascade' args: 'account.cash.deposit'
  • qty Integer
    string='Quantity'
  • subtotal Monetary
    compute='_compute_subtotal' store=True
  • tree_order Float
    related='cash_unit_id.tree_order' store=True
Public methods (0)

No public methods.

New fields (4)
  • currency_id Many2one
    related='order_id.currency_id'
  • date Date
    default=fields.Date.context_today required=True string='Cash Reception Date'
  • order_id Many2one → account.cash.deposit
    readonly=True string='Cash Order' args: 'account.cash.deposit'
  • total_amount Monetary
    related='order_id.total_amount'
Public methods (1)
  • run(self)

New fields (8)
  • active Boolean
    default=True
  • auto_create Selection
    help='If set, a line for this cash unit will be created by default on a new cash deposit or a new cash order or both.' args: [('deposit', 'Deposit'), ('order', 'Order'), ('both', 'Both')]
  • cash_type Selection
    help='This field should never be modified.' required=True string='Type' args: [('note', 'Note'), ('coin', 'Coin'), ('coinroll', 'Coin Roll')]
  • coinroll_qty Integer
    help='This field should never be modified.' string='Coin Quantity'
  • currency_id Many2one → res.currency
    ondelete='cascade' args: 'res.currency'
  • total_value Monetary
    compute='_compute_all' store=True
  • tree_order Float
    compute='_compute_all' store=True
  • value Monetary
    help='This field should never be modified. For a coin roll, you must enter the value of the coin.' required=True
Public methods (2)
  • name_get(self)
  • name_search(self, name='', args=None, operator='ilike', limit=100)
    @api.model

New fields (1)
  • cash_unit_ids One2many → cash.unit
    string='Cash Units' args: 'cash.unit', 'currency_id'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/account-financial-tools
PULL REQUEST
PULL REQUEST[19.0][MIG] account_cash_deposit: Migration to 19.0 (#2281)