| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/18.0/sale_payment_sheet |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Account |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Víctor Martínez, OCA-git-bot, oca-ci, Carlos Roca |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - html_editor - account_payment - account - onboarding - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| 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. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 | notebook | Inherits base.view_users_form |
commercial_journal_ids
Many2many → account.journal
comodel_name='account.journal'
string='Allowed journals for commercial'
No public methods.
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
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'
No public methods.
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
create_sale_invoice_payment_sheet(self)
default_get(self, fields_list)
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'
button_bank_statement(self)
button_confirm_sheet(self)
button_reopen(self)
unlink_except_open(self)
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')]
unlink_except_statement_line(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/17.0/sale_payment_sheet |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Account |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Antoni Marroig Campomar |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - onboarding - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| 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. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 | tree | 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 | tree | New |
view_users_form |
res.users | notebook | Inherits base.view_users_form |
commercial_journal_ids
Many2many → account.journal
comodel_name='account.journal'
string='Allowed journals for commercial'
No public methods.
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
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'
No public methods.
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
create_sale_invoice_payment_sheet(self)
default_get(self, fields_list)
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'
button_bank_statement(self)
button_confirm_sheet(self)
button_reopen(self)
unlink_except_open(self)
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')]
unlink_except_statement_line(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/16.0/sale_payment_sheet |
| VERSION | |
| VERSION | 1.1.3 |
| CATEGORY | |
| CATEGORY | Account |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, pilarvargas-tecnativa, Carolina Fernandez |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:45 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 | tree | 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 | tree | New |
view_users_form |
res.users | notebook | Inherits base.view_users_form |
commercial_journal_ids
Many2many → account.journal
comodel_name='account.journal'
string='Allowed journals for commercial'
No public methods.
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
is_selected
Boolean
default=True
state
Selection
related='invoice_id.state'
wiz_id
Many2one → sale.invoice.payment.wiz
No public methods.
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
create_sale_invoice_payment_sheet(self)
default_get(self, fields_list)
amount_total
Monetary
compute='_compute_amount_total'
readonly=True
store=True
string='Total'
commercial_journal_ids
Many2many
related='user_id.commercial_journal_ids'
company_id
Many2one → res.company
readonly=True
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
states={'confirm': [('readonly', True)]}
group_lines
Selection
selection=[('ref', 'Reference')]
string='Group statement lines by'
journal_id
Many2one → account.journal
default=<expr>
required=True
states={'confirm': [('readonly', True)]}
string='Journal'
args: 'account.journal'
line_ids
One2many → sale.payment.sheet.line
copy=True
states={'confirm': [('readonly', True)]}
string='Sheet lines'
args: 'sale.payment.sheet.line', 'sheet_id'
name
Char
compute='_compute_name'
copy=False
readonly=True
states={'open': [('readonly', False)]}
store=True
string='Reference'
reference
Char
copy=False
readonly=True
states={'open': [('readonly', False)]}
string='External Reference'
state
Selection
copy=False
default='open'
readonly=True
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'
button_bank_statement(self)
button_confirm_sheet(self)
button_reopen(self)
unlink(self)
amount
Monetary
compute='_compute_amount'
currency_field='journal_currency_id'
inverse='_inverse_amount'
readonly=False
store=True
company_id
Many2one → res.company
readonly=True
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'
readonly=True
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
readonly=True
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')]
unlink(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/15.0/sale_payment_sheet |
| VERSION | |
| VERSION | 1.4.0 |
| CATEGORY | |
| CATEGORY | Account |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Carlos Dauden, sergio-teruel, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Carlos Roca, pilarvargas-tecnativa, Christopher Rogos, josep-tecnativa |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:33 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 | tree | 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 | tree | New |
view_users_form |
res.users | notebook | Inherits base.view_users_form |
commercial_journal_ids
Many2many → account.journal
comodel_name='account.journal'
string='Allowed journals for commercial'
No public methods.
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
is_selected
Boolean
default=True
state
Selection
related='invoice_id.state'
wiz_id
Many2one → sale.invoice.payment.wiz
No public methods.
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
create_sale_invoice_payment_sheet(self)
default_get(self, fields_list)
amount_total
Monetary
compute='_compute_amount_total'
readonly=True
store=True
string='Total'
commercial_journal_ids
Many2many
related='user_id.commercial_journal_ids'
company_id
Many2one → res.company
readonly=True
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
states={'confirm': [('readonly', True)]}
group_lines
Selection
selection=[('ref', 'Reference')]
string='Group statement lines by'
journal_id
Many2one → account.journal
default=<expr>
required=True
states={'confirm': [('readonly', True)]}
string='Journal'
args: 'account.journal'
line_ids
One2many → sale.payment.sheet.line
copy=True
states={'confirm': [('readonly', True)]}
string='Sheet lines'
args: 'sale.payment.sheet.line', 'sheet_id'
name
Char
compute='_compute_name'
copy=False
readonly=True
states={'open': [('readonly', False)]}
store=True
string='Reference'
reference
Char
copy=False
readonly=True
states={'open': [('readonly', False)]}
string='External Reference'
state
Selection
copy=False
default='open'
readonly=True
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'
button_bank_statement(self)
button_confirm_sheet(self)
button_reopen(self)
unlink(self)
amount
Monetary
compute='_compute_amount'
currency_field='journal_currency_id'
inverse='_inverse_amount'
readonly=False
store=True
company_id
Many2one → res.company
readonly=True
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'
readonly=True
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
readonly=True
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')]
unlink(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/13.0/sale_payment_sheet |
| VERSION | |
| VERSION | 1.4.0 |
| CATEGORY | |
| CATEGORY | Account |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, OCA Transbot, sergio-teruel, oca-travis, Weblate, OCA-git-bot, oca-ci, Carlos Roca |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:12 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 | tree | 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 | tree | New |
view_users_form |
res.users | notebook | Inherits base.view_users_form |
commercial_journal_ids
Many2many → account.journal
comodel_name='account.journal'
string='Allowed journals for commercial'
No public methods.
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
is_selected
Boolean
default=True
state
Selection
related='invoice_id.state'
wiz_id
Many2one → sale.invoice.payment.wiz
No public methods.
amount
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=False
required=True
store=True
string='Amount'
commercial_journal_ids
Many2many
related='user_id.commercial_journal_ids'
currency_id
Many2one → res.currency
compute='_compute_currency'
string='Currency'
args: 'res.currency'
invoice_ids
Many2many → account.move
comodel_name='account.move'
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
create_sale_invoice_payment_sheet(self)
default_get(self, fields_list)
amount_total
Monetary
compute='_compute_amount_total'
readonly=True
store=True
string='Total'
commercial_journal_ids
Many2many
related='user_id.commercial_journal_ids'
company_id
Many2one → res.company
default=<expr>
readonly=True
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
states={'confirm': [('readonly', True)]}
group_lines
Selection
selection=[('ref', 'Reference')]
string='Group statement lines by'
journal_id
Many2one → account.journal
default=<expr>
required=True
states={'confirm': [('readonly', True)]}
string='Journal'
args: 'account.journal'
line_ids
One2many → sale.payment.sheet.line
copy=True
states={'confirm': [('readonly', True)]}
string='Sheet lines'
args: 'sale.payment.sheet.line', 'sheet_id'
name
Char
compute='_compute_name'
copy=False
readonly=True
states={'open': [('readonly', False)]}
store=True
string='Reference'
reference
Char
copy=False
readonly=True
states={'open': [('readonly', False)]}
string='External Reference'
state
Selection
copy=False
default='open'
readonly=True
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'
button_bank_statement(self)
button_confirm_sheet(self)
button_reopen(self)
unlink(self)
amount
Monetary
compute='_compute_amount'
currency_field='journal_currency_id'
inverse='_inverse_amount'
readonly=False
store=True
company_id
Many2one → res.company
readonly=True
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'
readonly=True
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
readonly=True
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'
string='Transaction type'
args: [('partial', 'Partial payment'), ('full', 'Full payment')]
unlink(self)