Repository
OCA/sale-workflow · module folder · Try on Runboat
Module version
1.0.0
Category
Account
Folder size
0.14 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/sale-workflow
Last tracking update
2026-08-07 08:42:48
Authors
Odoo Community Association (OCA), Tecnativa
Maintainers
Odoo Community Association (OCA), Tecnativa
Committers
Víctor Martínez, Carlos Roca, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
sale_payment_sheet_financial_risk, sale_planner_calendar
Description
This module allows salesmen to register payments in a new document
called payment sheet, accessible only with the sales permission. This
sheet includes the paid amount, and an optional reference to which
invoice(s) is(are) being paid. This payment sheet will generate a bank
statement when confirmed.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
report_sale_payment_sheet report_sale_payment_sheet ir.ui.view qweb New
sale_invoice_payment_wiz Sale invoice payment wizard sale.invoice.payment.wiz form New
view_invoice_tree sale.payment.sheet.account.invoice.tree account.move list New
view_sale_payment_sheet_form sale.payment.sheet.form sale.payment.sheet form New
view_sale_payment_sheet_search sale.payment.sheet.search sale.payment.sheet search New
view_sale_payment_sheet_tree sale.payment.sheet.tree sale.payment.sheet list New
view_users_form res.users form Inherits base.view_users_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (5)

New fields (1)
  • commercial_journal_ids Many2many → account.journal
    comodel_name='account.journal' string='Allowed journals for commercial'
Public methods (0)

No public methods.

New fields (9)
  • amount_residual Monetary
    related='invoice_id.amount_residual'
  • amount_total Monetary
    related='invoice_id.amount_total'
  • currency_id Many2one → res.currency
    related='invoice_id.currency_id' args: 'res.currency'
  • invoice_date Date
    related='invoice_id.invoice_date'
  • invoice_date_due Date
    related='invoice_id.invoice_date_due'
  • invoice_id Many2one → account.move
    args: 'account.move'
  • is_selected Boolean
    default=True
  • state Selection
    related='invoice_id.state'
  • wiz_id Many2one → sale.invoice.payment.wiz
    ondelete='cascade' args: 'sale.invoice.payment.wiz'
Public methods (0)

No public methods.

New fields (8)
  • amount Monetary
    compute='_compute_amount' currency_field='currency_id' readonly=False required=True store=True
  • commercial_journal_ids Many2many
    related='user_id.commercial_journal_ids'
  • currency_id Many2one → res.currency
    compute='_compute_currency' string='Currency' args: 'res.currency'
  • journal_id Many2one → account.journal
    comodel_name='account.journal' required=True string='Journal'
  • partner_id Many2one → res.partner
    comodel_name='res.partner'
  • ref Char
    string='Reference'
  • user_id Many2one → res.users
    default=<expr> required=False string='Responsible' args: 'res.users'
  • wiz_line_ids One2many → sale.invoice.payment.line.wiz
    args: 'sale.invoice.payment.line.wiz', 'wiz_id'
Public methods (2)
  • create_sale_invoice_payment_sheet(self)
  • default_get(self, fields_list)
    @api.model

New fields (13)
  • amount_total Monetary
    compute='_compute_amount_total' store=True string='Total'
  • commercial_journal_ids Many2many
    related='user_id.commercial_journal_ids'
  • company_id Many2one → res.company
    related='journal_id.company_id' store=True string='Company' args: 'res.company'
  • currency_id Many2one → res.currency
    compute='_compute_currency' string='Currency' args: 'res.currency'
  • date Date
    copy=False default=fields.Date.context_today index=True required=True
  • group_lines Selection
    selection=[('ref', 'Reference')] string='Group statement lines by'
  • journal_id Many2one → account.journal
    default=<expr> required=True string='Journal' args: 'account.journal'
  • line_ids One2many → sale.payment.sheet.line
    copy=True string='Sheet lines' args: 'sale.payment.sheet.line', 'sheet_id'
  • name Char
    compute='_compute_name' copy=False store=True string='Reference'
  • reference Char
    copy=False string='External Reference'
  • state Selection
    copy=False default='open' required=True string='Status' args: [('open', 'New'), ('confirm', 'Validated')]
  • statement_id Many2one → account.bank.statement
    comodel_name='account.bank.statement' string='Bank statement'
  • user_id Many2one → res.users
    default=<expr> required=False string='Responsible' args: 'res.users'
Public methods (4)
  • button_bank_statement(self)
    Action to open bank statement linked
  • button_confirm_sheet(self)
  • button_reopen(self)
  • unlink_except_open(self)
    @api.ondelete(at_uninstall=False)

New fields (14)
  • amount Monetary
    compute='_compute_amount' currency_field='journal_currency_id' inverse='_inverse_amount' readonly=False store=True
  • company_id Many2one → res.company
    related='sheet_id.company_id' store=True string='Company' args: 'res.company'
  • date Date
    default=<expr> required=True
  • invoice_id Many2one → account.move
    comodel_name='account.move' index=True string='Invoice'
  • journal_currency_id Many2one → res.currency
    help='Utility field to express amount currency' related='sheet_id.currency_id' string="Journal's Currency" args: 'res.currency'
  • name Char
    compute='_compute_name' readonly=False store=True string='Label'
  • note Text
    string='Notes'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • ref Char
    string='Reference'
  • sequence Integer
    default=1 help='Gives the sequence order when displaying a list of payment sheet lines.' index=True
  • sheet_id Many2one → sale.payment.sheet
    index=True ondelete='cascade' required=True string='Sheet' args: 'sale.payment.sheet'
  • state Selection
    related='sheet_id.state' string='Status'
  • statement_line_id Many2one → account.bank.statement.line
    index=True string='Statement Line' args: 'account.bank.statement.line'
  • transaction_type Selection
    compute='_compute_transaction_type' args: [('partial', 'Partial payment'), ('full', 'Full payment')]
Public methods (1)
  • unlink_except_statement_line(self)
    @api.ondelete(at_uninstall=False)

Loading…

Loading…

Loading…

Loading…