Bank Deposit Ticket

account_banking_make_deposit
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/12.0/account_banking_make_deposit
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Thinkwell Designs, Novapoint Group LLC
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Thinkwell Designs, Novapoint Group LLC
COMMITTERS
COMMITTERSMaxime Chambreuil, GitHub, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/bank-payment
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:24
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_cancel
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
deposit_ticket_report deposit_ticket_report ir.ui.view qweb New
view_account_move_line_deposit_id account.move.line.deposit.id account.move.line field Inherits account.view_account_move_line_filter
view_account_move_line_form_deposit_id account.move.line.form.deposit.id account.move.line field Inherits account.view_move_line_form
view_add_deposit_items Add Deposit Items add.deposit.items form New
view_deposit_ticket_filter deposit.ticket.select deposit.ticket search New
view_deposit_ticket_form deposit.ticket.form deposit.ticket form New
view_deposit_ticket_tree deposit.ticket.tree deposit.ticket tree New
Models touched (6)

New fields (2)
  • deposit_id Many2one → deposit.ticket
    args: 'deposit.ticket', 'Deposit Ticket'
  • draft_assigned Boolean
    help='This field is checked when the move line is assigned to a draft deposit ticket. The deposit ticket is not still completely processed' args: 'Draft Assigned'
Public methods (0)

No public methods.

New fields (2)
  • deposit_items_line_ids One2many → deposit.items.line
    args: 'deposit.items.line', 'deposit_items_id', 'Lines'
  • name Char
    size=64 args: 'Name'
Public methods (4)
  • add_deposit_lines(self)
    @api.multi
    Add Deposit Items Lines as Deposit Ticket Lines for the deposit.
  • default_get(self, field_lines)
    @api.model
  • select_all(self)
    @api.multi
    Select all the deposit item lines in the wizard.
  • unselect_all(self)
    @api.multi
    Unselect all the deposit item lines in the wizard.

New fields (9)
  • amount Float
    digits=dp.get_precision('Account') args: 'Amount'
  • company_id Many2one → res.company
    args: 'res.company', 'Company'
  • date Date
    required=True args: 'Date'
  • deposit_items_id Many2one → add.deposit.items
    args: 'add.deposit.items', 'Deposit Items ID'
  • draft_assigned Boolean
    args: 'Select'
  • move_line_id Many2one → account.move.line
    args: 'account.move.line', 'Journal Item'
  • name Char
    size=64 args: 'Name'
  • partner_id Many2one → res.partner
    args: 'res.partner', 'Partner'
  • ref Char
    size=64 args: 'Reference'
Public methods (0)

No public methods.

New fields (1)
  • name Char
    help='Name of the method used to deposit' string='Name' translate=True
Public methods (0)

No public methods.

New fields (18)
  • amount Float
    compute='_compute_amount' digits=dp.get_precision('Account') help='Calculates the Total of All Deposit Lines - This is the Total Amount of Deposit.' args: 'Amount'
  • bank_tracking_no Char
    help='This field is used to hold a tracking number provided by the bank/financial institution often used in Remote Deposit Capture on a deposit receipt. Entered after deposit occurs.' size=64 args: 'Deposit Tracking #'
  • company_id Many2one → res.company
    default=<expr> help='The Company for which the deposit ticket is made' readonly=True required=True args: 'res.company', 'Company'
  • count_total Float
    compute='_compute_amount' help='Counts the total # of line items in the deposit ticket.' args: 'Total Items'
  • date Date
    default=fields.Date.today() help='The Date of the Deposit Ticket.' required=True states={'done': [('readonly', True)]} args: 'Date of Deposit'
  • deposit_bag_no Char
    help='Deposit Bag number for courier transit.' size=64 states={'done': [('readonly', True)]} args: 'Deposit Bag #'
  • deposit_from_account_id Many2one → account.account
    domain="[('company_id', '=', company_id)]" help='The Bank/GL Account the Payments are currently found in.' required=True states={'done': [('readonly', True)]} args: 'account.account', 'Deposit From Acct'
  • deposit_method_id Many2one → deposit.method
    help='This is how the deposit was made:\nExamples:\n* Teller \n* ATM \n* Remote Deposit Capture \n* Online Deposit Capture \n* Night Drop \n* Armored Vehicle' states={'done': [('readonly', True)]} args: 'deposit.method', 'Deposit Method'
  • deposit_to_account_id Many2one → account.account
    domain="[('company_id', '=', company_id)]" help='The Bank/Gl Account the Deposit is being made to.' required=True states={'done': [('readonly', True)]} args: 'account.account', 'Deposit To Acct'
  • journal_id Many2one → account.journal
    help='The Journal to hold accounting entries.' required=True states={'done': [('readonly', True)]} args: 'account.journal', 'Journal'
  • memo Char
    help='Memo for the deposit ticket' size=64 states={'done': [('readonly', True)]} args: 'Memo'
  • move_id Many2one → account.move
    help='Link to the automatically generated Journal Items.' index=True readonly=True args: 'account.move', 'Journal Entry'
  • name Char
    help='Each deposit will have a unique sequence ID. System generated.' index=1 related='move_id.name' args: 'Deposit Ticket #'
  • prepared_by_user_id Many2one → res.users
    help="Entered automatically by the 'last user' who saved it. System generated." states={'done': [('readonly', True)]} args: 'res.users', 'Prepared By'
  • state Selection
    default='draft' index=True readonly=True args: [('draft', _('Draft')), ('to_be_reviewed', _('Ready for Review')), ('done', _('Done')), ('cancel', _('Cancel'))], 'State'
  • ticket_line_ids One2many → deposit.ticket.line
    states={'done': [('readonly', True)]} args: 'deposit.ticket.line', 'deposit_id', 'Deposit Ticket Line'
  • verified_by_user_id Many2one → res.users
    help="Entered automatically by the 'last user' who saved it. System generated." states={'done': [('readonly', True)]} args: 'res.users', 'Verified By'
  • verified_date Date
    help='Date in which Deposit Ticket was verified.' states={'done': [('readonly', True)]} args: 'Verified Date'
Public methods (11)
  • action_cancel(self)
    @api.multi
  • action_cancel_draft(self)
    @api.multi
  • action_process(self)
    @api.multi
    Do the following: 1.The 'Verifier By' field is populated by the name of the Verifier. 2.The 'Deposit Ticket #' field is populated. 3.The account.move.lines are updated and written with the 'Deposit Ticket #' 4.The status field is updated to "Done" 5.New GL entries are made.
  • action_review(self)
    @api.multi
  • add_deposit_items(self)
    @api.multi
    Display the wizard to allow the 'Deposit Preparer' to select payments for deposit.
  • check_group(self)
    @api.multi
    Check if following security constraints are implemented for groups: Make Deposits Preparer - they can create, view and delete any of the Deposit Tickets provided the Deposit Ticket is not in the DONE state, or the Ready for Review state. Make Deposits Verifier - they can create, view, edit, and delete any of the Deposits Tickets information at any time. NOTE: DONE Deposit Tickets are only allowed to be deleted by a Make Deposits Verifier.
  • get_move_line(self, deposit, line_type)
    @api.multi
  • onchange_journal(self)
    @api.onchange('journal_id')
  • remove_all(self)
    @api.multi
    Reset the deposit ticket to draft state, and remove the entries associated with the DONE transactions ( account moves, updating account.move.lines, resetting preparer and verifier and verified date fields. Reflect all changes necessary.
  • unlink(self)
    @api.multi
  • write(self, vals)
    @api.multi

New fields (9)
  • amount Float
    digits=dp.get_precision('Account') help="Derived from the 'debit' amount from related Journal Item." args: 'Amount'
  • company_id Many2one → res.company
    help='The Company for which the deposit ticket is made to' readonly=True required=True args: 'res.company', 'Company'
  • currency_id Many2one → res.currency
    args: 'res.currency', 'Currency'
  • date Date
    help='Derived from the related Journal Item' required=True args: 'Date'
  • deposit_id Many2one → deposit.ticket
    ondelete='cascade' required=True args: 'deposit.ticket', 'Deposit Ticket'
  • move_line_id Many2one → account.move.line
    help='Related Journal Item' args: 'account.move.line', 'Journal Item'
  • name Char
    help='Derived from the related Journal Item.' required=True size=64 args: 'Name'
  • partner_id Many2one → res.partner
    help='Derived from the related Journal Item.' args: 'res.partner', 'Partner'
  • ref Char
    help='Derived from the related Journal Item.' required=True size=64 args: 'Reference'
Public methods (4)
  • create(self, vals)
    @api.model
  • onchange_date(self)
    @api.onchange('deposit_id')
  • onchange_deposit_id(self)
    @api.onchange('deposit_id')
  • unlink(self)
    @api.multi
    Set the 'draft_assigned' field to False for related account move lines to allow to be entered for another deposit.
REPOSITORY
REPOSITORYOCA/bank-payment
GIT
GIThttps://github.com/OCA/bank-payment.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/bank-payment/tree/7.0/account_banking_make_deposit
VERSION
VERSION 1.4.1
CATEGORY
CATEGORYGeneric Modules/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Novapoint Group LLC
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Novapoint Group LLC
COMMITTERS
COMMITTERSSandy Carter, Maxime Chambreuil, Pedro M. Baeza, OCA Transbot, dufresnedavid, Maxime Chambreuil - http://www.savoirfairelinux.com
WEBSITE
WEBSITEwww.novapointgroup.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_cancel
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - process
    - decimal_precision
    - mail
    - analytic
    - board
    - edi
    - email_template
    - report_webkit
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module supports the functionality to prepare and record Bank Deposit
Tickets, often found in check centric markets like the US. It allows users
to select various customer payments and receipts and bundle them into a
Deposit Ticket. This would be used to support the following activities:
Depositing multiple Checks into your bank account under one deposit ticket,
and Deposit Checks and Cash into your bank account from multiple customer
receipts or payments. This module can be used for any “bank transaction”
centric process including: Paypal, Bank Accounts, and even credit cards –
which tend to deposit funds by bundled transactions versus individual
checks. By combining payments and receipts into deposit tickets, and using
this module to manage the general ledger entries, it will streamline the bank
account statement reconciliation process (defined as: comparing your bank
account transactions versus the recorded transactions in OpenERP for audit
and financial control purposes).

This module also tracks who prepared the Deposit Ticket, and the user who
verified the deposit ticket. In addition to the following: Method of
Deposit (e.g. ATM, Night Drop, Teller, Remote Deposit Capture, Online
Deposit Capture); Bank Tracking number (e.g. TLR#3 BC#47331 REF#94849303938)
; Date of Deposit, Deposit Bag #,  etc.

We recommend users add to their GL Chart of Accounts a new Other Current
Account named Undeposited Funds, as well as a new journal to post payments
to with the Undeposited Funds on the debit side of the transaction.

Future enhancements – will also include the ability to track deposits NOT
using the Undeposited Funds GL account.

Why is this module needed? OpenERP by default is designed for more
electronic transaction management – driven by its heritage in Europe
when EFT (electronic) transactions are more readily used – versus Check
centric transactions. In electronic transaction management – bundled
deposits don’t typically occur as payment transactions typically are
displayed individual on statements.

This module is seen as a prerequisite to support efficient Bank Account
Statement Reconciliation found in the US and other countries.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
view_account_move_line_deposit_id account.move.line.deposit.id account.move.line field Inherits account.view_account_move_line_filter
view_account_move_line_form_deposit_id account.move.line.form.deposit.id account.move.line field Inherits account.view_move_line_form
view_add_deposit_items Add Deposit Items add.deposit.items form New
view_deposit_ticket_filter deposit.ticket.select deposit.ticket search New
view_deposit_ticket_form deposit.ticket.form deposit.ticket form New
view_deposit_ticket_tree deposit.ticket.tree deposit.ticket tree New
Models touched (6)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • add_deposit_lines(self, cr, uid, ids, context=None)
    Add Deposit Items Lines as Deposit Ticket Lines for the deposit.
  • default_get(self, cr, uid, fields, context=None)
  • select_all(self, cr, uid, ids, context=None)
    Select all the deposit item lines in the wizard.
  • unselect_all(self, cr, uid, ids, context=None)
    Unselect all the deposit item lines in the wizard.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (12)
  • action_cancel(self, cr, uid, ids, context=None)
  • action_cancel_draft(self, cr, uid, ids, context=None)
  • action_process(self, cr, uid, ids, context=None)
    Do the following: 1.The 'Verifier By' field is populated by the name of the Verifier. 2.The 'Deposit Ticket #' field is populated. 3.The account.move.lines are updated and written with the 'Deposit Ticket #' 4.The status field is updated to "Done" 5.New GL entries are made.
  • action_review(self, cr, uid, ids, context=None)
  • add_deposit_items(self, cr, uid, ids, context=None)
    Display the wizard to allow the 'Deposit Preparer' to select payments for deposit.
  • check_group(self, cr, uid, ids, context=None)
    Check if following security constraints are implemented for groups: Make Deposits Preparer - they can create, view and delete any of the Deposit Tickets provided the Deposit Ticket is not in the DONE state, or the Ready for Review state. Make Deposits Verifier - they can create, view, edit, and delete any of the Deposits Tickets information at any time. NOTE: DONE Deposit Tickets are only allowed to be deleted by a Make Deposits Verifier.
  • get_deposit_states(self, cr, uid, context=None)
  • get_move_line(self, cr, uid, deposit, type, context=None)
  • get_state(self, cr, uid, ids, context=None)
  • remove_all(self, cr, uid, ids, context=None)
    Reset the deposit ticket to draft state, and remove the entries associated with the DONE transactions ( account moves, updating account.move.lines, resetting preparer and verifier and verified date fields. Reflect all changes necessary.
  • unlink(self, cr, uid, ids, context=None)
  • write(self, cr, uid, ids, vals, context=None)

New fields (0)

No new fields.

Public methods (2)
  • create(self, cr, uid, vals, context=None)
  • unlink(self, cr, uid, ids, context=None)
    Set the 'draft_assigned' field to False for related account move lines to allow to be entered for another deposit.