| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account.account_terms_conditions_setting_banner |
Account Terms and Conditions Setting Banner | ir.ui.view | qweb | New |
account_analytic_account_view_form_inherit |
account.analytic.account.form.inherit | account.analytic.account | div | Inherits analytic.view_account_analytic_account_form |
account_analytic_account_view_list_inherit |
account.analytic.account.list.inherit | account.analytic.account | field | Inherits analytic.view_account_analytic_account_list |
account_analytic_distribution_model_form_inherit |
account.analytic.distribution.model.inherit.form | account.analytic.distribution.model | data | Inherits analytic.account_analytic_distribution_model_form_view |
account_analytic_distribution_model_tree_inherit |
account.analytic.distribution.model.inherit.list | account.analytic.distribution.model | data | Inherits analytic.account_analytic_distribution_model_tree_view |
account_analytic_plan_form_view_inherit_account |
account.analytic.plan.inherit.form | account.analytic.plan | data | Inherits analytic.account_analytic_plan_form_view |
account_automatic_entry_wizard_form |
account.automatic.entry.wizard.form | account.automatic.entry.wizard | form | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_default_terms_and_conditions |
account_default_terms_and_conditions | ir.ui.view | qweb | New |
account_incoterms_form |
account.incoterms.form | account.incoterms | form | New |
account_incoterms_view_search |
account.incoterms.search | account.incoterms | search | New |
account_invoice_report_view_tree |
account.invoice.report.view.list | account.invoice.report | list | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_journal_view_kanban |
account.journal.kanban | account.journal | kanban | New |
account_merge_wizard_form |
account.merge.wizard.form | account.merge.wizard | form | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_view_kanban |
account.move.line.kanban | account.move.line | kanban | New |
account_move_line_view_kanban_mobile |
account.move.line.kanban.mobile | account.move.line | xpath | Inherits account_move_line_view_kanban |
account_move_send_batch_wizard_form |
account.move.send.batch.wizard.form | account.move.send.batch.wizard | form | New |
account_move_send_wizard_form |
account.move.send.wizard.form | account.move.send.wizard | form | New |
account_move_view_activity |
account.move.view.activity | account.move | activity | New |
account_resequence_view |
Re-sequence Journal Entries | account.resequence.wizard | form | New |
account_tag_view_form |
Tags | account.account.tag | form | New |
account_tag_view_search |
account.tag.view.search | account.account.tag | search | New |
account_tag_view_tree |
Tags | account.account.tag | list | New |
account_tax_fiscal_position_view_tree |
account.fiscal.position.tax.list | account.tax | field | Inherits account.account_tax_view_tree |
account_tax_group_view_search |
account.tax.group.search.filters | account.tax.group | search | New |
account_tax_view_search |
account.tax.search.filters | account.tax | search | New |
account_tax_view_tree |
account.invoice.line.tax.search | account.tax | list | New |
account_terms_conditions_page |
Terms & Conditions | ir.ui.view | qweb | New |
autopost_bills_wizard |
Autopost Bills | account.autopost.bills.wizard | form | New |
bill_preview |
bill_preview | ir.ui.view | qweb | New |
country_group_form_inherit_account |
res.country.group.form.inherit.account | res.country.group | field | Inherits base.view_country_group_form |
digest_digest_view_form |
digest.digest.view.form.inherit.account.account | digest.digest | xpath | Inherits digest.digest_digest_view_form |
document_tax_totals |
document_tax_totals | ir.ui.view | qweb | Inherits account.document_tax_totals_template |
document_tax_totals_company_currency_template |
document_tax_totals_company_currency_template | ir.ui.view | qweb | New |
document_tax_totals_template |
document_tax_totals_template | ir.ui.view | qweb | New |
email_template_mail_gateway_failed |
email_template_mail_gateway_failed | ir.ui.view | qweb | New |
init_accounts_tree |
account.setup.opening.move.line.list | account.account | list | New |
ir_actions_report_form_inherit_account |
ir.actions.report.form.inherit.account | ir.actions.report | field | Inherits base.act_report_xml_view |
partner_missing_account_list_view |
res.partner.list | res.partner | list | New |
partner_view_buttons |
partner.view.buttons | res.partner | div | Inherits base.view_partner_form |
portal_invoice_error |
Invoice error/warning display | ir.ui.view | qweb | New |
portal_invoice_page |
Invoice/Bill | ir.ui.view | qweb | Inherits portal.portal_sidebar |
portal_invoice_required_fields_form |
portal_invoice_required_fields_form | ir.ui.view | qweb | New |
portal_invoice_success |
Invoice success display | ir.ui.view | qweb | New |
portal_my_details |
portal_my_details | ir.ui.view | qweb | Inherits portal.portal_my_details |
portal_my_home_invoice |
Invoices / Bills | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_invoice |
Portal layout : invoice menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_invoices |
My Invoices and Payments | ir.ui.view | qweb | New |
portal_my_journal_mail_notifications |
My journal email notification settings | ir.ui.view | qweb | New |
product_product_view_form_normalized_account |
product.product.view.form.normalized.account.inherit | product.product | field | Inherits product.product_product_view_form_normalized |
product_template_form_view |
product.template.form.inherit | product.template | div | Inherits product.product_template_form_view |
product_template_list_view_purchasable_inherit |
product.template.list.purchasable.inherit | product.template | xpath | Inherits product.product_template_list_view_purchasable |
product_template_list_view_sellable_inherit |
product.template.list.sellable.inherit | product.template | xpath | Inherits product.product_template_list_view_sellable |
product_uom_form_view_inherit |
product_uom_form_view_inherit | uom.uom | xpath | Inherits uom.product_uom_form_view |
product_view_search_catalog |
product.view.search.catalog.inherit.account | product.product | xpath | Inherits product.product_view_search_catalog |
report_hash_integrity |
report_hash_integrity | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_invoice_document_preview |
report_invoice_document_preview | ir.ui.view | qweb | Inherits account.report_invoice_document |
report_invoice_qr_code_preview |
report_invoice_qr_code_preview | ir.ui.view | qweb | New |
report_invoice_with_payments |
report_invoice_with_payments | ir.ui.view | qweb | New |
report_invoice_wizard_iframe |
report_invoice_wizard_iframe | ir.ui.view | qweb | New |
report_invoice_wizard_preview_inherit_account |
report_invoice_wizard_preview_inherit_account | ir.ui.view | qweb | Inherits web.report_invoice_wizard_preview |
report_original_vendor_bill |
report_original_vendor_bill | ir.ui.view | qweb | New |
report_payment_receipt |
report_payment_receipt | ir.ui.view | qweb | New |
report_payment_receipt_document |
report_payment_receipt_document | ir.ui.view | qweb | New |
report_statement |
report_statement | ir.ui.view | qweb | New |
report_statement_internal_layout |
report_statement_internal_layout | ir.ui.view | qweb | Inherits web.internal_layout |
res_company_form_view_onboarding |
res.company.form.view.onboarding | res.company | form | New |
res_company_form_view_onboarding_sale_tax |
res.company.form.view.onboarding.sale.tax | res.company | form | New |
res_company_view_form_terms |
res.company.view.form.terms | res.company | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.account | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_config_settings_view_form_base_setup |
res.config.settings.view.form.inherit.base_setup | res.config.settings | xpath | Inherits base_setup.res_config_settings_view_form |
res_currency_form_inherit |
res.currency.form.inherit | res.currency | form | Inherits base.view_currency_form |
res_partner_view_search |
res.partner.search.inherit | res.partner | xpath | Inherits base.view_res_partner_filter |
res_partner_view_tree |
res.partner.list.inherit.account | res.partner | xpath | Inherits base.view_partner_tree |
rounding_form_view |
account.cash.rounding.form | account.cash.rounding | form | New |
rounding_search_view |
account.cash.rounding.search | account.cash.rounding | search | New |
rounding_tree_view |
account.cash.rounding.list | account.cash.rounding | list | New |
setup_bank_account_wizard |
account.online.sync.res.partner.bank.setup.form | account.setup.bank.manual.config | form | New |
setup_credit_card_account_wizard |
account.online.sync.res.partner.credit.card.setup.form | account.setup.bank.manual.config | form | New |
setup_financial_year_opening_form |
account.financial.year.op.setup.wizard.form | account.financial.year.op | form | New |
tax_repartition_line_tree |
account.tax.repartition.line.list | account.tax.repartition.line | list | New |
tests_shared_js_python |
tests_shared_js_python | ir.ui.view | qweb | New |
validate_account_move_view |
Confirm Entries | validate.account.move | form | New |
view_account_account_kanban |
account.account.kanban | account.account | kanban | New |
view_account_accrued_orders_wizard |
account.accrued.orders.wizard.view | account.accrued.orders.wizard | form | New |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.list.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_bill_filter |
account.invoice.select | account.move | field | Inherits account.view_account_invoice_filter |
view_account_form |
account.account.form | account.account | form | New |
view_account_group_form |
account.group.form | account.group | form | New |
view_account_group_search |
account.group.search | account.group | search | New |
view_account_group_tree |
account.group.list | account.group | list | New |
view_account_invoice_filter |
account.invoice.select | account.move | search | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_group_form |
account.journal.group.form | account.journal.group | form | New |
view_account_journal_group_tree |
account.journal.group.list | account.journal.group | list | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.list | account.journal | list | New |
view_account_list |
account.account.list | account.account | list | New |
view_account_lock_exception_form |
account.lock_exception.form | account.lock_exception | form | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_kanban |
account.move.kanban | account.move | kanban | New |
view_account_move_line_filter |
account.move.line.search | account.move.line | search | New |
view_account_move_line_payment_filter |
account.move.line.payment.search | account.move.line | search | New |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_move_with_gaps_in_sequence_filter |
account.move.with.gaps.in.sequence.filter | account.move | filter | Inherits account.view_account_invoice_filter |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_kanban |
account.payment.kanban | account.payment | kanban | New |
view_account_payment_method_line_kanban_mobile |
account.payment.method.line.kanban | account.payment.method.line | kanban | New |
view_account_payment_method_line_tree |
account.payment.method.line.list | account.payment.method.line | list | New |
view_account_payment_register_form |
account.payment.register.form | account.payment.register | form | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_term_kanban |
account.payment.term.kanban | account.payment.term | kanban | New |
view_account_payment_tree |
account.payment.list | account.payment | list | New |
view_account_position_filter |
account.fiscal.position.filter | account.fiscal.position | search | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_tree |
account.fiscal.position.list | account.fiscal.position | list | New |
view_account_reconcile_model_form |
account.reconcile.model.form | account.reconcile.model | form | New |
view_account_reconcile_model_search |
account.reconcile.model.search | account.reconcile.model | search | New |
view_account_reconcile_model_tree |
account.reconcile.model.list | account.reconcile.model | list | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_secure_entries_wizard |
account.secure.entries.wizard.form | account.secure.entries.wizard | form | New |
view_account_supplier_payment_tree |
account.supplier.payment.list | account.payment | field | Inherits account.view_account_payment_tree |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_various_payment_tree |
account.supplier.payment.list | account.payment | field | Inherits account.view_account_payment_tree |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.list | account.bank.statement | list | New |
view_base_document_layout |
Document Layout | base.document.layout | xpath | Inherits web.view_base_document_layout |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_company_form |
res.company.form.inherit.account | res.company | xpath | Inherits base.view_company_form |
view_duplicated_moves_tree_js |
account.duplicated.moves.list.js | account.move | xpath | Inherits account.view_invoice_tree |
view_full_reconcile_form |
account.full.reconcile.form | account.full.reconcile | form | New |
view_in_invoice_bill_tree |
account.out.invoice.list | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_refund_tree |
account.out.invoice.list | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_tree |
account.out.invoice.list | account.move | xpath | Inherits account.view_invoice_tree |
view_incoterms_tree |
account.incoterms.list | account.incoterms | list | New |
view_invoice_tree |
account.invoice.list | account.move | list | New |
view_message_tree_audit_log |
mail.message.list.inherit.audit.log | mail.message | list | New |
view_message_tree_audit_log_search |
mail.message.search | mail.message | search | New |
view_module_filter_inherit_account |
ir.module.module.list.inherit.account | ir.module.module | xpath | Inherits base.view_module_filter |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_payment_tree |
account.move.line.payment.list | account.move.line | list | New |
view_move_line_pivot |
account.move.line.pivot | account.move.line | pivot | New |
view_move_line_tax_audit_tree |
account.move.line.tax.audit.list | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree |
account.move.line.list | account.move.line | list | New |
view_move_line_tree_grouped_bank_cash |
account.move.line.list.grouped.bank.cash | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_general |
account.move.line.list.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_misc |
account.move.line.list.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_partner |
account.move.line.list.grouped.partner | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_sales_purchases |
account.move.line.list.grouped.sales.purchase | account.move.line | field | Inherits account.view_move_line_tree |
view_move_tree |
account.move.list | account.move | list | New |
view_move_tree_multi_edit |
account.move.list.multi.edit | account.move | xpath | Inherits account.view_move_tree |
view_onboarding_tax_tree |
account.onboarding.tax.list | account.tax | xpath | Inherits account.view_tax_tree |
view_out_credit_note_tree |
account.out.invoice.list | account.move | button | Inherits account.view_invoice_tree |
view_out_invoice_tree |
account.out.invoice.list | account.move | button | Inherits account.view_invoice_tree |
view_partner_bank_form_inherit_account |
res.partner.bank.form.inherit.account | res.partner.bank | xpath | Inherits base.view_partner_bank_form |
view_partner_bank_search_inherit |
res.partner.bank.search.inherit | res.partner.bank | xpath | Inherits base.view_partner_bank_search |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | xpath | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_payment_term_tree |
account.payment.term.list | account.payment.term | list | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_group_form |
account.tax.group.form | account.tax.group | form | New |
view_tax_group_tree |
account.tax.group.list | account.tax.group | list | New |
view_tax_kanban |
account.tax.kanban | account.tax | kanban | New |
view_tax_tree |
account.tax.list | account.tax | list | New |
account_type
Selection
compute='_compute_account_type'
help='Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.'
index=True
precompute=True
readonly=False
required=True
selection=[('asset_receivable', 'Receivable'), ('asset_cash', 'Bank and Cash'), ('asset_current', 'Current Assets'), ('asset_non_current', 'Non-current Assets'), ('asset_prepayments', 'Prepayments'), ('asset_fixed', 'Fixed Assets'), ('liability_payable', 'Payable'), ('liability_credit_card', 'Credit Card'), ('liability_current', 'Current Liabilities'), ('liability_non_current', 'Non-current Liabilities'), ('equity', 'Equity'), ('equity_unaffected', 'Current Year Earnings'), ('income', 'Income'), ('income_other', 'Other Income'), ('expense', 'Expenses'), ('expense_other', 'Other Expenses'), ('expense_depreciation', 'Depreciation'), ('expense_direct_cost', 'Cost of Revenue'), ('off_balance', 'Off-Balance Sheet')]
store=True
string='Type'
tracking=True
active
Boolean
default=True
tracking=True
code
Char
compute='_compute_code'
inverse='_inverse_code'
search='_search_code'
size=64
string='Code'
tracking=True
code_mapping_ids
One2many → account.code.mapping
comodel_name='account.code.mapping'
inverse_name='account_id'
code_store
Char
company_dependent=True
company_currency_id
Many2one → res.currency
compute='_compute_company_currency_id'
args: 'res.currency'
company_fiscal_country_code
Char
compute='_compute_company_fiscal_country_code'
company_ids
Many2many → res.company
default=<expr>
depends_context=('uid')
readonly=False
required=True
string='Companies'
args: 'res.company'
currency_id
Many2one → res.currency
help='Forces all journal items in this account to have a specific currency (i.e. bank journals). If no currency is set, entries can use any currency.'
string='Account Currency'
tracking=True
args: 'res.currency'
current_balance
Float
compute='_compute_current_balance'
description
Text
translate=True
display_mapping_tab
Boolean
default=<expr>
store=False
group_id
Many2one → account.group
compute='_compute_account_group'
help='Account prefixes can determine account groups.'
args: 'account.group'
include_initial_balance
Boolean
compute='_compute_include_initial_balance'
help='Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set.'
search='_search_include_initial_balance'
string='Bring Accounts Balance Forward'
internal_group
Selection
compute='_compute_internal_group'
search='_search_internal_group'
selection=[('equity', 'Equity'), ('asset', 'Asset'), ('liability', 'Liability'), ('income', 'Income'), ('expense', 'Expense'), ('off', 'Off Balance')]
string='Internal Group'
name
Char
index='trigram'
required=True
string='Account Name'
tracking=True
translate=True
non_trade
Boolean
default=False
help='If set, this account will belong to Non Trade Receivable/Payable in reports and filters.\nIf not, this account will belong to Trade Receivable/Payable in reports and filters.'
note
Text
tracking=True
args: 'Internal Notes'
opening_balance
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_balance'
string='Opening Balance'
opening_credit
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_credit'
string='Opening Credit'
opening_debit
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_debit'
string='Opening Debit'
placeholder_code
Char
compute='_compute_placeholder_code'
search='_search_placeholder_code'
string='Display code'
reconcile
Boolean
compute='_compute_reconcile'
help='Check this box if this account allows invoices & payments matching of journal items.'
precompute=True
readonly=False
store=True
string='Allow Reconciliation'
tracking=True
related_taxes_amount
Integer
compute='_compute_related_taxes_amount'
root_id
Many2one → account.root
compute='_compute_account_root'
search='_search_account_root'
args: 'account.root'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
compute='_compute_account_tags'
help='Optional tags you may want to assign for custom reporting'
ondelete='restrict'
precompute=True
readonly=False
relation='account_account_account_tag'
store=True
string='Tags'
tracking=True
tax_ids
Many2many → account.tax
check_company=True
context={'append_fields': ['type_tax_use', 'company_id']}
string='Default Taxes'
args: 'account.tax', 'account_account_tax_default_rel', 'account_id', 'tax_id'
used
Boolean
compute='_compute_used'
search='_search_used'
action_open_related_taxes(self)
action_unmerge(self)
copy_data(self, default=None)
copy_translations(self, new, excluded=())
create(self, vals_list)
default_get(self, fields)
get_import_templates(self)
name_create(self, name)
name_search(self, name='', domain=None, operator='ilike', limit=100)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the Account Tag without removing it.'
applicability
Selection
default='accounts'
required=True
args: [('accounts', 'Accounts'), ('taxes', 'Taxes'), ('products', 'Products')]
balance_negate
Boolean
compute='_compute_report_expression_id'
color
Integer
country_id
Many2one → res.country
comodel_name='res.country'
help='Country for which this tag is available, when applied on taxes.'
string='Country'
name
Char
required=True
translate=True
args: 'Tag Name'
report_expression_id
Many2one → account.report.expression
compute='_compute_report_expression_id'
args: 'account.report.expression'
create(self, vals_list)
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', '=', 'liability_current')] if context.get('active_model') in ['purchase.order', 'purchase.order.line'] else [('account_type', '=', 'asset_current')]"
required=True
string='Accrual Account'
amount
Monetary
help='Specify an arbitrary value that will be accrued on a default account for the entire order, regardless of the products on the different lines.'
string='Amount'
company_id
Many2one → res.company
default=_get_default_company
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
date
Date
default=_get_default_date
required=True
display_amount
Boolean
compute='_compute_display_amount'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
domain="[('type', '=', 'general')]"
precompute=True
readonly=False
required=True
store=True
string='Journal'
preview_data
Text
compute='_compute_preview_data'
reversal_date
Date
compute='_compute_reversal_date'
precompute=True
readonly=False
required=True
store=True
create_entries(self)
invoice_count
Integer
compute='_compute_invoice_count'
args: 'Invoice Count'
vendor_bill_count
Integer
compute='_compute_vendor_bill_count'
args: 'Vendor Bill Count'
action_view_invoice(self)
action_view_vendor_bill(self)
account_prefix
Char
help='Prefix that defines which accounts from the financial accounting this applicability should apply on.'
string='Financial Accounts Prefixes'
account_prefix_placeholder
Char
compute='_compute_prefix_placeholder'
business_domain
Selection
ondelete={'invoice': 'cascade', 'bill': 'cascade'}
selection_add=[('invoice', 'Invoice'), ('bill', 'Vendor Bill')]
display_account_prefix
Boolean
compute='_compute_display_account_prefix'
help='Defines if the field account prefix should be displayed'
product_categ_id
Many2one → product.category
string='Product Category'
args: 'product.category'
No public methods.
account_prefix
Char
help='This analytic distribution will apply to all financial accounts sharing the prefix specified.'
string='Accounts Prefix'
prefix_placeholder
Char
compute='_compute_prefix_placeholder'
product_categ_id
Many2one → product.category
help='Select a product category which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
check_company=True
help='Select a product for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Product'
args: 'product.product'
No public methods.
analytic_profitability
Selection
compute='_compute_analytic_profitability'
search='_search_analytic_profitability'
selection=[('uncategorized', 'Uncategorized'), ('revenue', 'Revenue'), ('loss', 'Loss')]
string='Profitability'
category
Selection
selection_add=[('invoice', 'Customer Invoice'), ('vendor_bill', 'Vendor Bill')]
code
Char
size=8
general_account_id
Many2one → account.account
check_company=True
compute='_compute_general_account_id'
ondelete='restrict'
readonly=False
store=True
string='Financial Account'
args: 'account.account'
journal_id
Many2one → account.journal
check_company=True
readonly=True
related='move_line_id.journal_id'
store=True
string='Financial Journal'
args: 'account.journal'
move_line_id
Many2one → account.move.line
check_company=True
index=True
ondelete='cascade'
string='Journal Item'
args: 'account.move.line'
partner_id
Many2one
compute='_compute_partner_id'
readonly=False
store=True
product_category
Many2one
related='product_id.categ_id'
product_id
Many2one → product.product
check_company=True
index='btree_not_null'
string='Product'
args: 'product.product'
ref
Char
string='Ref.'
create(self, vals_list)
on_change_unit_amount(self)
unlink(self)
view_header_get(self, view_id, view_type)
write(self, vals)
account_type
Selection
compute='_compute_account_type'
store=True
args: [('income', 'Revenue'), ('expense', 'Expense')]
action
Selection
required=True
args: [('change_period', 'Change Period'), ('change_account', 'Change Account')]
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
date
Date
default=<expr>
required=True
destination_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Account to transfer to.'
string='To'
display_currency_helper
Boolean
compute='_compute_display_currency_helper'
string='Currency Conversion Helper'
expense_accrual_account
Many2one → account.account
check_company=True
compute='_compute_expense_accrual_account'
domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'off_balance'))]"
inverse='_inverse_expense_accrual_account'
readonly=False
args: 'account.account'
journal_id
Many2one → account.journal
check_company=True
compute='_compute_journal_id'
domain="[('type', '=', 'general')]"
help='Journal where to create the entry.'
inverse='_inverse_journal_id'
readonly=False
required=True
string='Journal'
args: 'account.journal'
lock_date_message
Char
compute='_compute_lock_date_message'
string='Lock Date Message'
move_data
Text
compute='_compute_move_data'
move_line_ids
Many2many → account.move.line
percentage
Float
compute='_compute_percentage'
help='Percentage of each line to execute the action on.'
readonly=False
store=True
args: 'Percentage'
preview_move_data
Text
compute='_compute_preview_move_data'
revenue_accrual_account
Many2one → account.account
check_company=True
compute='_compute_revenue_accrual_account'
domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'off_balance'))]"
inverse='_inverse_revenue_accrual_account'
readonly=False
args: 'account.account'
total_amount
Monetary
compute='_compute_total_amount'
currency_field='company_currency_id'
help='Total amount impacted by the automatic entry.'
readonly=False
store=True
default_get(self, fields)
do_action(self)
nb_unmodified_bills
Integer
partner_id
Many2one → res.partner
partner_name
Char
related='partner_id.name'
action_ask_later(self)
action_automate_partner(self)
action_never_automate_partner(self)
attachment_ids
Many2many → ir.attachment
bypass_search_access=True
comodel_name='ir.attachment'
string='Attachments'
balance_end
Monetary
compute='_compute_balance_end'
store=True
string='Computed Balance'
balance_end_real
Monetary
compute='_compute_balance_end_real'
readonly=False
store=True
string='Ending Balance'
balance_start
Monetary
compute='_compute_balance_start'
readonly=False
store=True
string='Starting Balance'
company_id
Many2one → res.company
comodel_name='res.company'
related='journal_id.company_id'
store=True
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
store=True
date
Date
compute='_compute_date'
index=True
readonly=False
store=True
first_line_index
Char → account.bank.statement.line
comodel_name='account.bank.statement.line'
compute='_compute_first_line_index'
store=True
is_complete
Boolean
compute='_compute_is_complete'
store=True
is_valid
Boolean
compute='_compute_is_valid'
search='_search_is_valid'
journal_has_invalid_statements
Boolean
related='journal_id.has_invalid_statements'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
store=True
line_ids
One2many → account.bank.statement.line
comodel_name='account.bank.statement.line'
inverse_name='statement_id'
string='Statement lines'
name
Char
compute='_compute_name'
copy=False
readonly=False
store=True
string='Reference'
problem_description
Text
compute='_compute_problem_description'
reference
Char
copy=False
string='External Reference'
create(self, vals_list)
default_get(self, fields)
write(self, vals)
account_number
Char
string='Bank Account Number'
amount
Monetary
amount_currency
Monetary
compute='_compute_amount_currency'
currency_field='foreign_currency_id'
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
readonly=False
store=True
string='Amount in Currency'
amount_residual
Float
compute='_compute_is_reconciled'
store=True
string='Residual Amount'
company_id
Many2one → res.company
comodel_name='res.company'
index=False
inherited=True
precompute=True
readonly=False
related='move_id.company_id'
required=True
store=True
country_code
Char
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
store=True
string='Journal Currency'
foreign_currency_id
Many2one → res.currency
comodel_name='res.currency'
help='The optional other currency if it is a multi-currency entry.'
string='Foreign Currency'
internal_index
Char
compute='_compute_internal_index'
store=True
string='Internal Reference'
is_reconciled
Boolean
compute='_compute_is_reconciled'
store=True
string='Is Reconciled'
journal_id
Many2one → account.journal
comodel_name='account.journal'
index=False
inherited=True
precompute=True
readonly=False
related='move_id.journal_id'
required=True
store=True
move_id
Many2one → account.move
bypass_search_access=True
check_company=True
comodel_name='account.move'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
domain="['|', ('parent_id','=', False), ('is_company','=',True)]"
ondelete='restrict'
string='Partner'
partner_name
Char
index='btree_not_null'
payment_ids
Many2many → account.payment
comodel_name='account.payment'
relation='account_payment_account_bank_statement_line_rel'
string='Auto-generated Payments'
payment_ref
Char
index='trigram'
string='Label'
running_balance
Monetary
compute='_compute_running_balance'
sequence
Integer
default=1
statement_balance_end_real
Monetary
related='statement_id.balance_end_real'
statement_complete
Boolean
related='statement_id.is_complete'
statement_id
Many2one → account.bank.statement
comodel_name='account.bank.statement'
index=True
string='Statement'
statement_name
Char
related='statement_id.name'
string='Statement Name'
statement_valid
Boolean
related='statement_id.is_valid'
transaction_details
Json
readonly=True
transaction_type
Char
action_undo_reconciliation(self)
create(self, vals_list)
default_get(self, fields)
formatted_read_group(self, domain, groupby=(), aggregates=(), having=(), offset=0, limit=None, order=None) -> <expr>
new(self, values=None, origin=None, ref=None)
unlink(self)
write(self, vals)
loss_account_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
ondelete='restrict'
string='Loss Account'
args: 'account.account'
name
Char
required=True
string='Name'
translate=True
profit_account_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
ondelete='restrict'
string='Profit Account'
args: 'account.account'
rounding
Float
default=0.01
help='Represent the non-zero value smallest coinage (for example, 0.05).'
required=True
string='Rounding Precision'
rounding_method
Selection
default='HALF-UP'
help='The tie-breaking rule used for float rounding operations'
required=True
selection=[('UP', 'Up'), ('DOWN', 'Down'), ('HALF-UP', 'Nearest')]
string='Rounding Method'
strategy
Selection
default='add_invoice_line'
help='Specify which way will be used to round the invoice amount to the rounding precision'
required=True
string='Rounding Strategy'
args: [('biggest_tax', 'Modify tax amount'), ('add_invoice_line', 'Add a rounding line')]
compute_difference(self, currency, amount)
round(self, amount)
validate_rounding(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (3)company_xmlid(self, xmlid, company=None)
ref(self, xmlid, raise_if_not_found=True)
try_loading(self, template_code, company, install_demo=False, force_create=True)
No new fields.
Public methods (0)No public methods.
account_id
Many2one → account.account
comodel_name='account.account'
compute='_compute_account_id'
search=True
string='Account'
code
Char
compute='_compute_code'
inverse='_inverse_code'
string='Code'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=False
string='Company'
create(self, vals_list)
No new fields.
Public methods (0)No public methods.
company_id
Many2one → res.company
comodel_name='res.company'
required=True
fiscalyear_last_day
Integer
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_day'
required=True
fiscalyear_last_month
Selection
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_month'
required=True
opening_date
Date
help='Date from which the accounting is managed in Odoo. It is the date of the opening entry.'
readonly=False
related='company_id.account_opening_date'
required=True
string='Opening Date'
opening_move_posted
Boolean
compute='_compute_opening_move_posted'
string='Opening Move Posted'
action_save_onboarding_fiscal_year(self)
create(self, vals_list)
write(self, vals)
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
account_map
Binary
compute='_compute_account_map'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply tax & account mappings on invoices automatically if the matching criterias (VAT/Country) are met.'
string='Detect Automatically'
company_country_id
Many2one
related='company_id.account_fiscal_country_id'
string='Company Country'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
readonly=True
required=True
string='Company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery country matches the group.'
inverse='_inverse_foreign_vat'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery country matches.'
inverse='_inverse_foreign_vat'
string='Country'
args: 'res.country'
fiscal_country_codes
Char
related='company_country_id.code'
string='Company Fiscal Country Code'
foreign_vat
Char
help='The tax ID of your company in the region mapped by this fiscal position.'
inverse='_inverse_foreign_vat'
string='Foreign Tax ID'
foreign_vat_header_mode
Selection
compute='_compute_foreign_vat_header_mode'
selection=[('templates_found', 'Templates Found'), ('no_template', 'No Template')]
is_domestic
Boolean
compute='_compute_is_domestic'
store=True
name
Char
required=True
string='Fiscal Position'
translate=True
note
Html
help='Legal mentions that have to be printed on the invoices.'
translate=True
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
Many2many → account.tax
column1='account_fiscal_position_id'
column2='account_tax_id'
comodel_name='account.tax'
relation='account_fiscal_position_account_tax_rel'
string='Taxes'
tax_map
Binary
compute='_compute_tax_map'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
action_create_foreign_taxes(self)
action_open_related_taxes(self)
create(self, vals_list)
map_account(self, account)
map_tax(self, taxes)
write(self, vals)
account_dest_id
Many2one → account.account
check_company=True
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
check_company=True
required=True
string='Account on Product'
args: 'account.account'
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
partial_reconcile_ids
One2many → account.partial.reconcile
string='Reconciliation Parts'
args: 'account.partial.reconcile', 'full_reconcile_id'
reconciled_line_ids
One2many → account.move.line
string='Matched Journal Items'
args: 'account.move.line', 'full_reconcile_id'
create(self, vals_list)
unlink(self)
code_prefix_end
Char
compute='_compute_code_prefix_end'
precompute=True
readonly=False
store=True
code_prefix_start
Char
compute='_compute_code_prefix_start'
precompute=True
readonly=False
store=True
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
name
Char
required=True
translate=True
parent_id
Many2one → account.group
check_company=True
index=True
ondelete='cascade'
readonly=True
args: 'account.group'
create(self, vals_list)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='By unchecking the active field, you may hide an INCOTERM you will not use.'
args: 'Active'
code
Char
help='Incoterm Standard Code'
required=True
size=3
args: 'Code'
name
Char
help='Incoterms are series of sales terms. They are used to divide transaction costs and responsibilities between buyer and seller and reflect state-of-the-art transportation practices.'
required=True
translate=True
args: 'Name'
No public methods.
account_id
Many2one → account.account
readonly=True
string='Revenue/Expense Account'
args: 'account.account'
commercial_partner_id
Many2one → res.partner
string='Main Partner'
args: 'res.partner'
company_currency_id
Many2one → res.currency
readonly=True
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
fiscal_position_id
Many2one → account.fiscal.position
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
inventory_value
Float
readonly=True
string='Inventory Value'
invoice_date
Date
readonly=True
string='Invoice Date'
invoice_date_due
Date
readonly=True
string='Due Date'
invoice_user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
readonly=True
args: 'account.move'
move_type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
payment_state
Selection
readonly=True
selection=PAYMENT_STATE_SELECTION
string='Payment Status'
price_average
Float
aggregator='avg'
readonly=True
string='Average Price'
price_margin
Float
readonly=True
string='Margin'
price_subtotal
Float
readonly=True
string='Untaxed Amount'
price_subtotal_currency
Float
readonly=True
string='Untaxed Amount in Currency'
price_total
Float
readonly=True
string='Total'
price_total_currency
Float
readonly=True
string='Total in Currency'
product_categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_uom_id
Many2one → uom.uom
readonly=True
string='Unit'
args: 'uom.uom'
quantity
Float
readonly=True
string='Product Quantity'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('posted', 'Open'), ('cancel', 'Cancelled')]
No public methods.
account_fiscal_country_group_codes
Json
related='company_id.account_fiscal_country_group_codes'
accounting_date
Date
compute='_compute_accounting_date'
active
Boolean
default=True
help='Set active to false to hide the Journal without removing it.'
alias_name
Char
help='Send one separate email for each invoice.\nAny file extension will be accepted.\nOnly PDF and XML files will be interpreted by Odoo'
available_invoice_template_pdf_report_ids
One2many → ir.actions.report
comodel_name='ir.actions.report'
compute='_compute_available_invoice_template_pdf_report_ids'
available_payment_method_ids
Many2many → account.payment.method
comodel_name='account.payment.method'
compute='_compute_available_payment_method_ids'
bank_acc_number
Char
readonly=False
related='bank_account_id.acc_number'
bank_account_id
Many2one → res.partner.bank
check_company=True
copy=False
domain="[('partner_id','=', company_partner_id)]"
index='btree_not_null'
ondelete='restrict'
string='Bank Account'
args: 'res.partner.bank'
bank_id
Many2one → res.bank
readonly=False
related='bank_account_id.bank_id'
args: 'res.bank'
bank_statements_source
Selection
default='undefined'
help='Defines how the bank statements will be registered'
selection=_get_bank_statements_available_sources
string='Bank Feeds'
code
Char
compute='_compute_code'
help='Shorter name used for display. The journal entries of this journal will also be named using this prefix by default.'
precompute=True
readonly=False
required=True
size=5
store=True
string='Sequence Prefix'
company_id
Many2one → res.company
default=<expr>
help='Company related to this journal'
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
company_partner_id
Many2one → res.partner
readonly=True
related='company_id.partner_id'
store=False
string='Account Holder'
args: 'res.partner'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
help='The currency used to enter statement'
string='Currency'
args: 'res.currency'
default_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain=_get_default_account_domain
ondelete='restrict'
string='Default Account'
default_account_type
Char
compute='_compute_default_account_type'
string='Default Account Type'
display_alias_fields
Boolean
compute='_compute_display_alias_fields'
display_invoice_template_pdf_report_id
Boolean
default=_default_display_invoice_template_pdf_report_id
store=False
has_invalid_statements
Boolean
compute='_compute_has_invalid_statements'
inbound_payment_method_line_ids
One2many → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
compute='_compute_inbound_payment_method_line_ids'
copy=False
domain=[('payment_type', '=', 'inbound')]
help='Manual: Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
inverse_name='journal_id'
readonly=False
store=True
string='Inbound Payment Methods'
incoming_einvoice_notification_email
Char
help="Email addresses that will receive copy for sent and received invoices. Separate entries with ';'."
string='Send Copy To'
invoice_reference_model
Selection
default=_default_invoice_reference_model
help='You can choose different models for each type of reference. The default one is the Odoo reference.'
required=True
selection=[('odoo', 'Full Reference (INV/2024/00001)'), ('euro', 'European (RF83INV202400001)'), ('number', 'Numbers only (202400001)')]
string='Communication Standard'
invoice_reference_type
Selection
default='invoice'
help='You can set here the default communication that will appear on customer invoices, once validated, to help the customer to refer to that particular invoice when making the payment.'
required=True
selection=[('partner', 'Based on Customer'), ('invoice', 'Based on Invoice')]
string='Communication Type'
invoice_template_pdf_report_id
Many2one → ir.actions.report
comodel_name='ir.actions.report'
domain="[('id', 'in', available_invoice_template_pdf_report_ids)]"
readonly=False
string='Invoice report'
is_self_billing
Boolean
help='This journal is for self-billing invoices. Invoices will be created using a different sequence per partner.'
string='Self Billing'
journal_group_ids
Many2many → account.journal.group
check_company=True
string='Ledger Group'
args: 'account.journal.group'
loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', '=', 'expense')]"
help='Used to register a loss when the ending balance of a cash register differs from what the system computes'
string='Loss Account'
name
Char
required=True
string='Journal Name'
translate=True
name_placeholder
Char
compute='_compute_name_placeholder'
non_deductible_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Account used to register the private part of mixed expenses.'
readonly=False
store=True
string='Private Share Account'
outbound_payment_method_line_ids
One2many → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
compute='_compute_outbound_payment_method_line_ids'
copy=False
domain=[('payment_type', '=', 'outbound')]
help='Manual: Pay by any method outside of Odoo.\nCheck: Pay bills by check and print it from Odoo.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\n'
inverse_name='journal_id'
readonly=False
store=True
string='Outbound Payment Methods'
payment_sequence
Boolean
compute='_compute_payment_sequence'
help="Check this box if you don't want to share the same sequence on payments and bank transactions posted on this journal"
precompute=True
readonly=False
store=True
string='Dedicated Payment Sequence'
profit_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', 'in', ('income', 'income_other'))]"
help='Used to register a profit when the ending balance of a cash register differs from what the system computes'
string='Profit Account'
refund_sequence
Boolean
compute='_compute_refund_sequence'
help="Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal"
readonly=False
store=True
string='Dedicated Credit Note Sequence'
restrict_mode_hash_table
Boolean
help='If ticked, when an entry is posted, we retroactively hash all moves in the sequence from the entry back to the last hashed entry. The hash can also be performed on demand by the Secure Entries wizard.'
string='Secure Posted Entries with Hash'
selected_payment_method_codes
Char
compute='_compute_selected_payment_method_codes'
sequence
Integer
default=10
help='Used to order Journals in the dashboard view'
sequence_override_regex
Text
help='Technical field used to enforce complex sequence composition that the system would normally misunderstand.\nThis is a regex that can include all the following capture groups: prefix1, year, prefix2, month, prefix3, seq, suffix.\nThe prefix* groups are the separators between the year, month and the actual increasing sequence number (seq).\ne.g: ^(?P<prefix1>.*?)(?P<year>\\d{4})(?P<prefix2>\\D*?)(?P<month>\\d{2})(?P<prefix3>\\D+?)(?P<seq>\\d+)(?P<suffix>\\D*?)$'
show_fetch_in_einvoices_button
Boolean
compute='_compute_show_fetch_in_einvoices_button'
string='Show E-Invoice Buttons'
show_refresh_out_einvoices_status_button
Boolean
compute='_compute_show_refresh_out_einvoices_status_button'
string='Show E-Invoice Status Buttons'
suspense_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_suspense_account_id'
domain="[('account_type', '=', 'asset_current')]"
help='Bank statements transactions will be posted on the suspense account until the final reconciliation allowing finding the right account.'
ondelete='restrict'
readonly=False
store=True
string='Suspense Account'
type
Selection
help="\n Select 'Sale' for customer invoices journals.\n Select 'Purchase' for vendor bills journals.\n Select 'Cash', 'Bank' or 'Credit Card' for journals that are used in customer or vendor payments.\n Select 'General' for miscellaneous operations journals.\n "
required=True
args: [('sale', 'Sales'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('bank', 'Bank'), ('credit', 'Credit Card'), ('general', 'Miscellaneous')]
action_configure_bank_journal(self)
button_fetch_in_einvoices(self)
button_refresh_out_einvoices_status(self)
button_unsubscribe_from_invoice_notifications(self)
copy_data(self, default=None)
create(self, vals_list)
create_document_from_attachment(self, attachment_ids)
set_bank_account(self, acc_number, bank_id=None)
unlink(self)
write(self, vals)
color
Integer
default=0
args: 'Color Index'
current_statement_balance
Monetary
compute='_compute_current_statement_balance'
entries_count
Integer
compute='_compute_entries_count'
has_entries
Boolean
compute='_compute_has_entries'
has_posted_entries
Boolean
compute='_compute_has_entries'
has_sequence_holes
Boolean
compute='_compute_has_sequence_holes'
has_statement_lines
Boolean
compute='_compute_current_statement_balance'
has_unhashed_entries
Boolean
compute='_compute_has_unhashed_entries'
string='Unhashed Entries'
json_activity_data
Text
compute='_get_json_activity_data'
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
last_statement_id
Many2one → account.bank.statement
comodel_name='account.bank.statement'
compute='_compute_last_bank_statement'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
action_create_vendor_bill(self)
action_post_all_entries(self)
create_bank_statement(self)
create_customer_payment(self)
create_supplier_payment(self)
is_sample_action_available(self)
open_action(self)
open_action_with_context(self)
open_bank_difference_action(self)
open_invalid_statements_action(self)
open_payments_action(self, payment_type=False, mode='list')
show_sequence_holes(self)
show_unhashed_entries(self)
to_check_ids(self)
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
help='Define which company can select the multi-ledger in report filters. If none is provided, available for all companies'
excluded_journal_ids
Many2many → account.journal
comodel_name='account.journal'
context={'active_test': False}
domain='company_id and [("company_id", "parent_of", company_id)] or []'
string='Excluded Journals'
name
Char
required=True
translate=True
args: 'Ledger group'
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
string='Active'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
company_lock_date
Date
copy=False
help='Technical field giving the date the company lock date at the time the exception was created.'
string='Original Lock Date'
end_datetime
Datetime
string='End Date'
fiscalyear_lock_date
Date
compute='_compute_lock_dates'
help='The date the Global Lock Date is set to by this exception. If the lock date is not changed it is set to the maximal date.'
search='_search_fiscalyear_lock_date'
string='Global Lock Date'
lock_date
Date
help='Technical field giving the date the lock date was changed to.'
string='Changed Lock Date'
lock_date_field
Selection
help='Technical field identifying the changed lock date'
required=True
selection=[('fiscalyear_lock_date', 'Global Lock Date'), ('tax_lock_date', 'Tax Return Lock Date'), ('sale_lock_date', 'Sales Lock Date'), ('purchase_lock_date', 'Purchase Lock Date')]
string='Lock Date Field'
purchase_lock_date
Date
compute='_compute_lock_dates'
help='The date the Purchase Lock Date is set to by this exception. If the lock date is not changed it is set to the maximal date.'
search='_search_purchase_lock_date'
string='Purchase Lock Date'
reason
Char
string='Reason'
sale_lock_date
Date
compute='_compute_lock_dates'
help='The date the Sale Lock Date is set to by this exception. If the lock date is not changed it is set to the maximal date.'
search='_search_sale_lock_date'
string='Sales Lock Date'
state
Selection
compute='_compute_state'
search='_search_state'
selection=[('active', 'Active'), ('revoked', 'Revoked'), ('expired', 'Expired')]
string='State'
tax_lock_date
Date
compute='_compute_lock_dates'
help='The date the Tax Lock Date is set to by this exception. If the lock date is not changed it is set to the maximal date.'
search='_search_tax_lock_date'
string='Tax Return Lock Date'
user_id
Many2one → res.users
default=<expr>
string='User'
args: 'res.users'
action_revoke(self)
action_show_audit_trail_during_exception(self)
copy(self, default=None)
create(self, vals_list)
account_ids
Many2many → account.account
disable_merge_button
Boolean
compute='_compute_disable_merge_button'
is_group_by_name
Boolean
default=False
help='Tick this checkbox if you want accounts to be grouped by name for merging.'
string='Group by name?'
wizard_line_ids
One2many → account.merge.wizard.line
comodel_name='account.merge.wizard.line'
compute='_compute_wizard_line_ids'
inverse_name='wizard_id'
readonly=False
store=True
action_merge(self)
default_get(self, fields)
account_has_hashed_entries
Boolean
compute='_compute_account_has_hashed_entries'
account_id
Many2one → account.account
comodel_name='account.account'
ondelete='cascade'
readonly=True
string='Account'
company_ids
Many2many
related='account_id.company_ids'
string='Companies'
display_type
Selection
required=True
selection=[('line_section', 'Section'), ('line_subsection', 'Subsection'), ('account', 'Account')]
grouping_key
Char
info
Char
compute='_compute_info'
help='Contains either the section name or error message, depending on the line type.'
string='Info'
is_selected
Boolean
sequence
Integer
wizard_id
Many2one → account.merge.wizard
comodel_name='account.merge.wizard'
ondelete='cascade'
required=True
No public methods.
statement_line_ids
One2many → account.bank.statement.line
string='Statements'
args: 'account.bank.statement.line', 'move_id'
No public methods.
payment_ids
One2many → account.payment
string='Payments'
args: 'account.payment', 'move_id'
No public methods.
abnormal_amount_warning
Text
compute='_compute_abnormal_warnings'
abnormal_date_warning
Text
compute='_compute_abnormal_warnings'
account_fiscal_country_group_codes
Json
related='company_id.account_fiscal_country_group_codes'
adjusting_entries_count
Integer
compute='_compute_adjusting_entries_count'
string='Adjusting Entries Count'
adjusting_entries_move_ids
Many2many → account.move
column1='adjusting_entry_move_id'
column2='move_id'
comodel_name='account.move'
relation='adjusting_entries__account_move'
string='Created Adjusting Entries'
adjusting_entry_origin_label
Char
compute='_compute_adjusting_entry_origin_label'
adjusting_entry_origin_move_ids
Many2many → account.move
column1='move_id'
column2='adjusting_entry_move_id'
comodel_name='account.move'
relation='adjusting_entries__account_move'
string='Adjusting Entry Origin Moves'
adjusting_entry_origin_moves_count
Integer
compute='_compute_adjusting_entry_origin_moves_count'
string='Adjusting Entry Origin Moves Count'
alerts
Json
compute='_compute_alerts'
always_tax_exigible
Boolean
compute='_compute_always_tax_exigible'
readonly=False
store=True
amount_residual
Monetary
compute='_compute_amount'
store=True
string='Amount Due'
amount_residual_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
store=True
string='Amount Due Signed'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_tax_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Tax Signed'
amount_total
Monetary
compute='_compute_amount'
inverse='_inverse_amount_total'
readonly=True
store=True
string='Total'
amount_total_in_currency_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=True
store=True
string='Total in Currency Signed'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Total Signed'
amount_total_words
Char
compute='_compute_amount_total_words'
string='Amount total in words'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
tracking=True
amount_untaxed_in_currency_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=True
store=True
string='Untaxed Amount Signed Currency'
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount Signed'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'account.move')]
string='Attachments'
args: 'ir.attachment', 'res_id'
audit_trail_message_ids
One2many → mail.message
domain=[('model', '=', 'account.move'), ('message_type', '=', 'notification')]
string='Audit Trail Messages'
args: 'mail.message', 'res_id'
auto_post
Selection
copy=False
default='no'
help='Specify whether this entry is posted automatically on its accounting date, and any similar recurring invoices.'
required=True
selection=[('no', 'No'), ('at_date', 'At Date'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly'), ('yearly', 'Yearly')]
string='Auto-post'
auto_post_origin_id
Many2one → account.move
comodel_name='account.move'
copy=False
index='btree_not_null'
readonly=True
string='First recurring entry'
auto_post_until
Date
compute='_compute_auto_post_until'
copy=False
help='This recurring move will be posted up to and including this date.'
readonly=False
store=True
string='Auto-post until'
bank_partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_bank_partner_id'
help='Technical field to get the domain on the bank'
checked
Boolean
compute='_compute_checked'
copy=False
readonly=False
store=True
string='Reviewed'
tracking=True
commercial_partner_id
Many2one → res.partner
check_company=True
compute='_compute_commercial_partner_id'
ondelete='restrict'
readonly=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
index=True
inverse='_inverse_company_id'
precompute=True
readonly=False
store=True
string='Company'
company_price_include
Selection
readonly=True
related='company_id.account_price_include'
country_code
Char
depends=['company_id']
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
inverse='_inverse_currency_id'
precompute=True
readonly=False
required=True
store=True
string='Currency'
tracking=True
args: 'res.currency'
date
Date
compute='_compute_date'
copy=False
index=True
precompute=True
readonly=False
required=True
store=True
string='Date'
tracking=True
delivery_date
Date
compute='_compute_delivery_date'
copy=False
inverse='_inverse_delivery_date'
precompute=True
readonly=False
store=True
string='Delivery Date'
direction_sign
Integer
compute='_compute_direction_sign'
help='Multiplicator depending on the document type, to convert a price into a balance'
display_inactive_currency_warning
Boolean
compute='_compute_display_inactive_currency_warning'
display_link_qr_code
Boolean
compute='_compute_display_link_qr_code'
string='Display Link QR-code'
display_qr_code
Boolean
compute='_compute_display_qr_code'
string='Display QR-code'
display_send_button
Boolean
compute='_compute_display_send_button'
duplicated_ref_ids
Many2many → account.move
comodel_name='account.move'
compute='_compute_duplicated_ref_ids'
exchange_diff_partial_ids
One2many → account.partial.reconcile
comodel_name='account.partial.reconcile'
inverse_name='exchange_move_id'
string='Related reconciliation'
expected_currency_rate
Float
compute='_compute_expected_currency_rate'
digits=0
fiscal_position_id
Many2one → account.fiscal.position
check_company=True
compute='_compute_fiscal_position_id'
help='Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. The default value comes from the customer.'
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Fiscal Position'
args: 'account.fiscal.position'
has_reconciled_entries
Boolean
compute='_compute_has_reconciled_entries'
hide_post_button
Boolean
compute='_compute_hide_post_button'
readonly=True
highest_name
Char
compute='_compute_highest_name'
highlight_send_button
Boolean
compute='_compute_highlight_send_button'
inalterable_hash
Char
copy=False
index='btree_not_null'
readonly=True
string='Inalterability Hash'
incoterm_location
Char
compute='_compute_incoterm_location'
readonly=False
store=True
string='Incoterm Location'
invoice_cash_rounding_id
Many2one → account.cash.rounding
comodel_name='account.cash.rounding'
help='Defines the smallest coinage of the currency that can be used to pay by cash.'
string='Cash Rounding Method'
invoice_currency_rate
Float
compute='_compute_invoice_currency_rate'
copy=False
digits=0
help='Currency rate from company currency to document currency.'
precompute=True
readonly=False
store=True
string='Currency Rate'
invoice_date
Date
copy=False
index=True
string='Invoice/Bill Date'
invoice_date_due
Date
compute='_compute_invoice_date_due'
copy=False
index=True
readonly=False
store=True
string='Due Date'
invoice_filter_type_domain
Char
compute='_compute_invoice_filter_type_domain'
invoice_has_outstanding
Boolean
compute='_compute_invoice_has_outstanding'
groups='account.group_account_invoice,account.group_account_readonly'
invoice_incoterm_id
Many2one → account.incoterms
comodel_name='account.incoterms'
compute='_compute_incoterm'
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
readonly=False
store=True
string='Incoterm'
invoice_incoterm_placeholder
Char
compute='_compute_invoice_incoterm_placeholder'
invoice_line_ids
One2many → account.move.line
copy=False
domain=[('display_type', 'in', ('product', 'line_section', 'line_subsection', 'line_note'))]
string='Invoice lines'
args: 'account.move.line', 'move_id'
invoice_origin
Char
copy=False
help='The document(s) that generated the invoice.'
readonly=True
string='Origin'
tracking=True
invoice_outstanding_credits_debits_widget
Binary
compute='_compute_payments_widget_to_reconcile_info'
exportable=False
groups='account.group_account_invoice,account.group_account_readonly'
invoice_partner_display_name
Char
compute='_compute_invoice_partner_display_info'
store=True
invoice_payment_term_id
Many2one → account.payment.term
check_company=True
comodel_name='account.payment.term'
compute='_compute_invoice_payment_term_id'
inverse='_inverse_invoice_payment_term_id'
precompute=True
readonly=False
store=True
string='Payment Terms'
invoice_payments_widget
Binary
compute='_compute_payments_widget_reconciled_info'
exportable=False
groups='account.group_account_invoice,account.group_account_readonly'
invoice_pdf_report_file
Binary
attachment=True
copy=False
string='PDF File'
invoice_pdf_report_id
Many2one → ir.attachment
comodel_name='ir.attachment'
compute=<expr>
depends=['invoice_pdf_report_file']
string='PDF Attachment'
invoice_source_email
Char
string='Source Email'
tracking=True
invoice_user_id
Many2one → res.users
comodel_name='res.users'
compute='_compute_invoice_default_sale_person'
copy=False
readonly=False
store=True
string='Salesperson'
tracking=True
invoice_vendor_bill_id
Many2one → account.move
check_company=True
help='Auto-complete from a previous bill or refund.'
store=False
string='Vendor Bill'
args: 'account.move'
is_being_sent
Boolean
compute='_compute_is_being_sent'
help='Is the move being sent asynchronously'
is_draft_duplicated_ref_ids
Boolean
compute='_compute_is_draft_duplicated_ref_ids'
is_exact_move_duplicate
Boolean
compute='_compute_is_draft_duplicated_ref_ids'
is_manually_modified
Boolean
is_move_sent
Boolean
copy=False
help='It indicates that the invoice/payment has been sent or the PDF has been generated.'
readonly=True
is_sale_installed
Boolean
compute='_compute_is_sale_installed'
is_storno
Boolean
compute='_compute_is_storno'
journal_group_id
Many2one → account.journal.group
search='_search_journal_group_id'
store=False
string='Ledger'
args: 'account.journal.group'
journal_id
Many2one → account.journal
check_company=True
compute='_compute_journal_id'
domain="[('id', 'in', suitable_journal_ids)]"
inverse='_inverse_journal_id'
precompute=True
readonly=False
required=True
store=True
string='Journal'
args: 'account.journal'
journal_line_ids
One2many → account.move.line
comodel_name='account.move.line'
copy=False
domain=[('display_type', 'not in', ('line_section', 'line_subsection', 'line_note'))]
exportable=False
inverse_name='move_id'
string='Journal Items (DEPRECATED)'
line_ids
One2many → account.move.line
copy=True
string='Journal Items'
args: 'account.move.line', 'move_id'
made_sequence_gap
Boolean
matched_payment_ids
Many2many → account.payment
column1='invoice_id'
column2='payment_id'
comodel_name='account.payment'
copy=False
relation='account_move__account_payment'
string='Matched Payments'
move_sent_values
Selection
compute='compute_move_sent_values'
search='_search_move_sent_values'
selection=[('sent', 'Sent'), ('not_sent', 'Not Sent')]
string='Sent'
move_type
Selection
change_default=True
default='entry'
index=True
readonly=True
required=True
selection=[('entry', 'Journal Entry'), ('out_invoice', 'Customer Invoice'), ('out_refund', 'Customer Credit Note'), ('in_invoice', 'Vendor Bill'), ('in_refund', 'Vendor Credit Note'), ('out_receipt', 'Sales Receipt'), ('in_receipt', 'Purchase Receipt')]
string='Type'
tracking=True
name
Char
compute='_compute_name'
copy=False
index='trigram'
inverse='_inverse_name'
readonly=False
store=True
string='Number'
tracking=True
name_placeholder
Char
compute='_compute_name_placeholder'
narration
Html
compute='_compute_narration'
readonly=False
store=True
string='Terms and Conditions'
need_cancel_request
Boolean
compute='_compute_need_cancel_request'
needed_terms
Binary
compute='_compute_needed_terms'
exportable=False
needed_terms_dirty
Boolean
compute='_compute_needed_terms'
next_payment_date
Date
compute='_compute_next_payment_date'
search='_search_next_payment_date'
string='Next Payment Date'
no_followup
Boolean
compute='_compute_no_followup'
help='Exclude this journal entry from follow-up reports.'
inverse='_inverse_no_followup'
readonly=False
string='No Follow-Up'
origin_payment_id
Many2one → account.payment
check_company=True
comodel_name='account.payment'
copy=False
index='btree_not_null'
string='Payment'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.'
index='btree_not_null'
ondelete='restrict'
readonly=False
store=True
string='Recipient Bank'
tracking=True
args: 'res.partner.bank'
partner_credit_warning
Text
compute='_compute_partner_credit_warning'
groups='account.group_account_invoice,account.group_account_readonly'
partner_id
Many2one → res.partner
change_default=True
check_company=True
index=True
inverse='_inverse_partner_id'
ondelete='restrict'
readonly=False
string='Partner'
tracking=True
args: 'res.partner'
partner_shipping_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
compute='_compute_partner_shipping_id'
help='The delivery address will be used in the computation of the fiscal position.'
precompute=True
readonly=False
store=True
string='Delivery Address'
payment_count
Integer
compute='_compute_payment_count'
compute_sudo=True
payment_reference
Char
compute='_compute_payment_reference'
copy=False
help='The payment reference to set on journal items.'
index='trigram'
inverse='_inverse_payment_reference'
readonly=False
store=True
string='Payment Reference'
tracking=True
payment_state
Selection
compute='_compute_payment_state'
copy=False
readonly=True
selection=PAYMENT_STATE_SELECTION
store=True
string='Payment Status'
tracking=True
payment_term_details
Binary
compute='_compute_payment_term_details'
exportable=False
posted_before
Boolean
copy=False
preferred_payment_method_line_id
Many2one → account.payment.method.line
comodel_name='account.payment.method.line'
compute='_compute_preferred_payment_method_line_id'
readonly=False
store=True
string='Preferred Payment Method Line'
qr_code_method
Selection
copy=False
help='Type of QR-code to be generated for the payment of this invoice, when printing it. If left blank, the first available and usable method will be used.'
selection=<expr>
string='Payment QR-code'
quick_edit_mode
Boolean
compute='_compute_quick_edit_mode'
quick_edit_total_amount
Monetary
help='Use this field to encode the total amount of the invoice.\nOdoo will automatically create one invoice line with default values to match it.'
string='Total (Tax inc.)'
quick_encoding_vals
Json
compute='_compute_quick_encoding_vals'
exportable=False
reconciled_payment_ids
Many2many → account.payment
compute='_compute_reconciled_payment_ids'
help='Payments that have been reconciled with this invoice.'
search='_search_reconciled_payment_ids'
string='Reconciled Payments'
args: 'account.payment'
ref
Char
copy=False
index='trigram'
string='Reference'
tracking=True
restrict_mode_hash_table
Boolean
related='journal_id.restrict_mode_hash_table'
reversal_move_ids
One2many → account.move
reversed_entry_id
Many2one → account.move
check_company=True
comodel_name='account.move'
copy=False
index='btree_not_null'
readonly=True
string='Reversal of'
secure_sequence_number
Integer
copy=False
index=True
readonly=True
string='Inalterability No Gap Sequence #'
secured
Boolean
compute='_compute_secured'
help='The entry is secured with an inalterable hash.'
search='_search_secured'
sending_data
Json
copy=False
show_delivery_date
Boolean
compute='_compute_show_delivery_date'
show_discount_details
Boolean
compute='_compute_show_payment_term_details'
show_journal
Boolean
compute='_compute_show_journal'
show_name_warning
Boolean
store=False
show_payment_term_details
Boolean
compute='_compute_show_payment_term_details'
show_reset_to_draft_button
Boolean
compute='_compute_show_reset_to_draft_button'
show_taxable_supply_date
Boolean
compute='_compute_show_taxable_supply_date'
show_update_fpos
Boolean
store=False
string='Has Fiscal Position Changed'
state
Selection
copy=False
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('cancel', 'Cancelled')]
string='Status'
tracking=True
statement_id
Many2one
related='statement_line_id.statement_id'
statement_line_id
Many2one → account.bank.statement.line
check_company=True
comodel_name='account.bank.statement.line'
copy=False
index='btree_not_null'
string='Statement Line'
status_in_payment
Selection
compute='_compute_status_in_payment'
copy=False
selection=<expr>
suitable_journal_ids
Many2many → account.journal
compute='_compute_suitable_journal_ids'
args: 'account.journal'
tax_calculation_rounding_method
Selection
readonly=True
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_cash_basis_created_move_ids
One2many → account.move
comodel_name='account.move'
help='The cash basis entries created from the taxes on this entry, when reconciling its lines.'
inverse_name='tax_cash_basis_origin_move_id'
string='Cash Basis Entries'
tax_cash_basis_origin_move_id
Many2one → account.move
comodel_name='account.move'
help='The journal entry from which this tax cash basis journal entry has been created.'
index='btree_not_null'
readonly=True
string='Cash Basis Origin'
tax_cash_basis_rec_id
Many2one → account.partial.reconcile
comodel_name='account.partial.reconcile'
index='btree_not_null'
string='Tax Cash Basis Entry of'
tax_country_code
Char
compute='_compute_tax_country_code'
tax_country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_tax_country_id'
tax_lock_date_message
Char
compute='_compute_tax_lock_date_message'
tax_totals
Binary
compute='_compute_tax_totals'
exportable=False
help='Edit Tax amounts if you encounter rounding issues.'
inverse='_inverse_tax_totals'
string='Invoice Totals'
taxable_supply_date
Date
compute='_compute_taxable_supply_date'
copy=False
precompute=True
readonly=False
store=True
string='Taxable Supply Date'
taxable_supply_date_placeholder
Char
compute='_compute_taxable_supply_date_placeholder'
taxes_legal_notes
Html
compute='_compute_taxes_legal_notes'
string='Taxes Legal Notes'
type_name
Char
compute='_compute_type_name'
args: 'Type Name'
user_id
Many2one
related='invoice_user_id'
string='User'
action_activate_currency(self)
action_add_from_catalog(self)
action_delete_duplicates(self)
action_duplicate(self)
action_force_register_payment(self)
action_invoice_download_pdf(self, target='download')
action_invoice_sent(self)
action_move_download_all(self)
action_open_business_doc(self)
action_post(self)
action_print_pdf(self)
action_register_payment(self)
action_reverse(self)
action_send_and_print(self)
action_switch_move_type(self)
action_toggle_block_payment(self)
action_update_fpos_values(self)
action_validate_moves_with_confirmation(self)
button_cancel(self)
button_draft(self)
button_hash(self)
button_request_cancel(self)
button_set_checked(self)
check_field_access_rights(self, operation, field_names)
check_move_sequence_chain(self)
check_selected_moves(self)
compute_move_sent_values(self)
copy(self, default=None)
copy_data(self, default=None)
create(self, vals_list)
get_currency_rate(self, company_id, to_currency_id, date)
get_extra_print_items(self)
get_import_templates(self)
get_inbound_types(self, include_receipts=True)
get_invoice_localisation_fields_required_to_invoice(self, country_id)
get_invoice_types(self, include_receipts=False)
get_outbound_types(self, include_receipts=True)
get_purchase_types(self, include_receipts=False)
get_sale_types(self, include_receipts=False)
is_entry(self)
is_inbound(self, include_receipts=True)
is_invoice(self, include_receipts=False)
is_outbound(self, include_receipts=True)
is_purchase_document(self, include_receipts=False, move_type=False)
is_receipt(self)
is_sale_document(self, include_receipts=False, move_type=False)
js_assign_outstanding_line(self, line_id)
js_remove_outstanding_partial(self, partial_id)
message_new(self, msg_dict, custom_values=None)
onchange(self, values, field_names, fields_spec)
open_adjusting_entries(self)
open_adjusting_entry_origin_moves(self)
open_created_caba_entries(self)
open_payments(self)
open_reconcile_view(self)
preview_invoice(self)
read(self, fields=None, load='_classic_read')
refresh_invoice_currency_rate(self)
search_read(self, domain=None, fields=None, offset=0, limit=None, order=None, **read_kwargs)
set_moves_checked(self, is_checked=True)
unlink(self)
write(self, vals)
account_code
Char
related='account_id.code'
account_id
Many2one → account.account
bypass_search_access=True
check_company=True
comodel_name='account.account'
compute='_compute_account_id'
domain="[('account_type', '!=', 'off_balance')]"
index=False
inverse='_inverse_account_id'
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Account'
tracking=True
account_internal_group
Selection
related='account_id.internal_group'
account_name
Char
related='account_id.name'
account_root_id
Many2one
depends_context='company'
related='account_id.root_id'
string='Account Root'
account_type
Selection
related='account_id.account_type'
string='Internal Type'
allowed_uom_ids
Many2many → uom.uom
compute='_compute_allowed_uom_ids'
args: 'uom.uom'
amount_currency
Monetary
compute='_compute_amount_currency'
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
inverse='_inverse_amount_currency'
precompute=True
readonly=False
store=True
string='Amount in Currency'
amount_residual
Monetary
compute='_compute_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
compute='_compute_amount_residual'
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_distribution
Json
inverse='_inverse_analytic_distribution'
analytic_line_ids
One2many → account.analytic.line
comodel_name='account.analytic.line'
inverse_name='move_line_id'
string='Analytic lines'
balance
Monetary
compute='_compute_balance'
currency_field='company_currency_id'
precompute=True
readonly=False
store=True
string='Balance'
tracking=True
collapse_composition
Boolean
help='If checked, the lines below this section will not be displayed in reports and portal.'
string='Hide Composition'
collapse_prices
Boolean
help='If checked, the prices of the lines below this section will not be displayed in reports and portal.'
string='Hide Prices'
commercial_partner_country
Many2one
related='move_id.commercial_partner_id.country_id'
string='Commercial Partner Country'
company_currency_id
Many2one
precompute=True
readonly=True
related='move_id.company_currency_id'
store=True
string='Company Currency'
company_id
Many2one
index=True
precompute=True
readonly=True
related='move_id.company_id'
store=True
credit
Monetary
compute='_compute_debit_credit'
currency_field='company_currency_id'
inverse='_inverse_credit'
precompute=True
store=True
string='Credit'
cumulated_balance
Monetary
compute='_compute_cumulated_balance'
currency_field='company_currency_id'
exportable=False
help='Cumulated balance depending on the domain and the order chosen in the view.'
string='Cumulated Balance'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
precompute=True
readonly=False
required=True
store=True
string='Currency'
currency_rate
Float
compute='_compute_currency_rate'
help='Currency rate from company currency to document currency.'
date
Date
aggregator='min'
copy=False
related='move_id.date'
store=True
date_maturity
Date
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
string='Due Date'
tracking=True
debit
Monetary
compute='_compute_debit_credit'
currency_field='company_currency_id'
inverse='_inverse_debit'
precompute=True
store=True
string='Debit'
deductible_amount
Float
default=100
args: 'Deductibility'
discount
Float
default=0.0
digits='Discount'
string='Discount (%)'
discount_allocation_dirty
Boolean
compute='_compute_discount_allocation_needed'
discount_allocation_key
Binary
compute='_compute_discount_allocation_key'
exportable=False
discount_allocation_needed
Binary
compute='_compute_discount_allocation_needed'
exportable=False
discount_amount_currency
Monetary
currency_field='currency_id'
store=True
string='Discount amount in Currency'
discount_balance
Monetary
currency_field='company_currency_id'
store=True
string='Discount Balance'
discount_date
Date
help='Last date at which the discounted amount must be paid in order for the Early Payment Discount to be granted'
readonly=True
store=True
string='Discount Date'
display_type
Selection
compute='_compute_display_type'
precompute=True
readonly=False
required=True
selection=[('product', 'Product'), ('cogs', 'Cost of Goods Sold'), ('tax', 'Tax'), ('discount', 'Discount'), ('rounding', 'Rounding'), ('payment_term', 'Payment Term'), ('line_section', 'Section'), ('line_subsection', 'Subsection'), ('line_note', 'Note'), ('epd', 'Early Payment Discount'), ('non_deductible_product_total', 'Non Deductible Products Total'), ('non_deductible_product', 'Non Deductible Products'), ('non_deductible_tax', 'Non Deductible Tax')]
store=True
epd_dirty
Boolean
compute='_compute_epd_needed'
epd_key
Binary
compute='_compute_epd_key'
exportable=False
epd_needed
Binary
compute='_compute_epd_needed'
exportable=False
extra_tax_data
Json
full_reconcile_id
Many2one → account.full.reconcile
comodel_name='account.full.reconcile'
copy=False
index='btree_not_null'
readonly=True
string='Matching'
group_tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
index='btree_not_null'
string='Originator Group of Taxes'
has_invalid_analytics
Boolean
compute='_compute_has_invalid_analytics'
invoice_date
Date
aggregator='min'
copy=False
related='move_id.invoice_date'
store=True
is_account_reconcile
Boolean
related='account_id.reconcile'
string='Account Reconcile'
is_imported
Boolean
is_refund
Boolean
compute='_compute_is_refund'
is_same_currency
Boolean
compute='_compute_same_currency'
is_storno
Boolean
compute='_compute_is_storno'
help='Utility field to express whether the journal item is subject to storno accounting'
precompute=True
readonly=False
store=True
string='Company Storno Accounting'
journal_group_id
Many2one → account.journal.group
comodel_name='account.journal.group'
search='_search_journal_group_id'
store=False
string='Ledger'
journal_id
Many2one
copy=False
index=True
precompute=True
related='move_id.journal_id'
store=True
matched_credit_ids
One2many → account.partial.reconcile
comodel_name='account.partial.reconcile'
help='Credit journal items that are matched with this journal item.'
inverse_name='debit_move_id'
readonly=True
string='Matched Credits'
matched_debit_ids
One2many → account.partial.reconcile
comodel_name='account.partial.reconcile'
help='Debit journal items that are matched with this journal item.'
inverse_name='credit_move_id'
readonly=True
string='Matched Debits'
matching_number
Char
copy=False
help="Matching number for this line, 'P' if it is only partially reconcile, or the name of the full reconcile if it exists."
index='btree'
string='Matching #'
move_id
Many2one → account.move
bypass_search_access=True
check_company=True
comodel_name='account.move'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
move_name
Char
index='btree'
related='move_id.name'
store=True
string='Number'
move_type
Selection
related='move_id.move_type'
name
Char
compute='_compute_name'
precompute=True
readonly=False
store=True
string='Label'
tracking=True
no_followup
Boolean
compute='_compute_no_followup'
help='Exclude this journal item from follow-up reports.'
inverse='_inverse_no_followup'
readonly=False
store=True
string='No Follow-Up'
parent_id
Many2one → account.move.line
compute='_compute_parent_id'
compute_sudo=True
string='Parent Section Line'
args: 'account.move.line'
parent_state
Selection
related='move_id.state'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_partner_id'
inverse='_inverse_partner_id'
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Partner'
payment_date
Date
compute='_compute_payment_date'
search='_search_payment_date'
string='Next Payment Date'
payment_id
Many2one → account.payment
bypass_search_access=True
comodel_name='account.payment'
help='The payment that created this entry'
index='btree_not_null'
related='move_id.origin_payment_id'
store=True
string='Originator Payment'
price_subtotal
Monetary
compute='_compute_totals'
currency_field='currency_id'
store=True
string='Subtotal'
price_total
Monetary
compute='_compute_totals'
currency_field='currency_id'
store=True
string='Total'
price_unit
Float
compute='_compute_price_unit'
min_display_digits='Product Price'
precompute=True
readonly=False
store=True
string='Unit Price'
product_category_id
Many2one
related='product_id.product_tmpl_id.categ_id'
product_id
Many2one → product.product
check_company=True
comodel_name='product.product'
index=True
inverse='_inverse_product_id'
ondelete='restrict'
string='Product'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
compute='_compute_product_uom_id'
domain="[('id', 'in', allowed_uom_ids)]"
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Unit'
quantity
Float
compute='_compute_quantity'
digits='Product Unit'
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
precompute=True
readonly=False
store=True
string='Quantity'
reconcile_model_id
Many2one → account.reconcile.model
check_company=True
comodel_name='account.reconcile.model'
copy=False
readonly=True
string='Reconciliation Model'
reconciled
Boolean
compute='_compute_amount_residual'
store=True
reconciled_lines_excluding_exchange_diff_ids
Many2many → account.move.line
comodel_name='account.move.line'
compute='_compute_reconciled_lines_excluding_exchange_diff_ids'
reconciled_lines_ids
Many2many → account.move.line
comodel_name='account.move.line'
compute='_compute_reconciled_lines_ids'
inverse='_inverse_reconciled_lines_ids'
ref
Char
copy=False
index='trigram'
related='move_id.ref'
store=True
search_account_id
Many2one → account.account
search='_search_account_id'
store=False
args: 'account.account'
sequence
Integer
compute='_compute_sequence'
precompute=True
readonly=False
store=True
statement_id
Many2one
bypass_search_access=True
copy=False
help='The bank statement used for bank reconciliation'
index='btree_not_null'
related='statement_line_id.statement_id'
store=True
statement_line_id
Many2one → account.bank.statement.line
bypass_search_access=True
comodel_name='account.bank.statement.line'
help='The statement line that created this entry'
index='btree_not_null'
related='move_id.statement_line_id'
store=True
string='Originator Statement Line'
tax_base_amount
Monetary
currency_field='company_currency_id'
readonly=True
string='Base Amount'
tax_calculation_rounding_method
Selection
readonly=True
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_group_id
Many2one
precompute=True
related='tax_line_id.tax_group_id'
store=True
string='Originator tax group'
tax_ids
Many2many → account.tax
check_company=True
comodel_name='account.tax'
compute='_compute_tax_ids'
context={'active_test': False, 'hide_original_tax_ids': True}
precompute=True
readonly=False
store=True
string='Taxes'
tracking=True
tax_line_id
Many2one → account.tax
comodel_name='account.tax'
help='Indicates that this journal item is a tax line'
ondelete='restrict'
precompute=True
related='tax_repartition_line_id.tax_id'
store=True
string='Originator Tax'
tax_repartition_line_id
Many2one → account.tax.repartition.line
check_company=True
comodel_name='account.tax.repartition.line'
help='Tax distribution line that caused the creation of this move line, if any'
ondelete='restrict'
readonly=True
string='Originator Tax Distribution Line'
tax_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
context={'active_test': False}
help='Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.'
ondelete='restrict'
string='Tags'
tracking=True
term_key
Binary
compute='_compute_term_key'
exportable=False
translated_product_name
Text
compute='_compute_translated_product_name'
action_add_from_catalog(self)
action_automatic_entry(self, default_action=None)
action_open_business_doc(self)
action_payment_items_register_payment(self)
action_register_payment(self, ctx=None)
action_unreconcile_match_entries(self)
check_field_access_rights(self, operation, field_names)
copy_data(self, default=None)
create(self, vals_list)
default_get(self, fields)
flush_model(self, fnames=None)
flush_recordset(self, fnames=None)
get_column_to_exclude_for_colspan_calculation(self, taxes=None)
get_import_templates(self)
get_parent_section_line(self)
get_section_subtotal(self)
get_section_total(self)
get_views(self, views, options=None)
invalidate_model(self, fnames=None, flush=True)
invalidate_recordset(self, fnames=None, flush=True)
open_reconcile_view(self)
read(self, fields=None, load='_classic_read')
reconcile(self)
remove_move_reconcile(self)
search_fetch(self, domain, field_names=None, offset=0, limit=None, order=None)
search_read(self, domain=None, fields=None, offset=0, limit=None, order=None, **read_kwargs)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
available_journal_ids
Many2many → account.journal
compute='_compute_available_journal_ids'
args: 'account.journal'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
country_code
Char
related='company_id.country_id.code'
currency_id
Many2one → res.currency
compute='_compute_from_moves'
args: 'res.currency'
date
Date
default=fields.Date.context_today
string='Reversal date'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
help='If empty, uses the journal of the journal entry to be reversed.'
readonly=False
required=True
store=True
string='Journal'
move_ids
Many2many → account.move
domain=[('state', '=', 'posted')]
args: 'account.move', 'account_move_reversal_move', 'reversal_id', 'move_id'
move_type
Char
compute='_compute_from_moves'
new_move_ids
Many2many → account.move
reason
Char
string='Reason displayed on Credit Note'
residual
Monetary
compute='_compute_from_moves'
default_get(self, fields)
modify_moves(self)
refund_moves(self)
reverse_moves(self, is_modify=False)
No new fields.
Public methods (0)No public methods.
alerts
Json
compute='_compute_alerts'
move_ids
Many2many → account.move
comodel_name='account.move'
required=True
summary_data
Json
compute='_compute_summary_data'
action_send_and_print(self, force_synchronous=False, allow_fallback_pdf=False)
default_get(self, fields)
alerts
Json
compute='_compute_alerts'
attachments_not_supported
Json
compute='_compute_attachments_not_supported'
available_pdf_report_ids
One2many → ir.actions.report
comodel_name='ir.actions.report'
compute='_compute_available_pdf_report_ids'
company_id
Many2one → res.company
comodel_name='res.company'
related='move_id.company_id'
display_attachments_widget
Boolean
compute='_compute_display_attachments_widget'
display_pdf_report_id
Boolean
compute='_compute_display_pdf_report_id'
extra_edi_checkboxes
Json
compute='_compute_extra_edi_checkboxes'
precompute=True
readonly=False
store=True
extra_edis
Json
compute='_compute_extra_edis'
inverse='_inverse_extra_edis'
invoice_edi_format
Selection
compute='_compute_invoice_edi_format'
selection=<expr>
lang
Char
compute='_compute_lang'
compute_sudo=True
precompute=False
mail_attachments_widget
Json
compute='_compute_mail_attachments_widget'
readonly=False
store=True
mail_partner_ids
Many2many → res.partner
comodel_name='res.partner'
compute='_compute_mail_partners'
readonly=False
store=True
string='To'
model
Char
compute='_compute_model'
readonly=False
store=True
args: 'Related Document Model'
move_id
Many2one → account.move
comodel_name='account.move'
required=True
pdf_report_id
Many2one → ir.actions.report
comodel_name='ir.actions.report'
compute='_compute_pdf_report_id'
domain="[('id', 'in', available_pdf_report_ids)]"
readonly=False
store=True
string='Invoice report'
res_ids
Text
compute='_compute_res_ids'
readonly=False
store=True
args: 'Related Document IDs'
sending_method_checkboxes
Json
compute='_compute_sending_method_checkboxes'
precompute=True
readonly=False
store=True
sending_methods
Json
compute='_compute_sending_methods'
inverse='_inverse_sending_methods'
template_id
Many2one
compute='_compute_template_id'
compute_sudo=True
domain="[('model', '=', 'account.move')]"
readonly=False
store=True
template_name
Char
action_send_and_print(self, allow_fallback_pdf=False)
cancel_save_template(self)
create_mail_template(self)
default_get(self, fields)
open_template_creation_wizard(self)
amount
Monetary
currency_field='company_currency_id'
help='Always positive amount concerned by this matching expressed in the company currency.'
company_currency_id
Many2one → res.currency
comodel_name='res.currency'
help='Utility field to express amount currency'
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
precompute=True
readonly=False
store=True
string='Company'
credit_amount_currency
Monetary
currency_field='credit_currency_id'
help='Always positive amount concerned by this matching expressed in the credit line foreign currency.'
credit_currency_id
Many2one → res.currency
comodel_name='res.currency'
precompute=True
related='credit_move_id.currency_id'
store=True
string='Currency of the credit journal item.'
credit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
debit_amount_currency
Monetary
currency_field='debit_currency_id'
help='Always positive amount concerned by this matching expressed in the debit line foreign currency.'
debit_currency_id
Many2one → res.currency
comodel_name='res.currency'
precompute=True
related='debit_move_id.currency_id'
store=True
string='Currency of the debit journal item.'
debit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
draft_caba_move_vals
Json
string='Values that created the draft cash-basis entry'
exchange_move_id
Many2one → account.move
comodel_name='account.move'
index='btree_not_null'
full_reconcile_id
Many2one → account.full.reconcile
comodel_name='account.full.reconcile'
copy=False
index='btree_not_null'
string='Full Reconcile'
max_date
Date
compute='_compute_max_date'
precompute=True
store=True
string='Max Date of Matched Lines'
create(self, vals_list)
unlink(self)
amount
Monetary
currency_field='currency_id'
amount_company_currency_signed
Monetary
compute='_compute_amount_company_currency_signed'
currency_field='company_currency_id'
store=True
amount_signed
Monetary
compute='_compute_amount_signed'
currency_field='currency_id'
help='Negative value of amount field if payment_type is outbound'
tracking=True
attachment_ids
One2many → ir.attachment
string='Attachments'
args: 'ir.attachment', 'res_id'
available_journal_ids
Many2many → account.journal
comodel_name='account.journal'
compute='_compute_available_journal_ids'
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_line_ids
Many2many → account.payment.method.line
compute='_compute_payment_method_line_fields'
args: 'account.payment.method.line'
company_currency_id
Many2one
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
index=False
precompute=True
readonly=False
required=True
store=True
country_code
Char
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
help="The payment's currency."
precompute=True
readonly=False
store=True
string='Currency'
date
Date
default=fields.Date.context_today
required=True
tracking=True
destination_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_destination_account_id'
domain="[('account_type', 'in', ('asset_receivable', 'liability_payable'))]"
readonly=False
store=True
string='Destination Account'
duplicate_payment_ids
Many2many → account.payment
comodel_name='account.payment'
compute='_compute_duplicate_payment_ids'
invoice_ids
Many2many → account.move
column1='payment_id'
column2='invoice_id'
comodel_name='account.move'
copy=False
relation='account_move__account_payment'
string='Invoices'
is_matched
Boolean
compute='_compute_reconciliation_status'
store=True
string='Is Matched With a Bank Statement'
is_reconciled
Boolean
compute='_compute_reconciliation_status'
store=True
string='Is Reconciled'
is_sent
Boolean
copy=False
readonly=True
string='Is Sent'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
index=False
precompute=True
readonly=False
required=True
store=True
memo
Char
inverse='_inverse_memo'
string='Memo'
tracking=True
move_id
Many2one → account.move
check_company=True
comodel_name='account.move'
copy=False
index=True
string='Journal Entry'
name
Char
compute='_compute_name'
store=True
string='Number'
need_cancel_request
Boolean
related='move_id.need_cancel_request'
outstanding_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_outstanding_account_id'
index='btree_not_null'
store=True
string='Outstanding Account'
paired_internal_transfer_payment_id
Many2one → account.payment
copy=False
help='When an internal transfer is posted, a paired payment is created. They are cross referenced through this field'
index='btree_not_null'
args: 'account.payment'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
ondelete='restrict'
readonly=False
store=True
string='Recipient Bank Account'
tracking=True
args: 'res.partner.bank'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
domain="['|', ('parent_id','=', False), ('is_company','=', True)]"
ondelete='restrict'
string='Customer/Vendor'
tracking=True
partner_type
Selection
default='customer'
required=True
tracking=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_method_code
Char
related='payment_method_line_id.code'
payment_method_id
Many2one
related='payment_method_line_id.payment_method_id'
store=True
string='Method'
tracking=True
payment_method_line_id
Many2one → account.payment.method.line
compute='_compute_payment_method_line_id'
copy=False
domain="[('id', 'in', available_payment_method_line_ids)]"
help='Manual: Pay or Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_iso20022 is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_iso20022 is necessary.\nU.S. ISO20022: Pay in the US by submitting an ISO20022 file to your bank. Module account_iso20022 is necessary.\n'
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method.line'
payment_receipt_title
Char
compute='_compute_payment_receipt_title'
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
string='Payment Reference'
tracking=True
payment_type
Selection
default='inbound'
required=True
string='Payment Type'
tracking=True
args: [('outbound', 'Send'), ('inbound', 'Receive')]
qr_code
Html
compute='_compute_qr_code'
string='QR Code URL'
reconciled_bill_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
search='_search_reconciled_invoice_ids'
string='Reconciled Bills'
args: 'account.move'
reconciled_bills_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Bills'
reconciled_invoice_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
search='_search_reconciled_invoice_ids'
string='Reconciled Invoices'
args: 'account.move'
reconciled_invoices_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Invoices'
reconciled_invoices_type
Selection
compute='_compute_stat_buttons_from_reconciliation'
args: [('credit_note', 'Credit Note'), ('invoice', 'Invoice')]
reconciled_statement_line_ids
Many2many → account.bank.statement.line
comodel_name='account.bank.statement.line'
compute='_compute_stat_buttons_from_reconciliation'
help='Statements lines matched to this payment'
string='Reconciled Statement Lines'
reconciled_statement_lines_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Statement Lines'
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
state
Selection
compute='_compute_state'
copy=False
default='draft'
readonly=False
required=True
selection=[('draft', 'Draft'), ('in_process', 'In Process'), ('paid', 'Paid'), ('canceled', 'Canceled'), ('rejected', 'Rejected')]
store=True
tracking=True
action_cancel(self)
action_draft(self)
action_open_business_doc(self)
action_post(self)
action_reject(self)
action_validate(self)
button_open_bills(self)
button_open_invoices(self)
button_open_journal_entry(self)
button_open_statement_lines(self)
button_request_cancel(self)
copy_data(self, default=None)
create(self, vals_list)
mark_as_sent(self)
unlink(self)
unmark_as_sent(self)
write(self, vals)
code
Char
required=True
name
Char
required=True
translate=True
payment_type
Selection
required=True
selection=[('inbound', 'Inbound'), ('outbound', 'Outbound')]
create(self, vals_list)
unlink(self)
available_payment_method_ids
Many2many
related='journal_id.available_payment_method_ids'
code
Char
related='payment_method_id.code'
company_id
Many2one
related='journal_id.company_id'
default_account_id
Many2one
related='journal_id.default_account_id'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
index='btree_not_null'
name
Char
compute='_compute_name'
readonly=False
store=True
payment_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain="['|', ('account_type', 'in', ('asset_current', 'liability_current')), ('id', '=', default_account_id)]"
ondelete='restrict'
payment_method_id
Many2one → account.payment.method
comodel_name='account.payment.method'
domain="[('payment_type', '=?', payment_type), ('id', 'in', available_payment_method_ids)]"
required=True
string='Payment Method'
payment_type
Selection
related='payment_method_id.payment_type'
sequence
Integer
default=10
unlink(self)
actionable_errors
Json
compute='_compute_actionable_errors'
amount
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=False
store=True
available_journal_ids
Many2many → account.journal
comodel_name='account.journal'
compute='_compute_available_journal_ids'
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_line_ids
Many2many → account.payment.method.line
compute='_compute_payment_method_line_fields'
args: 'account.payment.method.line'
batches
Binary
compute='_compute_batches'
export_string_translation=False
can_edit_wizard
Boolean
compute='_compute_from_lines'
copy=False
store=True
can_group_payments
Boolean
compute='_compute_can_group_payments'
copy=False
store=True
communication
Char
compute='_compute_communication'
readonly=False
store=True
string='Memo'
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
compute='_compute_from_lines'
copy=False
store=True
args: 'res.company'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
help="The payment's currency."
precompute=True
readonly=False
store=True
string='Currency'
custom_user_amount
Monetary
currency_field='currency_id'
custom_user_currency_id
Many2one → res.currency
comodel_name='res.currency'
duplicate_payment_ids
Many2many → account.payment
comodel_name='account.payment'
compute='_compute_duplicate_moves'
early_payment_discount_mode
Boolean
compute='_compute_early_payment_discount_mode'
group_payment
Boolean
compute='_compute_group_payment'
help='Only one payment will be created by partner (bank), instead of one per bill.'
readonly=False
store=True
string='Group Payments'
hide_writeoff_section
Boolean
compute='_compute_hide_writeoff_section'
installments_mode
Selection
compute='_compute_installments_mode'
export_string_translation=False
readonly=False
selection=[('next', 'Next Installment'), ('overdue', 'Overdue Amount'), ('before_date', 'Before Next Payment Date'), ('full', 'Full Amount')]
store=True
installments_switch_amount
Monetary
compute='_compute_installments_switch_values'
currency_field='currency_id'
installments_switch_html
Html
compute='_compute_installments_switch_values'
is_register_payment_on_draft
Boolean
compute='_compute_is_register_payment_on_draft'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
domain="[('id', 'in', available_journal_ids)]"
precompute=True
readonly=False
store=True
line_ids
Many2many → account.move.line
copy=False
readonly=True
string='Journal items'
args: 'account.move.line', 'account_payment_register_move_line_rel', 'wizard_id', 'line_id'
missing_account_partners
Many2many → res.partner
compute='_compute_trust_values'
args: 'res.partner'
partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
readonly=False
store=True
string='Recipient Bank Account'
partner_id
Many2one → res.partner
compute='_compute_from_lines'
copy=False
ondelete='restrict'
store=True
string='Customer/Vendor'
args: 'res.partner'
partner_type
Selection
compute='_compute_from_lines'
copy=False
store=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_date
Date
default=fields.Date.context_today
required=True
string='Payment Date'
payment_difference
Monetary
compute='_compute_payment_difference'
payment_difference_handling
Selection
compute='_compute_payment_difference_handling'
readonly=False
selection=[('open', 'Keep open'), ('reconcile', 'Mark as fully paid')]
store=True
string='Payment Difference Handling'
payment_method_code
Char
related='payment_method_line_id.code'
payment_method_line_id
Many2one → account.payment.method.line
compute='_compute_payment_method_line_id'
domain="[('id', 'in', available_payment_method_line_ids)]"
help='Manual: Pay or Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method.line'
payment_type
Selection
compute='_compute_from_lines'
copy=False
store=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
qr_code
Html
compute='_compute_qr_code'
string='QR Code URL'
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
show_payment_difference
Boolean
compute='_compute_show_payment_difference'
source_amount
Monetary
compute='_compute_from_lines'
copy=False
currency_field='company_currency_id'
store=True
string='Amount to Pay (company currency)'
source_amount_currency
Monetary
compute='_compute_from_lines'
copy=False
currency_field='source_currency_id'
store=True
string='Amount to Pay (foreign currency)'
source_currency_id
Many2one → res.currency
compute='_compute_from_lines'
copy=False
store=True
string='Source Currency'
args: 'res.currency'
total_payments_amount
Integer
compute='_compute_trust_values'
untrusted_bank_ids
Many2many → res.partner.bank
compute='_compute_trust_values'
args: 'res.partner.bank'
untrusted_payments_count
Integer
compute='_compute_trust_values'
writeoff_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
string='Difference Account'
writeoff_is_exchange_account
Boolean
compute='_compute_writeoff_is_exchange_account'
writeoff_label
Char
default='Write-Off'
help='Change label of the counterpart that will hold the payment difference'
string='Journal Item Label'
action_create_payments(self)
action_open_missing_account_partners(self)
action_open_untrusted_bank_accounts(self)
default_get(self, fields)
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment terms without removing it.'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
args: 'res.currency'
discount_days
Integer
default=10
help='Number of days before the early payment proposition expires'
string='Discount Days'
discount_percentage
Float
default=2.0
help='Early Payment Discount granted for this payment term'
string='Discount %'
display_on_invoice
Boolean
default=True
string='Show installment dates'
early_discount
Boolean
string='Early Discount'
early_pay_discount_computation
Selection
compute='_compute_discount_computation'
readonly=False
store=True
string='Cash Discount Tax Reduction'
args: [('included', 'On early payment'), ('excluded', 'Never'), ('mixed', 'Always (upon invoice)')]
example_amount
Monetary
currency_field='currency_id'
default=1000
readonly=True
store=False
example_date
Date
default=_default_example_date
store=False
string='Date example'
example_invalid
Boolean
compute='_compute_example_invalid'
example_preview
Html
compute='_compute_example_preview'
example_preview_discount
Html
compute='_compute_example_preview'
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Terms'
translate=True
note
Html
string='Description on the Invoice'
translate=True
sequence
Integer
default=10
required=True
copy_data(self, default=None)
days_next_month
Char
default='10'
readonly=False
size=2
string='Days on the next month'
delay_type
Selection
default='days_after'
required=True
args: [('days_after', 'Days after invoice date'), ('days_after_end_of_month', 'Days after end of month'), ('days_after_end_of_next_month', 'Days after end of next month'), ('days_end_of_month_on_the', 'Days end of month on the')]
display_days_next_month
Boolean
compute='_compute_display_days_next_month'
nb_days
Integer
compute='_compute_days'
readonly=False
store=True
string='Days'
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Terms'
args: 'account.payment.term'
value
Selection
default='percent'
help='Select here the kind of valuation related to this payment terms line.'
required=True
args: [('percent', 'Percent'), ('fixed', 'Fixed')]
value_amount
Float
compute='_compute_value_amount'
digits='Payment Terms'
help='For percent enter a ratio between 0-100.'
readonly=False
store=True
string='Due'
No public methods.
active
Boolean
default=True
can_be_proposed
Boolean
compute='_compute_can_be_proposed'
copy=False
store=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
line_ids
One2many → account.reconcile.model.line
copy=True
args: 'account.reconcile.model.line', 'model_id'
mapped_partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_partner_mapping'
copy=False
store=True
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is lower than or equal to'), ('greater', 'Is greater than or equal to'), ('between', 'Is between')]
string='Amount'
tracking=True
match_amount_max
Float
string='Amount Max Parameter'
tracking=True
match_amount_min
Float
string='Amount Min Parameter'
tracking=True
match_journal_ids
Many2many → account.journal
check_company=True
domain="[('type', 'in', ('bank', 'cash', 'credit'))]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when either the statement line label, the transaction details or the note matches the following:\n * Contains: The statement line must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
tracking=True
match_label_param
Char
string='Label Parameter'
tracking=True
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Partners'
args: 'res.partner'
name
Char
required=True
string='Name'
translate=True
next_activity_type_id
Many2one → mail.activity.type
comodel_name='mail.activity.type'
string='Next Activity'
sequence
Integer
default=10
required=True
trigger
Selection
default='manual'
help='Validate the statement line automatically (reconciliation based on your rule).'
required=True
tracking=True
args: [('manual', 'Manual'), ('auto_reconcile', 'Automated')]
action_reconcile_stat(self)
action_set_auto_reconcile(self)
action_set_manual(self)
copy_data(self, default=None)
account_id
Many2one → account.account
check_company=True
domain="[('account_type', '!=', 'off_balance')]"
ondelete='cascade'
string='Account'
args: 'account.account'
amount
Float
compute='_compute_float_amount'
store=True
string='Float Amount'
amount_string
Char
default='100'
help='Value for the amount of the writeoff line\n * Percentage: Percentage of the balance, between 0 and 100.\n * Fixed: The fixed value of the writeoff. The amount will count as a debit if it is negative, as a credit if it is positive.\n * From Label: There is no need for regex delimiter, only the regex is needed. For instance if you want to extract the amount from\nR:9672938 10/07 AX 9415126318 T:5L:NA BRT: 3358,07 C:\nYou could enter\nBRT: ([\\d,]+)\n If the label is "01870912 0009065 00115" and you need the amount in decimal\n format (e.g. 90.65), you can use a regex with capturing groups, for example:\n \\s+0*(\\d+?)(\\d{2})(?=\\s)\n In this case:\n • the first group captures the integer part\n • the second group captures the decimal part (last two digits)\n '
required=True
string='Amount'
amount_type
Selection
default='percentage'
required=True
selection=[('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('percentage_st_line', 'Percentage of statement line'), ('regex', 'From label')]
company_id
Many2one
related='model_id.company_id'
store=True
label
Char
string='Label'
translate=True
model_id
Many2one → account.reconcile.model
index='btree_not_null'
ondelete='cascade'
readonly=True
args: 'account.reconcile.model'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Partner'
sequence
Integer
default=10
required=True
tax_ids
Many2many → account.tax
check_company=True
comodel_name='account.tax'
ondelete='restrict'
string='Taxes'
No public methods.
active
Boolean
default=True
string='Active'
allow_foreign_vat
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Allow Foreign VAT'
availability_condition
Selection
compute='_compute_default_availability_condition'
readonly=False
selection=[('country', 'Country Matches'), ('coa', 'Chart of Accounts Matches'), ('always', 'Always')]
store=True
string='Availability'
chart_template
Selection
selection=<expr>
string='Chart of Accounts'
column_ids
One2many → account.report.column
comodel_name='account.report.column'
inverse_name='report_id'
string='Columns'
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
currency_translation
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
selection=[('current', 'Use the most recent rate at the date of the report'), ('cta', 'Use CTA')]
store=True
string='Currency Translation'
default_opening_date_filter
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
selection=[('this_year', 'This Year'), ('this_quarter', 'This Quarter'), ('this_month', 'This Month'), ('today', 'Today'), ('previous_month', 'Last Month'), ('previous_quarter', 'Last Quarter'), ('previous_year', 'Last Year'), ('this_return_period', 'This Return Period'), ('previous_return_period', 'Last Return Period')]
store=True
string='Default Opening'
filter_account_type
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
selection=[('both', 'Payable and receivable'), ('payable', 'Payable'), ('receivable', 'Receivable'), ('disabled', 'Disabled')]
store=True
string='Account Types'
filter_aml_ir_filters
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
help='If activated, user-defined filters on journal items can be selected on this report'
precompute=True
readonly=False
store=True
string='Favorite Filters'
filter_analytic
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Analytic Filter'
filter_budgets
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Budgets'
filter_date_range
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Date Range'
filter_growth_comparison
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Growth Comparison'
filter_hide_0_lines
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
selection=[('by_default', 'Enabled by Default'), ('optional', 'Optional'), ('never', 'Never')]
store=True
string='Hide lines at 0'
filter_hierarchy
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
selection=[('by_default', 'Enabled by Default'), ('optional', 'Optional'), ('never', 'Never')]
store=True
string='Account Groups'
filter_journals
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Journals'
filter_multi_company
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
selection=[('selector', 'Use Company Selector'), ('tax_units', 'Use Tax Units')]
store=True
string='Multi-Company'
filter_partner
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Partners'
filter_period_comparison
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Period Comparison'
filter_show_draft
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Draft Entries'
filter_unfold_all
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Unfold All'
filter_unreconciled
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Unreconciled Entries'
integer_rounding
Selection
selection=[('HALF-UP', 'Nearest'), ('UP', 'Up'), ('DOWN', 'Down')]
string='Integer Rounding'
line_ids
One2many → account.report.line
comodel_name='account.report.line'
inverse_name='report_id'
string='Lines'
load_more_limit
Integer
string='Load More Limit'
name
Char
required=True
string='Name'
translate=True
only_tax_exigible
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
precompute=True
readonly=False
store=True
string='Only Tax Exigible Lines'
prefix_groups_threshold
Integer
default=4000
string='Prefix Groups Threshold'
root_report_id
Many2one → account.report
comodel_name='account.report'
help='The report this report is a variant of.'
index='btree_not_null'
string='Root Report'
search_bar
Boolean
string='Search Bar'
section_main_report_ids
Many2many → account.report
column1='sub_report_id'
column2='main_report_id'
comodel_name='account.report'
relation='account_report_section_rel'
string='Section Of'
section_report_ids
Many2many → account.report
column1='main_report_id'
column2='sub_report_id'
comodel_name='account.report'
relation='account_report_section_rel'
string='Sections'
sequence
Integer
string='Sequence'
use_sections
Boolean
compute='_compute_use_sections'
help='Create a structured report with multiple sections for convenient navigation and simultaneous printing.'
readonly=False
store=True
string='Composite Report'
variant_report_ids
One2many → account.report
comodel_name='account.report'
inverse_name='root_report_id'
string='Variants'
copy(self, default=None)
copy_data(self, default=None)
write(self, vals)
blank_if_zero
Boolean
help='When checked, 0 values will not show in this column.'
string='Blank if Zero'
custom_audit_action_id
Many2one → ir.actions.act_window
comodel_name='ir.actions.act_window'
string='Custom Audit Action'
expression_label
Char
required=True
string='Expression Label'
figure_type
Selection
default='monetary'
required=True
selection=FIGURE_TYPE_SELECTION_VALUES
string='Figure Type'
name
Char
required=True
string='Name'
translate=True
report_id
Many2one → account.report
comodel_name='account.report'
index='btree_not_null'
string='Report'
sequence
Integer
string='Sequence'
sortable
Boolean
string='Sortable'
No public methods.
auditable
Boolean
compute='_compute_auditable'
readonly=False
store=True
string='Auditable'
blank_if_zero
Boolean
help="When checked, 0 values will not show when displaying this expression's value."
string='Blank if Zero'
carryover_target
Char
help='Formula in the form line_code.expression_label. This allows setting the target of the carryover for this expression (on a _carryover_*-labeled expression), in case it is different from the parent line.'
string='Carry Over To'
date_scope
Selection
default='strict_range'
required=True
selection=[('from_beginning', 'From the very start'), ('from_fiscalyear', 'From the start of the fiscal year'), ('to_beginning_of_fiscalyear', 'At the beginning of the fiscal year'), ('to_beginning_of_period', 'At the beginning of the period'), ('strict_range', 'Strictly on the given dates'), ('previous_return_period', 'From previous return period')]
string='Date Scope'
engine
Selection
required=True
selection=[('domain', 'Odoo Domain'), ('tax_tags', 'Tax Tags'), ('aggregation', 'Aggregate Other Formulas'), ('account_codes', 'Prefix of Account Codes'), ('external', 'External Value'), ('custom', 'Custom Python Function')]
string='Computation Engine'
figure_type
Selection
selection=FIGURE_TYPE_SELECTION_VALUES
string='Figure Type'
formula
Char
required=True
string='Formula'
green_on_positive
Boolean
default=True
string='Is Growth Good when Positive'
label
Char
copy=True
required=True
string='Label'
report_line_id
Many2one → account.report.line
comodel_name='account.report.line'
index=True
ondelete='cascade'
required=True
string='Report Line'
report_line_name
Char
related='report_line_id.name'
string='Report Line Name'
subformula
Char
string='Subformula'
create(self, vals_list)
write(self, vals)
carryover_origin_expression_label
Char
string='Origin Expression Label'
carryover_origin_report_line_id
Many2one → account.report.line
comodel_name='account.report.line'
string='Origin Line'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
date
Date
required=True
name
Char
required=True
report_country_id
Many2one
related='target_report_line_id.report_id.country_id'
string='Country'
target_report_expression_id
Many2one → account.report.expression
comodel_name='account.report.expression'
ondelete='cascade'
required=True
string='Target Expression'
target_report_expression_label
Char
related='target_report_expression_id.label'
string='Target Expression Label'
target_report_line_id
Many2one
related='target_report_expression_id.report_line_id'
string='Target Line'
text_value
Char
string='Text Value'
value
Float
string='Numeric Value'
No public methods.
account_codes_formula
Char
help='Internal field to shorten expression_ids creation for the account_codes engine'
inverse='_inverse_account_codes_formula'
store=False
string='Account Codes Formula Shortcut'
action_id
Many2one → ir.actions.actions
comodel_name='ir.actions.actions'
help='Setting this field will turn the line into a link, executing the action when clicked.'
string='Action'
aggregation_formula
Char
help='Internal field to shorten expression_ids creation for the aggregation engine'
inverse='_inverse_aggregation_formula'
store=False
string='Aggregation Formula Shortcut'
children_ids
One2many → account.report.line
comodel_name='account.report.line'
inverse_name='parent_id'
string='Child Lines'
code
Char
help='Unique identifier for this line.'
string='Code'
domain_formula
Char
help='Internal field to shorten expression_ids creation for the domain engine'
inverse='_inverse_domain_formula'
store=False
string='Domain Formula Shortcut'
expression_ids
One2many → account.report.expression
comodel_name='account.report.expression'
inverse_name='report_line_id'
string='Expressions'
external_formula
Char
help='Internal field to shorten expression_ids creation for the external engine'
inverse='_inverse_external_formula'
store=False
string='External Formula Shortcut'
foldable
Boolean
help="By default, we always unfold the lines that can be. If this is checked, the line won't be unfolded by default, and a folding button will be displayed."
string='Foldable'
groupby
Char
help='Comma-separated list of fields from account.move.line (Journal Item). When set, this line will generate sublines grouped by those keys.'
string='Group By'
hide_if_zero
Boolean
help='This line and its children will be hidden when all of their columns are 0.'
string='Hide if Zero'
hierarchy_level
Integer
compute='_compute_hierarchy_level'
precompute=True
readonly=False
recursive=True
required=True
store=True
string='Level'
horizontal_split_side
Selection
compute='_compute_horizontal_split_side'
readonly=False
recursive=True
selection=[('left', 'Left'), ('right', 'Right')]
store=True
string='Horizontal Split Side'
name
Char
required=True
string='Name'
translate=True
parent_id
Many2one → account.report.line
comodel_name='account.report.line'
index='btree_not_null'
ondelete='set null'
string='Parent Line'
print_on_new_page
Boolean
help='When checked this line and everything after it will be printed on a new page.'
args: 'Print On New Page'
report_id
Many2one → account.report
comodel_name='account.report'
compute='_compute_report_id'
index=True
ondelete='cascade'
precompute=True
readonly=False
recursive=True
required=True
store=True
string='Parent Report'
sequence
Integer
string='Sequence'
tax_tags_formula
Char
help='Internal field to shorten expression_ids creation for the tax_tags engine'
inverse='_inverse_aggregation_tax_formula'
store=False
string='Tax Tags Formula Shortcut'
user_groupby
Char
compute='_compute_user_groupby'
help='Comma-separated list of fields from account.move.line (Journal Item). When set, this line will generate sublines grouped by those keys.'
precompute=True
readonly=False
store=True
string='User Group By'
No public methods.
end_date
Date
help='Date (inclusive) to which the numbers are resequenced. If not set, all Journal Entries up to the end of the period are resequenced.'
first_date
Date
help='Date (inclusive) from which the numbers are resequenced.'
first_name
Char
compute='_compute_first_name'
readonly=False
required=True
store=True
string='First New Sequence'
move_ids
Many2many → account.move
new_values
Text
compute='_compute_new_values'
ordering
Selection
default='keep'
required=True
args: [('keep', 'Keep current order'), ('date', 'Reorder by accounting date')]
preview_moves
Text
compute='_compute_preview_moves'
sequence_number_reset
Char
compute='_compute_sequence_number_reset'
default_get(self, fields)
resequence(self)
name
Char
compute='_compute_root'
parent_id
Many2one → account.root
compute='_compute_root'
args: 'account.root'
browse(self, ids=())
chains_to_hash_with_gaps
Json
compute='_compute_data'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
country_code
Char
related='company_id.account_fiscal_country_id.code'
hash_date
Date
compute='_compute_hash_date'
help='The selected Date'
readonly=False
required=True
store=True
string='Hash All Entries'
max_hash_date
Date
compute='_compute_max_hash_date'
help='Highest Date such that all posted journal entries prior to (including) the date are secured. Only journal entries after the hard lock date are considered.'
string='Max Hash Date'
move_to_hash_ids
Many2many → account.move
comodel_name='account.move'
compute='_compute_data'
help='All moves that will be hashed'
not_hashable_unlocked_move_ids
Many2many → account.move
comodel_name='account.move'
compute='_compute_data'
help='All unhashable moves before the selected date that are not protected by the Hard Lock Date'
unreconciled_bank_statement_line_ids
Many2many → account.bank.statement.line
comodel_name='account.bank.statement.line'
compute='_compute_data'
help='All unreconciled bank statement lines before the selected date.'
warnings
Json
compute='_compute_warnings'
action_secure_entries(self)
action_show_draft_moves_in_hashed_period(self)
action_show_moves(self, moves)
bank_bic
Char
readonly=False
related='bank_id.bic'
string='Bic'
company_id
Many2one → res.company
compute='_compute_company_id'
required=True
args: 'res.company'
linked_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_linked_journal_id'
inverse='set_linked_journal_id'
string='Journal'
new_journal_name
Char
default=<expr>
help='Will be used to name the Journal related to this bank account'
inverse='set_linked_journal_id'
required=True
num_journals_without_account_bank
Integer
default=<expr>
num_journals_without_account_credit
Integer
default=<expr>
res_partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
ondelete='cascade'
required=True
create(self, vals_list)
default_linked_journal_id(self, journal_type)
set_linked_journal_id(self)
validate(self)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
default=0.0
digits=(16, 4)
required=True
tracking=True
amount_type
Selection
default='percent'
help='\n - Group of Taxes: The tax is a set of sub taxes.\n - Fixed: The tax amount stays the same whatever the price.\n - Percentage: The tax amount is a % of the price:\n e.g 100 * (1 + 10%) = 110 (not price included)\n e.g 110 / (1 + 10%) = 100 (price included)\n - Percentage Tax Included: The tax amount is a division of the price:\n e.g 180 / (1 - 10%) = 200 (not price included)\n e.g 200 * (1 - 10%) = 180 (price included)\n '
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage'), ('division', 'Percentage Tax Included')]
string='Tax Computation'
tracking=True
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Include in Analytic Cost'
cash_basis_transition_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
children_tax_ids
Many2many → account.tax
check_company=True
string='Children Taxes'
args: 'account.tax', 'account_tax_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
company_price_include
Selection
related='company_id.account_price_include'
country_code
Char
readonly=True
related='country_id.code'
country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_country_id'
help='The country for which this tax is applicable.'
precompute=True
readonly=False
required=True
store=True
string='Country'
description
Html
string='Description'
translate=html_translate
display_alternative_taxes_field
Boolean
compute='_compute_display_alternative_taxes_field'
fiscal_position_ids
Many2many → account.fiscal.position
column1='account_tax_id'
column2='account_fiscal_position_id'
comodel_name='account.fiscal.position'
relation='account_fiscal_position_account_tax_rel'
has_negative_factor
Boolean
compute='_compute_has_negative_factor'
hide_tax_exigibility
Boolean
readonly=True
related='company_id.tax_exigibility'
string='Hide Use Cash Basis Option'
include_base_amount
Boolean
default=False
help='If set, taxes with a higher sequence than this one will be affected by it, provided they accept it.'
string='Affect Base of Subsequent Taxes'
tracking=True
invoice_label
Char
string='Label on Invoices'
translate=True
invoice_legal_notes
Html
help='Legal mentions that have to be printed on the invoices.'
string='Legal Notes'
translate=True
invoice_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
compute='_compute_invoice_repartition_line_ids'
domain=[('document_type', '=', 'invoice')]
help='Distribution when the tax is used on an invoice'
inverse_name='tax_id'
readonly=False
store=True
string='Distribution for Invoices'
is_base_affected
Boolean
default=True
help='If set, taxes with a lower sequence might affect this one, provided they try to do it.'
string='Base Affected by Previous Taxes'
tracking=True
is_domestic
Boolean
compute='_compute_is_domestic'
precompute=True
store=True
is_used
Boolean
compute='_compute_is_used'
string='Tax used'
name
Char
required=True
string='Tax Name'
tracking=True
translate=True
original_tax_ids
Many2many → account.tax
column1='dest_tax_id'
column2='src_tax_id'
comodel_name='account.tax'
domain="[\n ('type_tax_use', '=', type_tax_use),\n ('is_domestic', '=', True),\n ]"
help='List of taxes to replace when applying any of the stipulated fiscal positions.'
ondelete='cascade'
relation='account_tax_alternatives'
string='Replaces'
price_include
Boolean
compute='_compute_price_include'
help='Determines whether the price you use on the product and invoices includes this tax.'
search='_search_price_include'
price_include_override
Selection
help="Overrides the Company's default on whether the price you use on the product and invoices includes this tax."
selection=[('tax_included', 'Tax Included'), ('tax_excluded', 'Tax Excluded')]
string='Included in Price'
tracking=True
refund_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
compute='_compute_refund_repartition_line_ids'
domain=[('document_type', '=', 'refund')]
help='Distribution when the tax is used on a refund'
inverse_name='tax_id'
readonly=False
store=True
string='Distribution for Refund Invoices'
repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
inverse_name='tax_id'
string='Distribution'
repartition_lines_str
Char
compute='_compute_repartition_lines_str'
string='Repartition Lines'
tracking=True
replacing_tax_ids
Many2many → account.tax
column1='src_tax_id'
column2='dest_tax_id'
comodel_name='account.tax'
readonly=True
relation='account_tax_alternatives'
string='Replaced by'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Exigibility'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
comodel_name='account.tax.group'
compute='_compute_tax_group_id'
domain="[('country_id', 'in', (country_id, False))]"
precompute=True
readonly=False
required=True
store=True
string='Tax Group'
tax_label
Char
compute='_compute_tax_label'
tax_scope
Selection
string='Tax Scope'
args: [('service', 'Services'), ('consu', 'Goods')]
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note: 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment."
required=True
string='Tax Type'
tracking=True
args: TYPE_TAX_USE
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True, include_caba_tags=False, rounding_method=None)
copy_data(self, default=None)
create(self, vals_list)
flatten_taxes_hierarchy(self)
get_tax_tags(self, is_refund, repartition_type)
name_search(self, name='', domain=None, operator='ilike', limit=100)
onchange_amount(self)
onchange_amount_type(self)
onchange_price_include(self)
unlink_except_tax_used(self)
validate_tax_group_id(self)
write(self, vals)
advance_tax_payment_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Downpayments posted on this account will be considered by the Tax Closing Entry.'
string='Tax Advance Account'
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
country_code
Char
related='country_id.code'
country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_country_id'
help='The country for which this tax group is applicable.'
precompute=True
readonly=False
store=True
string='Country'
name
Char
required=True
translate=True
pos_receipt_label
Char
string='PoS receipt label'
preceding_subtotal
Char
help="If set, this value will be used on documents as the label of a subtotal excluding this tax group before displaying it. If not set, the tax group will be displayed after the 'Untaxed amount' subtotal."
string='Preceding Subtotal'
translate=True
sequence
Integer
default=10
tax_payable_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Tax current account used as a counterpart to the Tax Closing Entry when in favor of the authorities.'
string='Tax Payable Account'
tax_receivable_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Tax current account used as a counterpart to the Tax Closing Entry when in favor of the company.'
string='Tax Receivable Account'
No public methods.
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'off_balance'))]"
help='Account on which to post the tax amount'
string='Account'
company_id
Many2one → res.company
comodel_name='res.company'
help='The company this distribution line belongs to.'
related='tax_id.company_id'
store=True
string='Company'
document_type
Selection
required=True
selection=[('invoice', 'Invoice'), ('refund', 'Refund')]
string='Related to'
factor
Float
compute='_compute_factor'
help='Factor to apply on the account move lines generated from this distribution line'
string='Factor Ratio'
factor_percent
Float
default=100
digits=(16, 12)
help='Factor to apply on the account move lines generated from this distribution line, in percents'
required=True
string='%'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
sequence
Integer
default=1
help='The order in which distribution lines are displayed and matched. For refunds to work properly, invoice distribution lines should be arranged in the same order as the credit note distribution lines they correspond to.'
string='Sequence'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
domain=[('applicability', '=', 'taxes')]
ondelete='restrict'
string='Tax Grids'
tag_ids_domain
Binary
compute='_compute_tag_ids_domain'
help='Dynamic domain used for the tag that can be set on tax'
string='tag domain'
tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
index='btree_not_null'
ondelete='cascade'
use_in_tax_closing
Boolean
compute='_compute_use_in_tax_closing'
precompute=True
readonly=False
store=True
string='Tax Closing Entry'
No public methods.
account_number
Char
compute='_compute_account_number'
inverse='_inverse_account_number'
from_invoice
Boolean
qr_code
Boolean
readonly=False
related='company_id.qr_code'
vat
Char
readonly=False
related='company_id.vat'
document_layout_save(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)precision_get(self, application)
kpi_account_total_revenue
Boolean
kpi_account_total_revenue_value
Monetary
compute='_compute_kpi_account_total_revenue_value'
No public methods.
is_invoice_report
Boolean
copy=True
string='Invoice report'
No public methods.
No new fields.
Public methods (2)unlink(self)
write(self, vals)
No new fields.
Public methods (1)lazy_session_info(self)
account_templates
Binary
compute='_compute_account_templates'
exportable=False
module_uninstall(self)
write(self, vals)
No new fields.
Public methods (2)get_account_kpi_summary(self)
get_kpi_summary(self)
account_audit_log_account_id
Many2one → account.account
comodel_name='account.account'
compute='_compute_account_audit_log_account_id'
search='_search_account_audit_log_account_id'
string='Account'
account_audit_log_company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_account_audit_log_company_id'
search='_search_account_audit_log_company_id'
string='Company '
account_audit_log_move_id
Many2one → account.move
comodel_name='account.move'
compute='_compute_account_audit_log_move_id'
search='_search_account_audit_log_move_id'
string='Journal Entry'
account_audit_log_partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_account_audit_log_partner_id'
search='_search_account_audit_log_partner_id'
string='Partner'
account_audit_log_preview
Text
compute='_compute_account_audit_log_preview'
search='_search_account_audit_log_preview'
string='Description'
account_audit_log_restricted
Boolean
compute='_compute_account_audit_log_restricted'
search='_search_account_audit_log_restricted'
string='Protected by restricted Audit Logs'
account_audit_log_tax_id
Many2one → account.tax
comodel_name='account.tax'
compute='_compute_account_audit_log_tax_id'
search='_search_account_audit_log_tax_id'
string='Tax'
write(self, vals)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)write(self, vals)
No new fields.
Public methods (2)action_close_panel_account_dashboard(self)
action_close_panel_account_invoice(self)
No new fields.
Public methods (8)action_open_step_bank_account(self)
action_open_step_base_document_layout(self)
action_open_step_chart_of_accounts(self)
action_open_step_company_data(self)
action_open_step_create_invoice(self)
action_open_step_fiscal_year(self)
action_open_step_sales_tax(self)
action_validate_step_base_document_layout(self)
No new fields.
Public methods (0)No public methods.
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.'
ondelete='restrict'
string='Expense Account'
tracking=True
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='This account will be used when validating a customer invoice.'
ondelete='restrict'
string='Income Account'
tracking=True
args: 'account.account'
No public methods.
tax_string
Char
compute='_compute_tax_string'
No public methods.
account_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
domain="[('applicability', '=', 'products')]"
help='Tags to be set on the base and tax journal items created for this product.'
string='Account Tags'
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
property_account_expense_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category. If anglo-saxon accounting with automated valuation method is configured, the expense account on the product category will be used.'
ondelete='restrict'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category.'
ondelete='restrict'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'purchase')]
help='Default taxes used when buying the product'
string='Purchase Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
tax_string
Char
compute='_compute_tax_string'
taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'sale')]
help='Default taxes used when selling the product'
string='Sales Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
create(self, vals_list)
get_product_accounts(self, fiscal_pos=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
account_cash_basis_base_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
account_default_pos_receivable_account_id
Many2one → account.account
check_company=True
string='Default PoS Receivable Account'
args: 'account.account'
account_discount_expense_allocation_id
Many2one → account.account
comodel_name='account.account'
string='Separate account for expense discount'
account_discount_income_allocation_id
Many2one → account.account
comodel_name='account.account'
string='Separate account for income discount'
account_enabled_tax_country_ids
Many2many → res.country
comodel_name='res.country'
compute='_compute_account_enabled_tax_country_ids'
help='Technical field containing the countries for which this company is using tax-related features(hence the ones for which l10n modules need to show tax-related fields).'
string='l10n-used countries'
account_fiscal_country_group_codes
Json
compute='_compute_account_fiscal_country_group_codes'
account_fiscal_country_id
Many2one → res.country
comodel_name='res.country'
compute='compute_account_tax_fiscal_country'
help='The country to use the tax reports from for this company'
readonly=False
store=True
string='Fiscal Country'
account_journal_early_pay_discount_gain_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
string='Cash Discount Write-Off Gain Account'
account_journal_early_pay_discount_loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
string='Cash Discount Write-Off Loss Account'
account_journal_suspense_account_id
Many2one → account.account
check_company=True
string='Journal Suspense Account'
args: 'account.account'
account_opening_date
Date
help='That is the date of the opening entry.'
string='Opening Entry'
account_opening_journal_id
Many2one → account.journal
comodel_name='account.journal'
help="Journal where the opening entry of this company's accounting has been posted."
readonly=False
related='account_opening_move_id.journal_id'
string='Opening Journal'
account_opening_move_id
Many2one → account.move
comodel_name='account.move'
help="The journal entry containing the initial balance of all this company's accounts."
string='Opening Journal Entry'
account_price_include
Selection
default='tax_excluded'
help='Default on whether the sales price used on the product and invoices with this Company includes its taxes.'
required=True
selection=[('tax_included', 'Tax Included'), ('tax_excluded', 'Tax Excluded')]
string='Default Sales Price Include'
account_purchase_receipt_fiscal_position_id
Many2one → account.fiscal.position
check_company=True
string='Default Purchase Receipt Fiscal Position'
args: 'account.fiscal.position'
account_purchase_tax_id
Many2one → account.tax
check_company=True
string='Default Purchase Tax'
args: 'account.tax'
account_sale_tax_id
Many2one → account.tax
check_company=True
string='Default Sale Tax'
args: 'account.tax'
account_storno
Boolean
compute='_compute_account_storno'
readonly=False
store=True
string='Storno accounting'
account_use_credit_limit
Boolean
help='Enable the use of credit limit on partners.'
string='Sales Credit Limit'
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
automatic_entry_default_journal_id
Many2one → account.journal
check_company=True
domain="[('type', '=', 'general')]"
help='Journal used by default for moving the period of an entry'
args: 'account.journal'
autopost_bills
Boolean
default=True
string='Auto-validate bills'
bank_account_code_prefix
Char
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
batch_payment_sequence_id
Many2one → ir.sequence
comodel_name='ir.sequence'
copy=False
default=<expr>
readonly=True
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template
Selection
selection='_chart_template_selection'
company_registry_placeholder
Char
compute='_compute_company_registry_placeholder'
company_vat_placeholder
Char
compute='_compute_company_vat_placeholder'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
default_cash_difference_expense_account_id
Many2one → account.account
check_company=True
string='Cash Difference Expense'
args: 'account.account'
default_cash_difference_income_account_id
Many2one → account.account
check_company=True
string='Cash Difference Income'
args: 'account.account'
display_account_storno
Boolean
compute='_compute_display_account_storno'
display_invoice_amount_total_words
Boolean
string='Total amount of invoice in letters'
display_invoice_tax_company_currency
Boolean
default=True
string='Taxes in company currency'
domestic_fiscal_position_id
Many2one → account.fiscal.position
comodel_name='account.fiscal.position'
compute='_compute_domestic_fiscal_position_id'
store=True
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_account_id
Many2one → account.account
comodel_name='account.account'
domain=ACCOUNT_DOMAIN
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.'
string='Expense Account'
expense_accrual_account_id
Many2one → account.account
check_company=True
domain="[('internal_group', '=', 'liability'), ('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
help='Account used to move the period of an expense'
args: 'account.account'
expense_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', 'in', ('expense', 'expense_other'))]"
string='Loss Exchange Rate Account'
fiscal_position_ids
One2many → account.fiscal.position
comodel_name='account.fiscal.position'
inverse_name='company_id'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default='12'
required=True
args: MONTH_SELECTION
fiscalyear_lock_date
Date
help="Any entry up to and including that date will be postponed to a later time, in accordance with its journal's sequence."
string='Global Lock Date'
tracking=True
force_restrictive_audit_trail
Boolean
compute='_compute_force_restrictive_audit_trail'
string='Force Audit Trail'
hard_lock_date
Date
help='Any entry up to and including that date will be postponed to a later time, in accordance with its journal sequence. This lock date is irreversible and does not allow any exception.'
string='Hard Lock Date'
tracking=True
income_account_id
Many2one → account.account
comodel_name='account.account'
domain=ACCOUNT_DOMAIN
help='This account will be used when validating a customer invoice.'
string='Income Account'
income_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('internal_group', '=', 'income')]"
string='Gain Exchange Rate Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Default incoterm'
args: 'account.incoterms'
invoice_terms
Html
string='Default Terms and Conditions'
translate=True
invoice_terms_html
Html
compute='_compute_invoice_terms_html'
readonly=False
sanitize_attributes=False
store=True
string='Default Terms and Conditions as a Web page'
translate=True
link_qr_code
Boolean
string='Display Link QR-code'
multi_vat_foreign_country_ids
Many2many → res.country
comodel_name='res.country'
compute='_compute_multi_vat_foreign_country'
help='Countries for which the company has a VAT number'
string='Foreign VAT countries'
price_difference_account_id
Many2one → account.account
comodel_name='account.account'
domain=ACCOUNT_DOMAIN
help='During perpetual valuation, this account will hold the price difference between the standard price and the bill price.'
string='Price Difference Account'
purchase_lock_date
Date
help="Any purchase entry prior to and including this date will be postponed to a later date, in accordance with its journal's sequence."
string='Purchase Lock date'
tracking=True
qr_code
Boolean
string='Display QR-code on invoices'
quick_edit_mode
Selection
selection=[('out_invoices', 'Customer Invoices'), ('in_invoices', 'Vendor Bills'), ('out_and_in_invoices', 'Customer Invoices and Vendor Bills')]
string='Quick encoding'
restrictive_audit_trail
Boolean
help='Enable this option to prevent deletion of journal item related logs'
string='Restrictive Audit Trail'
tracking=True
revenue_accrual_account_id
Many2one → account.account
check_company=True
domain="[('internal_group', '=', 'asset'), ('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
help='Account used to move the period of a revenue'
args: 'account.account'
sale_lock_date
Date
help="Any sales entry prior to and including this date will be postponed to a later date, in accordance with its journal's sequence."
string='Sales Lock Date'
tracking=True
tax_calculation_rounding_method
Selection
default='round_globally'
string='Tax Calculation Rounding Method'
args: [('round_globally', 'Round per Tax'), ('round_per_line', 'Round per Line')]
tax_cash_basis_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
string='Cash Basis Journal'
tax_exigibility
Boolean
string='Use Cash Basis'
tax_lock_date
Date
help="Any entry with taxes up to and including that date will be postponed to a later time, in accordance with its journal's sequence. The tax lock date is automatically set when the tax closing entry is posted."
string='Tax Return Lock Date'
tracking=True
terms_type
Selection
default='plain'
string='Terms & Conditions format'
args: [('plain', 'Add a Note'), ('html', 'Add a link to a Web Page')]
transfer_account_code_prefix
Char
string='Prefix of the transfer accounts'
transfer_account_id
Many2one → account.account
check_company=True
domain="[('reconcile', '=', True), ('account_type', '=', 'asset_current')]"
help='Intermediary account used when moving money from a liquidity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
user_fiscalyear_lock_date
Date
compute='_compute_user_fiscalyear_lock_date'
user_hard_lock_date
Date
compute='_compute_user_hard_lock_date'
user_purchase_lock_date
Date
compute='_compute_user_purchase_lock_date'
user_sale_lock_date
Date
compute='_compute_user_sale_lock_date'
user_tax_lock_date
Date
compute='_compute_user_tax_lock_date'
action_save_onboarding_company_data(self)
action_save_onboarding_sale_tax(self)
compute_account_tax_fiscal_country(self)
compute_fiscalyear_dates(self, current_date)
create(self, vals_list)
get_chart_of_accounts_or_fail(self)
get_new_account_code(self, current_code, old_prefix, new_prefix)
get_next_batch_payment_communication(self)
get_unaffected_earnings_account(self)
install_l10n_modules(self)
opening_move_posted(self)
reflect_code_prefix_change(self, old_code, new_code)
setting_init_bank_account_action(self)
setting_init_credit_card_account_action(self)
write(self, vals)
account_cash_basis_base_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
readonly=False
related='company_id.account_cash_basis_base_account_id'
string='Base Tax Received Account'
account_default_credit_limit
Monetary
compute='_compute_account_default_credit_limit'
help='This is the default credit limit that will be used on partners that do not have a specific limit on them.'
inverse='_inverse_account_default_credit_limit'
readonly=False
string='Default Credit Limit'
account_discount_expense_allocation_id
Many2one → account.account
comodel_name='account.account'
domain="[('account_type', 'in', ('income', 'income_other', 'expense', 'expense_other'))]"
readonly=False
related='company_id.account_discount_expense_allocation_id'
string='Customer Invoices Discounts Account'
account_discount_income_allocation_id
Many2one → account.account
comodel_name='account.account'
domain="[('account_type', 'in', ('income', 'income_other', 'expense', 'expense_other'))]"
readonly=False
related='company_id.account_discount_income_allocation_id'
string='Vendor Bills Discounts Account'
account_fiscal_country_id
Many2one
readonly=False
related='company_id.account_fiscal_country_id'
store=False
string='Fiscal Country Code'
account_journal_early_pay_discount_gain_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', 'in', ('income', 'income_other', 'expense', 'expense_other'))]"
help='Account for the difference amount after the income discount has been granted'
readonly=False
related='company_id.account_journal_early_pay_discount_gain_account_id'
string='Early Discount Gain'
account_journal_early_pay_discount_loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', 'in', ('expense', 'expense_other', 'income', 'income_other'))]"
help='Account for the difference amount after the expense discount has been granted'
readonly=False
related='company_id.account_journal_early_pay_discount_loss_account_id'
string='Early Discount Loss'
account_journal_suspense_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', 'in', ('asset_current', 'liability_current'))]"
help='Bank Transactions are posted immediately after import or synchronization. Their counterparty is the bank suspense account.\nReconciliation replaces the latter by the definitive account(s).'
readonly=False
related='company_id.account_journal_suspense_account_id'
string='Bank Suspense'
account_price_include
Selection
help='Default on whether the sales price used on the product and invoices with this Company includes its taxes.'
readonly=False
related='company_id.account_price_include'
required=True
string='Default Sales Price Include'
account_storno
Boolean
readonly=False
related='company_id.account_storno'
string='Storno accounting'
account_use_credit_limit
Boolean
help='Enable the use of credit limit on partners.'
readonly=False
related='company_id.account_use_credit_limit'
string='Sales Credit Limit'
autopost_bills
Boolean
readonly=False
related='company_id.autopost_bills'
chart_template
Selection
default=<expr>
selection=<expr>
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_exchange_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
domain="[('type', '=', 'general')]"
help='The accounting journal where automatic exchange differences will be registered'
readonly=False
related='company_id.currency_exchange_journal_id'
string='Currency Exchange Journal'
currency_id
Many2one → res.currency
help='Main currency of the company.'
readonly=False
related='company_id.currency_id'
required=True
string='Currency'
args: 'res.currency'
display_account_storno
Boolean
related='company_id.display_account_storno'
display_invoice_amount_total_words
Boolean
readonly=False
related='company_id.display_invoice_amount_total_words'
string='Total amount of invoice in letters'
display_invoice_tax_company_currency
Boolean
readonly=False
related='company_id.display_invoice_tax_company_currency'
string='Taxes in company currency'
expense_account_id
Many2one
check_company=True
readonly=False
related='company_id.expense_account_id'
expense_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', 'in', ('expense', 'expense_other'))]"
readonly=False
related='company_id.expense_currency_exchange_account_id'
string='Loss Exchange Rate Account'
force_restrictive_audit_trail
Boolean
readonly=False
related='company_id.force_restrictive_audit_trail'
string='Forced Audit Trail'
group_cash_rounding
Boolean
implied_group='account.group_cash_rounding'
string='Cash Rounding'
group_sale_delivery_address
Boolean
implied_group='account.group_delivery_invoice_address'
args: 'Customer Addresses'
has_accounting_entries
Boolean
compute='_compute_has_chart_of_accounts'
has_chart_of_accounts
Boolean
compute='_compute_has_chart_of_accounts'
string='Company has a chart of accounts'
income_account_id
Many2one
check_company=True
readonly=False
related='company_id.income_account_id'
income_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('internal_group', '=', 'income')]"
readonly=False
related='company_id.income_currency_exchange_account_id'
string='Gain Exchange Rate Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
readonly=False
related='company_id.incoterm_id'
string='Default incoterm'
args: 'account.incoterms'
invoice_terms
Html
readonly=False
related='company_id.invoice_terms'
string='Terms & Conditions'
invoice_terms_html
Html
readonly=False
related='company_id.invoice_terms_html'
string='Terms & Conditions as a Web page'
is_account_peppol_eligible
Boolean
compute='_compute_is_account_peppol_eligible'
string='PEPPOL eligible'
link_qr_code
Boolean
readonly=False
related='company_id.link_qr_code'
string='Display Link QR-code'
module_account_accountant
Boolean
string='Accounting'
module_account_bank_statement_extract
Boolean
compute='_compute_module_account_bank_statement_extract'
readonly=False
store=True
args: 'Bank Statement Digitization'
module_account_bank_statement_import_qif
Boolean
module_account_batch_payment
Boolean
help='This allows you grouping payments into a single batch and eases the reconciliation process.\n-This installs the account_batch_payment module.'
string='Use batch payments'
module_account_budget
Boolean
string='Budget Management'
module_account_check_printing
Boolean
module_account_extract
Boolean
string='Document Digitization'
module_account_intrastat
Boolean
string='Intrastat'
module_account_invoice_extract
Boolean
compute='_compute_module_account_invoice_extract'
readonly=False
store=True
args: 'Invoice Digitization'
module_account_iso20022
Boolean
string='SEPA Credit Transfer / ISO20022'
module_account_payment
Boolean
string='Invoice Online Payment'
module_account_peppol
Boolean
string='PEPPOL Invoicing'
module_account_reports
Boolean
module_account_sepa_direct_debit
Boolean
string='Use SEPA Direct Debit'
module_currency_rate_live
Boolean
string='Automatic Currency Rates'
module_product_margin
Boolean
string='Allow Product Margin'
module_snailmail_account
Boolean
string='Snailmail'
preview_ready
Boolean
compute='_compute_terms_preview'
string='Display preview button'
purchase_tax_id
Many2one → account.tax
check_company=True
readonly=False
related='company_id.account_purchase_tax_id'
string='Default Purchase Tax'
args: 'account.tax'
qr_code
Boolean
readonly=False
related='company_id.qr_code'
string='Display SEPA QR-code'
quick_edit_mode
Selection
readonly=False
related='company_id.quick_edit_mode'
string='Quick encoding'
restrictive_audit_trail
Boolean
readonly=False
related='company_id.restrictive_audit_trail'
string='Restricted Audit Trail'
sale_tax_id
Many2one → account.tax
check_company=True
readonly=False
related='company_id.account_sale_tax_id'
string='Default Sale Tax'
args: 'account.tax'
show_sale_receipts
Boolean
config_parameter='account.show_sale_receipts'
string='Sale Receipt'
tax_calculation_rounding_method
Selection
readonly=False
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_cash_basis_journal_id
Many2one → account.journal
check_company=True
readonly=False
related='company_id.tax_cash_basis_journal_id'
string='Tax Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
readonly=False
related='company_id.tax_exigibility'
string='Cash Basis'
terms_type
Selection
readonly=False
related='company_id.terms_type'
transfer_account_id
Many2one → account.account
check_company=True
domain=[('reconcile', '=', True), ('account_type', '=', 'asset_current')]
help='Intermediary account used when moving from a liquidity account to another.'
readonly=False
related='company_id.transfer_account_id'
string='Internal Transfer'
args: 'account.account'
use_invoice_terms
Boolean
config_parameter='account.use_invoice_terms'
string='Default Terms & Conditions'
action_eu_oss_tax_mapping(self)
action_update_terms(self)
onchange_analytic_accounting(self)
onchange_module_account_budget(self)
reload_template(self)
set_values(self)
exclude_state_ids
Many2many → res.country.state
comodel_name='res.country.state'
help='Those states are ignored by the fiscal positions'
string='Fiscal Exceptions'
No public methods.
display_rounding_warning
Boolean
compute='_compute_display_rounding_warning'
help="The warning informs a rounding factor change might be dangerous on res.currency's form view."
string='Display Rounding Warning'
fiscal_country_codes
Char
default=_get_fiscal_country_codes
store=False
write(self, vals)
No new fields.
Public methods (1)get_application_groups(self, domain)
account_move_count
Integer
compute='_compute_account_move_count'
groups='account.group_account_invoice,account.group_account_readonly'
autopost_bills
Selection
default='ask'
help='Automatically post bills for this trusted partner'
required=True
selection=[('always', 'Always'), ('ask', 'Ask after 3 validations without edits'), ('never', 'Never')]
string='Auto-post bills'
available_invoice_template_pdf_report_ids
One2many → ir.actions.report
comodel_name='ir.actions.report'
compute='_compute_available_invoice_template_pdf_report_ids'
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Partner Contracts'
args: 'account.analytic.account', 'partner_id'
credit
Monetary
compute='_credit_debit_get'
groups='account.group_account_invoice,account.group_account_readonly'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
credit_limit
Float
company_dependent=True
copy=False
groups='account.group_account_invoice,account.group_account_readonly'
help='Credit limit specific to this partner.'
readonly=False
string='Credit Limit'
credit_to_invoice
Monetary
compute='_compute_credit_to_invoice'
groups='account.group_account_invoice,account.group_account_readonly'
currency_id
Many2one → res.currency
compute='_get_company_currency'
readonly=True
string='Currency'
args: 'res.currency'
customer_rank
Integer
copy=False
default=0
days_sales_outstanding
Float
compute='_compute_days_sales_outstanding'
help='[(Total Receivable/Total Revenue) * number of days since the first invoice] for this customer'
string='Days Sales Outstanding (DSO)'
debit
Monetary
compute='_credit_debit_get'
groups='account.group_account_invoice,account.group_account_readonly'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
display_invoice_edi_format
Boolean
default=<expr>
store=False
display_invoice_template_pdf_report_id
Boolean
default=_default_display_invoice_template_pdf_report_id
store=False
duplicate_bank_partner_ids
Many2many
related='bank_ids.duplicate_bank_partner_ids'
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
fiscal_country_group_codes
Json
compute='_compute_fiscal_country_group_codes'
ignore_abnormal_invoice_amount
Boolean
company_dependent=True
ignore_abnormal_invoice_date
Boolean
company_dependent=True
invoice_edi_format
Selection
compute='_compute_invoice_edi_format'
compute_sudo=True
inverse='_inverse_invoice_edi_format'
selection=[]
string='eInvoice format'
invoice_edi_format_store
Char
company_dependent=True
invoice_ids
One2many → account.move
copy=False
readonly=True
string='Invoices'
args: 'account.move', 'partner_id'
invoice_sending_method
Selection
company_dependent=True
selection=[('manual', 'Manual'), ('email', 'by Email')]
string='Invoice sending'
invoice_template_pdf_report_id
Many2one → ir.actions.report
comodel_name='ir.actions.report'
domain="[('id', 'in', available_invoice_template_pdf_report_ids)]"
readonly=False
store=True
string='Invoice report'
name
Char
tracking=True
partner_company_registry_placeholder
Char
compute='_compute_partner_company_registry_placeholder'
partner_vat_placeholder
Char
compute='_compute_partner_vat_placeholder'
property_account_payable_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('account_type', '=', 'liability_payable')]"
ondelete='restrict'
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
check_company=True
company_dependent=True
help='The fiscal position determines the taxes/accounts used for this contact.'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('account_type', '=', 'asset_receivable')]"
ondelete='restrict'
string='Account Receivable'
args: 'account.account'
property_inbound_payment_method_line_id
Many2one → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
company_dependent=True
domain=<expr>
property_outbound_payment_method_line_id
Many2one → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
company_dependent=True
domain=<expr>
property_payment_term_id
Many2one → account.payment.term
check_company=True
company_dependent=True
ondelete='restrict'
string='Customer Payment Terms'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
check_company=True
company_dependent=True
string='Vendor Payment Terms'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
show_credit_limit
Boolean
compute='_compute_show_credit_limit'
groups='account.group_account_invoice,account.group_account_readonly'
supplier_invoice_count
Integer
compute='_compute_supplier_invoice_count'
string='# Vendor Bills'
supplier_rank
Integer
copy=False
default=0
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice,account.group_account_readonly'
string='Total Invoiced'
trust
Selection
company_dependent=True
string='Degree of trust you have in this debtor'
args: [('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')]
use_partner_credit_limit
Boolean
compute='_compute_use_partner_credit_limit'
groups='account.group_account_invoice,account.group_account_readonly'
help='Set a value greater than 0.0 to activate a credit limit check'
inverse='_inverse_use_partner_credit_limit'
string='Partner Limit'
action_open_business_doc(self)
action_view_partner_invoices(self)
can_edit_vat(self)
create(self, vals_list)
get_partner_localisation_fields_required_to_invoice(self, country_id)
write(self, vals)
acc_holder_name
Char
tracking=True
acc_number
Char
tracking=True
active
Boolean
tracking=True
allow_out_payment
Boolean
help='Sending fake invoices with a fraudulent account number is a common phishing practice. To protect yourself, always verify new bank account numbers, preferably by calling the vendor, as phishing usually happens when their emails are compromised. Once verified, you can activate the ability to send money.'
tracking=True
bank_id
Many2one
tracking=True
clearing_number
Char
tracking=True
currency_id
Many2one
tracking=True
duplicate_bank_partner_ids
Many2many → res.partner
compute='_compute_duplicate_bank_partner_ids'
args: 'res.partner'
has_iban_warning
Boolean
compute='_compute_display_account_warning'
help='Technical field used to display a warning if the IBAN country is different than the holder country.'
store=True
has_money_transfer_warning
Boolean
compute='_compute_display_account_warning'
help='Technical field used to display a warning if the account is a transfer service account.'
store=True
journal_id
One2many → account.journal
check_company=True
domain=[('type', '=', 'bank')]
help='The accounting journal corresponding to this bank account.'
readonly=True
string='Account Journal'
args: 'account.journal', 'bank_account_id'
lock_trust_fields
Boolean
compute='_compute_lock_trust_fields'
money_transfer_service
Char
compute='_compute_money_transfer_service_name'
partner_country_name
Char
related='partner_id.country_id.name'
partner_customer_rank
Integer
related='partner_id.customer_rank'
partner_id
Many2one
tracking=True
partner_supplier_rank
Integer
related='partner_id.supplier_rank'
related_moves
One2many → account.move
inverse_name='partner_bank_id'
args: 'account.move'
user_has_group_validate_bank_account
Boolean
compute='_compute_user_has_group_validate_bank_account'
action_open_business_doc(self)
build_qr_code_base64(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
build_qr_code_url(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
create(self, vals_list)
default_get(self, fields)
get_available_qr_methods_in_sequence(self)
unlink(self)
write(self, vals)
sequence_number
Integer
compute='_compute_split_sequence'
store=True
sequence_prefix
Char
compute='_compute_split_sequence'
store=True
init(self)
write(self, vals)
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
No public methods.
abnormal_amount_partner_ids
One2many → res.partner
compute='_compute_abnormal_amount_partner_ids'
args: 'res.partner'
abnormal_date_partner_ids
One2many → res.partner
compute='_compute_abnormal_date_partner_ids'
args: 'res.partner'
display_force_hash
Boolean
compute='_compute_display_force_hash'
display_force_post
Boolean
compute='_compute_display_force_post'
force_hash
Boolean
string='Force Hash'
force_post
Boolean
help='Entries in the future are set to be auto-posted by default. Check this checkbox to post them now.'
string='Force'
ignore_abnormal_amount
Boolean
ignore_abnormal_date
Boolean
is_entries
Boolean
compute='_compute_is_entries'
move_ids
Many2many → account.move
default_get(self, fields)
validate_move(self)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account.account_terms_conditions_setting_banner |
Account Terms and Conditions Setting Banner | ir.ui.view | qweb | New |
account_analytic_account_view_form_inherit |
account.analytic.account.form.inherit | account.analytic.account | div | Inherits analytic.view_account_analytic_account_form |
account_analytic_account_view_list_inherit |
account.analytic.account.list.inherit | account.analytic.account | field | Inherits analytic.view_account_analytic_account_list |
account_analytic_distribution_model_form_inherit |
account.analytic.distribution.model.inherit.form | account.analytic.distribution.model | data | Inherits analytic.account_analytic_distribution_model_form_view |
account_analytic_distribution_model_tree_inherit |
account.analytic.distribution.model.inherit.list | account.analytic.distribution.model | data | Inherits analytic.account_analytic_distribution_model_tree_view |
account_analytic_plan_form_view_inherit_account |
account.analytic.plan.inherit.form | account.analytic.plan | data | Inherits analytic.account_analytic_plan_form_view |
account_automatic_entry_wizard_form |
account.automatic.entry.wizard.form | account.automatic.entry.wizard | form | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_default_terms_and_conditions |
account_default_terms_and_conditions | ir.ui.view | qweb | New |
account_incoterms_form |
account.incoterms.form | account.incoterms | form | New |
account_incoterms_view_search |
account.incoterms.search | account.incoterms | search | New |
account_invoice_report_view_tree |
account.invoice.report.view.list | account.invoice.report | list | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_journal_view_kanban |
account.journal.kanban | account.journal | kanban | New |
account_merge_wizard_form |
account.merge.wizard.form | account.merge.wizard | form | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_view_kanban |
account.move.line.kanban | account.move.line | kanban | New |
account_move_line_view_kanban_mobile |
account.move.line.kanban.mobile | account.move.line | xpath | Inherits account_move_line_view_kanban |
account_move_send_batch_wizard_form |
account.move.send.batch.wizard.form | account.move.send.batch.wizard | form | New |
account_move_send_wizard_form |
account.move.send.wizard.form | account.move.send.wizard | form | New |
account_move_view_activity |
account.move.view.activity | account.move | activity | New |
account_resequence_view |
Re-sequence Journal Entries | account.resequence.wizard | form | New |
account_tag_view_form |
Tags | account.account.tag | form | New |
account_tag_view_search |
account.tag.view.search | account.account.tag | search | New |
account_tag_view_tree |
Tags | account.account.tag | list | New |
account_tax_group_view_search |
account.tax.group.search.filters | account.tax.group | search | New |
account_tax_view_search |
account.tax.search.filters | account.tax | search | New |
account_tax_view_tree |
account.invoice.line.tax.search | account.tax | list | New |
account_terms_conditions_page |
Terms & Conditions | ir.ui.view | qweb | New |
autopost_bills_wizard |
Autopost Bills | account.autopost.bills.wizard | form | New |
bill_preview |
bill_preview | ir.ui.view | qweb | New |
digest_digest_view_form |
digest.digest.view.form.inherit.account.account | digest.digest | xpath | Inherits digest.digest_digest_view_form |
document_tax_totals |
document_tax_totals | ir.ui.view | qweb | Inherits account.document_tax_totals_template |
document_tax_totals_company_currency_template |
document_tax_totals_company_currency_template | ir.ui.view | qweb | New |
document_tax_totals_template |
document_tax_totals_template | ir.ui.view | qweb | New |
email_template_mail_gateway_failed |
email_template_mail_gateway_failed | ir.ui.view | qweb | New |
init_accounts_tree |
account.setup.opening.move.line.list | account.account | list | New |
ir_actions_report_form_inherit_account |
ir.actions.report.form.inherit.account | ir.actions.report | field | Inherits base.act_report_xml_view |
partner_missing_account_list_view |
res.partner.list | res.partner | list | New |
partner_view_buttons |
partner.view.buttons | res.partner | div | Inherits base.view_partner_form |
portal_invoice_error |
Invoice error/warning display | ir.ui.view | qweb | New |
portal_invoice_page |
Invoice/Bill | ir.ui.view | qweb | Inherits portal.portal_sidebar |
portal_invoice_required_fields_form |
portal_invoice_required_fields_form | ir.ui.view | qweb | New |
portal_invoice_success |
Invoice success display | ir.ui.view | qweb | New |
portal_my_details_fields |
portal_my_details_fields | ir.ui.view | qweb | Inherits portal.portal_my_details_fields |
portal_my_home_invoice |
Invoices / Bills | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_invoice |
Portal layout : invoice menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_invoices |
My Invoices and Payments | ir.ui.view | qweb | New |
product_product_view_form_normalized_account |
product.product.view.form.normalized.account.inherit | product.product | field | Inherits product.product_product_view_form_normalized |
product_template_form_view |
product.template.form.inherit | product.template | div | Inherits product.product_template_form_view |
product_template_view_tree |
product.template.list | product.template | list | New |
product_uom_form_view_inherit |
product_uom_form_view_inherit | uom.uom | xpath | Inherits uom.product_uom_form_view |
product_view_search_catalog |
product.view.search.catalog.inherit.account | product.product | xpath | Inherits product.product_view_search_catalog |
report_hash_integrity |
report_hash_integrity | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_invoice_document_preview |
report_invoice_document_preview | ir.ui.view | qweb | Inherits account.report_invoice_document |
report_invoice_qr_code_preview |
report_invoice_qr_code_preview | ir.ui.view | qweb | New |
report_invoice_with_payments |
report_invoice_with_payments | ir.ui.view | qweb | New |
report_invoice_wizard_iframe |
report_invoice_wizard_iframe | ir.ui.view | qweb | New |
report_invoice_wizard_preview_inherit_account |
report_invoice_wizard_preview_inherit_account | ir.ui.view | qweb | Inherits web.report_invoice_wizard_preview |
report_original_vendor_bill |
report_original_vendor_bill | ir.ui.view | qweb | New |
report_payment_receipt |
report_payment_receipt | ir.ui.view | qweb | New |
report_payment_receipt_document |
report_payment_receipt_document | ir.ui.view | qweb | New |
report_statement |
report_statement | ir.ui.view | qweb | New |
report_statement_internal_layout |
report_statement_internal_layout | ir.ui.view | qweb | Inherits web.internal_layout |
res_company_form_view_onboarding |
res.company.form.view.onboarding | res.company | form | New |
res_company_form_view_onboarding_sale_tax |
res.company.form.view.onboarding.sale.tax | res.company | form | New |
res_company_view_form_terms |
res.company.view.form.terms | res.company | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.account | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_config_settings_view_form_base_setup |
res.config.settings.view.form.inherit.base_setup | res.config.settings | xpath | Inherits base_setup.res_config_settings_view_form |
res_currency_form_inherit |
res.currency.form.inherit | res.currency | xpath | Inherits base.view_currency_form |
res_partner_view_search |
res.partner.search.inherit | res.partner | xpath | Inherits base.view_res_partner_filter |
res_partner_view_tree |
res.partner.list.inherit.account | res.partner | xpath | Inherits base.view_partner_tree |
rounding_form_view |
account.cash.rounding.form | account.cash.rounding | form | New |
rounding_search_view |
account.cash.rounding.search | account.cash.rounding | search | New |
rounding_tree_view |
account.cash.rounding.list | account.cash.rounding | list | New |
setup_bank_account_wizard |
account.online.sync.res.partner.bank.setup.form | account.setup.bank.manual.config | form | New |
setup_financial_year_opening_form |
account.financial.year.op.setup.wizard.form | account.financial.year.op | form | New |
tax_repartition_line_tree |
account.tax.repartition.line.list | account.tax.repartition.line | list | New |
tests_shared_js_python |
tests_shared_js_python | ir.ui.view | qweb | New |
validate_account_move_view |
Confirm Entries | validate.account.move | form | New |
view_account_account_kanban |
account.account.kanban | account.account | kanban | New |
view_account_accrued_orders_wizard |
account.accrued.orders.wizard.view | account.accrued.orders.wizard | form | New |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.list.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_bill_filter |
account.invoice.select | account.move | field | Inherits account.view_account_invoice_filter |
view_account_form |
account.account.form | account.account | form | New |
view_account_group_form |
account.group.form | account.group | form | New |
view_account_group_search |
account.group.search | account.group | search | New |
view_account_group_tree |
account.group.list | account.group | list | New |
view_account_invoice_filter |
account.invoice.select | account.move | search | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_group_form |
account.journal.group.form | account.journal.group | form | New |
view_account_journal_group_tree |
account.journal.group.list | account.journal.group | list | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.list | account.journal | list | New |
view_account_list |
account.account.list | account.account | list | New |
view_account_lock_exception_form |
account.lock_exception.form | account.lock_exception | form | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_kanban |
account.move.kanban | account.move | kanban | New |
view_account_move_line_filter |
account.move.line.search | account.move.line | search | New |
view_account_move_line_payment_filter |
account.move.line.payment.search | account.move.line | search | New |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_move_with_gaps_in_sequence_filter |
account.move.with.gaps.in.sequence.filter | account.move | filter | Inherits account.view_account_invoice_filter |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_kanban |
account.payment.kanban | account.payment | kanban | New |
view_account_payment_method_line_kanban_mobile |
account.payment.method.line.kanban | account.payment.method.line | kanban | New |
view_account_payment_method_line_tree |
account.payment.method.line.list | account.payment.method.line | list | New |
view_account_payment_register_form |
account.payment.register.form | account.payment.register | form | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_term_kanban |
account.payment.term.kanban | account.payment.term | kanban | New |
view_account_payment_tree |
account.payment.list | account.payment | list | New |
view_account_position_filter |
account.fiscal.position.filter | account.fiscal.position | search | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_tree |
account.fiscal.position.list | account.fiscal.position | list | New |
view_account_reconcile_model_form |
account.reconcile.model.form | account.reconcile.model | form | New |
view_account_reconcile_model_line_form |
account.reconcile.model.line.form | account.reconcile.model.line | form | New |
view_account_reconcile_model_search |
account.reconcile.model.search | account.reconcile.model | search | New |
view_account_reconcile_model_tree |
account.reconcile.model.list | account.reconcile.model | list | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_secure_entries_wizard |
account.secure.entries.wizard.form | account.secure.entries.wizard | form | New |
view_account_supplier_payment_tree |
account.supplier.payment.list | account.payment | field | Inherits account.view_account_payment_tree |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_various_payment_tree |
account.supplier.payment.list | account.payment | field | Inherits account.view_account_payment_tree |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.list | account.bank.statement | list | New |
view_base_document_layout |
Document Layout | base.document.layout | xpath | Inherits web.view_base_document_layout |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_company_form |
res.company.form.inherit.account | res.company | xpath | Inherits base.view_company_form |
view_duplicated_moves_tree_js |
account.duplicated.moves.list.js | account.move | xpath | Inherits account.view_invoice_tree |
view_full_reconcile_form |
account.full.reconcile.form | account.full.reconcile | form | New |
view_in_invoice_bill_tree |
account.out.invoice.list | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_receipt_tree |
account.out.invoice.list | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_refund_tree |
account.out.invoice.list | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_tree |
account.out.invoice.list | account.move | xpath | Inherits account.view_invoice_tree |
view_incoterms_tree |
account.incoterms.list | account.incoterms | list | New |
view_invoice_tree |
account.invoice.list | account.move | list | New |
view_message_tree_audit_log |
mail.message.list.inherit.audit.log | mail.message | list | New |
view_message_tree_audit_log_search |
mail.message.search | mail.message | search | New |
view_module_filter_inherit_account |
ir.module.module.list.inherit.account | ir.module.module | xpath | Inherits base.view_module_filter |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_payment_tree |
account.move.line.payment.list | account.move.line | list | New |
view_move_line_pivot |
account.move.line.pivot | account.move.line | pivot | New |
view_move_line_tax_audit_tree |
account.move.line.tax.audit.list | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree |
account.move.line.list | account.move.line | list | New |
view_move_line_tree_grouped_bank_cash |
account.move.line.list.grouped.bank.cash | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_general |
account.move.line.list.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_misc |
account.move.line.list.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_partner |
account.move.line.list.grouped.partner | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_sales_purchases |
account.move.line.list.grouped.sales.purchase | account.move.line | field | Inherits account.view_move_line_tree |
view_move_tree |
account.move.list | account.move | list | New |
view_move_tree_multi_edit |
account.move.list.multi.edit | account.move | xpath | Inherits account.view_move_tree |
view_onboarding_tax_tree |
account.onboarding.tax.list | account.tax | xpath | Inherits account.view_tax_tree |
view_out_credit_note_tree |
account.out.invoice.list | account.move | xpath | Inherits account.view_invoice_tree |
view_out_invoice_tree |
account.out.invoice.list | account.move | xpath | Inherits account.view_invoice_tree |
view_partner_bank_form_inherit_account |
res.partner.bank.form.inherit.account | res.partner.bank | xpath | Inherits base.view_partner_bank_form |
view_partner_bank_search_inherit |
res.partner.bank.search.inherit | res.partner.bank | xpath | Inherits base.view_partner_bank_search |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | xpath | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_payment_term_tree |
account.payment.term.list | account.payment.term | list | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_group_form |
account.tax.group.form | account.tax.group | form | New |
view_tax_group_tree |
account.tax.group.list | account.tax.group | list | New |
view_tax_kanban |
account.tax.kanban | account.tax | kanban | New |
view_tax_tree |
account.tax.list | account.tax | list | New |
account_type
Selection
compute='_compute_account_type'
help='Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.'
index=True
precompute=True
readonly=False
required=True
selection=[('asset_receivable', 'Receivable'), ('asset_cash', 'Bank and Cash'), ('asset_current', 'Current Assets'), ('asset_non_current', 'Non-current Assets'), ('asset_prepayments', 'Prepayments'), ('asset_fixed', 'Fixed Assets'), ('liability_payable', 'Payable'), ('liability_credit_card', 'Credit Card'), ('liability_current', 'Current Liabilities'), ('liability_non_current', 'Non-current Liabilities'), ('equity', 'Equity'), ('equity_unaffected', 'Current Year Earnings'), ('income', 'Income'), ('income_other', 'Other Income'), ('expense', 'Expenses'), ('expense_depreciation', 'Depreciation'), ('expense_direct_cost', 'Cost of Revenue'), ('off_balance', 'Off-Balance Sheet')]
store=True
string='Type'
tracking=True
allowed_journal_ids
Many2many → account.journal
check_company=True
help='Define in which journals this account can be used. If empty, can be used in all journals.'
string='Allowed Journals'
args: 'account.journal'
code
Char
compute='_compute_code'
inverse='_inverse_code'
search='_search_code'
size=64
string='Code'
tracking=True
code_mapping_ids
One2many → account.code.mapping
comodel_name='account.code.mapping'
inverse_name='account_id'
code_store
Char
company_dependent=True
company_currency_id
Many2one → res.currency
compute='_compute_company_currency_id'
args: 'res.currency'
company_fiscal_country_code
Char
compute='_compute_company_fiscal_country_code'
company_ids
Many2many → res.company
default=<expr>
depends_context=('uid')
readonly=False
required=True
string='Companies'
args: 'res.company'
currency_id
Many2one → res.currency
help='Forces all journal items in this account to have a specific currency (i.e. bank journals). If no currency is set, entries can use any currency.'
string='Account Currency'
tracking=True
args: 'res.currency'
current_balance
Float
compute='_compute_current_balance'
deprecated
Boolean
default=False
tracking=True
display_mapping_tab
Boolean
default=<expr>
store=False
group_id
Many2one → account.group
compute='_compute_account_group'
help='Account prefixes can determine account groups.'
args: 'account.group'
include_initial_balance
Boolean
compute='_compute_include_initial_balance'
help='Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set.'
search='_search_include_initial_balance'
string='Bring Accounts Balance Forward'
internal_group
Selection
compute='_compute_internal_group'
search='_search_internal_group'
selection=[('equity', 'Equity'), ('asset', 'Asset'), ('liability', 'Liability'), ('income', 'Income'), ('expense', 'Expense'), ('off', 'Off Balance')]
string='Internal Group'
name
Char
index='trigram'
required=True
string='Account Name'
tracking=True
translate=True
non_trade
Boolean
default=False
help='If set, this account will belong to Non Trade Receivable/Payable in reports and filters.\nIf not, this account will belong to Trade Receivable/Payable in reports and filters.'
note
Text
tracking=True
args: 'Internal Notes'
opening_balance
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_balance'
string='Opening Balance'
opening_credit
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_credit'
string='Opening Credit'
opening_debit
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_debit'
string='Opening Debit'
placeholder_code
Char
compute='_compute_placeholder_code'
search='_search_placeholder_code'
string='Display code'
reconcile
Boolean
compute='_compute_reconcile'
help='Check this box if this account allows invoices & payments matching of journal items.'
precompute=True
readonly=False
store=True
string='Allow Reconciliation'
tracking=True
related_taxes_amount
Integer
compute='_compute_related_taxes_amount'
root_id
Many2one → account.root
compute='_compute_account_root'
search='_search_account_root'
args: 'account.root'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
compute='_compute_account_tags'
help='Optional tags you may want to assign for custom reporting'
ondelete='restrict'
precompute=True
readonly=False
relation='account_account_account_tag'
store=True
string='Tags'
tracking=True
tax_ids
Many2many → account.tax
check_company=True
context={'append_type_to_tax_name': True}
string='Default Taxes'
args: 'account.tax', 'account_account_tax_default_rel', 'account_id', 'tax_id'
used
Boolean
compute='_compute_used'
search='_search_used'
action_open_related_taxes(self)
action_unmerge(self)
copy_data(self, default=None)
copy_translations(self, new, excluded=())
create(self, vals_list)
default_get(self, default_fields)
get_import_templates(self)
name_create(self, name)
name_search(self, name='', args=None, operator='ilike', limit=100) -> <expr>
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the Account Tag without removing it.'
applicability
Selection
default='accounts'
required=True
args: [('accounts', 'Accounts'), ('taxes', 'Taxes'), ('products', 'Products')]
color
Integer
country_id
Many2one → res.country
comodel_name='res.country'
help='Country for which this tag is available, when applied on taxes.'
string='Country'
name
Char
required=True
translate=True
args: 'Tag Name'
tax_negate
Boolean
help='Check this box to negate the absolute value of the balance of the lines associated with this tag in tax report computation.'
string='Negate Tax Balance'
create(self, vals_list)
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', '=', 'liability_current')] if context.get('active_model') == 'purchase.order' else [('account_type', '=', 'asset_current')]"
required=True
string='Accrual Account'
amount
Monetary
help='Specify an arbitrary value that will be accrued on a default account for the entire order, regardless of the products on the different lines.'
string='Amount'
company_id
Many2one → res.company
default=_get_default_company
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
date
Date
default=_get_default_date
required=True
display_amount
Boolean
compute='_compute_display_amount'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
domain="[('type', '=', 'general')]"
precompute=True
readonly=False
required=True
store=True
string='Journal'
preview_data
Text
compute='_compute_preview_data'
reversal_date
Date
compute='_compute_reversal_date'
precompute=True
readonly=False
required=True
store=True
create_entries(self)
credit
Monetary
groups='account.group_account_readonly'
debit
Monetary
groups='account.group_account_readonly'
invoice_count
Integer
compute='_compute_invoice_count'
args: 'Invoice Count'
vendor_bill_count
Integer
compute='_compute_vendor_bill_count'
args: 'Vendor Bill Count'
action_view_invoice(self)
action_view_vendor_bill(self)
account_prefix
Char
help='Prefix that defines which accounts from the financial accounting this applicability should apply on.'
string='Financial Accounts Prefixes'
account_prefix_placeholder
Char
compute='_compute_prefix_placeholder'
business_domain
Selection
ondelete={'invoice': 'cascade', 'bill': 'cascade'}
selection_add=[('invoice', 'Invoice'), ('bill', 'Vendor Bill')]
display_account_prefix
Boolean
compute='_compute_display_account_prefix'
help='Defines if the field account prefix should be displayed'
product_categ_id
Many2one → product.category
string='Product Category'
args: 'product.category'
No public methods.
account_prefix
Char
help='This analytic distribution will apply to all financial accounts sharing the prefix specified.'
string='Accounts Prefix'
prefix_placeholder
Char
compute='_compute_prefix_placeholder'
product_categ_id
Many2one → product.category
help='Select a product category which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
check_company=True
help='Select a product for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Product'
args: 'product.product'
No public methods.
analytic_profitability
Selection
compute='_compute_analytic_profitability'
search='_search_analytic_profitability'
selection=[('uncategorized', 'Uncategorized'), ('revenue', 'Revenue'), ('loss', 'Loss')]
string='Profitability'
category
Selection
selection_add=[('invoice', 'Customer Invoice'), ('vendor_bill', 'Vendor Bill')]
code
Char
size=8
general_account_id
Many2one → account.account
check_company=True
compute='_compute_general_account_id'
domain="[('deprecated', '=', False)]"
ondelete='restrict'
readonly=False
store=True
string='Financial Account'
args: 'account.account'
journal_id
Many2one → account.journal
check_company=True
readonly=True
related='move_line_id.journal_id'
store=True
string='Financial Journal'
args: 'account.journal'
move_line_id
Many2one → account.move.line
check_company=True
index=True
ondelete='cascade'
string='Journal Item'
args: 'account.move.line'
partner_id
Many2one
compute='_compute_partner_id'
readonly=False
store=True
product_category
Many2one
related='product_id.categ_id'
product_id
Many2one → product.product
check_company=True
index='btree_not_null'
string='Product'
args: 'product.product'
ref
Char
string='Ref.'
create(self, vals)
on_change_unit_amount(self)
unlink(self)
view_header_get(self, view_id, view_type)
write(self, vals)
account_type
Selection
compute='_compute_account_type'
store=True
args: [('income', 'Revenue'), ('expense', 'Expense')]
action
Selection
required=True
args: [('change_period', 'Change Period'), ('change_account', 'Change Account')]
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
date
Date
default=<expr>
required=True
destination_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Account to transfer to.'
string='To'
display_currency_helper
Boolean
compute='_compute_display_currency_helper'
string='Currency Conversion Helper'
expense_accrual_account
Many2one → account.account
check_company=True
compute='_compute_expense_accrual_account'
domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'off_balance'))]"
inverse='_inverse_expense_accrual_account'
readonly=False
args: 'account.account'
journal_id
Many2one → account.journal
check_company=True
compute='_compute_journal_id'
domain="[('type', '=', 'general')]"
help='Journal where to create the entry.'
inverse='_inverse_journal_id'
readonly=False
required=True
string='Journal'
args: 'account.journal'
lock_date_message
Char
compute='_compute_lock_date_message'
string='Lock Date Message'
move_data
Text
compute='_compute_move_data'
move_line_ids
Many2many → account.move.line
percentage
Float
compute='_compute_percentage'
help='Percentage of each line to execute the action on.'
readonly=False
store=True
args: 'Percentage'
preview_move_data
Text
compute='_compute_preview_move_data'
revenue_accrual_account
Many2one → account.account
check_company=True
compute='_compute_revenue_accrual_account'
domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'off_balance'))]"
inverse='_inverse_revenue_accrual_account'
readonly=False
args: 'account.account'
total_amount
Monetary
compute='_compute_total_amount'
currency_field='company_currency_id'
help='Total amount impacted by the automatic entry.'
readonly=False
store=True
default_get(self, fields)
do_action(self)
nb_unmodified_bills
Integer
partner_id
Many2one → res.partner
partner_name
Char
related='partner_id.name'
action_ask_later(self)
action_automate_partner(self)
action_never_automate_partner(self)
attachment_ids
Many2many → ir.attachment
comodel_name='ir.attachment'
string='Attachments'
balance_end
Monetary
compute='_compute_balance_end'
store=True
string='Computed Balance'
balance_end_real
Monetary
compute='_compute_balance_end_real'
readonly=False
store=True
string='Ending Balance'
balance_start
Monetary
compute='_compute_balance_start'
readonly=False
store=True
string='Starting Balance'
company_id
Many2one → res.company
comodel_name='res.company'
related='journal_id.company_id'
store=True
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
date
Date
compute='_compute_date_index'
index=True
store=True
first_line_index
Char → account.bank.statement.line
comodel_name='account.bank.statement.line'
compute='_compute_date_index'
store=True
is_complete
Boolean
compute='_compute_is_complete'
store=True
is_valid
Boolean
compute='_compute_is_valid'
search='_search_is_valid'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
store=True
line_ids
One2many → account.bank.statement.line
comodel_name='account.bank.statement.line'
inverse_name='statement_id'
string='Statement lines'
name
Char
compute='_compute_name'
copy=False
readonly=False
store=True
string='Reference'
problem_description
Text
compute='_compute_problem_description'
reference
Char
copy=False
string='External Reference'
create(self, vals_list)
default_get(self, fields_list)
init(self)
write(self, values)
account_number
Char
string='Bank Account Number'
amount
Monetary
amount_currency
Monetary
compute='_compute_amount_currency'
currency_field='foreign_currency_id'
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
readonly=False
store=True
string='Amount in Currency'
amount_residual
Float
compute='_compute_is_reconciled'
store=True
string='Residual Amount'
company_id
Many2one → res.company
comodel_name='res.company'
index=False
inherited=True
precompute=True
readonly=False
related='move_id.company_id'
required=True
store=True
country_code
Char
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
store=True
string='Journal Currency'
foreign_currency_id
Many2one → res.currency
comodel_name='res.currency'
help='The optional other currency if it is a multi-currency entry.'
string='Foreign Currency'
internal_index
Char
compute='_compute_internal_index'
store=True
string='Internal Reference'
is_reconciled
Boolean
compute='_compute_is_reconciled'
store=True
string='Is Reconciled'
journal_id
Many2one → account.journal
comodel_name='account.journal'
index=False
inherited=True
precompute=True
readonly=False
related='move_id.journal_id'
required=True
store=True
move_id
Many2one → account.move
auto_join=True
check_company=True
comodel_name='account.move'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
domain="['|', ('parent_id','=', False), ('is_company','=',True)]"
ondelete='restrict'
string='Partner'
partner_name
Char
payment_ids
Many2many → account.payment
comodel_name='account.payment'
relation='account_payment_account_bank_statement_line_rel'
string='Auto-generated Payments'
payment_ref
Char
string='Label'
running_balance
Monetary
compute='_compute_running_balance'
sequence
Integer
default=1
statement_balance_end_real
Monetary
related='statement_id.balance_end_real'
statement_complete
Boolean
related='statement_id.is_complete'
statement_id
Many2one → account.bank.statement
comodel_name='account.bank.statement'
string='Statement'
statement_name
Char
related='statement_id.name'
string='Statement Name'
statement_valid
Boolean
related='statement_id.is_valid'
transaction_details
Json
readonly=True
transaction_type
Char
action_undo_reconciliation(self)
create(self, vals_list)
default_get(self, fields_list)
init(self)
new(self, values=None, origin=None, ref=None)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
unlink(self)
write(self, vals)
loss_account_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('deprecated', '=', False), ('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
ondelete='restrict'
string='Loss Account'
args: 'account.account'
name
Char
required=True
string='Name'
translate=True
profit_account_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('deprecated', '=', False), ('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
ondelete='restrict'
string='Profit Account'
args: 'account.account'
rounding
Float
default=0.01
help='Represent the non-zero value smallest coinage (for example, 0.05).'
required=True
string='Rounding Precision'
rounding_method
Selection
default='HALF-UP'
help='The tie-breaking rule used for float rounding operations'
required=True
selection=[('UP', 'Up'), ('DOWN', 'Down'), ('HALF-UP', 'Nearest')]
string='Rounding Method'
strategy
Selection
default='add_invoice_line'
help='Specify which way will be used to round the invoice amount to the rounding precision'
required=True
string='Rounding Strategy'
args: [('biggest_tax', 'Modify tax amount'), ('add_invoice_line', 'Add a rounding line')]
compute_difference(self, currency, amount)
round(self, amount)
validate_rounding(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (2)ref(self, xmlid, raise_if_not_found=True)
try_loading(self, template_code, company, install_demo=False, force_create=True)
No new fields.
Public methods (0)No public methods.
account_id
Many2one → account.account
comodel_name='account.account'
compute='_compute_account_id'
search=True
string='Account'
code
Char
compute='_compute_code'
inverse='_inverse_code'
string='Code'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=False
string='Company'
create(self, vals_list)
company_id
Many2one → res.company
comodel_name='res.company'
required=True
fiscalyear_last_day
Integer
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_day'
required=True
fiscalyear_last_month
Selection
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_month'
required=True
opening_date
Date
help='Date from which the accounting is managed in Odoo. It is the date of the opening entry.'
readonly=False
related='company_id.account_opening_date'
required=True
string='Opening Date'
opening_move_posted
Boolean
compute='_compute_opening_move_posted'
string='Opening Move Posted'
action_save_onboarding_fiscal_year(self)
write(self, vals)
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
account_map
Binary
compute='_compute_account_map'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply tax & account mappings on invoices automatically if the matching criterias (VAT/Country) are met.'
string='Detect Automatically'
company_country_id
Many2one
related='company_id.account_fiscal_country_id'
string='Company Country'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery country matches the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery country matches.'
string='Country'
args: 'res.country'
fiscal_country_codes
Char
related='company_country_id.code'
string='Company Fiscal Country Code'
foreign_vat
Char
help='The tax ID of your company in the region mapped by this fiscal position.'
inverse='_inverse_foreign_vat'
string='Foreign Tax ID'
foreign_vat_header_mode
Selection
compute='_compute_foreign_vat_header_mode'
selection=[('templates_found', 'Templates Found'), ('no_template', 'No Template')]
name
Char
required=True
string='Fiscal Position'
translate=True
note
Html
help='Legal mentions that have to be printed on the invoices.'
translate=True
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
One2many → account.fiscal.position.tax
copy=True
string='Tax Mapping'
args: 'account.fiscal.position.tax', 'position_id'
tax_map
Binary
compute='_compute_tax_map'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
action_create_foreign_taxes(self)
create(self, vals_list)
map_account(self, account)
map_tax(self, taxes)
write(self, vals)
account_dest_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False)]"
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False)]"
required=True
string='Account on Product'
args: 'account.account'
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
tax_dest_active
Boolean
related='tax_dest_id.active'
tax_dest_id
Many2one → account.tax
check_company=True
string='Tax to Apply'
args: 'account.tax'
tax_src_id
Many2one → account.tax
check_company=True
required=True
string='Tax on Product'
args: 'account.tax'
No public methods.
exchange_move_id
Many2one → account.move
index='btree_not_null'
args: 'account.move'
partial_reconcile_ids
One2many → account.partial.reconcile
string='Reconciliation Parts'
args: 'account.partial.reconcile', 'full_reconcile_id'
reconciled_line_ids
One2many → account.move.line
string='Matched Journal Items'
args: 'account.move.line', 'full_reconcile_id'
create(self, vals_list)
unlink(self)
code_prefix_end
Char
compute='_compute_code_prefix_end'
precompute=True
readonly=False
store=True
code_prefix_start
Char
compute='_compute_code_prefix_start'
precompute=True
readonly=False
store=True
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
name
Char
required=True
translate=True
parent_id
Many2one → account.group
check_company=True
index=True
ondelete='cascade'
readonly=True
args: 'account.group'
create(self, vals_list)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='By unchecking the active field, you may hide an INCOTERM you will not use.'
args: 'Active'
code
Char
help='Incoterm Standard Code'
required=True
size=3
args: 'Code'
name
Char
help='Incoterms are series of sales terms. They are used to divide transaction costs and responsibilities between buyer and seller and reflect state-of-the-art transportation practices.'
required=True
translate=True
args: 'Name'
No public methods.
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Revenue/Expense Account'
args: 'account.account'
commercial_partner_id
Many2one → res.partner
string='Main Partner'
args: 'res.partner'
company_currency_id
Many2one → res.currency
readonly=True
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
fiscal_position_id
Many2one → account.fiscal.position
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
inventory_value
Float
readonly=True
string='Inventory Value'
invoice_date
Date
readonly=True
string='Invoice Date'
invoice_date_due
Date
readonly=True
string='Due Date'
invoice_user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
readonly=True
args: 'account.move'
move_type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
payment_state
Selection
readonly=True
selection=PAYMENT_STATE_SELECTION
string='Payment Status'
price_average
Float
aggregator='avg'
readonly=True
string='Average Price'
price_margin
Float
readonly=True
string='Margin'
price_subtotal
Float
readonly=True
string='Untaxed Amount'
price_subtotal_currency
Float
readonly=True
string='Untaxed Amount in Currency'
price_total
Float
readonly=True
string='Total in Currency'
product_categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
quantity
Float
readonly=True
string='Product Quantity'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('posted', 'Open'), ('cancel', 'Cancelled')]
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
account_control_ids
Many2many → account.account
check_company=True
domain="[('deprecated', '=', False), ('account_type', '!=', 'off_balance')]"
string='Allowed accounts'
args: 'account.account', 'journal_account_control_rel', 'journal_id', 'account_id'
accounting_date
Date
compute='_compute_accounting_date'
active
Boolean
default=True
help='Set active to false to hide the Journal without removing it.'
alias_id
Many2one
help='Send one separate email for each invoice.\n\nAny file extension will be accepted.\n\nOnly PDF and XML files will be interpreted by Odoo'
autocheck_on_post
Boolean
default=True
string='Auto-Check on Post'
available_payment_method_ids
Many2many → account.payment.method
comodel_name='account.payment.method'
compute='_compute_available_payment_method_ids'
bank_acc_number
Char
readonly=False
related='bank_account_id.acc_number'
bank_account_id
Many2one → res.partner.bank
check_company=True
copy=False
domain="[('partner_id','=', company_partner_id)]"
ondelete='restrict'
string='Bank Account'
args: 'res.partner.bank'
bank_id
Many2one → res.bank
readonly=False
related='bank_account_id.bank_id'
args: 'res.bank'
bank_statements_source
Selection
default='undefined'
help='Defines how the bank statements will be registered'
selection=_get_bank_statements_available_sources
string='Bank Feeds'
code
Char
compute='_compute_code'
help='Shorter name used for display. The journal entries of this journal will also be named using this prefix by default.'
precompute=True
readonly=False
required=True
size=5
store=True
string='Short Code'
company_id
Many2one → res.company
default=<expr>
help='Company related to this journal'
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
company_partner_id
Many2one → res.partner
readonly=True
related='company_id.partner_id'
store=False
string='Account Holder'
args: 'res.partner'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
help='The currency used to enter statement'
string='Currency'
args: 'res.currency'
default_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain=_get_default_account_domain
ondelete='restrict'
string='Default Account'
default_account_type
Char
compute='_compute_default_account_type'
string='Default Account Type'
display_alias_fields
Boolean
compute='_compute_display_alias_fields'
inbound_payment_method_line_ids
One2many → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
compute='_compute_inbound_payment_method_line_ids'
copy=False
domain=[('payment_type', '=', 'inbound')]
help='Manual: Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
inverse_name='journal_id'
readonly=False
store=True
string='Inbound Payment Methods'
invoice_reference_model
Selection
default=_default_invoice_reference_model
help='You can choose different models for each type of reference. The default one is the Odoo reference.'
required=True
selection=[('odoo', 'Odoo'), ('euro', 'European')]
string='Communication Standard'
invoice_reference_type
Selection
default='invoice'
help='You can set here the default communication that will appear on customer invoices, once validated, to help the customer to refer to that particular invoice when making the payment.'
required=True
selection=[('none', 'Open'), ('partner', 'Based on Customer'), ('invoice', 'Based on Invoice')]
string='Communication Type'
journal_group_ids
Many2many → account.journal.group
check_company=True
string='Ledger Group'
args: 'account.journal.group'
loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', '=', 'expense')]"
help='Used to register a loss when the ending balance of a cash register differs from what the system computes'
string='Loss Account'
name
Char
required=True
string='Journal Name'
translate=True
outbound_payment_method_line_ids
One2many → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
compute='_compute_outbound_payment_method_line_ids'
copy=False
domain=[('payment_type', '=', 'outbound')]
help='Manual: Pay by any method outside of Odoo.\nCheck: Pay bills by check and print it from Odoo.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\n'
inverse_name='journal_id'
readonly=False
store=True
string='Outbound Payment Methods'
payment_sequence
Boolean
compute='_compute_payment_sequence'
help="Check this box if you don't want to share the same sequence on payments and bank transactions posted on this journal"
precompute=True
readonly=False
store=True
string='Dedicated Payment Sequence'
profit_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'in', ('income', 'income_other'))]"
help='Used to register a profit when the ending balance of a cash register differs from what the system computes'
string='Profit Account'
refund_sequence
Boolean
compute='_compute_refund_sequence'
help="Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal"
readonly=False
store=True
string='Dedicated Credit Note Sequence'
restrict_mode_hash_table
Boolean
help='If ticked, when an entry is posted, we retroactively hash all moves in the sequence from the entry back to the last hashed entry. The hash can also be performed on demand by the Secure Entries wizard.'
string='Secure Posted Entries with Hash'
selected_payment_method_codes
Char
compute='_compute_selected_payment_method_codes'
sequence
Integer
default=10
help='Used to order Journals in the dashboard view'
sequence_override_regex
Text
help='Technical field used to enforce complex sequence composition that the system would normally misunderstand.\nThis is a regex that can include all the following capture groups: prefix1, year, prefix2, month, prefix3, seq, suffix.\nThe prefix* groups are the separators between the year, month and the actual increasing sequence number (seq).\ne.g: ^(?P<prefix1>.*?)(?P<year>\\d{4})(?P<prefix2>\\D*?)(?P<month>\\d{2})(?P<prefix3>\\D+?)(?P<seq>\\d+)(?P<suffix>\\D*?)$'
suspense_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_suspense_account_id'
domain="[('deprecated', '=', False), ('account_type', '=', 'asset_current')]"
help='Bank statements transactions will be posted on the suspense account until the final reconciliation allowing finding the right account.'
ondelete='restrict'
readonly=False
store=True
string='Suspense Account'
type
Selection
help="\n Select 'Sale' for customer invoices journals.\n Select 'Purchase' for vendor bills journals.\n Select 'Cash', 'Bank' or 'Credit Card' for journals that are used in customer or vendor payments.\n Select 'General' for miscellaneous operations journals.\n "
required=True
args: [('sale', 'Sales'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('bank', 'Bank'), ('credit', 'Credit Card'), ('general', 'Miscellaneous')]
action_configure_bank_journal(self)
copy_data(self, default=None)
create(self, vals_list)
create_document_from_attachment(self, attachment_ids)
get_next_bank_cash_default_code(self, journal_type, company, cache=None, protected_codes=False)
set_bank_account(self, acc_number, bank_id=None)
unlink(self)
write(self, vals)
color
Integer
default=0
args: 'Color Index'
current_statement_balance
Monetary
compute='_compute_current_statement_balance'
entries_count
Integer
compute='_compute_entries_count'
has_entries
Boolean
compute='_compute_has_entries'
has_posted_entries
Boolean
compute='_compute_has_entries'
has_sequence_holes
Boolean
compute='_compute_has_sequence_holes'
has_statement_lines
Boolean
compute='_compute_current_statement_balance'
has_unhashed_entries
Boolean
compute='_compute_has_unhashed_entries'
string='Unhashed Entries'
json_activity_data
Text
compute='_get_json_activity_data'
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
last_statement_id
Many2one → account.bank.statement
comodel_name='account.bank.statement'
compute='_compute_last_bank_statement'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
action_create_vendor_bill(self)
create_bank_statement(self)
create_customer_payment(self)
create_supplier_payment(self)
is_sample_action_available(self)
open_action(self)
open_action_with_context(self)
open_bank_difference_action(self)
open_payments_action(self, payment_type=False, mode='list')
show_sequence_holes(self)
show_unhashed_entries(self)
to_check_ids(self)
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
help='Define which company can select the multi-ledger in report filters. If none is provided, available for all companies'
excluded_journal_ids
Many2many → account.journal
string='Excluded Journals'
args: 'account.journal'
name
Char
required=True
translate=True
args: 'Ledger group'
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
string='Active'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
company_lock_date
Date
copy=False
help='Technical field giving the date the company lock date at the time the exception was created.'
string='Original Lock Date'
end_datetime
Datetime
string='End Date'
fiscalyear_lock_date
Date
compute='_compute_lock_dates'
help='The date the Global Lock Date is set to by this exception. If the lock date is not changed it is set to the maximal date.'
search='_search_fiscalyear_lock_date'
string='Global Lock Date'
lock_date
Date
help='Technical field giving the date the lock date was changed to.'
string='Changed Lock Date'
lock_date_field
Selection
help='Technical field identifying the changed lock date'
required=True
selection=[('fiscalyear_lock_date', 'Global Lock Date'), ('tax_lock_date', 'Tax Return Lock Date'), ('sale_lock_date', 'Sales Lock Date'), ('purchase_lock_date', 'Purchase Lock Date')]
string='Lock Date Field'
purchase_lock_date
Date
compute='_compute_lock_dates'
help='The date the Purchase Lock Date is set to by this exception. If the lock date is not changed it is set to the maximal date.'
search='_search_purchase_lock_date'
string='Purchase Lock Date'
reason
Char
string='Reason'
sale_lock_date
Date
compute='_compute_lock_dates'
help='The date the Sale Lock Date is set to by this exception. If the lock date is not changed it is set to the maximal date.'
search='_search_sale_lock_date'
string='Sales Lock Date'
state
Selection
compute='_compute_state'
search='_search_state'
selection=[('active', 'Active'), ('revoked', 'Revoked'), ('expired', 'Expired')]
string='State'
tax_lock_date
Date
compute='_compute_lock_dates'
help='The date the Tax Lock Date is set to by this exception. If the lock date is not changed it is set to the maximal date.'
search='_search_tax_lock_date'
string='Tax Return Lock Date'
user_id
Many2one → res.users
default=<expr>
string='User'
args: 'res.users'
action_revoke(self)
action_show_audit_trail_during_exception(self)
copy(self, default=None)
create(self, vals_list)
init(self)
account_ids
Many2many → account.account
disable_merge_button
Boolean
compute='_compute_disable_merge_button'
is_group_by_name
Boolean
default=False
help='Tick this checkbox if you want accounts to be grouped by name for merging.'
string='Group by name?'
wizard_line_ids
One2many → account.merge.wizard.line
comodel_name='account.merge.wizard.line'
compute='_compute_wizard_line_ids'
inverse_name='wizard_id'
readonly=False
store=True
action_merge(self)
default_get(self, fields)
account_has_hashed_entries
Boolean
compute='_compute_account_has_hashed_entries'
account_id
Many2one → account.account
comodel_name='account.account'
ondelete='cascade'
readonly=True
string='Account'
company_ids
Many2many
related='account_id.company_ids'
string='Companies'
display_type
Selection
required=True
selection=[('line_section', 'Section'), ('account', 'Account')]
grouping_key
Char
info
Char
compute='_compute_info'
help='Contains either the section name or error message, depending on the line type.'
string='Info'
is_selected
Boolean
sequence
Integer
wizard_id
Many2one → account.merge.wizard
comodel_name='account.merge.wizard'
ondelete='cascade'
required=True
No public methods.
statement_line_ids
One2many → account.bank.statement.line
string='Statements'
args: 'account.bank.statement.line', 'move_id'
No public methods.
payment_ids
One2many → account.payment
string='Payments'
args: 'account.payment', 'move_id'
No public methods.
abnormal_amount_warning
Text
compute='_compute_abnormal_warnings'
abnormal_date_warning
Text
compute='_compute_abnormal_warnings'
always_tax_exigible
Boolean
compute='_compute_always_tax_exigible'
readonly=False
store=True
amount_residual
Monetary
compute='_compute_amount'
store=True
string='Amount Due'
amount_residual_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
store=True
string='Amount Due Signed'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_tax_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Tax Signed'
amount_total
Monetary
compute='_compute_amount'
inverse='_inverse_amount_total'
readonly=True
store=True
string='Total'
amount_total_in_currency_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=True
store=True
string='Total in Currency Signed'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Total Signed'
amount_total_words
Char
compute='_compute_amount_total_words'
string='Amount total in words'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
tracking=True
amount_untaxed_in_currency_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=True
store=True
string='Untaxed Amount Signed Currency'
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount Signed'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'account.move')]
string='Attachments'
args: 'ir.attachment', 'res_id'
audit_trail_message_ids
One2many → mail.message
domain=[('model', '=', 'account.move'), ('message_type', '=', 'notification')]
string='Audit Trail Messages'
args: 'mail.message', 'res_id'
auto_post
Selection
copy=False
default='no'
help='Specify whether this entry is posted automatically on its accounting date, and any similar recurring invoices.'
required=True
selection=[('no', 'No'), ('at_date', 'At Date'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly'), ('yearly', 'Yearly')]
string='Auto-post'
auto_post_origin_id
Many2one → account.move
comodel_name='account.move'
copy=False
index='btree_not_null'
readonly=True
string='First recurring entry'
auto_post_until
Date
compute='_compute_auto_post_until'
copy=False
help='This recurring move will be posted up to and including this date.'
readonly=False
store=True
string='Auto-post until'
bank_partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_bank_partner_id'
help='Technical field to get the domain on the bank'
checked
Boolean
help='If this checkbox is not ticked, it means that the user was not sure of all the related information at the time of the creation of the move and that the move needs to be checked again.'
string='Checked'
tracking=True
commercial_partner_id
Many2one → res.partner
check_company=True
compute='_compute_commercial_partner_id'
ondelete='restrict'
readonly=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
index=True
inverse='_inverse_company_id'
precompute=True
readonly=False
store=True
string='Company'
company_price_include
Selection
readonly=True
related='company_id.account_price_include'
country_code
Char
depends=['company_id']
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
inverse='_inverse_currency_id'
precompute=True
readonly=False
required=True
store=True
string='Currency'
tracking=True
args: 'res.currency'
date
Date
compute='_compute_date'
copy=False
index=True
precompute=True
readonly=False
required=True
store=True
string='Date'
tracking=True
delivery_date
Date
compute='_compute_delivery_date'
copy=False
inverse='_inverse_delivery_date'
precompute=True
readonly=False
store=True
string='Delivery Date'
direction_sign
Integer
compute='_compute_direction_sign'
help='Multiplicator depending on the document type, to convert a price into a balance'
display_inactive_currency_warning
Boolean
compute='_compute_display_inactive_currency_warning'
display_qr_code
Boolean
compute='_compute_display_qr_code'
string='Display QR-code'
duplicated_ref_ids
Many2many → account.move
comodel_name='account.move'
compute='_compute_duplicated_ref_ids'
expected_currency_rate
Float
compute='_compute_expected_currency_rate'
digits=0
fiscal_position_id
Many2one → account.fiscal.position
check_company=True
compute='_compute_fiscal_position_id'
help='Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. The default value comes from the customer.'
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Fiscal Position'
args: 'account.fiscal.position'
has_reconciled_entries
Boolean
compute='_compute_has_reconciled_entries'
hide_post_button
Boolean
compute='_compute_hide_post_button'
readonly=True
highest_name
Char
compute='_compute_highest_name'
inalterable_hash
Char
copy=False
index='btree_not_null'
readonly=True
string='Inalterability Hash'
incoterm_location
Char
compute='_compute_incoterm_location'
readonly=False
store=True
string='Incoterm Location'
invoice_cash_rounding_id
Many2one → account.cash.rounding
comodel_name='account.cash.rounding'
help='Defines the smallest coinage of the currency that can be used to pay by cash.'
string='Cash Rounding Method'
invoice_currency_rate
Float
compute='_compute_invoice_currency_rate'
copy=False
digits=0
help='Currency rate from company currency to document currency.'
precompute=True
readonly=False
store=True
string='Currency Rate'
invoice_date
Date
copy=False
index=True
string='Invoice/Bill Date'
invoice_date_due
Date
compute='_compute_invoice_date_due'
copy=False
index=True
readonly=False
store=True
string='Due Date'
invoice_filter_type_domain
Char
compute='_compute_invoice_filter_type_domain'
invoice_has_outstanding
Boolean
compute='_compute_payments_widget_to_reconcile_info'
groups='account.group_account_invoice,account.group_account_readonly'
invoice_incoterm_id
Many2one → account.incoterms
comodel_name='account.incoterms'
compute='_compute_incoterm'
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
readonly=False
store=True
string='Incoterm'
invoice_line_ids
One2many → account.move.line
copy=False
domain=[('display_type', 'in', ('product', 'line_section', 'line_note'))]
string='Invoice lines'
args: 'account.move.line', 'move_id'
invoice_origin
Char
copy=False
help='The document(s) that generated the invoice.'
readonly=True
string='Origin'
tracking=True
invoice_outstanding_credits_debits_widget
Binary
compute='_compute_payments_widget_to_reconcile_info'
exportable=False
groups='account.group_account_invoice,account.group_account_readonly'
invoice_partner_display_name
Char
compute='_compute_invoice_partner_display_info'
store=True
invoice_payment_term_id
Many2one → account.payment.term
check_company=True
comodel_name='account.payment.term'
compute='_compute_invoice_payment_term_id'
inverse='_inverse_invoice_payment_term_id'
precompute=True
readonly=False
store=True
string='Payment Terms'
invoice_payments_widget
Binary
compute='_compute_payments_widget_reconciled_info'
exportable=False
groups='account.group_account_invoice,account.group_account_readonly'
invoice_pdf_report_file
Binary
attachment=True
copy=False
string='PDF File'
invoice_pdf_report_id
Many2one → ir.attachment
comodel_name='ir.attachment'
compute=<expr>
depends=['invoice_pdf_report_file']
string='PDF Attachment'
invoice_source_email
Char
string='Source Email'
tracking=True
invoice_user_id
Many2one → res.users
comodel_name='res.users'
compute='_compute_invoice_default_sale_person'
copy=False
readonly=False
store=True
string='Salesperson'
tracking=True
invoice_vendor_bill_id
Many2one → account.move
check_company=True
help='Auto-complete from a past bill.'
store=False
string='Vendor Bill'
args: 'account.move'
is_being_sent
Boolean
compute='_compute_is_being_sent'
help='Is the move being sent asynchronously'
is_manually_modified
Boolean
is_move_sent
Boolean
copy=False
help='It indicates that the invoice/payment has been sent or the PDF has been generated.'
readonly=True
tracking=True
is_storno
Boolean
compute='_compute_is_storno'
copy=False
readonly=False
store=True
journal_group_id
Many2one → account.journal.group
search='_search_journal_group_id'
store=False
string='Ledger'
args: 'account.journal.group'
journal_id
Many2one → account.journal
check_company=True
compute='_compute_journal_id'
domain="[('id', 'in', suitable_journal_ids)]"
inverse='_inverse_journal_id'
precompute=True
readonly=False
required=True
store=True
string='Journal'
args: 'account.journal'
line_ids
One2many → account.move.line
copy=True
string='Journal Items'
args: 'account.move.line', 'move_id'
made_sequence_gap
Boolean
compute='_compute_made_sequence_gap'
store=True
matched_payment_ids
Many2many → account.payment
column1='invoice_id'
column2='payment_id'
comodel_name='account.payment'
copy=False
relation='account_move__account_payment'
string='Matched Payments'
move_sent_values
Selection
compute='compute_move_sent_values'
search='_search_move_sent_values'
selection=[('sent', 'Sent'), ('not_sent', 'Not Sent')]
string='Sent'
move_type
Selection
change_default=True
default='entry'
index=True
readonly=True
required=True
selection=[('entry', 'Journal Entry'), ('out_invoice', 'Customer Invoice'), ('out_refund', 'Customer Credit Note'), ('in_invoice', 'Vendor Bill'), ('in_refund', 'Vendor Credit Note'), ('out_receipt', 'Sales Receipt'), ('in_receipt', 'Purchase Receipt')]
string='Type'
tracking=True
name
Char
compute='_compute_name'
copy=False
index='trigram'
inverse='_inverse_name'
readonly=False
store=True
string='Number'
tracking=True
name_placeholder
Char
compute='_compute_name_placeholder'
narration
Html
compute='_compute_narration'
readonly=False
store=True
string='Terms and Conditions'
need_cancel_request
Boolean
compute='_compute_need_cancel_request'
needed_terms
Binary
compute='_compute_needed_terms'
exportable=False
needed_terms_dirty
Boolean
compute='_compute_needed_terms'
next_payment_date
Date
compute='_compute_next_payment_date'
search='_search_next_payment_date'
string='Next Payment Date'
origin_payment_id
Many2one → account.payment
check_company=True
comodel_name='account.payment'
copy=False
index='btree_not_null'
string='Payment'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.'
ondelete='restrict'
readonly=False
store=True
string='Recipient Bank'
tracking=True
args: 'res.partner.bank'
partner_credit
Monetary
compute='_compute_partner_credit'
partner_credit_warning
Text
compute='_compute_partner_credit_warning'
groups='account.group_account_invoice,account.group_account_readonly'
partner_id
Many2one → res.partner
change_default=True
check_company=True
index=True
inverse='_inverse_partner_id'
ondelete='restrict'
readonly=False
string='Partner'
tracking=True
args: 'res.partner'
partner_shipping_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
compute='_compute_partner_shipping_id'
help='The delivery address will be used in the computation of the fiscal position.'
precompute=True
readonly=False
store=True
string='Delivery Address'
payment_count
Integer
compute='_compute_payment_count'
payment_reference
Char
compute='_compute_payment_reference'
copy=False
help='The payment reference to set on journal items.'
index='trigram'
inverse='_inverse_payment_reference'
readonly=False
store=True
string='Payment Reference'
tracking=True
payment_state
Selection
compute='_compute_payment_state'
copy=False
readonly=True
selection=PAYMENT_STATE_SELECTION
store=True
string='Payment Status'
tracking=True
payment_term_details
Binary
compute='_compute_payment_term_details'
exportable=False
posted_before
Boolean
copy=False
preferred_payment_method_line_id
Many2one → account.payment.method.line
comodel_name='account.payment.method.line'
compute='_compute_preferred_payment_method_line_id'
readonly=False
store=True
string='Preferred Payment Method Line'
qr_code_method
Selection
copy=False
help='Type of QR-code to be generated for the payment of this invoice, when printing it. If left blank, the first available and usable method will be used.'
selection=<expr>
string='Payment QR-code'
quick_edit_mode
Boolean
compute='_compute_quick_edit_mode'
quick_edit_total_amount
Monetary
help='Use this field to encode the total amount of the invoice.\nOdoo will automatically create one invoice line with default values to match it.'
string='Total (Tax inc.)'
quick_encoding_vals
Json
compute='_compute_quick_encoding_vals'
exportable=False
reconciled_payment_ids
Many2many → account.payment
compute='_compute_reconciled_payment_ids'
help='Payments that have been reconciled with this invoice.'
search='_search_reconciled_payment_ids'
string='Reconciled Payments'
args: 'account.payment'
ref
Char
copy=False
index='trigram'
string='Reference'
tracking=True
restrict_mode_hash_table
Boolean
related='journal_id.restrict_mode_hash_table'
reversal_move_ids
One2many → account.move
reversed_entry_id
Many2one → account.move
check_company=True
comodel_name='account.move'
copy=False
index='btree_not_null'
readonly=True
string='Reversal of'
secure_sequence_number
Integer
copy=False
index=True
readonly=True
string='Inalterability No Gap Sequence #'
secured
Boolean
compute='_compute_secured'
help='The entry is secured with an inalterable hash.'
search='_search_secured'
sending_data
Json
copy=False
show_delivery_date
Boolean
compute='_compute_show_delivery_date'
show_discount_details
Boolean
compute='_compute_show_payment_term_details'
show_name_warning
Boolean
store=False
show_payment_term_details
Boolean
compute='_compute_show_payment_term_details'
show_reset_to_draft_button
Boolean
compute='_compute_show_reset_to_draft_button'
show_update_fpos
Boolean
store=False
string='Has Fiscal Position Changed'
state
Selection
copy=False
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('cancel', 'Cancelled')]
string='Status'
tracking=True
statement_id
Many2one
related='statement_line_id.statement_id'
statement_line_id
Many2one → account.bank.statement.line
check_company=True
comodel_name='account.bank.statement.line'
copy=False
index='btree_not_null'
string='Statement Line'
status_in_payment
Selection
compute='_compute_status_in_payment'
copy=False
search='_search_status_in_payment'
selection=<expr>
suitable_journal_ids
Many2many → account.journal
compute='_compute_suitable_journal_ids'
args: 'account.journal'
tax_calculation_rounding_method
Selection
readonly=True
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_cash_basis_created_move_ids
One2many → account.move
comodel_name='account.move'
help='The cash basis entries created from the taxes on this entry, when reconciling its lines.'
inverse_name='tax_cash_basis_origin_move_id'
string='Cash Basis Entries'
tax_cash_basis_origin_move_id
Many2one → account.move
comodel_name='account.move'
help='The journal entry from which this tax cash basis journal entry has been created.'
index='btree_not_null'
readonly=True
string='Cash Basis Origin'
tax_cash_basis_rec_id
Many2one → account.partial.reconcile
comodel_name='account.partial.reconcile'
index='btree_not_null'
string='Tax Cash Basis Entry of'
tax_country_code
Char
compute='_compute_tax_country_code'
tax_country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_tax_country_id'
tax_lock_date_message
Char
compute='_compute_tax_lock_date_message'
tax_totals
Binary
compute='_compute_tax_totals'
exportable=False
help='Edit Tax amounts if you encounter rounding issues.'
inverse='_inverse_tax_totals'
string='Invoice Totals'
taxes_legal_notes
Html
compute='_compute_taxes_legal_notes'
string='Taxes Legal Notes'
type_name
Char
compute='_compute_type_name'
args: 'Type Name'
user_id
Many2one
related='invoice_user_id'
string='User'
action_activate_currency(self)
action_add_from_catalog(self)
action_duplicate(self)
action_export_zip(self)
action_force_register_payment(self)
action_invoice_download_pdf(self)
action_invoice_sent(self)
action_open_business_doc(self)
action_post(self)
action_print_pdf(self)
action_register_payment(self)
action_reverse(self)
action_send_and_print(self)
action_switch_move_type(self)
action_toggle_block_payment(self)
action_update_fpos_values(self)
button_cancel(self)
button_draft(self)
button_hash(self)
button_request_cancel(self)
button_set_checked(self)
check_field_access_rights(self, operation, field_names)
check_move_sequence_chain(self)
compute_move_sent_values(self)
copy(self, default=None)
copy_data(self, default=None)
create(self, vals_list)
get_currency_rate(self, company_id, to_currency_id, date)
get_extra_print_items(self)
get_inbound_types(self, include_receipts=True)
get_invoice_localisation_fields_required_to_invoice(self, country_id)
get_invoice_types(self, include_receipts=False)
get_outbound_types(self, include_receipts=True)
get_purchase_types(self, include_receipts=False)
get_sale_types(self, include_receipts=False)
init(self)
is_entry(self)
is_inbound(self, include_receipts=True)
is_invoice(self, include_receipts=False)
is_outbound(self, include_receipts=True)
is_purchase_document(self, include_receipts=False)
is_sale_document(self, include_receipts=False)
js_assign_outstanding_line(self, line_id)
js_remove_outstanding_partial(self, partial_id)
message_new(self, msg_dict, custom_values=None)
onchange(self, values, field_names, fields_spec)
open_created_caba_entries(self)
open_payments(self)
open_reconcile_view(self)
preview_invoice(self)
refresh_invoice_currency_rate(self)
unlink(self)
write(self, vals)
account_code
Char
related='account_id.code'
account_id
Many2one → account.account
auto_join=True
check_company=True
comodel_name='account.account'
compute='_compute_account_id'
domain="[('deprecated', '=', False), ('account_type', '!=', 'off_balance')]"
index=False
inverse='_inverse_account_id'
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Account'
tracking=True
account_internal_group
Selection
related='account_id.internal_group'
account_name
Char
related='account_id.name'
account_root_id
Many2one
depends_context='company'
related='account_id.root_id'
string='Account Root'
account_type
Selection
related='account_id.account_type'
string='Internal Type'
amount_currency
Monetary
compute='_compute_amount_currency'
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
inverse='_inverse_amount_currency'
precompute=True
readonly=False
store=True
string='Amount in Currency'
amount_residual
Monetary
compute='_compute_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
aggregator=None
compute='_compute_amount_residual'
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_distribution
Json
inverse='_inverse_analytic_distribution'
analytic_line_ids
One2many → account.analytic.line
comodel_name='account.analytic.line'
inverse_name='move_line_id'
string='Analytic lines'
balance
Monetary
compute='_compute_balance'
currency_field='company_currency_id'
precompute=True
readonly=False
store=True
string='Balance'
tracking=True
commercial_partner_country
Many2one
related='move_id.commercial_partner_id.country_id'
string='Commercial Partner Country'
company_currency_id
Many2one
precompute=True
readonly=True
related='move_id.company_currency_id'
store=True
string='Company Currency'
company_id
Many2one
index=True
precompute=True
readonly=True
related='move_id.company_id'
store=True
credit
Monetary
compute='_compute_debit_credit'
currency_field='company_currency_id'
inverse='_inverse_credit'
precompute=True
store=True
string='Credit'
cumulated_balance
Monetary
compute='_compute_cumulated_balance'
currency_field='company_currency_id'
exportable=False
help='Cumulated balance depending on the domain and the order chosen in the view.'
string='Cumulated Balance'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
precompute=True
readonly=False
required=True
store=True
string='Currency'
currency_rate
Float
compute='_compute_currency_rate'
help='Currency rate from company currency to document currency.'
date
Date
aggregator='min'
copy=False
related='move_id.date'
store=True
date_maturity
Date
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
string='Due Date'
tracking=True
debit
Monetary
compute='_compute_debit_credit'
currency_field='company_currency_id'
inverse='_inverse_debit'
precompute=True
store=True
string='Debit'
discount
Float
default=0.0
digits='Discount'
string='Discount (%)'
discount_allocation_dirty
Boolean
compute='_compute_discount_allocation_needed'
discount_allocation_key
Binary
compute='_compute_discount_allocation_key'
exportable=False
discount_allocation_needed
Binary
compute='_compute_discount_allocation_needed'
exportable=False
discount_amount_currency
Monetary
aggregator=None
currency_field='currency_id'
store=True
string='Discount amount in Currency'
discount_balance
Monetary
currency_field='company_currency_id'
store=True
string='Discount Balance'
discount_date
Date
help='Last date at which the discounted amount must be paid in order for the Early Payment Discount to be granted'
readonly=True
store=True
string='Discount Date'
display_type
Selection
compute='_compute_display_type'
precompute=True
readonly=False
required=True
selection=[('product', 'Product'), ('cogs', 'Cost of Goods Sold'), ('tax', 'Tax'), ('discount', 'Discount'), ('rounding', 'Rounding'), ('payment_term', 'Payment Term'), ('line_section', 'Section'), ('line_note', 'Note'), ('epd', 'Early Payment Discount')]
store=True
epd_dirty
Boolean
compute='_compute_epd_needed'
epd_key
Binary
compute='_compute_epd_key'
exportable=False
epd_needed
Binary
compute='_compute_epd_needed'
exportable=False
full_reconcile_id
Many2one → account.full.reconcile
comodel_name='account.full.reconcile'
copy=False
index='btree_not_null'
readonly=True
string='Matching'
group_tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
index='btree_not_null'
string='Originator Group of Taxes'
invoice_date
Date
aggregator='min'
copy=False
related='move_id.invoice_date'
store=True
is_account_reconcile
Boolean
related='account_id.reconcile'
string='Account Reconcile'
is_imported
Boolean
is_refund
Boolean
compute='_compute_is_refund'
is_same_currency
Boolean
compute='_compute_same_currency'
is_storno
Boolean
help='Utility field to express whether the journal item is subject to storno accounting'
related='move_id.is_storno'
string='Company Storno Accounting'
journal_group_id
Many2one → account.journal.group
comodel_name='account.journal.group'
search='_search_journal_group_id'
store=False
string='Ledger'
journal_id
Many2one
copy=False
index=True
precompute=True
related='move_id.journal_id'
store=True
matched_credit_ids
One2many → account.partial.reconcile
comodel_name='account.partial.reconcile'
help='Credit journal items that are matched with this journal item.'
inverse_name='debit_move_id'
readonly=True
string='Matched Credits'
matched_debit_ids
One2many → account.partial.reconcile
comodel_name='account.partial.reconcile'
help='Debit journal items that are matched with this journal item.'
inverse_name='credit_move_id'
readonly=True
string='Matched Debits'
matching_number
Char
copy=False
help="Matching number for this line, 'P' if it is only partially reconcile, or the name of the full reconcile if it exists."
index='btree'
string='Matching #'
move_id
Many2one → account.move
auto_join=True
check_company=True
comodel_name='account.move'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
move_name
Char
index='btree'
related='move_id.name'
store=True
string='Number'
move_type
Selection
related='move_id.move_type'
name
Char
compute='_compute_name'
precompute=True
readonly=False
store=True
string='Label'
tracking=True
parent_state
Selection
related='move_id.state'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_partner_id'
inverse='_inverse_partner_id'
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Partner'
payment_date
Date
compute='_compute_payment_date'
search='_search_payment_date'
string='Next Payment Date'
payment_id
Many2one → account.payment
auto_join=True
comodel_name='account.payment'
help='The payment that created this entry'
index='btree_not_null'
related='move_id.origin_payment_id'
store=True
string='Originator Payment'
price_subtotal
Monetary
compute='_compute_totals'
currency_field='currency_id'
store=True
string='Subtotal'
price_total
Monetary
compute='_compute_totals'
currency_field='currency_id'
store=True
string='Total'
price_unit
Float
compute='_compute_price_unit'
min_display_digits='Product Price'
precompute=True
readonly=False
store=True
string='Unit Price'
product_category_id
Many2one
related='product_id.product_tmpl_id.categ_id'
product_id
Many2one → product.product
check_company=True
comodel_name='product.product'
index=True
inverse='_inverse_product_id'
ondelete='restrict'
string='Product'
product_uom_category_id
Many2one → uom.category
comodel_name='uom.category'
related='product_id.uom_id.category_id'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
compute='_compute_product_uom_id'
domain="[('category_id', '=', product_uom_category_id)]"
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Unit of Measure'
quantity
Float
compute='_compute_quantity'
digits='Product Unit of Measure'
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
precompute=True
readonly=False
store=True
string='Quantity'
reconcile_model_id
Many2one → account.reconcile.model
check_company=True
comodel_name='account.reconcile.model'
copy=False
readonly=True
string='Reconciliation Model'
reconciled
Boolean
compute='_compute_amount_residual'
store=True
ref
Char
copy=False
index='trigram'
related='move_id.ref'
store=True
sequence
Integer
compute='_compute_sequence'
precompute=True
readonly=False
store=True
statement_id
Many2one
auto_join=True
copy=False
help='The bank statement used for bank reconciliation'
index='btree_not_null'
related='statement_line_id.statement_id'
store=True
statement_line_id
Many2one → account.bank.statement.line
auto_join=True
comodel_name='account.bank.statement.line'
help='The statement line that created this entry'
index='btree_not_null'
related='move_id.statement_line_id'
store=True
string='Originator Statement Line'
tax_base_amount
Monetary
currency_field='company_currency_id'
readonly=True
string='Base Amount'
tax_calculation_rounding_method
Selection
readonly=True
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_group_id
Many2one
precompute=True
related='tax_line_id.tax_group_id'
store=True
string='Originator tax group'
tax_ids
Many2many → account.tax
check_company=True
comodel_name='account.tax'
compute='_compute_tax_ids'
context={'active_test': False}
precompute=True
readonly=False
store=True
string='Taxes'
tracking=True
tax_line_id
Many2one → account.tax
comodel_name='account.tax'
help='Indicates that this journal item is a tax line'
ondelete='restrict'
precompute=True
related='tax_repartition_line_id.tax_id'
store=True
string='Originator Tax'
tax_repartition_line_id
Many2one → account.tax.repartition.line
check_company=True
comodel_name='account.tax.repartition.line'
help='Tax distribution line that caused the creation of this move line, if any'
ondelete='restrict'
readonly=True
string='Originator Tax Distribution Line'
tax_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
context={'active_test': False}
help='Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.'
ondelete='restrict'
string='Tags'
tracking=True
tax_tag_invert
Boolean
compute='_compute_tax_tag_invert'
copy=False
readonly=False
store=True
string='Invert Tags'
term_key
Binary
compute='_compute_term_key'
exportable=False
action_add_from_catalog(self)
action_automatic_entry(self, default_action=None)
action_open_business_doc(self)
action_payment_items_register_payment(self)
action_register_payment(self, ctx=None)
action_unreconcile_match_entries(self)
check_field_access_rights(self, operation, field_names)
copy_data(self, default=None)
create(self, vals_list)
default_get(self, fields_list)
flush_model(self, fnames=None)
flush_recordset(self, fnames=None)
get_import_templates(self)
get_views(self, views, options=None)
init(self)
invalidate_model(self, fnames=None, flush=True)
invalidate_recordset(self, fnames=None, flush=True)
open_reconcile_view(self)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
reconcile(self)
remove_move_reconcile(self)
search_fetch(self, domain, field_names, offset=0, limit=None, order=None)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
available_journal_ids
Many2many → account.journal
compute='_compute_available_journal_ids'
args: 'account.journal'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
country_code
Char
related='company_id.country_id.code'
currency_id
Many2one → res.currency
compute='_compute_from_moves'
args: 'res.currency'
date
Date
default=fields.Date.context_today
string='Reversal date'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
help='If empty, uses the journal of the journal entry to be reversed.'
readonly=False
required=True
store=True
string='Journal'
move_ids
Many2many → account.move
domain=[('state', '=', 'posted')]
args: 'account.move', 'account_move_reversal_move', 'reversal_id', 'move_id'
move_type
Char
compute='_compute_from_moves'
new_move_ids
Many2many → account.move
reason
Char
string='Reason displayed on Credit Note'
residual
Monetary
compute='_compute_from_moves'
default_get(self, fields)
modify_moves(self)
refund_moves(self)
reverse_moves(self, is_modify=False)
No new fields.
Public methods (0)No public methods.
alerts
Json
compute='_compute_alerts'
move_ids
Many2many → account.move
comodel_name='account.move'
required=True
summary_data
Json
compute='_compute_summary_data'
action_send_and_print(self, force_synchronous=False, allow_fallback_pdf=False)
default_get(self, fields_list)
alerts
Json
compute='_compute_alerts'
attachments_not_supported
Json
compute='_compute_attachments_not_supported'
company_id
Many2one → res.company
comodel_name='res.company'
related='move_id.company_id'
display_attachments_widget
Boolean
compute='_compute_display_attachments_widget'
display_pdf_report_id
Boolean
compute='_compute_display_pdf_report_id'
extra_edi_checkboxes
Json
compute='_compute_extra_edi_checkboxes'
precompute=True
readonly=False
store=True
extra_edis
Json
compute='_compute_extra_edis'
inverse='_inverse_extra_edis'
invoice_edi_format
Selection
compute='_compute_invoice_edi_format'
selection=<expr>
is_download_only
Boolean
compute='_compute_is_download_only'
mail_attachments_widget
Json
compute='_compute_mail_attachments_widget'
readonly=False
store=True
mail_body
Html
compute='_compute_mail_subject_body_partners'
readonly=False
sanitize_style=True
store=True
string='Contents'
mail_lang
Char
compute='_compute_mail_lang'
mail_partner_ids
Many2many → res.partner
comodel_name='res.partner'
compute='_compute_mail_subject_body_partners'
readonly=False
store=True
string='To'
mail_subject
Char
compute='_compute_mail_subject_body_partners'
readonly=False
store=True
string='Subject'
mail_template_id
Many2one → mail.template
comodel_name='mail.template'
compute='_compute_mail_template_id'
domain="[('model', '=', 'account.move')]"
readonly=False
store=True
string='Email template'
move_id
Many2one → account.move
comodel_name='account.move'
required=True
pdf_report_id
Many2one → ir.actions.report
comodel_name='ir.actions.report'
compute='_compute_pdf_report_id'
domain="[('is_invoice_report', '=', True)]"
readonly=False
store=True
string='Invoice template'
sending_method_checkboxes
Json
compute='_compute_sending_method_checkboxes'
precompute=True
readonly=False
store=True
sending_methods
Json
compute='_compute_sending_methods'
inverse='_inverse_sending_methods'
action_send_and_print(self, allow_fallback_pdf=False)
default_get(self, fields_list)
amount
Monetary
currency_field='company_currency_id'
help='Always positive amount concerned by this matching expressed in the company currency.'
company_currency_id
Many2one → res.currency
comodel_name='res.currency'
help='Utility field to express amount currency'
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
precompute=True
readonly=False
store=True
string='Company'
credit_amount_currency
Monetary
currency_field='credit_currency_id'
help='Always positive amount concerned by this matching expressed in the credit line foreign currency.'
credit_currency_id
Many2one → res.currency
comodel_name='res.currency'
precompute=True
related='credit_move_id.currency_id'
store=True
string='Currency of the credit journal item.'
credit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
debit_amount_currency
Monetary
currency_field='debit_currency_id'
help='Always positive amount concerned by this matching expressed in the debit line foreign currency.'
debit_currency_id
Many2one → res.currency
comodel_name='res.currency'
precompute=True
related='debit_move_id.currency_id'
store=True
string='Currency of the debit journal item.'
debit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
exchange_move_id
Many2one → account.move
comodel_name='account.move'
index='btree_not_null'
full_reconcile_id
Many2one → account.full.reconcile
comodel_name='account.full.reconcile'
copy=False
index='btree_not_null'
string='Full Reconcile'
max_date
Date
compute='_compute_max_date'
precompute=True
store=True
string='Max Date of Matched Lines'
create(self, vals_list)
unlink(self)
amount
Monetary
currency_field='currency_id'
amount_company_currency_signed
Monetary
compute='_compute_amount_company_currency_signed'
currency_field='company_currency_id'
store=True
amount_signed
Monetary
compute='_compute_amount_signed'
currency_field='currency_id'
help='Negative value of amount field if payment_type is outbound'
tracking=True
attachment_ids
One2many → ir.attachment
string='Attachments'
args: 'ir.attachment', 'res_id'
available_journal_ids
Many2many → account.journal
comodel_name='account.journal'
compute='_compute_available_journal_ids'
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_line_ids
Many2many → account.payment.method.line
compute='_compute_payment_method_line_fields'
args: 'account.payment.method.line'
company_currency_id
Many2one
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
index=False
precompute=True
readonly=False
required=True
store=True
country_code
Char
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
help="The payment's currency."
precompute=True
readonly=False
store=True
string='Currency'
date
Date
default=fields.Date.context_today
required=True
tracking=True
destination_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_destination_account_id'
domain="[('account_type', 'in', ('asset_receivable', 'liability_payable'))]"
readonly=False
store=True
string='Destination Account'
duplicate_payment_ids
Many2many → account.payment
comodel_name='account.payment'
compute='_compute_duplicate_payment_ids'
invoice_ids
Many2many → account.move
column1='payment_id'
column2='invoice_id'
comodel_name='account.move'
copy=False
relation='account_move__account_payment'
string='Invoices'
is_matched
Boolean
compute='_compute_reconciliation_status'
store=True
string='Is Matched With a Bank Statement'
is_reconciled
Boolean
compute='_compute_reconciliation_status'
store=True
string='Is Reconciled'
is_sent
Boolean
copy=False
readonly=True
string='Is Sent'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
index=False
precompute=True
readonly=False
required=True
store=True
memo
Char
inverse='_inverse_memo'
string='Memo'
tracking=True
move_id
Many2one → account.move
check_company=True
comodel_name='account.move'
copy=False
index=True
string='Journal Entry'
name
Char
compute='_compute_name'
store=True
string='Number'
need_cancel_request
Boolean
related='move_id.need_cancel_request'
outstanding_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_outstanding_account_id'
index='btree_not_null'
store=True
string='Outstanding Account'
paired_internal_transfer_payment_id
Many2one → account.payment
copy=False
help='When an internal transfer is posted, a paired payment is created. They are cross referenced through this field'
index='btree_not_null'
args: 'account.payment'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
ondelete='restrict'
readonly=False
store=True
string='Recipient Bank Account'
tracking=True
args: 'res.partner.bank'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
compute='_compute_partner_id'
domain="['|', ('parent_id','=', False), ('is_company','=', True)]"
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Customer/Vendor'
tracking=True
partner_type
Selection
default='customer'
required=True
tracking=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_method_code
Char
related='payment_method_line_id.code'
payment_method_id
Many2one
related='payment_method_line_id.payment_method_id'
store=True
string='Method'
tracking=True
payment_method_line_id
Many2one → account.payment.method.line
compute='_compute_payment_method_line_id'
copy=False
domain="[('id', 'in', available_payment_method_line_ids)]"
help='Manual: Pay or Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method.line'
payment_receipt_title
Char
compute='_compute_payment_receipt_title'
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
string='Payment Reference'
tracking=True
payment_type
Selection
default='inbound'
required=True
string='Payment Type'
tracking=True
args: [('outbound', 'Send'), ('inbound', 'Receive')]
qr_code
Html
compute='_compute_qr_code'
string='QR Code URL'
reconciled_bill_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
search='_search_reconciled_invoice_ids'
string='Reconciled Bills'
args: 'account.move'
reconciled_bills_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Bills'
reconciled_invoice_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
search='_search_reconciled_invoice_ids'
string='Reconciled Invoices'
args: 'account.move'
reconciled_invoices_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Invoices'
reconciled_invoices_type
Selection
compute='_compute_stat_buttons_from_reconciliation'
args: [('credit_note', 'Credit Note'), ('invoice', 'Invoice')]
reconciled_statement_line_ids
Many2many → account.bank.statement.line
comodel_name='account.bank.statement.line'
compute='_compute_stat_buttons_from_reconciliation'
help='Statements lines matched to this payment'
string='Reconciled Statement Lines'
reconciled_statement_lines_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Statement Lines'
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
state
Selection
compute='_compute_state'
copy=False
default='draft'
readonly=False
required=True
selection=[('draft', 'Draft'), ('in_process', 'In Process'), ('paid', 'Paid'), ('canceled', 'Canceled'), ('rejected', 'Rejected')]
store=True
tracking=True
action_cancel(self)
action_draft(self)
action_open_business_doc(self)
action_post(self)
action_reject(self)
action_validate(self)
button_open_bills(self)
button_open_invoices(self)
button_open_journal_entry(self)
button_open_statement_lines(self)
button_request_cancel(self)
copy_data(self, default=None)
create(self, vals_list)
init(self)
mark_as_sent(self)
unlink(self)
unmark_as_sent(self)
write(self, vals)
code
Char
required=True
name
Char
required=True
translate=True
payment_type
Selection
required=True
selection=[('inbound', 'Inbound'), ('outbound', 'Outbound')]
create(self, vals_list)
unlink(self)
available_payment_method_ids
Many2many
related='journal_id.available_payment_method_ids'
code
Char
related='payment_method_id.code'
company_id
Many2one
related='journal_id.company_id'
default_account_id
Many2one
related='journal_id.default_account_id'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
name
Char
compute='_compute_name'
readonly=False
store=True
payment_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain="[('deprecated', '=', False), '|', ('account_type', 'in', ('asset_current', 'liability_current')), ('id', '=', default_account_id)]"
ondelete='restrict'
payment_method_id
Many2one → account.payment.method
comodel_name='account.payment.method'
domain="[('payment_type', '=?', payment_type), ('id', 'in', available_payment_method_ids)]"
required=True
string='Payment Method'
payment_type
Selection
related='payment_method_id.payment_type'
sequence
Integer
default=10
unlink(self)
actionable_errors
Json
compute='_compute_actionable_errors'
amount
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=False
store=True
available_journal_ids
Many2many → account.journal
comodel_name='account.journal'
compute='_compute_available_journal_ids'
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_line_ids
Many2many → account.payment.method.line
compute='_compute_payment_method_line_fields'
args: 'account.payment.method.line'
batches
Binary
compute='_compute_batches'
export_string_translation=False
can_edit_wizard
Boolean
compute='_compute_from_lines'
copy=False
store=True
can_group_payments
Boolean
compute='_compute_can_group_payments'
copy=False
store=True
communication
Char
compute='_compute_communication'
readonly=False
store=True
string='Memo'
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
compute='_compute_from_lines'
copy=False
store=True
args: 'res.company'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
help="The payment's currency."
precompute=True
readonly=False
store=True
string='Currency'
custom_user_amount
Monetary
currency_field='currency_id'
custom_user_currency_id
Many2one → res.currency
comodel_name='res.currency'
duplicate_payment_ids
Many2many → account.payment
comodel_name='account.payment'
compute='_compute_duplicate_moves'
early_payment_discount_mode
Boolean
compute='_compute_early_payment_discount_mode'
group_payment
Boolean
compute='_compute_group_payment'
help='Only one payment will be created by partner (bank), instead of one per bill.'
readonly=False
store=True
string='Group Payments'
hide_writeoff_section
Boolean
compute='_compute_hide_writeoff_section'
installments_mode
Selection
compute='_compute_installments_mode'
export_string_translation=False
readonly=False
selection=[('next', 'Next Installment'), ('overdue', 'Overdue Amount'), ('before_date', 'Before Next Payment Date'), ('full', 'Full Amount')]
store=True
installments_switch_amount
Monetary
compute='_compute_installments_switch_values'
currency_field='currency_id'
installments_switch_html
Html
compute='_compute_installments_switch_values'
is_register_payment_on_draft
Boolean
compute='_compute_is_register_payment_on_draft'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
domain="[('id', 'in', available_journal_ids)]"
precompute=True
readonly=False
store=True
line_ids
Many2many → account.move.line
copy=False
readonly=True
string='Journal items'
args: 'account.move.line', 'account_payment_register_move_line_rel', 'wizard_id', 'line_id'
missing_account_partners
Many2many → res.partner
compute='_compute_trust_values'
args: 'res.partner'
partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
readonly=False
store=True
string='Recipient Bank Account'
partner_id
Many2one → res.partner
compute='_compute_from_lines'
copy=False
ondelete='restrict'
store=True
string='Customer/Vendor'
args: 'res.partner'
partner_type
Selection
compute='_compute_from_lines'
copy=False
store=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_date
Date
default=fields.Date.context_today
required=True
string='Payment Date'
payment_difference
Monetary
compute='_compute_payment_difference'
payment_difference_handling
Selection
compute='_compute_payment_difference_handling'
readonly=False
selection=[('open', 'Keep open'), ('reconcile', 'Mark as fully paid')]
store=True
string='Payment Difference Handling'
payment_method_code
Char
related='payment_method_line_id.code'
payment_method_line_id
Many2one → account.payment.method.line
compute='_compute_payment_method_line_id'
domain="[('id', 'in', available_payment_method_line_ids)]"
help='Manual: Pay or Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method.line'
payment_type
Selection
compute='_compute_from_lines'
copy=False
store=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
qr_code
Html
compute='_compute_qr_code'
string='QR Code URL'
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
show_payment_difference
Boolean
compute='_compute_show_payment_difference'
source_amount
Monetary
compute='_compute_from_lines'
copy=False
currency_field='company_currency_id'
store=True
string='Amount to Pay (company currency)'
source_amount_currency
Monetary
compute='_compute_from_lines'
copy=False
currency_field='source_currency_id'
store=True
string='Amount to Pay (foreign currency)'
source_currency_id
Many2one → res.currency
compute='_compute_from_lines'
copy=False
store=True
string='Source Currency'
args: 'res.currency'
total_payments_amount
Integer
compute='_compute_trust_values'
untrusted_bank_ids
Many2many → res.partner.bank
compute='_compute_trust_values'
args: 'res.partner.bank'
untrusted_payments_count
Integer
compute='_compute_trust_values'
writeoff_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain="[('deprecated', '=', False)]"
string='Difference Account'
writeoff_is_exchange_account
Boolean
compute='_compute_writeoff_is_exchange_account'
writeoff_label
Char
default='Write-Off'
help='Change label of the counterpart that will hold the payment difference'
string='Journal Item Label'
action_create_payments(self)
action_open_missing_account_partners(self)
action_open_untrusted_bank_accounts(self)
default_get(self, fields_list)
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment terms without removing it.'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
args: 'res.currency'
discount_days
Integer
default=10
help='Number of days before the early payment proposition expires'
string='Discount Days'
discount_percentage
Float
default=2.0
help='Early Payment Discount granted for this payment term'
string='Discount %'
display_on_invoice
Boolean
default=True
string='Show installment dates'
early_discount
Boolean
string='Early Discount'
early_pay_discount_computation
Selection
compute='_compute_discount_computation'
readonly=False
store=True
string='Cash Discount Tax Reduction'
args: [('included', 'On early payment'), ('excluded', 'Never'), ('mixed', 'Always (upon invoice)')]
example_amount
Monetary
currency_field='currency_id'
default=1000
readonly=True
store=False
example_date
Date
default=_default_example_date
store=False
string='Date example'
example_invalid
Boolean
compute='_compute_example_invalid'
example_preview
Html
compute='_compute_example_preview'
example_preview_discount
Html
compute='_compute_example_preview'
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Terms'
translate=True
note
Html
string='Description on the Invoice'
translate=True
sequence
Integer
default=10
required=True
copy_data(self, default=None)
days_next_month
Char
default='10'
readonly=False
size=2
string='Days on the next month'
delay_type
Selection
default='days_after'
required=True
args: [('days_after', 'Days after invoice date'), ('days_after_end_of_month', 'Days after end of month'), ('days_after_end_of_next_month', 'Days after end of next month'), ('days_end_of_month_on_the', 'Days end of month on the')]
display_days_next_month
Boolean
compute='_compute_display_days_next_month'
nb_days
Integer
compute='_compute_days'
readonly=False
store=True
string='Days'
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Terms'
args: 'account.payment.term'
value
Selection
default='percent'
help='Select here the kind of valuation related to this payment terms line.'
required=True
args: [('percent', 'Percent'), ('fixed', 'Fixed')]
value_amount
Float
compute='_compute_value_amount'
digits='Payment Terms'
help='For percent enter a ratio between 0-100.'
readonly=False
store=True
string='Due'
No public methods.
active
Boolean
default=True
allow_payment_tolerance
Boolean
default=True
help='Difference accepted in case of underpayment.'
string='Payment Tolerance'
tracking=True
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
tracking=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
counterpart_type
Selection
default='general'
selection=[('general', 'Journal Entry'), ('sale', 'Customer Invoices'), ('purchase', 'Vendor Bills')]
string='Counterpart Type'
decimal_separator
Char
default=<expr>
help='Every character that is nor a digit nor this separator will be removed from the matching string'
tracking=True
line_ids
One2many → account.reconcile.model.line
copy=True
args: 'account.reconcile.model.line', 'model_id'
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount Condition'
tracking=True
match_amount_max
Float
string='Amount Max Parameter'
tracking=True
match_amount_min
Float
string='Amount Min Parameter'
tracking=True
match_journal_ids
Many2many → account.journal
check_company=True
domain="[('type', 'in', ('bank', 'cash', 'credit'))]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals Availability'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
tracking=True
match_label_param
Char
string='Label Parameter'
tracking=True
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Received'), ('amount_paid', 'Paid'), ('both', 'Paid/Received')]
string='Amount Type'
tracking=True
match_note
Selection
help='The reconciliation model will only be applied when the note:\n * Contains: The proposition note must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Note'
tracking=True
match_note_param
Char
string='Note Parameter'
tracking=True
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner is Set'
tracking=True
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Matching categories'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Matching partners'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency'
tracking=True
match_text_location_label
Boolean
default=True
help="Search in the Statement's Label to find the Invoice/Payment's reference"
tracking=True
match_text_location_note
Boolean
default=False
help="Search in the Statement's Note to find the Invoice/Payment's reference"
tracking=True
match_text_location_reference
Boolean
default=False
help="Search in the Statement's Reference to find the Invoice/Payment's reference"
tracking=True
match_transaction_type
Selection
help='The reconciliation model will only be applied when the transaction type:\n * Contains: The proposition transaction type must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Transaction Type'
tracking=True
match_transaction_type_param
Char
string='Transaction Type Parameter'
tracking=True
matching_order
Selection
default='old_first'
required=True
selection=[('old_first', 'Oldest first'), ('new_first', 'Newest first')]
tracking=True
name
Char
required=True
string='Name'
translate=True
number_entries
Integer
compute='_compute_number_entries'
string='Number of entries related to this model'
partner_mapping_line_ids
One2many → account.reconcile.model.partner.mapping
comodel_name='account.reconcile.model.partner.mapping'
help='The mapping uses regular expressions.\n- To Match the text at the beginning of the line (in label or notes), simply fill in your text.\n- To Match the text anywhere (in label or notes), put your text between .*\n e.g: .*N°48748 abc123.*'
inverse_name='model_id'
string='Partner Mapping Lines'
past_months_limit
Integer
default=18
help='Number of months in the past to consider entries from when applying this model.'
string='Search Months Limit'
tracking=True
payment_tolerance_param
Float
compute='_compute_payment_tolerance_param'
help='The sum of total residual amount propositions matches the statement line amount under this amount/percentage.'
readonly=False
store=True
string='Gap'
tracking=True
payment_tolerance_type
Selection
default='percentage'
help='The sum of total residual amount propositions and the statement line amount allowed gap type.'
required=True
selection=[('percentage', 'in percentage'), ('fixed_amount', 'in amount')]
tracking=True
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', 'Button to generate counterpart entry'), ('writeoff_suggestion', 'Rule to suggest counterpart entry'), ('invoice_matching', 'Rule to match invoices/bills')]
string='Type'
tracking=True
sequence
Integer
default=10
required=True
show_decimal_separator
Boolean
compute='_compute_show_decimal_separator'
to_check
Boolean
default=False
help='This matching rule is used when the user is not certain of all the information of the counterpart.'
string='To Check'
action_reconcile_stat(self)
copy_data(self, default=None)
account_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('account_type', '!=', 'off_balance')]"
ondelete='cascade'
string='Account'
args: 'account.account'
allow_payment_tolerance
Boolean
related='model_id.allow_payment_tolerance'
amount
Float
compute='_compute_float_amount'
store=True
string='Float Amount'
amount_string
Char
default='100'
help='Value for the amount of the writeoff line\n * Percentage: Percentage of the balance, between 0 and 100.\n * Fixed: The fixed value of the writeoff. The amount will count as a debit if it is negative, as a credit if it is positive.\n * From Label: There is no need for regex delimiter, only the regex is needed. For instance if you want to extract the amount from\nR:9672938 10/07 AX 9415126318 T:5L:NA BRT: 3358,07 C:\nYou could enter\nBRT: ([\\d,]+)'
required=True
string='Amount'
amount_type
Selection
compute='_compute_amount_type'
precompute=True
readonly=False
required=True
selection=[('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('percentage_st_line', 'Percentage of statement line'), ('regex', 'From label')]
store=True
company_id
Many2one
related='model_id.company_id'
store=True
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
ondelete='cascade'
readonly=False
store=True
string='Journal'
label
Char
string='Journal Item Label'
translate=True
model_id
Many2one → account.reconcile.model
ondelete='cascade'
readonly=True
args: 'account.reconcile.model'
payment_tolerance_param
Float
related='model_id.payment_tolerance_param'
rule_type
Selection
related='model_id.rule_type'
sequence
Integer
default=10
required=True
show_force_tax_included
Boolean
compute='_compute_show_force_tax_included'
tax_ids
Many2many → account.tax
check_company=True
comodel_name='account.tax'
compute='_compute_tax_ids'
ondelete='restrict'
readonly=False
store=True
string='Taxes'
No public methods.
company_id
Many2one
related='model_id.company_id'
model_id
Many2one → account.reconcile.model
comodel_name='account.reconcile.model'
ondelete='cascade'
readonly=True
required=True
narration_regex
Char
string='Find Text in Notes'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
ondelete='cascade'
required=True
string='Partner'
payment_ref_regex
Char
string='Find Text in Label'
validate_regex(self)
active
Boolean
default=True
string='Active'
availability_condition
Selection
compute='_compute_default_availability_condition'
readonly=False
selection=[('country', 'Country Matches'), ('coa', 'Chart of Accounts Matches'), ('always', 'Always')]
store=True
string='Availability'
chart_template
Selection
selection=<expr>
string='Chart of Accounts'
column_ids
One2many → account.report.column
comodel_name='account.report.column'
inverse_name='report_id'
string='Columns'
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
currency_translation
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('current', 'Use the most recent rate at the date of the report'), ('cta', 'Use CTA')]
store=True
string='Currency Translation'
default_opening_date_filter
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('this_year', 'This Year'), ('this_quarter', 'This Quarter'), ('this_month', 'This Month'), ('today', 'Today'), ('previous_month', 'Last Month'), ('previous_quarter', 'Last Quarter'), ('previous_year', 'Last Year'), ('this_tax_period', 'This Tax Period'), ('previous_tax_period', 'Last Tax Period')]
store=True
string='Default Opening'
filter_account_type
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('both', 'Payable and receivable'), ('payable', 'Payable'), ('receivable', 'Receivable'), ('disabled', 'Disabled')]
store=True
string='Account Types'
filter_aml_ir_filters
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
help='If activated, user-defined filters on journal items can be selected on this report'
readonly=False
store=True
string='Favorite Filters'
filter_analytic
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Analytic Filter'
filter_budgets
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Budgets'
filter_date_range
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Date Range'
filter_fiscal_position
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Filter Multivat'
filter_growth_comparison
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Growth Comparison'
filter_hide_0_lines
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('by_default', 'Enabled by Default'), ('optional', 'Optional'), ('never', 'Never')]
store=True
string='Hide lines at 0'
filter_hierarchy
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('by_default', 'Enabled by Default'), ('optional', 'Optional'), ('never', 'Never')]
store=True
string='Account Groups'
filter_journals
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Journals'
filter_multi_company
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('disabled', 'Disabled'), ('selector', 'Use Company Selector'), ('tax_units', 'Use Tax Units')]
store=True
string='Multi-Company'
filter_partner
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Partners'
filter_period_comparison
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Period Comparison'
filter_show_draft
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Draft Entries'
filter_unfold_all
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Unfold All'
filter_unreconciled
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Unreconciled Entries'
integer_rounding
Selection
selection=[('HALF-UP', 'Nearest'), ('UP', 'Up'), ('DOWN', 'Down')]
string='Integer Rounding'
line_ids
One2many → account.report.line
comodel_name='account.report.line'
inverse_name='report_id'
string='Lines'
load_more_limit
Integer
string='Load More Limit'
name
Char
required=True
string='Name'
translate=True
only_tax_exigible
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Only Tax Exigible Lines'
prefix_groups_threshold
Integer
default=4000
string='Prefix Groups Threshold'
root_report_id
Many2one → account.report
comodel_name='account.report'
help='The report this report is a variant of.'
string='Root Report'
search_bar
Boolean
string='Search Bar'
section_main_report_ids
Many2many → account.report
column1='sub_report_id'
column2='main_report_id'
comodel_name='account.report'
relation='account_report_section_rel'
string='Section Of'
section_report_ids
Many2many → account.report
column1='main_report_id'
column2='sub_report_id'
comodel_name='account.report'
relation='account_report_section_rel'
string='Sections'
sequence
Integer
string='Sequence'
use_sections
Boolean
compute='_compute_use_sections'
help='Create a structured report with multiple sections for convenient navigation and simultaneous printing.'
readonly=False
store=True
string='Composite Report'
variant_report_ids
One2many → account.report
comodel_name='account.report'
inverse_name='root_report_id'
string='Variants'
copy(self, default=None)
copy_data(self, default=None)
write(self, vals)
blank_if_zero
Boolean
help='When checked, 0 values will not show in this column.'
string='Blank if Zero'
custom_audit_action_id
Many2one → ir.actions.act_window
comodel_name='ir.actions.act_window'
string='Custom Audit Action'
expression_label
Char
required=True
string='Expression Label'
figure_type
Selection
default='monetary'
required=True
selection=FIGURE_TYPE_SELECTION_VALUES
string='Figure Type'
name
Char
required=True
string='Name'
translate=True
report_id
Many2one → account.report
comodel_name='account.report'
string='Report'
sequence
Integer
string='Sequence'
sortable
Boolean
string='Sortable'
No public methods.
auditable
Boolean
compute='_compute_auditable'
readonly=False
store=True
string='Auditable'
blank_if_zero
Boolean
help="When checked, 0 values will not show when displaying this expression's value."
string='Blank if Zero'
carryover_target
Char
help='Formula in the form line_code.expression_label. This allows setting the target of the carryover for this expression (on a _carryover_*-labeled expression), in case it is different from the parent line.'
string='Carry Over To'
date_scope
Selection
default='strict_range'
required=True
selection=[('from_beginning', 'From the very start'), ('from_fiscalyear', 'From the start of the fiscal year'), ('to_beginning_of_fiscalyear', 'At the beginning of the fiscal year'), ('to_beginning_of_period', 'At the beginning of the period'), ('strict_range', 'Strictly on the given dates'), ('previous_tax_period', 'From previous tax period')]
string='Date Scope'
engine
Selection
required=True
selection=[('domain', 'Odoo Domain'), ('tax_tags', 'Tax Tags'), ('aggregation', 'Aggregate Other Formulas'), ('account_codes', 'Prefix of Account Codes'), ('external', 'External Value'), ('custom', 'Custom Python Function')]
string='Computation Engine'
figure_type
Selection
selection=FIGURE_TYPE_SELECTION_VALUES
string='Figure Type'
formula
Char
required=True
string='Formula'
green_on_positive
Boolean
default=True
string='Is Growth Good when Positive'
label
Char
required=True
string='Label'
report_line_id
Many2one → account.report.line
comodel_name='account.report.line'
ondelete='cascade'
required=True
string='Report Line'
report_line_name
Char
related='report_line_id.name'
string='Report Line Name'
subformula
Char
string='Subformula'
create(self, vals_list)
write(self, vals)
carryover_origin_expression_label
Char
string='Origin Expression Label'
carryover_origin_report_line_id
Many2one → account.report.line
comodel_name='account.report.line'
string='Origin Line'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
date
Date
required=True
foreign_vat_fiscal_position_id
Many2one → account.fiscal.position
check_company=True
comodel_name='account.fiscal.position'
domain="[('country_id', '=', report_country_id), ('foreign_vat', '!=', False)]"
help='The foreign fiscal position for which this external value is made.'
string='Fiscal position'
name
Char
required=True
report_country_id
Many2one
related='target_report_line_id.report_id.country_id'
string='Country'
target_report_expression_id
Many2one → account.report.expression
comodel_name='account.report.expression'
ondelete='cascade'
required=True
string='Target Expression'
target_report_expression_label
Char
related='target_report_expression_id.label'
string='Target Expression Label'
target_report_line_id
Many2one
related='target_report_expression_id.report_line_id'
string='Target Line'
text_value
Char
string='Text Value'
value
Float
string='Numeric Value'
No public methods.
account_codes_formula
Char
help='Internal field to shorten expression_ids creation for the account_codes engine'
inverse='_inverse_account_codes_formula'
store=False
string='Account Codes Formula Shortcut'
action_id
Many2one → ir.actions.actions
comodel_name='ir.actions.actions'
help='Setting this field will turn the line into a link, executing the action when clicked.'
string='Action'
aggregation_formula
Char
help='Internal field to shorten expression_ids creation for the aggregation engine'
inverse='_inverse_aggregation_formula'
store=False
string='Aggregation Formula Shortcut'
children_ids
One2many → account.report.line
comodel_name='account.report.line'
inverse_name='parent_id'
string='Child Lines'
code
Char
help='Unique identifier for this line.'
string='Code'
domain_formula
Char
help='Internal field to shorten expression_ids creation for the domain engine'
inverse='_inverse_domain_formula'
store=False
string='Domain Formula Shortcut'
expression_ids
One2many → account.report.expression
comodel_name='account.report.expression'
inverse_name='report_line_id'
string='Expressions'
external_formula
Char
help='Internal field to shorten expression_ids creation for the external engine'
inverse='_inverse_external_formula'
store=False
string='External Formula Shortcut'
foldable
Boolean
help="By default, we always unfold the lines that can be. If this is checked, the line won't be unfolded by default, and a folding button will be displayed."
string='Foldable'
groupby
Char
help='Comma-separated list of fields from account.move.line (Journal Item). When set, this line will generate sublines grouped by those keys.'
string='Group By'
hide_if_zero
Boolean
help='This line and its children will be hidden when all of their columns are 0.'
string='Hide if Zero'
hierarchy_level
Integer
compute='_compute_hierarchy_level'
precompute=True
readonly=False
recursive=True
required=True
store=True
string='Level'
horizontal_split_side
Selection
compute='_compute_horizontal_split_side'
readonly=False
recursive=True
selection=[('left', 'Left'), ('right', 'Right')]
store=True
string='Horizontal Split Side'
name
Char
required=True
string='Name'
translate=True
parent_id
Many2one → account.report.line
comodel_name='account.report.line'
ondelete='set null'
string='Parent Line'
print_on_new_page
Boolean
help='When checked this line and everything after it will be printed on a new page.'
args: 'Print On New Page'
report_id
Many2one → account.report
comodel_name='account.report'
compute='_compute_report_id'
ondelete='cascade'
precompute=True
readonly=False
recursive=True
required=True
store=True
string='Parent Report'
sequence
Integer
string='Sequence'
tax_tags_formula
Char
help='Internal field to shorten expression_ids creation for the tax_tags engine'
inverse='_inverse_aggregation_tax_formula'
store=False
string='Tax Tags Formula Shortcut'
user_groupby
Char
compute='_compute_user_groupby'
help='Comma-separated list of fields from account.move.line (Journal Item). When set, this line will generate sublines grouped by those keys.'
precompute=True
readonly=False
store=True
string='User Group By'
No public methods.
end_date
Date
help='Date (inclusive) to which the numbers are resequenced. If not set, all Journal Entries up to the end of the period are resequenced.'
first_date
Date
help='Date (inclusive) from which the numbers are resequenced.'
first_name
Char
compute='_compute_first_name'
readonly=False
required=True
store=True
string='First New Sequence'
move_ids
Many2many → account.move
new_values
Text
compute='_compute_new_values'
ordering
Selection
default='keep'
required=True
args: [('keep', 'Keep current order'), ('date', 'Reorder by accounting date')]
preview_moves
Text
compute='_compute_preview_moves'
sequence_number_reset
Char
compute='_compute_sequence_number_reset'
default_get(self, fields_list)
resequence(self)
name
Char
compute='_compute_root'
parent_id
Many2one → account.root
compute='_compute_root'
args: 'account.root'
browse(self, ids=())
chains_to_hash_with_gaps
Json
compute='_compute_data'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
country_code
Char
related='company_id.account_fiscal_country_id.code'
hash_date
Date
compute='_compute_hash_date'
help='The selected Date'
readonly=False
required=True
store=True
string='Hash All Entries'
max_hash_date
Date
compute='_compute_max_hash_date'
help='Highest Date such that all posted journal entries prior to (including) the date are secured. Only journal entries after the hard lock date are considered.'
string='Max Hash Date'
move_to_hash_ids
Many2many → account.move
comodel_name='account.move'
compute='_compute_data'
help='All moves that will be hashed'
not_hashable_unlocked_move_ids
Many2many → account.move
comodel_name='account.move'
compute='_compute_data'
help='All unhashable moves before the selected date that are not protected by the Hard Lock Date'
unreconciled_bank_statement_line_ids
Many2many → account.bank.statement.line
comodel_name='account.bank.statement.line'
compute='_compute_data'
help='All unreconciled bank statement lines before the selected date.'
warnings
Json
compute='_compute_warnings'
action_secure_entries(self)
action_show_draft_moves_in_hashed_period(self)
action_show_moves(self, moves)
bank_bic
Char
readonly=False
related='bank_id.bic'
string='Bic'
company_id
Many2one → res.company
compute='_compute_company_id'
required=True
args: 'res.company'
linked_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_linked_journal_id'
domain=[('type', '=', 'bank'), ('bank_account_id', '=', False)]
inverse='set_linked_journal_id'
string='Journal'
new_journal_name
Char
default=<expr>
help='Will be used to name the Journal related to this bank account'
inverse='set_linked_journal_id'
required=True
num_journals_without_account
Integer
default=<expr>
res_partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
ondelete='cascade'
required=True
create(self, vals_list)
default_linked_journal_id(self)
set_linked_journal_id(self)
validate(self)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
default=0.0
digits=(16, 4)
required=True
tracking=True
amount_type
Selection
default='percent'
help='\n - Group of Taxes: The tax is a set of sub taxes.\n - Fixed: The tax amount stays the same whatever the price.\n - Percentage: The tax amount is a % of the price:\n e.g 100 * (1 + 10%) = 110 (not price included)\n e.g 110 / (1 + 10%) = 100 (price included)\n - Percentage Tax Included: The tax amount is a division of the price:\n e.g 180 / (1 - 10%) = 200 (not price included)\n e.g 200 * (1 - 10%) = 180 (price included)\n '
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage'), ('division', 'Percentage Tax Included')]
string='Tax Computation'
tracking=True
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Include in Analytic Cost'
cash_basis_transition_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="\n [\n ('deprecated', '=', False),\n ('account_type', 'not in', ('asset_receivable', 'liability_payable'))\n ]\n "
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
children_tax_ids
Many2many → account.tax
check_company=True
string='Children Taxes'
args: 'account.tax', 'account_tax_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
company_price_include
Selection
related='company_id.account_price_include'
country_code
Char
readonly=True
related='country_id.code'
country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_country_id'
help='The country for which this tax is applicable.'
precompute=True
readonly=False
required=True
store=True
string='Country'
description
Html
string='Description'
translate=html_translate
has_negative_factor
Boolean
compute='_compute_has_negative_factor'
hide_tax_exigibility
Boolean
readonly=True
related='company_id.tax_exigibility'
string='Hide Use Cash Basis Option'
include_base_amount
Boolean
default=False
help='If set, taxes with a higher sequence than this one will be affected by it, provided they accept it.'
string='Affect Base of Subsequent Taxes'
tracking=True
invoice_label
Char
string='Label on Invoices'
translate=True
invoice_legal_notes
Html
help='Legal mentions that have to be printed on the invoices.'
string='Legal Notes'
invoice_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
compute='_compute_invoice_repartition_line_ids'
domain=[('document_type', '=', 'invoice')]
help='Distribution when the tax is used on an invoice'
inverse_name='tax_id'
readonly=False
store=True
string='Distribution for Invoices'
is_base_affected
Boolean
default=True
help='If set, taxes with a lower sequence might affect this one, provided they try to do it.'
string='Base Affected by Previous Taxes'
tracking=True
is_used
Boolean
compute='_compute_is_used'
string='Tax used'
name
Char
required=True
string='Tax Name'
tracking=True
translate=True
name_searchable
Char
help="This dummy field lets us use another search method on the field 'name'.This allows more freedom on how to search the 'name' compared to 'filter_domain'.See '_search_name' and '_parse_name_search' for why this is not possible with 'filter_domain'."
search='_search_name'
store=False
price_include
Boolean
compute='_compute_price_include'
help='Determines whether the price you use on the product and invoices includes this tax.'
search='_search_price_include'
price_include_override
Selection
help="Overrides the Company's default on whether the price you use on the product and invoices includes this tax."
selection=[('tax_included', 'Tax Included'), ('tax_excluded', 'Tax Excluded')]
string='Included in Price'
tracking=True
refund_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
compute='_compute_refund_repartition_line_ids'
domain=[('document_type', '=', 'refund')]
help='Distribution when the tax is used on a refund'
inverse_name='tax_id'
readonly=False
store=True
string='Distribution for Refund Invoices'
repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
inverse_name='tax_id'
string='Distribution'
repartition_lines_str
Char
compute='_compute_repartition_lines_str'
string='Repartition Lines'
tracking=True
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Exigibility'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
comodel_name='account.tax.group'
compute='_compute_tax_group_id'
domain="[('country_id', 'in', (country_id, False))]"
precompute=True
readonly=False
required=True
store=True
string='Tax Group'
tax_scope
Selection
string='Tax Scope'
args: [('service', 'Services'), ('consu', 'Goods')]
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note: 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment."
required=True
string='Tax Type'
tracking=True
args: TYPE_TAX_USE
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True, include_caba_tags=False, rounding_method=None)
copy_data(self, default=None)
create(self, vals_list)
flatten_taxes_hierarchy(self)
get_tax_tags(self, is_refund, repartition_type)
onchange_amount(self)
onchange_amount_type(self)
onchange_price_include(self)
validate_tax_group_id(self)
write(self, vals)
advance_tax_payment_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Downpayments posted on this account will be considered by the Tax Closing Entry.'
string='Tax Advance Account'
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
country_code
Char
related='country_id.code'
country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_country_id'
help='The country for which this tax group is applicable.'
precompute=True
readonly=False
store=True
string='Country'
name
Char
required=True
translate=True
pos_receipt_label
Char
string='PoS receipt label'
preceding_subtotal
Char
help="If set, this value will be used on documents as the label of a subtotal excluding this tax group before displaying it. If not set, the tax group will be displayed after the 'Untaxed amount' subtotal."
string='Preceding Subtotal'
translate=True
sequence
Integer
default=10
tax_payable_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Tax current account used as a counterpart to the Tax Closing Entry when in favor of the authorities.'
string='Tax Payable Account'
tax_receivable_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Tax current account used as a counterpart to the Tax Closing Entry when in favor of the company.'
string='Tax Receivable Account'
No public methods.
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'not in', ('asset_receivable', 'liability_payable', 'off_balance'))]"
help='Account on which to post the tax amount'
string='Account'
company_id
Many2one → res.company
comodel_name='res.company'
help='The company this distribution line belongs to.'
related='tax_id.company_id'
store=True
string='Company'
document_type
Selection
required=True
selection=[('invoice', 'Invoice'), ('refund', 'Refund')]
string='Related to'
factor
Float
compute='_compute_factor'
help='Factor to apply on the account move lines generated from this distribution line'
string='Factor Ratio'
factor_percent
Float
default=100
digits=(16, 12)
help='Factor to apply on the account move lines generated from this distribution line, in percents'
required=True
string='%'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
sequence
Integer
default=1
help='The order in which distribution lines are displayed and matched. For refunds to work properly, invoice distribution lines should be arranged in the same order as the credit note distribution lines they correspond to.'
string='Sequence'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
domain=[('applicability', '=', 'taxes')]
ondelete='restrict'
string='Tax Grids'
tag_ids_domain
Binary
compute='_compute_tag_ids_domain'
help='Dynamic domain used for the tag that can be set on tax'
string='tag domain'
tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
ondelete='cascade'
use_in_tax_closing
Boolean
compute='_compute_use_in_tax_closing'
precompute=True
readonly=False
store=True
string='Tax Closing Entry'
No public methods.
account_number
Char
compute='_compute_account_number'
inverse='_inverse_account_number'
from_invoice
Boolean
qr_code
Boolean
readonly=False
related='company_id.qr_code'
vat
Char
readonly=False
related='company_id.vat'
document_layout_save(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)precision_get(self, application)
kpi_account_total_revenue
Boolean
kpi_account_total_revenue_value
Monetary
compute='_compute_kpi_account_total_revenue_value'
No public methods.
is_invoice_report
Boolean
copy=True
string='Invoice report'
No public methods.
No new fields.
Public methods (0)No public methods.
account_templates
Binary
compute='_compute_account_templates'
exportable=False
module_uninstall(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (2)get_account_kpi_summary(self)
get_kpi_summary(self)
account_audit_log_account_id
Many2one → account.account
comodel_name='account.account'
compute='_compute_account_audit_log_account_id'
search='_search_account_audit_log_account_id'
string='Account'
account_audit_log_activated
Boolean
compute='_compute_account_audit_log_activated'
search='_search_account_audit_log_activated'
string='Audit Log Activated'
account_audit_log_company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_account_audit_log_company_id'
search='_search_account_audit_log_company_id'
string='Company '
account_audit_log_move_id
Many2one → account.move
comodel_name='account.move'
compute='_compute_account_audit_log_move_id'
search='_search_account_audit_log_move_id'
string='Journal Entry'
account_audit_log_partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_account_audit_log_partner_id'
search='_search_account_audit_log_partner_id'
string='Partner'
account_audit_log_preview
Text
compute='_compute_account_audit_log_preview'
string='Description'
account_audit_log_tax_id
Many2one → account.tax
comodel_name='account.tax'
compute='_compute_account_audit_log_tax_id'
search='_search_account_audit_log_tax_id'
string='Tax'
write(self, vals)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)write(self, vals)
No new fields.
Public methods (2)action_close_panel_account_dashboard(self)
action_close_panel_account_invoice(self)
No new fields.
Public methods (8)action_open_step_bank_account(self)
action_open_step_base_document_layout(self)
action_open_step_chart_of_accounts(self)
action_open_step_company_data(self)
action_open_step_create_invoice(self)
action_open_step_fiscal_year(self)
action_open_step_sales_tax(self)
action_validate_step_base_document_layout(self)
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.'
ondelete='restrict'
string='Expense Account'
tracking=True
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='This account will be used when validating a customer invoice.'
ondelete='restrict'
string='Income Account'
tracking=True
args: 'account.account'
No public methods.
tax_string
Char
compute='_compute_tax_string'
No public methods.
account_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
domain="[('applicability', '=', 'products')]"
help='Tags to be set on the base and tax journal items created for this product.'
string='Account Tags'
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
property_account_expense_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category. If anglo-saxon accounting with automated valuation method is configured, the expense account on the product category will be used.'
ondelete='restrict'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category.'
ondelete='restrict'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'purchase')]
help='Default taxes used when buying the product'
string='Purchase Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
tax_string
Char
compute='_compute_tax_string'
taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'sale')]
help='Default taxes used when selling the product'
string='Sales Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
create(self, vals_list)
get_product_accounts(self, fiscal_pos=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
account_cash_basis_base_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
account_default_pos_receivable_account_id
Many2one → account.account
check_company=True
string='Default PoS Receivable Account'
args: 'account.account'
account_discount_expense_allocation_id
Many2one → account.account
comodel_name='account.account'
string='Separate account for expense discount'
account_discount_income_allocation_id
Many2one → account.account
comodel_name='account.account'
string='Separate account for income discount'
account_enabled_tax_country_ids
Many2many → res.country
comodel_name='res.country'
compute='_compute_account_enabled_tax_country_ids'
help='Technical field containing the countries for which this company is using tax-related features(hence the ones for which l10n modules need to show tax-related fields).'
string='l10n-used countries'
account_fiscal_country_id
Many2one → res.country
comodel_name='res.country'
compute='compute_account_tax_fiscal_country'
help='The country to use the tax reports from for this company'
readonly=False
store=True
string='Fiscal Country'
account_journal_early_pay_discount_gain_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
string='Cash Discount Write-Off Gain Account'
account_journal_early_pay_discount_loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
string='Cash Discount Write-Off Loss Account'
account_journal_suspense_account_id
Many2one → account.account
check_company=True
string='Journal Suspense Account'
args: 'account.account'
account_opening_date
Date
default=<expr>
help='That is the date of the opening entry.'
required=True
string='Opening Entry'
account_opening_journal_id
Many2one → account.journal
comodel_name='account.journal'
help="Journal where the opening entry of this company's accounting has been posted."
readonly=False
related='account_opening_move_id.journal_id'
string='Opening Journal'
account_opening_move_id
Many2one → account.move
comodel_name='account.move'
help="The journal entry containing the initial balance of all this company's accounts."
string='Opening Journal Entry'
account_price_include
Selection
default='tax_excluded'
help='Default on whether the sales price used on the product and invoices with this Company includes its taxes.'
required=True
selection=[('tax_included', 'Tax Included'), ('tax_excluded', 'Tax Excluded')]
string='Default Sales Price Include'
account_purchase_tax_id
Many2one → account.tax
check_company=True
string='Default Purchase Tax'
args: 'account.tax'
account_sale_tax_id
Many2one → account.tax
check_company=True
string='Default Sale Tax'
args: 'account.tax'
account_storno
Boolean
readonly=False
string='Storno accounting'
account_use_credit_limit
Boolean
help='Enable the use of credit limit on partners.'
string='Sales Credit Limit'
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
automatic_entry_default_journal_id
Many2one → account.journal
check_company=True
domain="[('type', '=', 'general')]"
help='Journal used by default for moving the period of an entry'
args: 'account.journal'
autopost_bills
Boolean
default=True
string='Auto-validate bills'
bank_account_code_prefix
Char
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
batch_payment_sequence_id
Many2one → ir.sequence
comodel_name='ir.sequence'
copy=False
readonly=True
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template
Selection
selection='_chart_template_selection'
check_account_audit_trail
Boolean
string='Audit Trail'
company_registry_placeholder
Char
compute='_compute_company_registry_placeholder'
company_vat_placeholder
Char
compute='_compute_company_vat_placeholder'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
default_cash_difference_expense_account_id
Many2one → account.account
check_company=True
string='Cash Difference Expense'
args: 'account.account'
default_cash_difference_income_account_id
Many2one → account.account
check_company=True
string='Cash Difference Income'
args: 'account.account'
display_invoice_amount_total_words
Boolean
string='Total amount of invoice in letters'
display_invoice_tax_company_currency
Boolean
default=True
string='Taxes in company currency'
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_accrual_account_id
Many2one → account.account
check_company=True
domain="[('internal_group', '=', 'liability'), ('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
help='Account used to move the period of an expense'
args: 'account.account'
expense_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', '=', 'expense')]"
string='Loss Exchange Rate Account'
fiscal_position_ids
One2many → account.fiscal.position
comodel_name='account.fiscal.position'
inverse_name='company_id'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default='12'
required=True
args: MONTH_SELECTION
fiscalyear_lock_date
Date
help="Any entry up to and including that date will be postponed to a later time, in accordance with its journal's sequence."
string='Global Lock Date'
tracking=True
hard_lock_date
Date
help='Any entry up to and including that date will be postponed to a later time, in accordance with its journal sequence. This lock date is irreversible and does not allow any exception.'
string='Hard Lock Date'
tracking=True
income_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('internal_group', '=', 'income')]"
string='Gain Exchange Rate Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Default incoterm'
args: 'account.incoterms'
invoice_terms
Html
string='Default Terms and Conditions'
translate=True
invoice_terms_html
Html
compute='_compute_invoice_terms_html'
readonly=False
sanitize_attributes=False
store=True
string='Default Terms and Conditions as a Web page'
translate=True
multi_vat_foreign_country_ids
Many2many → res.country
comodel_name='res.country'
compute='_compute_multi_vat_foreign_country'
help='Countries for which the company has a VAT number'
string='Foreign VAT countries'
purchase_lock_date
Date
help="Any purchase entry prior to and including this date will be postponed to a later date, in accordance with its journal's sequence."
string='Purchase Lock date'
tracking=True
qr_code
Boolean
string='Display QR-code on invoices'
quick_edit_mode
Selection
selection=[('out_invoices', 'Customer Invoices'), ('in_invoices', 'Vendor Bills'), ('out_and_in_invoices', 'Customer Invoices and Vendor Bills')]
string='Quick encoding'
revenue_accrual_account_id
Many2one → account.account
check_company=True
domain="[('internal_group', '=', 'asset'), ('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
help='Account used to move the period of a revenue'
args: 'account.account'
sale_lock_date
Date
help="Any sales entry prior to and including this date will be postponed to a later date, in accordance with its journal's sequence."
string='Sales Lock Date'
tracking=True
tax_calculation_rounding_method
Selection
default='round_per_line'
string='Tax Calculation Rounding Method'
args: [('round_per_line', 'Round per Line'), ('round_globally', 'Round Globally')]
tax_cash_basis_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
string='Cash Basis Journal'
tax_exigibility
Boolean
string='Use Cash Basis'
tax_lock_date
Date
help="Any entry with taxes up to and including that date will be postponed to a later time, in accordance with its journal's sequence. The tax lock date is automatically set when the tax closing entry is posted."
string='Tax Return Lock Date'
tracking=True
terms_type
Selection
default='plain'
string='Terms & Conditions format'
args: [('plain', 'Add a Note'), ('html', 'Add a link to a Web Page')]
transfer_account_code_prefix
Char
string='Prefix of the transfer accounts'
transfer_account_id
Many2one → account.account
check_company=True
domain="[('reconcile', '=', True), ('account_type', '=', 'asset_current'), ('deprecated', '=', False)]"
help='Intermediary account used when moving money from a liquidity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
user_fiscalyear_lock_date
Date
compute='_compute_user_fiscalyear_lock_date'
user_hard_lock_date
Date
compute='_compute_user_hard_lock_date'
user_purchase_lock_date
Date
compute='_compute_user_purchase_lock_date'
user_sale_lock_date
Date
compute='_compute_user_sale_lock_date'
user_tax_lock_date
Date
compute='_compute_user_tax_lock_date'
action_save_onboarding_company_data(self)
action_save_onboarding_sale_tax(self)
cache_invalidation_fields(self)
compute_account_tax_fiscal_country(self)
compute_fiscalyear_dates(self, current_date)
create(self, vals_list)
get_chart_of_accounts_or_fail(self)
get_new_account_code(self, current_code, old_prefix, new_prefix)
get_next_batch_payment_communication(self)
get_unaffected_earnings_account(self)
install_l10n_modules(self)
opening_move_posted(self)
reflect_code_prefix_change(self, old_code, new_code)
setting_init_bank_account_action(self)
write(self, values)
account_cash_basis_base_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain=[('deprecated', '=', False)]
readonly=False
related='company_id.account_cash_basis_base_account_id'
string='Base Tax Received Account'
account_default_credit_limit
Monetary
compute='_compute_account_default_credit_limit'
help='This is the default credit limit that will be used on partners that do not have a specific limit on them.'
inverse='_inverse_account_default_credit_limit'
readonly=False
string='Default Credit Limit'
account_discount_expense_allocation_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'in', ('income', 'income_other', 'expense'))]"
readonly=False
related='company_id.account_discount_expense_allocation_id'
string='Customer Invoices Discounts Account'
account_discount_income_allocation_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'in', ('income', 'income_other', 'expense'))]"
readonly=False
related='company_id.account_discount_income_allocation_id'
string='Vendor Bills Discounts Account'
account_fiscal_country_id
Many2one
readonly=False
related='company_id.account_fiscal_country_id'
store=False
string='Fiscal Country Code'
account_journal_early_pay_discount_gain_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'in', ('income', 'income_other', 'expense'))]"
help='Account for the difference amount after the income discount has been granted'
readonly=False
related='company_id.account_journal_early_pay_discount_gain_account_id'
string='Early Discount Gain'
account_journal_early_pay_discount_loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'in', ('expense', 'income', 'income_other'))]"
help='Account for the difference amount after the expense discount has been granted'
readonly=False
related='company_id.account_journal_early_pay_discount_loss_account_id'
string='Early Discount Loss'
account_journal_suspense_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'in', ('asset_current', 'liability_current'))]"
help='Bank Transactions are posted immediately after import or synchronization. Their counterparty is the bank suspense account.\nReconciliation replaces the latter by the definitive account(s).'
readonly=False
related='company_id.account_journal_suspense_account_id'
string='Bank Suspense'
account_price_include
Selection
help='Default on whether the sales price used on the product and invoices with this Company includes its taxes.'
readonly=False
related='company_id.account_price_include'
required=True
string='Default Sales Price Include'
account_storno
Boolean
readonly=False
related='company_id.account_storno'
string='Storno accounting'
account_use_credit_limit
Boolean
help='Enable the use of credit limit on partners.'
readonly=False
related='company_id.account_use_credit_limit'
string='Sales Credit Limit'
autopost_bills
Boolean
readonly=False
related='company_id.autopost_bills'
chart_template
Selection
default=<expr>
selection=<expr>
check_account_audit_trail
Boolean
readonly=False
related='company_id.check_account_audit_trail'
string='Audit Trail'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_exchange_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
domain="[('type', '=', 'general')]"
help='The accounting journal where automatic exchange differences will be registered'
readonly=False
related='company_id.currency_exchange_journal_id'
string='Currency Exchange Journal'
currency_id
Many2one → res.currency
help='Main currency of the company.'
readonly=False
related='company_id.currency_id'
required=True
string='Currency'
args: 'res.currency'
display_invoice_amount_total_words
Boolean
readonly=False
related='company_id.display_invoice_amount_total_words'
string='Total amount of invoice in letters'
display_invoice_tax_company_currency
Boolean
readonly=False
related='company_id.display_invoice_tax_company_currency'
string='Taxes in company currency'
expense_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', '=', 'expense')]"
readonly=False
related='company_id.expense_currency_exchange_account_id'
string='Loss Exchange Rate Account'
group_cash_rounding
Boolean
implied_group='account.group_cash_rounding'
string='Cash Rounding'
group_sale_delivery_address
Boolean
implied_group='account.group_delivery_invoice_address'
args: 'Customer Addresses'
group_show_purchase_receipts
Boolean
implied_group='account.group_purchase_receipts'
string='Purchase Receipt'
group_show_sale_receipts
Boolean
implied_group='account.group_sale_receipts'
string='Sale Receipt'
group_warning_account
Boolean
implied_group='account.group_warning_account'
string='Warnings in Invoices'
has_accounting_entries
Boolean
compute='_compute_has_chart_of_accounts'
has_chart_of_accounts
Boolean
compute='_compute_has_chart_of_accounts'
string='Company has a chart of accounts'
income_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('internal_group', '=', 'income')]"
readonly=False
related='company_id.income_currency_exchange_account_id'
string='Gain Exchange Rate Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
readonly=False
related='company_id.incoterm_id'
string='Default incoterm'
args: 'account.incoterms'
invoice_terms
Html
readonly=False
related='company_id.invoice_terms'
string='Terms & Conditions'
invoice_terms_html
Html
readonly=False
related='company_id.invoice_terms_html'
string='Terms & Conditions as a Web page'
is_account_peppol_eligible
Boolean
compute='_compute_is_account_peppol_eligible'
string='PEPPOL eligible'
module_account_accountant
Boolean
string='Accounting'
module_account_bank_statement_extract
Boolean
compute='_compute_module_account_bank_statement_extract'
readonly=False
store=True
args: 'Bank Statement Digitization'
module_account_bank_statement_import_camt
Boolean
module_account_bank_statement_import_csv
Boolean
module_account_bank_statement_import_ofx
Boolean
module_account_bank_statement_import_qif
Boolean
module_account_batch_payment
Boolean
help='This allows you grouping payments into a single batch and eases the reconciliation process.\n-This installs the account_batch_payment module.'
string='Use batch payments'
module_account_budget
Boolean
string='Budget Management'
module_account_check_printing
Boolean
module_account_extract
Boolean
string='Document Digitization'
module_account_intrastat
Boolean
string='Intrastat'
module_account_invoice_extract
Boolean
compute='_compute_module_account_invoice_extract'
readonly=False
store=True
args: 'Invoice Digitization'
module_account_iso20022
Boolean
string='SEPA Credit Transfer / ISO20022'
module_account_payment
Boolean
string='Invoice Online Payment'
module_account_peppol
Boolean
string='PEPPOL Invoicing'
module_account_reports
Boolean
module_account_sepa_direct_debit
Boolean
string='Use SEPA Direct Debit'
module_currency_rate_live
Boolean
string='Automatic Currency Rates'
module_l10n_eu_oss
Boolean
string='EU Intra-community Distance Selling'
module_product_margin
Boolean
string='Allow Product Margin'
module_snailmail_account
Boolean
string='Snailmail'
preview_ready
Boolean
compute='_compute_terms_preview'
string='Display preview button'
purchase_tax_id
Many2one → account.tax
check_company=True
readonly=False
related='company_id.account_purchase_tax_id'
string='Default Purchase Tax'
args: 'account.tax'
qr_code
Boolean
readonly=False
related='company_id.qr_code'
string='Display SEPA QR-code'
quick_edit_mode
Selection
readonly=False
related='company_id.quick_edit_mode'
string='Quick encoding'
sale_tax_id
Many2one → account.tax
check_company=True
readonly=False
related='company_id.account_sale_tax_id'
string='Default Sale Tax'
args: 'account.tax'
tax_calculation_rounding_method
Selection
readonly=False
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_cash_basis_journal_id
Many2one → account.journal
check_company=True
readonly=False
related='company_id.tax_cash_basis_journal_id'
string='Tax Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
readonly=False
related='company_id.tax_exigibility'
string='Cash Basis'
terms_type
Selection
readonly=False
related='company_id.terms_type'
transfer_account_id
Many2one → account.account
check_company=True
domain=[('reconcile', '=', True), ('account_type', '=', 'asset_current'), ('deprecated', '=', False)]
help='Intermediary account used when moving from a liquidity account to another.'
readonly=False
related='company_id.transfer_account_id'
string='Internal Transfer'
args: 'account.account'
use_invoice_terms
Boolean
config_parameter='account.use_invoice_terms'
string='Default Terms & Conditions'
action_update_terms(self)
onchange_analytic_accounting(self)
onchange_module_account_budget(self)
reload_template(self)
set_values(self)
display_rounding_warning
Boolean
compute='_compute_display_rounding_warning'
help="The warning informs a rounding factor change might be dangerous on res.currency's form view."
string='Display Rounding Warning'
fiscal_country_codes
Char
default=_get_fiscal_country_codes
store=False
write(self, vals)
No new fields.
Public methods (1)get_application_groups(self, domain)
autopost_bills
Selection
default='ask'
help='Automatically post bills for this trusted partner'
required=True
selection=[('always', 'Always'), ('ask', 'Ask after 3 validations without edits'), ('never', 'Never')]
string='Auto-post bills'
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Partner Contracts'
args: 'account.analytic.account', 'partner_id'
credit
Monetary
compute='_credit_debit_get'
groups='account.group_account_invoice,account.group_account_readonly'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
credit_limit
Float
company_dependent=True
copy=False
groups='account.group_account_invoice,account.group_account_readonly'
help='Credit limit specific to this partner.'
readonly=False
string='Credit Limit'
credit_to_invoice
Monetary
compute='_compute_credit_to_invoice'
groups='account.group_account_invoice,account.group_account_readonly'
currency_id
Many2one → res.currency
compute='_get_company_currency'
readonly=True
string='Currency'
args: 'res.currency'
customer_rank
Integer
copy=False
default=0
days_sales_outstanding
Float
compute='_compute_days_sales_outstanding'
help='[(Total Receivable/Total Revenue) * number of days since the first invoice] for this customer'
string='Days Sales Outstanding (DSO)'
debit
Monetary
compute='_credit_debit_get'
groups='account.group_account_invoice,account.group_account_readonly'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
debit_limit
Monetary
display_invoice_edi_format
Boolean
default=<expr>
store=False
display_invoice_template_pdf_report_id
Boolean
default=_default_display_invoice_template_pdf_report_id
store=False
duplicate_bank_partner_ids
Many2many
related='bank_ids.duplicate_bank_partner_ids'
duplicated_bank_account_partners_count
Integer
compute='_compute_duplicated_bank_account_partners_count'
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
ignore_abnormal_invoice_amount
Boolean
company_dependent=True
ignore_abnormal_invoice_date
Boolean
company_dependent=True
invoice_edi_format
Selection
compute='_compute_invoice_edi_format'
compute_sudo=True
inverse='_inverse_invoice_edi_format'
selection=[]
string='eInvoice format'
invoice_edi_format_store
Char
company_dependent=True
invoice_ids
One2many → account.move
copy=False
readonly=True
string='Invoices'
args: 'account.move', 'partner_id'
invoice_sending_method
Selection
company_dependent=True
selection=[('manual', 'Download'), ('email', 'by Email')]
string='Invoice sending'
invoice_template_pdf_report_id
Many2one → ir.actions.report
comodel_name='ir.actions.report'
domain="[('is_invoice_report', '=', True)]"
readonly=False
store=True
string='Invoice template'
invoice_warn
Selection
default='no-message'
help=WARNING_HELP
args: WARNING_MESSAGE, 'Invoice'
invoice_warn_msg
Text
is_coa_installed
Boolean
default=<expr>
store=False
journal_item_count
Integer
compute='_compute_journal_item_count'
string='Journal Items'
name
Char
tracking=True
partner_company_registry_placeholder
Char
compute='_compute_partner_company_registry_placeholder'
partner_vat_placeholder
Char
compute='_compute_partner_vat_placeholder'
property_account_payable_id
Many2one → account.account
company_dependent=True
domain="[('account_type', '=', 'liability_payable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the payable account for the current partner'
ondelete='restrict'
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
company_dependent=True
help='The fiscal position determines the taxes/accounts used for this contact.'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
company_dependent=True
domain="[('account_type', '=', 'asset_receivable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the receivable account for the current partner'
ondelete='restrict'
string='Account Receivable'
args: 'account.account'
property_inbound_payment_method_line_id
Many2one → account.payment.method.line
comodel_name='account.payment.method.line'
company_dependent=True
domain=<expr>
help='Preferred payment method when selling to this customer. This will be set by default on all incoming payments created for this customer'
property_outbound_payment_method_line_id
Many2one → account.payment.method.line
comodel_name='account.payment.method.line'
company_dependent=True
domain=<expr>
help='Preferred payment method when buying from this vendor. This will be set by default on all outgoing payments created for this vendor'
property_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for sales orders and customer invoices'
ondelete='restrict'
string='Customer Payment Terms'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for purchase orders and vendor bills'
string='Vendor Payment Terms'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
show_credit_limit
Boolean
compute='_compute_show_credit_limit'
default=<expr>
groups='account.group_account_invoice,account.group_account_readonly'
supplier_invoice_count
Integer
compute='_compute_supplier_invoice_count'
string='# Vendor Bills'
supplier_rank
Integer
copy=False
default=0
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice,account.group_account_readonly'
string='Total Invoiced'
trust
Selection
company_dependent=True
string='Degree of trust you have in this debtor'
args: [('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')]
use_partner_credit_limit
Boolean
compute='_compute_use_partner_credit_limit'
groups='account.group_account_invoice,account.group_account_readonly'
help='Set a value greater than 0.0 to activate a credit limit check'
inverse='_inverse_use_partner_credit_limit'
string='Partner Limit'
action_open_business_doc(self)
action_view_partner_invoices(self)
action_view_partner_with_same_bank(self)
can_edit_vat(self)
create(self, vals_list)
get_partner_localisation_fields_required_to_invoice(self, country_id)
write(self, vals)
acc_holder_name
Char
tracking=True
acc_number
Char
tracking=True
active
Boolean
tracking=True
allow_out_payment
Boolean
help='Sending fake invoices with a fraudulent account number is a common phishing practice. To protect yourself, always verify new bank account numbers, preferably by calling the vendor, as phishing usually happens when their emails are compromised. Once verified, you can activate the ability to send money.'
tracking=True
bank_id
Many2one
tracking=True
currency_id
Many2one
tracking=True
duplicate_bank_partner_ids
Many2many → res.partner
compute='_compute_duplicate_bank_partner_ids'
args: 'res.partner'
has_iban_warning
Boolean
compute='_compute_display_account_warning'
help='Technical field used to display a warning if the IBAN country is different than the holder country.'
store=True
has_money_transfer_warning
Boolean
compute='_compute_display_account_warning'
help='Technical field used to display a warning if the account is a transfer service account.'
store=True
journal_id
One2many → account.journal
check_company=True
domain=[('type', '=', 'bank')]
help='The accounting journal corresponding to this bank account.'
readonly=True
string='Account Journal'
args: 'account.journal', 'bank_account_id'
lock_trust_fields
Boolean
compute='_compute_lock_trust_fields'
money_transfer_service
Char
compute='_compute_money_transfer_service_name'
partner_country_name
Char
related='partner_id.country_id.name'
partner_customer_rank
Integer
related='partner_id.customer_rank'
partner_id
Many2one
tracking=True
partner_supplier_rank
Integer
related='partner_id.supplier_rank'
related_moves
One2many → account.move
inverse_name='partner_bank_id'
args: 'account.move'
user_has_group_validate_bank_account
Boolean
compute='_compute_user_has_group_validate_bank_account'
action_open_business_doc(self)
build_qr_code_base64(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
build_qr_code_url(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
create(self, vals_list)
default_get(self, fields_list)
get_available_qr_methods_in_sequence(self)
unlink(self)
write(self, vals)
sequence_number
Integer
compute='_compute_split_sequence'
store=True
sequence_prefix
Char
compute='_compute_split_sequence'
store=True
init(self)
write(self, vals)
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
No public methods.
abnormal_amount_partner_ids
One2many → res.partner
compute='_compute_abnormal_amount_partner_ids'
args: 'res.partner'
abnormal_date_partner_ids
One2many → res.partner
compute='_compute_abnormal_date_partner_ids'
args: 'res.partner'
display_force_post
Boolean
compute='_compute_display_force_post'
force_post
Boolean
help='Entries in the future are set to be auto-posted by default. Check this checkbox to post them now.'
string='Force'
ignore_abnormal_amount
Boolean
ignore_abnormal_date
Boolean
is_entries
Boolean
compute='_compute_is_entries'
move_ids
Many2many → account.move
default_get(self, fields_list)
validate_move(self)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account.account_terms_conditions_setting_banner |
Account Terms and Conditions Setting Banner | ir.ui.view | qweb | New |
account_analytic_account_view_form_inherit |
account.analytic.account.form.inherit | account.analytic.account | div | Inherits analytic.view_account_analytic_account_form |
account_analytic_account_view_list_inherit |
account.analytic.account.list.inherit | account.analytic.account | field | Inherits analytic.view_account_analytic_account_list |
account_analytic_distribution_model_form_inherit |
account.analytic.distribution.model.inherit.form | account.analytic.distribution.model | data | Inherits analytic.account_analytic_distribution_model_form_view |
account_analytic_distribution_model_tree_inherit |
account.analytic.distribution.model.inherit.tree | account.analytic.distribution.model | data | Inherits analytic.account_analytic_distribution_model_tree_view |
account_analytic_plan_form_view_inherit_account |
account.analytic.plan.inherit.form | account.analytic.plan | data | Inherits analytic.account_analytic_plan_form_view |
account_automatic_entry_wizard_form |
account.automatic.entry.wizard.form | account.automatic.entry.wizard | form | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_default_terms_and_conditions |
account_default_terms_and_conditions | ir.ui.view | qweb | New |
account_incoterms_form |
account.incoterms.form | account.incoterms | form | New |
account_incoterms_view_search |
account.incoterms.search | account.incoterms | search | New |
account_invoice_report_view_tree |
account.invoice.report.view.tree | account.invoice.report | tree | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_journal_dashboard_kanban_view_js |
account.journal.dashboard.kanban.js | account.journal | xpath | Inherits account.account_journal_dashboard_kanban_view |
account_journal_view_kanban |
account.journal.kanban | account.journal | kanban | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_view_kanban |
account.move.line.kanban | account.move.line | kanban | New |
account_move_line_view_kanban_mobile |
account.move.line.kanban.mobile | account.move.line | xpath | Inherits account_move_line_view_kanban |
account_move_send_form |
account.move.send.form | account.move.send | form | New |
account_move_view_activity |
account.move.view.activity | account.move | activity | New |
account_resequence_view |
Re-sequence Journal Entries | account.resequence.wizard | form | New |
account_tag_view_form |
Tags | account.account.tag | form | New |
account_tag_view_search |
account.tag.view.search | account.account.tag | search | New |
account_tag_view_tree |
Tags | account.account.tag | tree | New |
account_tax_group_view_search |
account.tax.group.search.filters | account.tax.group | search | New |
account_tax_view_search |
account.tax.search.filters | account.tax | search | New |
account_tax_view_tree |
account.invoice.line.tax.search | account.tax | tree | New |
account_terms_conditions_page |
Terms & Conditions | ir.ui.view | qweb | New |
account_tour_upload_bill |
account.tour.upload.bill | account.tour.upload.bill | form | New |
account_tour_upload_bill_email_confirm |
account.tour.upload.bill.email.confirm | account.tour.upload.bill.email.confirm | form | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
bill_preview |
bill_preview | ir.ui.view | qweb | New |
digest_digest_view_form |
digest.digest.view.form.inherit.account.account | digest.digest | xpath | Inherits digest.digest_digest_view_form |
document_tax_totals |
document_tax_totals | ir.ui.view | qweb | Inherits account.document_tax_totals_template |
document_tax_totals_company_currency_template |
document_tax_totals_company_currency_template | ir.ui.view | qweb | New |
document_tax_totals_template |
document_tax_totals_template | ir.ui.view | qweb | New |
init_accounts_tree |
account.setup.opening.move.line.tree | account.account | tree | New |
partner_view_buttons |
partner.view.buttons | res.partner | div | Inherits base.view_partner_form |
portal_invoice_error |
Invoice error/warning display | ir.ui.view | qweb | New |
portal_invoice_page |
Invoice/Bill | ir.ui.view | qweb | Inherits portal.portal_sidebar |
portal_invoice_required_fields_form |
portal_invoice_required_fields_form | ir.ui.view | qweb | New |
portal_invoice_success |
Invoice success display | ir.ui.view | qweb | New |
portal_my_home_invoice |
Show Invoices & Bills | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_invoice |
Portal layout : invoice menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_invoices |
My Invoices and Payments | ir.ui.view | qweb | New |
product_template_form_view |
product.template.form.inherit | product.template | xpath | Inherits product.product_template_form_view |
product_template_view_tree |
product.template.tree | product.template | tree | New |
product_uom_form_view_inherit |
product_uom_form_view_inherit | uom.uom | xpath | Inherits uom.product_uom_form_view |
report_hash_integrity |
report_hash_integrity | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_invoice_with_payments |
report_invoice_with_payments | ir.ui.view | qweb | New |
report_original_vendor_bill |
report_original_vendor_bill | ir.ui.view | qweb | New |
report_payment_receipt |
report_payment_receipt | ir.ui.view | qweb | New |
report_payment_receipt_document |
report_payment_receipt_document | ir.ui.view | qweb | New |
report_statement |
report_statement | ir.ui.view | qweb | New |
report_statement_internal_layout |
report_statement_internal_layout | ir.ui.view | qweb | Inherits web.internal_layout |
res_company_form_view_onboarding |
res.company.form.view.onboarding | res.company | xpath | Inherits base.view_company_form |
res_company_form_view_onboarding_sale_tax |
res.company.form.view.onboarding.sale.tax | res.company | form | New |
res_company_view_form_terms |
res.company.view.form.terms | res.company | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.account | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_currency_form_inherit |
res.currency.form.inherit | res.currency | xpath | Inherits base.view_currency_form |
res_partner_view_search |
res.partner.search.inherit | res.partner | xpath | Inherits base.view_res_partner_filter |
rounding_form_view |
account.cash.rounding.form | account.cash.rounding | form | New |
rounding_search_view |
account.cash.rounding.search | account.cash.rounding | search | New |
rounding_tree_view |
account.cash.rounding.tree | account.cash.rounding | tree | New |
setup_bank_account_wizard |
account.online.sync.res.partner.bank.setup.form | account.setup.bank.manual.config | form | New |
setup_financial_year_opening_form |
account.financial.year.op.setup.wizard.form | account.financial.year.op | form | New |
tax_groups_totals |
tax_groups_totals | ir.ui.view | qweb | New |
tax_repartition_line_tree |
account.tax.repartition.line.tree | account.tax.repartition.line | tree | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_account_kanban |
account.account.kanban | account.account | kanban | New |
view_account_accrued_orders_wizard |
account.accrued.orders.wizard.view | account.accrued.orders.wizard | form | New |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.tree.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_form |
account.account.form | account.account | form | New |
view_account_group_form |
account.group.form | account.group | form | New |
view_account_group_search |
account.group.search | account.group | search | New |
view_account_group_tree |
account.group.tree | account.group | tree | New |
view_account_invoice_filter |
account.invoice.select | account.move | search | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_group_form |
account.journal.group.form | account.journal.group | form | New |
view_account_journal_group_tree |
account.journal.group.tree | account.journal.group | tree | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_kanban |
account.move.kanban | account.move | kanban | New |
view_account_move_line_filter |
account.move.line.search | account.move.line | search | New |
view_account_move_line_payment_filter |
account.move.line.payment.search | account.move.line | search | New |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_kanban |
account.payment.kanban | account.payment | kanban | New |
view_account_payment_method_line_kanban |
account.payment.method.line.kanban | account.payment.method.line | kanban | New |
view_account_payment_method_line_tree |
account.payment.method.line.tree | account.payment.method.line | tree | New |
view_account_payment_register_form |
account.payment.register.form | account.payment.register | form | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_term_kanban |
account.payment.term.kanban | account.payment.term | kanban | New |
view_account_payment_tree |
account.payment.tree | account.payment | tree | New |
view_account_position_filter |
account.fiscal.position.filter | account.fiscal.position | search | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_reconcile_model_form |
account.reconcile.model.form | account.reconcile.model | form | New |
view_account_reconcile_model_line_form |
account.reconcile.model.line.form | account.reconcile.model.line | form | New |
view_account_reconcile_model_search |
account.reconcile.model.search | account.reconcile.model | search | New |
view_account_reconcile_model_tree |
account.reconcile.model.tree | account.reconcile.model | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_supplier_payment_tree |
account.supplier.payment.tree | account.payment | field | Inherits account.view_account_payment_tree |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_various_payment_tree |
account.supplier.payment.tree | account.payment | field | Inherits account.view_account_payment_tree |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_company_form |
res.company.form.inherit.account | res.company | xpath | Inherits base.view_company_form |
view_full_reconcile_form |
account.full.reconcile.form | account.full.reconcile | form | New |
view_in_invoice_bill_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_receipt_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_refund_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_tree |
account.out.invoice.tree | account.move | xpath | Inherits account.view_invoice_tree |
view_incoterms_tree |
account.incoterms.tree | account.incoterms | tree | New |
view_invoice_tree |
account.invoice.tree | account.move | tree | New |
view_module_filter_inherit_account |
ir.module.module.list.inherit.account | ir.module.module | xpath | Inherits base.view_module_filter |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_payment_tree |
account.move.line.payment.tree | account.move.line | tree | New |
view_move_line_pivot |
account.move.line.pivot | account.move.line | pivot | New |
view_move_line_tax_audit_tree |
account.move.line.tax.audit.tree | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_line_tree_grouped_bank_cash |
account.move.line.tree.grouped.bank.cash | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_general |
account.move.line.tree.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_misc |
account.move.line.tree.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_partner |
account.move.line.tree.grouped.partner | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_sales_purchases |
account.move.line.tree.grouped.sales.purchase | account.move.line | field | Inherits account.view_move_line_tree |
view_move_tree |
account.move.tree | account.move | tree | New |
view_onboarding_tax_tree |
account.onboarding.tax.tree | account.tax | xpath | Inherits account.view_tax_tree |
view_out_credit_note_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_invoice_tree |
view_out_invoice_tree |
account.out.invoice.tree | account.move | xpath | Inherits account.view_invoice_tree |
view_partner_bank_form_inherit_account |
res.partner.bank.form.inherit.account | res.partner.bank | xpath | Inherits base.view_partner_bank_form |
view_partner_bank_search_inherit |
res.partner.bank.search.inherit | res.partner.bank | xpath | Inherits base.view_partner_bank_search |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | xpath | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_payment_term_tree |
account.payment.term.tree | account.payment.term | tree | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_group_form |
account.tax.group.form | account.tax.group | form | New |
view_tax_group_tree |
account.tax.group.tree | account.tax.group | tree | New |
view_tax_kanban |
account.tax.kanban | account.tax | kanban | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
account_type
Selection
compute='_compute_account_type'
help='Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.'
index=True
precompute=True
readonly=False
required=True
selection=[('asset_receivable', 'Receivable'), ('asset_cash', 'Bank and Cash'), ('asset_current', 'Current Assets'), ('asset_non_current', 'Non-current Assets'), ('asset_prepayments', 'Prepayments'), ('asset_fixed', 'Fixed Assets'), ('liability_payable', 'Payable'), ('liability_credit_card', 'Credit Card'), ('liability_current', 'Current Liabilities'), ('liability_non_current', 'Non-current Liabilities'), ('equity', 'Equity'), ('equity_unaffected', 'Current Year Earnings'), ('income', 'Income'), ('income_other', 'Other Income'), ('expense', 'Expenses'), ('expense_depreciation', 'Depreciation'), ('expense_direct_cost', 'Cost of Revenue'), ('off_balance', 'Off-Balance Sheet')]
store=True
string='Type'
tracking=True
allowed_journal_ids
Many2many → account.journal
check_company=True
help='Define in which journals this account can be used. If empty, can be used in all journals.'
string='Allowed Journals'
args: 'account.journal'
code
Char
index=True
required=True
size=64
tracking=True
unaccent=False
company_currency_id
Many2one
related='company_id.currency_id'
company_id
Many2one → res.company
default=<expr>
readonly=False
required=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='Forces all journal items in this account to have a specific currency (i.e. bank journals). If no currency is set, entries can use any currency.'
string='Account Currency'
tracking=True
args: 'res.currency'
current_balance
Float
compute='_compute_current_balance'
deprecated
Boolean
default=False
tracking=True
group_id
Many2one → account.group
compute='_compute_account_group'
help='Account prefixes can determine account groups.'
readonly=True
store=True
args: 'account.group'
include_initial_balance
Boolean
compute='_compute_include_initial_balance'
help='Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set.'
precompute=True
store=True
string='Bring Accounts Balance Forward'
internal_group
Selection
compute='_compute_internal_group'
precompute=True
selection=[('equity', 'Equity'), ('asset', 'Asset'), ('liability', 'Liability'), ('income', 'Income'), ('expense', 'Expense'), ('off_balance', 'Off Balance')]
store=True
string='Internal Group'
name
Char
index='trigram'
required=True
string='Account Name'
tracking=True
translate=True
non_trade
Boolean
default=False
help='If set, this account will belong to Non Trade Receivable/Payable in reports and filters.\nIf not, this account will belong to Trade Receivable/Payable in reports and filters.'
note
Text
tracking=True
args: 'Internal Notes'
opening_balance
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_balance'
string='Opening Balance'
opening_credit
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_credit'
string='Opening Credit'
opening_debit
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_debit'
string='Opening Debit'
reconcile
Boolean
compute='_compute_reconcile'
help='Check this box if this account allows invoices & payments matching of journal items.'
precompute=True
readonly=False
store=True
string='Allow Reconciliation'
tracking=True
related_taxes_amount
Integer
compute='_compute_related_taxes_amount'
root_id
Many2one → account.root
compute='_compute_account_root'
precompute=True
store=True
args: 'account.root'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
help='Optional tags you may want to assign for custom reporting'
ondelete='restrict'
relation='account_account_account_tag'
string='Tags'
tracking=True
tax_ids
Many2many → account.tax
check_company=True
context={'append_type_to_tax_name': True}
string='Default Taxes'
args: 'account.tax', 'account_account_tax_default_rel', 'account_id', 'tax_id'
used
Boolean
compute='_compute_used'
search='_search_used'
action_open_related_taxes(self)
copy(self, default=None)
copy_translations(self, new, excluded=())
create(self, vals_list)
default_get(self, default_fields)
get_import_templates(self)
name_create(self, name)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the Account Tag without removing it.'
applicability
Selection
default='accounts'
required=True
args: [('accounts', 'Accounts'), ('taxes', 'Taxes'), ('products', 'Products')]
color
Integer
country_id
Many2one → res.country
comodel_name='res.country'
help='Country for which this tag is available, when applied on taxes.'
string='Country'
name
Char
required=True
translate=True
args: 'Tag Name'
tax_negate
Boolean
help='Check this box to negate the absolute value of the balance of the lines associated with this tag in tax report computation.'
string='Negate Tax Balance'
create(self, vals_list)
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('account_type', '=', 'liability_current')] if context.get('active_model') == 'purchase.order' else [('account_type', '=', 'asset_current')]"
required=True
string='Accrual Account'
amount
Monetary
help='Specify an arbitrary value that will be accrued on a default account for the entire order, regardless of the products on the different lines.'
string='Amount'
company_id
Many2one → res.company
default=_get_default_company
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
date
Date
default=_get_default_date
required=True
display_amount
Boolean
compute='_compute_display_amount'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
domain="[('type', '=', 'general')]"
precompute=True
readonly=False
required=True
store=True
string='Journal'
preview_data
Text
compute='_compute_preview_data'
reversal_date
Date
compute='_compute_reversal_date'
precompute=True
readonly=False
required=True
store=True
create_entries(self)
credit
Monetary
groups='account.group_account_readonly'
debit
Monetary
groups='account.group_account_readonly'
invoice_count
Integer
compute='_compute_invoice_count'
args: 'Invoice Count'
vendor_bill_count
Integer
compute='_compute_vendor_bill_count'
args: 'Vendor Bill Count'
action_view_invoice(self)
action_view_vendor_bill(self)
account_prefix
Char
help='Prefix that defines which accounts from the financial accounting this applicability should apply on.'
string='Financial Accounts Prefix'
business_domain
Selection
ondelete={'invoice': 'cascade', 'bill': 'cascade'}
selection_add=[('invoice', 'Invoice'), ('bill', 'Vendor Bill')]
display_account_prefix
Boolean
compute='_compute_display_account_prefix'
help='Defines if the field account prefix should be displayed'
product_categ_id
Many2one → product.category
string='Product Category'
args: 'product.category'
No public methods.
account_prefix
Char
help='This analytic distribution will apply to all financial accounts sharing the prefix specified.'
string='Accounts Prefix'
product_categ_id
Many2one → product.category
help='Select a product category which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
check_company=True
help='Select a product for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Product'
args: 'product.product'
No public methods.
category
Selection
selection_add=[('invoice', 'Customer Invoice'), ('vendor_bill', 'Vendor Bill')]
code
Char
size=8
general_account_id
Many2one → account.account
check_company=True
compute='_compute_general_account_id'
domain="[('deprecated', '=', False)]"
ondelete='restrict'
readonly=False
store=True
string='Financial Account'
args: 'account.account'
journal_id
Many2one → account.journal
check_company=True
readonly=True
related='move_line_id.journal_id'
store=True
string='Financial Journal'
args: 'account.journal'
move_line_id
Many2one → account.move.line
check_company=True
index=True
ondelete='cascade'
string='Journal Item'
args: 'account.move.line'
partner_id
Many2one
compute='_compute_partner_id'
readonly=False
store=True
product_id
Many2one → product.product
check_company=True
string='Product'
args: 'product.product'
ref
Char
string='Ref.'
on_change_unit_amount(self)
view_header_get(self, view_id, view_type)
account_type
Selection
compute='_compute_account_type'
store=True
args: [('income', 'Revenue'), ('expense', 'Expense')]
action
Selection
required=True
args: [('change_period', 'Change Period'), ('change_account', 'Change Account')]
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
date
Date
default=<expr>
required=True
destination_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Account to transfer to.'
string='To'
display_currency_helper
Boolean
compute='_compute_display_currency_helper'
string='Currency Conversion Helper'
expense_accrual_account
Many2one → account.account
check_company=True
compute='_compute_expense_accrual_account'
domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'off_balance'))]"
inverse='_inverse_expense_accrual_account'
readonly=False
args: 'account.account'
journal_id
Many2one → account.journal
check_company=True
compute='_compute_journal_id'
domain="[('type', '=', 'general')]"
help='Journal where to create the entry.'
inverse='_inverse_journal_id'
readonly=False
required=True
string='Journal'
args: 'account.journal'
lock_date_message
Char
compute='_compute_lock_date_message'
string='Lock Date Message'
move_data
Text
compute='_compute_move_data'
move_line_ids
Many2many → account.move.line
percentage
Float
compute='_compute_percentage'
help='Percentage of each line to execute the action on.'
readonly=False
store=True
args: 'Percentage'
preview_move_data
Text
compute='_compute_preview_move_data'
revenue_accrual_account
Many2one → account.account
check_company=True
compute='_compute_revenue_accrual_account'
domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'off_balance'))]"
inverse='_inverse_revenue_accrual_account'
readonly=False
args: 'account.account'
total_amount
Monetary
compute='_compute_total_amount'
currency_field='company_currency_id'
help='Total amount impacted by the automatic entry.'
readonly=False
store=True
default_get(self, fields)
do_action(self)
No new fields.
Public methods (0)No public methods.
attachment_ids
Many2many → ir.attachment
comodel_name='ir.attachment'
string='Attachments'
balance_end
Monetary
compute='_compute_balance_end'
store=True
string='Computed Balance'
balance_end_real
Monetary
compute='_compute_balance_end_real'
readonly=False
store=True
string='Ending Balance'
balance_start
Monetary
compute='_compute_balance_start'
readonly=False
store=True
string='Starting Balance'
company_id
Many2one → res.company
comodel_name='res.company'
related='journal_id.company_id'
store=True
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
date
Date
compute='_compute_date_index'
index=True
store=True
first_line_index
Char → account.bank.statement.line
comodel_name='account.bank.statement.line'
compute='_compute_date_index'
index=True
store=True
is_complete
Boolean
compute='_compute_is_complete'
store=True
is_valid
Boolean
compute='_compute_is_valid'
search='_search_is_valid'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
store=True
line_ids
One2many → account.bank.statement.line
comodel_name='account.bank.statement.line'
inverse_name='statement_id'
required=True
string='Statement lines'
name
Char
compute='_compute_name'
copy=False
readonly=False
store=True
string='Reference'
problem_description
Text
compute='_compute_problem_description'
reference
Char
copy=False
string='External Reference'
create(self, vals_list)
default_get(self, fields_list)
init(self)
write(self, values)
No new fields.
Public methods (0)No public methods.
account_number
Char
string='Bank Account Number'
amount
Monetary
amount_currency
Monetary
compute='_compute_amount_currency'
currency_field='foreign_currency_id'
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
readonly=False
store=True
string='Amount in Currency'
amount_residual
Float
compute='_compute_is_reconciled'
store=True
string='Residual Amount'
country_code
Char
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
store=True
string='Journal Currency'
foreign_currency_id
Many2one → res.currency
comodel_name='res.currency'
help='The optional other currency if it is a multi-currency entry.'
string='Foreign Currency'
internal_index
Char
compute='_compute_internal_index'
index=True
store=True
string='Internal Reference'
is_reconciled
Boolean
compute='_compute_is_reconciled'
store=True
string='Is Reconciled'
move_id
Many2one → account.move
auto_join=True
check_company=True
comodel_name='account.move'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
domain="['|', ('parent_id','=', False), ('is_company','=',True)]"
ondelete='restrict'
string='Partner'
partner_name
Char
payment_ids
Many2many → account.payment
comodel_name='account.payment'
relation='account_payment_account_bank_statement_line_rel'
string='Auto-generated Payments'
payment_ref
Char
string='Label'
running_balance
Monetary
compute='_compute_running_balance'
sequence
Integer
default=1
statement_balance_end_real
Monetary
related='statement_id.balance_end_real'
statement_complete
Boolean
related='statement_id.is_complete'
statement_id
Many2one → account.bank.statement
comodel_name='account.bank.statement'
string='Statement'
statement_name
Char
related='statement_id.name'
string='Statement Name'
statement_valid
Boolean
related='statement_id.is_valid'
transaction_details
Json
readonly=True
transaction_type
Char
action_undo_reconciliation(self)
create(self, vals_list)
default_get(self, fields_list)
init(self)
new(self, values=None, origin=None, ref=None)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
related='profit_account_id.company_id'
args: 'res.company'
loss_account_id
Many2one → account.account
company_dependent=True
domain="[('deprecated', '=', False)]"
string='Loss Account'
args: 'account.account'
name
Char
required=True
string='Name'
translate=True
profit_account_id
Many2one → account.account
company_dependent=True
domain="[('deprecated', '=', False)]"
string='Profit Account'
args: 'account.account'
rounding
Float
default=0.01
help='Represent the non-zero value smallest coinage (for example, 0.05).'
required=True
string='Rounding Precision'
rounding_method
Selection
default='HALF-UP'
help='The tie-breaking rule used for float rounding operations'
required=True
selection=[('UP', 'Up'), ('DOWN', 'Down'), ('HALF-UP', 'Nearest')]
string='Rounding Method'
strategy
Selection
default='add_invoice_line'
help='Specify which way will be used to round the invoice amount to the rounding precision'
required=True
string='Rounding Strategy'
args: [('biggest_tax', 'Modify tax amount'), ('add_invoice_line', 'Add a rounding line')]
compute_difference(self, currency, amount)
round(self, amount)
validate_rounding(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (2)ref(self, xmlid, raise_if_not_found=True)
try_loading(self, template_code, company, install_demo=True)
No new fields.
Public methods (0)No public methods.
company_id
Many2one → res.company
comodel_name='res.company'
required=True
fiscalyear_last_day
Integer
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_day'
required=True
fiscalyear_last_month
Selection
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_month'
required=True
opening_date
Date
help='Date from which the accounting is managed in Odoo. It is the date of the opening entry.'
readonly=False
related='company_id.account_opening_date'
required=True
string='Opening Date'
opening_move_posted
Boolean
compute='_compute_opening_move_posted'
string='Opening Move Posted'
action_save_onboarding_fiscal_year(self)
write(self, vals)
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply tax & account mappings on invoices automatically if the matching criterias (VAT/Country) are met.'
string='Detect Automatically'
company_country_id
Many2one
related='company_id.account_fiscal_country_id'
string='Company Country'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery country matches the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery country matches.'
string='Country'
args: 'res.country'
fiscal_country_codes
Char
related='company_country_id.code'
string='Company Fiscal Country Code'
foreign_vat
Char
help='The tax ID of your company in the region mapped by this fiscal position.'
inverse='_inverse_foreign_vat'
string='Foreign Tax ID'
foreign_vat_header_mode
Selection
compute='_compute_foreign_vat_header_mode'
selection=[('templates_found', 'Templates Found'), ('no_template', 'No Template')]
name
Char
required=True
string='Fiscal Position'
translate=True
note
Html
help='Legal mentions that have to be printed on the invoices.'
translate=True
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
One2many → account.fiscal.position.tax
copy=True
string='Tax Mapping'
args: 'account.fiscal.position.tax', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
action_create_foreign_taxes(self)
create(self, vals_list)
map_account(self, account)
map_accounts(self, accounts)
map_tax(self, taxes)
write(self, vals)
account_dest_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False)]"
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False)]"
required=True
string='Account on Product'
args: 'account.account'
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
tax_dest_active
Boolean
related='tax_dest_id.active'
tax_dest_id
Many2one → account.tax
check_company=True
string='Tax to Apply'
args: 'account.tax'
tax_src_id
Many2one → account.tax
check_company=True
required=True
string='Tax on Product'
args: 'account.tax'
No public methods.
exchange_move_id
Many2one → account.move
index='btree_not_null'
args: 'account.move'
partial_reconcile_ids
One2many → account.partial.reconcile
string='Reconciliation Parts'
args: 'account.partial.reconcile', 'full_reconcile_id'
reconciled_line_ids
One2many → account.move.line
string='Matched Journal Items'
args: 'account.move.line', 'full_reconcile_id'
create(self, vals_list)
unlink(self)
code_prefix_end
Char
compute='_compute_code_prefix_end'
precompute=True
readonly=False
store=True
code_prefix_start
Char
compute='_compute_code_prefix_start'
precompute=True
readonly=False
store=True
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
name
Char
required=True
translate=True
parent_id
Many2one → account.group
check_company=True
index=True
ondelete='cascade'
readonly=True
args: 'account.group'
parent_path
Char
index=True
unaccent=False
create(self, vals_list)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='By unchecking the active field, you may hide an INCOTERM you will not use.'
args: 'Active'
code
Char
help='Incoterm Standard Code'
required=True
size=3
args: 'Code'
name
Char
help='Incoterms are series of sales terms. They are used to divide transaction costs and responsibilities between buyer and seller and reflect state-of-the-art transportation practices.'
required=True
translate=True
args: 'Name'
No public methods.
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Revenue/Expense Account'
args: 'account.account'
commercial_partner_id
Many2one → res.partner
string='Main Partner'
args: 'res.partner'
company_currency_id
Many2one → res.currency
readonly=True
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
fiscal_position_id
Many2one → account.fiscal.position
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
inventory_value
Float
readonly=True
string='Inventory Value'
invoice_date
Date
readonly=True
string='Invoice Date'
invoice_date_due
Date
readonly=True
string='Due Date'
invoice_user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
readonly=True
args: 'account.move'
move_type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
payment_state
Selection
readonly=True
selection=PAYMENT_STATE_SELECTION
string='Payment Status'
price_average
Float
group_operator='avg'
readonly=True
string='Average Price'
price_margin
Float
readonly=True
string='Margin'
price_subtotal
Float
readonly=True
string='Untaxed Total'
price_total
Float
readonly=True
string='Total in Currency'
product_categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
quantity
Float
readonly=True
string='Product Quantity'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('posted', 'Open'), ('cancel', 'Cancelled')]
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
No new fields.
Public methods (0)No public methods.
account_control_ids
Many2many → account.account
check_company=True
domain="[('deprecated', '=', False), ('account_type', '!=', 'off_balance')]"
string='Allowed accounts'
args: 'account.account', 'journal_account_control_rel', 'journal_id', 'account_id'
accounting_date
Date
compute='_compute_accounting_date'
active
Boolean
default=True
help='Set active to false to hide the Journal without removing it.'
alias_id
Many2one
help='Send one separate email for each invoice.\n\nAny file extension will be accepted.\n\nOnly PDF and XML files will be interpreted by Odoo'
available_payment_method_ids
Many2many → account.payment.method
comodel_name='account.payment.method'
compute='_compute_available_payment_method_ids'
bank_acc_number
Char
readonly=False
related='bank_account_id.acc_number'
bank_account_id
Many2one → res.partner.bank
check_company=True
copy=False
domain="[('partner_id','=', company_partner_id)]"
ondelete='restrict'
string='Bank Account'
args: 'res.partner.bank'
bank_id
Many2one → res.bank
readonly=False
related='bank_account_id.bank_id'
args: 'res.bank'
bank_statements_source
Selection
default='undefined'
help='Defines how the bank statements will be registered'
selection=_get_bank_statements_available_sources
string='Bank Feeds'
code
Char
compute='_compute_code'
help='Shorter name used for display. The journal entries of this journal will also be named using this prefix by default.'
precompute=True
readonly=False
required=True
size=5
store=True
string='Short Code'
company_id
Many2one → res.company
default=<expr>
help='Company related to this journal'
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
company_partner_id
Many2one → res.partner
readonly=True
related='company_id.partner_id'
store=False
string='Account Holder'
args: 'res.partner'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
help='The currency used to enter statement'
string='Currency'
args: 'res.currency'
default_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain=_get_default_account_domain
ondelete='restrict'
string='Default Account'
default_account_type
Char
compute='_compute_default_account_type'
string='Default Account Type'
display_alias_fields
Boolean
compute='_compute_display_alias_fields'
inbound_payment_method_line_ids
One2many → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
compute='_compute_inbound_payment_method_line_ids'
copy=False
domain=[('payment_type', '=', 'inbound')]
help='Manual: Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
inverse_name='journal_id'
readonly=False
store=True
string='Inbound Payment Methods'
invoice_reference_model
Selection
default=_default_invoice_reference_model
help='You can choose different models for each type of reference. The default one is the Odoo reference.'
required=True
selection=[('odoo', 'Odoo'), ('euro', 'European')]
string='Communication Standard'
invoice_reference_type
Selection
default='invoice'
help='You can set here the default communication that will appear on customer invoices, once validated, to help the customer to refer to that particular invoice when making the payment.'
required=True
selection=[('none', 'Open'), ('partner', 'Based on Customer'), ('invoice', 'Based on Invoice')]
string='Communication Type'
journal_group_ids
Many2many → account.journal.group
check_company=True
string='Journal Groups'
args: 'account.journal.group'
loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', '=', 'expense')]"
help='Used to register a loss when the ending balance of a cash register differs from what the system computes'
string='Loss Account'
name
Char
required=True
string='Journal Name'
translate=True
outbound_payment_method_line_ids
One2many → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
compute='_compute_outbound_payment_method_line_ids'
copy=False
domain=[('payment_type', '=', 'outbound')]
help='Manual: Pay by any method outside of Odoo.\nCheck: Pay bills by check and print it from Odoo.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\n'
inverse_name='journal_id'
readonly=False
store=True
string='Outbound Payment Methods'
payment_sequence
Boolean
compute='_compute_payment_sequence'
help="Check this box if you don't want to share the same sequence on payments and bank transactions posted on this journal"
precompute=True
readonly=False
store=True
string='Dedicated Payment Sequence'
profit_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'in', ('income', 'income_other'))]"
help='Used to register a profit when the ending balance of a cash register differs from what the system computes'
string='Profit Account'
refund_sequence
Boolean
default=False
help="Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal"
string='Dedicated Credit Note Sequence'
restrict_mode_hash_table
Boolean
help='If ticked, the accounting entry or invoice receives a hash as soon as it is posted and cannot be modified anymore.'
string='Lock Posted Entries with Hash'
sale_activity_note
Text
sale_activity_type_id
Many2one → mail.activity.type
default=False
help='Activity will be automatically scheduled on payment due date, improving collection process.'
string='Schedule Activity'
args: 'mail.activity.type'
sale_activity_user_id
Many2one → res.users
help='Leave empty to assign the Salesperson of the invoice.'
string='Activity User'
args: 'res.users'
secure_sequence_id
Many2one → ir.sequence
check_company=True
copy=False
help='Sequence to use to ensure the securisation of data'
readonly=True
args: 'ir.sequence'
selected_payment_method_codes
Char
compute='_compute_selected_payment_method_codes'
sequence
Integer
default=10
help='Used to order Journals in the dashboard view'
sequence_override_regex
Text
help='Technical field used to enforce complex sequence composition that the system would normally misunderstand.\nThis is a regex that can include all the following capture groups: prefix1, year, prefix2, month, prefix3, seq, suffix.\nThe prefix* groups are the separators between the year, month and the actual increasing sequence number (seq).\ne.g: ^(?P<prefix1>.*?)(?P<year>\\d{4})(?P<prefix2>\\D*?)(?P<month>\\d{2})(?P<prefix3>\\D+?)(?P<seq>\\d+)(?P<suffix>\\D*?)$'
suspense_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_suspense_account_id'
domain="[('deprecated', '=', False), ('account_type', '=', 'asset_current')]"
help='Bank statements transactions will be posted on the suspense account until the final reconciliation allowing finding the right account.'
ondelete='restrict'
readonly=False
store=True
string='Suspense Account'
type
Selection
help="Select 'Sale' for customer invoices journals.\nSelect 'Purchase' for vendor bills journals.\nSelect 'Cash' or 'Bank' for journals that are used in customer or vendor payments.\nSelect 'General' for miscellaneous operations journals."
required=True
args: [('sale', 'Sales'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('bank', 'Bank'), ('general', 'Miscellaneous')]
action_configure_bank_journal(self)
action_new_transaction(self)
copy(self, default=None)
create(self, vals_list)
create_document_from_attachment(self, attachment_ids)
get_next_bank_cash_default_code(self, journal_type, company, cache=None, protected_codes=False)
set_bank_account(self, acc_number, bank_id=None)
unlink(self)
write(self, vals)
color
Integer
default=0
args: 'Color Index'
current_statement_balance
Monetary
compute='_compute_current_statement_balance'
entries_count
Integer
compute='_compute_entries_count'
has_sequence_holes
Boolean
compute='_compute_has_sequence_holes'
has_statement_lines
Boolean
compute='_compute_current_statement_balance'
json_activity_data
Text
compute='_get_json_activity_data'
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
last_statement_id
Many2one → account.bank.statement
comodel_name='account.bank.statement'
compute='_compute_last_bank_statement'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
action_create_vendor_bill(self)
create_bank_statement(self)
create_customer_payment(self)
create_supplier_payment(self)
open_action(self)
open_action_with_context(self)
open_bank_difference_action(self)
open_payments_action(self, payment_type=False, mode='tree')
show_sequence_holes(self)
to_check_ids(self)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
excluded_journal_ids
Many2many → account.journal
check_company=True
string='Excluded Journals'
args: 'account.journal'
name
Char
required=True
translate=True
args: 'Journal Group'
sequence
Integer
default=10
No public methods.
No new fields.
Public methods (0)No public methods.
statement_line_ids
One2many → account.bank.statement.line
string='Statements'
args: 'account.bank.statement.line', 'move_id'
No public methods.
payment_ids
One2many → account.payment
string='Payments'
args: 'account.payment', 'move_id'
No public methods.
always_tax_exigible
Boolean
compute='_compute_always_tax_exigible'
readonly=False
store=True
amount_residual
Monetary
compute='_compute_amount'
store=True
string='Amount Due'
amount_residual_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
store=True
string='Amount Due Signed'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_tax_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Tax Signed'
amount_total
Monetary
compute='_compute_amount'
inverse='_inverse_amount_total'
readonly=True
store=True
string='Total'
amount_total_in_currency_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=True
store=True
string='Total in Currency Signed'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Total Signed'
amount_total_words
Char
compute='_compute_amount_total_words'
string='Amount total in words'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
tracking=True
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount Signed'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'account.move')]
string='Attachments'
args: 'ir.attachment', 'res_id'
auto_post
Selection
copy=False
default='no'
help='Specify whether this entry is posted automatically on its accounting date, and any similar recurring invoices.'
required=True
selection=[('no', 'No'), ('at_date', 'At Date'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly'), ('yearly', 'Yearly')]
string='Auto-post'
auto_post_origin_id
Many2one → account.move
comodel_name='account.move'
copy=False
index='btree_not_null'
readonly=True
string='First recurring entry'
auto_post_until
Date
compute='_compute_auto_post_until'
copy=False
help='This recurring move will be posted up to and including this date.'
readonly=False
store=True
string='Auto-post until'
bank_partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_bank_partner_id'
help='Technical field to get the domain on the bank'
commercial_partner_id
Many2one → res.partner
check_company=True
compute='_compute_commercial_partner_id'
ondelete='restrict'
readonly=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
index=True
inverse='_inverse_company_id'
precompute=True
readonly=False
store=True
string='Company'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
inverse='_inverse_currency_id'
precompute=True
readonly=False
required=True
store=True
string='Currency'
tracking=True
args: 'res.currency'
date
Date
compute='_compute_date'
copy=False
index=True
precompute=True
readonly=False
required=True
store=True
string='Date'
tracking=True
delivery_date
Date
compute='_compute_delivery_date'
copy=False
readonly=False
store=True
string='Delivery Date'
direction_sign
Integer
compute='_compute_direction_sign'
help='Multiplicator depending on the document type, to convert a price into a balance'
display_inactive_currency_warning
Boolean
compute='_compute_display_inactive_currency_warning'
display_qr_code
Boolean
compute='_compute_display_qr_code'
string='Display QR-code'
duplicated_ref_ids
Many2many → account.move
comodel_name='account.move'
compute='_compute_duplicated_ref_ids'
fiscal_position_id
Many2one → account.fiscal.position
check_company=True
compute='_compute_fiscal_position_id'
help='Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. The default value comes from the customer.'
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Fiscal Position'
args: 'account.fiscal.position'
has_reconciled_entries
Boolean
compute='_compute_has_reconciled_entries'
hide_post_button
Boolean
compute='_compute_hide_post_button'
readonly=True
highest_name
Char
compute='_compute_highest_name'
inalterable_hash
Char
copy=False
readonly=True
string='Inalterability Hash'
incoterm_location
Char
compute='_compute_incoterm_location'
readonly=False
store=True
string='Incoterm Location'
invoice_cash_rounding_id
Many2one → account.cash.rounding
comodel_name='account.cash.rounding'
help='Defines the smallest coinage of the currency that can be used to pay by cash.'
string='Cash Rounding Method'
invoice_date
Date
copy=False
index=True
string='Invoice/Bill Date'
invoice_date_due
Date
compute='_compute_invoice_date_due'
copy=False
index=True
readonly=False
store=True
string='Due Date'
invoice_filter_type_domain
Char
compute='_compute_invoice_filter_type_domain'
invoice_has_outstanding
Boolean
compute='_compute_payments_widget_to_reconcile_info'
groups='account.group_account_invoice,account.group_account_readonly'
invoice_incoterm_id
Many2one → account.incoterms
comodel_name='account.incoterms'
compute='_compute_incoterm'
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
readonly=False
store=True
string='Incoterm'
invoice_line_ids
One2many → account.move.line
copy=False
domain=[('display_type', 'in', ('product', 'line_section', 'line_note'))]
string='Invoice lines'
args: 'account.move.line', 'move_id'
invoice_origin
Char
copy=False
help='The document(s) that generated the invoice.'
readonly=True
string='Origin'
tracking=True
invoice_outstanding_credits_debits_widget
Binary
compute='_compute_payments_widget_to_reconcile_info'
exportable=False
groups='account.group_account_invoice,account.group_account_readonly'
invoice_partner_display_name
Char
compute='_compute_invoice_partner_display_info'
store=True
invoice_payment_term_id
Many2one → account.payment.term
check_company=True
comodel_name='account.payment.term'
compute='_compute_invoice_payment_term_id'
inverse='_inverse_invoice_payment_term_id'
precompute=True
readonly=False
store=True
string='Payment Terms'
invoice_payments_widget
Binary
compute='_compute_payments_widget_reconciled_info'
exportable=False
groups='account.group_account_invoice,account.group_account_readonly'
invoice_pdf_report_file
Binary
attachment=True
copy=False
string='PDF File'
invoice_pdf_report_id
Many2one → ir.attachment
comodel_name='ir.attachment'
compute=<expr>
depends=['invoice_pdf_report_file']
string='PDF Attachment'
invoice_source_email
Char
string='Source Email'
tracking=True
invoice_user_id
Many2one → res.users
comodel_name='res.users'
compute='_compute_invoice_default_sale_person'
copy=False
readonly=False
store=True
string='Salesperson'
tracking=True
invoice_vendor_bill_id
Many2one → account.move
check_company=True
help='Auto-complete from a past bill.'
store=False
string='Vendor Bill'
args: 'account.move'
is_being_sent
Boolean
compute='_compute_is_being_sent'
help='Is the move being sent asynchronously'
is_move_sent
Boolean
copy=False
help='It indicates that the invoice/payment has been sent or the PDF has been generated.'
readonly=True
tracking=True
is_storno
Boolean
compute='_compute_is_storno'
copy=False
readonly=False
store=True
journal_id
Many2one → account.journal
check_company=True
compute='_compute_journal_id'
domain="[('id', 'in', suitable_journal_ids)]"
inverse='_inverse_journal_id'
precompute=True
readonly=False
required=True
store=True
string='Journal'
args: 'account.journal'
line_ids
One2many → account.move.line
copy=True
string='Journal Items'
args: 'account.move.line', 'move_id'
made_sequence_hole
Boolean
compute='_compute_made_sequence_hole'
move_type
Selection
change_default=True
default='entry'
index=True
readonly=True
required=True
selection=[('entry', 'Journal Entry'), ('out_invoice', 'Customer Invoice'), ('out_refund', 'Customer Credit Note'), ('in_invoice', 'Vendor Bill'), ('in_refund', 'Vendor Credit Note'), ('out_receipt', 'Sales Receipt'), ('in_receipt', 'Purchase Receipt')]
string='Type'
tracking=True
name
Char
compute='_compute_name'
copy=False
index='trigram'
inverse='_inverse_name'
readonly=False
store=True
string='Number'
tracking=True
narration
Html
compute='_compute_narration'
readonly=False
store=True
string='Terms and Conditions'
need_cancel_request
Boolean
compute='_compute_need_cancel_request'
needed_terms
Binary
compute='_compute_needed_terms'
exportable=False
needed_terms_dirty
Boolean
compute='_compute_needed_terms'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.'
ondelete='restrict'
readonly=False
store=True
string='Recipient Bank'
tracking=True
args: 'res.partner.bank'
partner_credit
Monetary
compute='_compute_partner_credit'
partner_credit_warning
Text
compute='_compute_partner_credit_warning'
groups='account.group_account_invoice,account.group_account_readonly'
partner_id
Many2one → res.partner
change_default=True
check_company=True
index=True
inverse='_inverse_partner_id'
ondelete='restrict'
readonly=False
string='Partner'
tracking=True
args: 'res.partner'
partner_shipping_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
compute='_compute_partner_shipping_id'
help='The delivery address will be used in the computation of the fiscal position.'
precompute=True
readonly=False
store=True
string='Delivery Address'
payment_id
Many2one → account.payment
check_company=True
comodel_name='account.payment'
copy=False
index='btree_not_null'
string='Payment'
payment_reference
Char
compute='_compute_payment_reference'
copy=False
help='The payment reference to set on journal items.'
index='trigram'
inverse='_inverse_payment_reference'
readonly=False
store=True
string='Payment Reference'
tracking=True
payment_state
Selection
compute='_compute_payment_state'
copy=False
readonly=True
selection=PAYMENT_STATE_SELECTION
store=True
string='Payment Status'
tracking=True
payment_term_details
Binary
compute='_compute_payment_term_details'
exportable=False
posted_before
Boolean
copy=False
qr_code_method
Selection
copy=False
help='Type of QR-code to be generated for the payment of this invoice, when printing it. If left blank, the first available and usable method will be used.'
selection=<expr>
string='Payment QR-code'
quick_edit_mode
Boolean
compute='_compute_quick_edit_mode'
quick_edit_total_amount
Monetary
help='Use this field to encode the total amount of the invoice.\nOdoo will automatically create one invoice line with default values to match it.'
string='Total (Tax inc.)'
quick_encoding_vals
Json
compute='_compute_quick_encoding_vals'
exportable=False
ref
Char
copy=False
index='trigram'
string='Reference'
tracking=True
restrict_mode_hash_table
Boolean
related='journal_id.restrict_mode_hash_table'
reversal_move_id
One2many → account.move
reversed_entry_id
Many2one → account.move
check_company=True
comodel_name='account.move'
copy=False
index='btree_not_null'
readonly=True
string='Reversal of'
secure_sequence_number
Integer
copy=False
index=True
readonly=True
string='Inalteralbility No Gap Sequence #'
send_and_print_values
Json
copy=False
show_delivery_date
Boolean
compute='_compute_show_delivery_date'
show_discount_details
Boolean
compute='_compute_show_payment_term_details'
show_name_warning
Boolean
store=False
show_payment_term_details
Boolean
compute='_compute_show_payment_term_details'
show_reset_to_draft_button
Boolean
compute='_compute_show_reset_to_draft_button'
show_update_fpos
Boolean
store=False
string='Has Fiscal Position Changed'
state
Selection
copy=False
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('cancel', 'Cancelled')]
string='Status'
tracking=True
statement_id
Many2one
related='statement_line_id.statement_id'
statement_line_id
Many2one → account.bank.statement.line
check_company=True
comodel_name='account.bank.statement.line'
copy=False
index='btree_not_null'
string='Statement Line'
string_to_hash
Char
compute='_compute_string_to_hash'
readonly=True
suitable_journal_ids
Many2many → account.journal
compute='_compute_suitable_journal_ids'
args: 'account.journal'
tax_calculation_rounding_method
Selection
readonly=True
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_cash_basis_created_move_ids
One2many → account.move
comodel_name='account.move'
help='The cash basis entries created from the taxes on this entry, when reconciling its lines.'
inverse_name='tax_cash_basis_origin_move_id'
string='Cash Basis Entries'
tax_cash_basis_origin_move_id
Many2one → account.move
comodel_name='account.move'
help='The journal entry from which this tax cash basis journal entry has been created.'
index='btree_not_null'
readonly=True
string='Cash Basis Origin'
tax_cash_basis_rec_id
Many2one → account.partial.reconcile
comodel_name='account.partial.reconcile'
index='btree_not_null'
string='Tax Cash Basis Entry of'
tax_country_code
Char
compute='_compute_tax_country_code'
tax_country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_tax_country_id'
tax_lock_date_message
Char
compute='_compute_tax_lock_date_message'
tax_totals
Binary
compute='_compute_tax_totals'
exportable=False
help='Edit Tax amounts if you encounter rounding issues.'
inverse='_inverse_tax_totals'
string='Invoice Totals'
to_check
Boolean
help='If this checkbox is ticked, it means that the user was not sure of all the related information at the time of the creation of the move and that the move needs to be checked again.'
string='To Check'
tracking=True
type_name
Char
compute='_compute_type_name'
args: 'Type Name'
user_id
Many2one
related='invoice_user_id'
string='User'
action_activate_currency(self)
action_duplicate(self)
action_export_zip(self)
action_invoice_sent(self)
action_open_business_doc(self)
action_post(self)
action_register_payment(self)
action_reverse(self)
action_send_and_print(self)
action_switch_move_type(self)
action_update_fpos_values(self)
button_cancel(self)
button_draft(self)
button_request_cancel(self)
button_set_checked(self)
check_field_access_rights(self, operation, field_names)
check_move_sequence_chain(self)
copy(self, default=None)
copy_data(self, default=None)
create(self, vals_list)
get_inbound_types(self, include_receipts=True)
get_invoice_localisation_fields_required_to_invoice(self, country_id)
get_invoice_pdf_report_attachment(self)
get_invoice_types(self, include_receipts=False)
get_outbound_types(self, include_receipts=True)
get_purchase_types(self, include_receipts=False)
get_sale_types(self, include_receipts=False)
init(self)
is_entry(self)
is_inbound(self, include_receipts=True)
is_invoice(self, include_receipts=False)
is_outbound(self, include_receipts=True)
is_purchase_document(self, include_receipts=False)
is_sale_document(self, include_receipts=False)
js_assign_outstanding_line(self, line_id)
js_remove_outstanding_partial(self, partial_id)
message_new(self, msg_dict, custom_values=None)
onchange(self, values, field_names, fields_spec)
open_created_caba_entries(self)
open_duplicated_ref_bill_view(self)
open_reconcile_view(self)
preview_invoice(self)
unlink(self)
write(self, vals)
account_id
Many2one → account.account
auto_join=True
check_company=True
comodel_name='account.account'
compute='_compute_account_id'
domain="[('deprecated', '=', False), ('account_type', '!=', 'off_balance')]"
index=False
inverse='_inverse_account_id'
ondelete='cascade'
precompute=True
readonly=False
store=True
string='Account'
tracking=True
account_internal_group
Selection
related='account_id.internal_group'
account_root_id
Many2one
related='account_id.root_id'
store=True
string='Account Root'
account_type
Selection
related='account_id.account_type'
string='Internal Type'
amount_currency
Monetary
compute='_compute_amount_currency'
group_operator=None
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
inverse='_inverse_amount_currency'
precompute=True
readonly=False
store=True
string='Amount in Currency'
amount_residual
Monetary
compute='_compute_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
compute='_compute_amount_residual'
group_operator=None
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_distribution
Json
inverse='_inverse_analytic_distribution'
analytic_line_ids
One2many → account.analytic.line
comodel_name='account.analytic.line'
inverse_name='move_line_id'
string='Analytic lines'
balance
Monetary
compute='_compute_balance'
currency_field='company_currency_id'
precompute=True
readonly=False
store=True
string='Balance'
tracking=True
blocked
Boolean
default=False
help='You can check this box to mark this journal item as a litigation with the associated partner'
string='No Follow-up'
company_currency_id
Many2one
precompute=True
readonly=True
related='move_id.company_currency_id'
store=True
string='Company Currency'
company_id
Many2one
index=True
precompute=True
readonly=True
related='move_id.company_id'
store=True
compute_all_tax
Binary
compute='_compute_all_tax'
exportable=False
compute_all_tax_dirty
Boolean
compute='_compute_all_tax'
credit
Monetary
compute='_compute_debit_credit'
currency_field='company_currency_id'
inverse='_inverse_credit'
precompute=True
store=True
string='Credit'
cumulated_balance
Monetary
compute='_compute_cumulated_balance'
currency_field='company_currency_id'
exportable=False
help='Cumulated balance depending on the domain and the order chosen in the view.'
string='Cumulated Balance'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
precompute=True
readonly=False
required=True
store=True
string='Currency'
currency_rate
Float
compute='_compute_currency_rate'
help='Currency rate from company currency to document currency.'
date
Date
copy=False
group_operator='min'
related='move_id.date'
store=True
date_maturity
Date
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
string='Due Date'
tracking=True
debit
Monetary
compute='_compute_debit_credit'
currency_field='company_currency_id'
inverse='_inverse_debit'
precompute=True
store=True
string='Debit'
discount
Float
default=0.0
digits='Discount'
string='Discount (%)'
discount_allocation_dirty
Boolean
compute='_compute_discount_allocation_needed'
discount_allocation_key
Binary
compute='_compute_discount_allocation_key'
exportable=False
discount_allocation_needed
Binary
compute='_compute_discount_allocation_needed'
exportable=False
discount_amount_currency
Monetary
currency_field='currency_id'
group_operator=None
store=True
string='Discount amount in Currency'
discount_balance
Monetary
currency_field='company_currency_id'
store=True
string='Discount Balance'
discount_date
Date
help='Last date at which the discounted amount must be paid in order for the Early Payment Discount to be granted'
store=True
string='Discount Date'
display_type
Selection
compute='_compute_display_type'
precompute=True
readonly=False
required=True
selection=[('product', 'Product'), ('cogs', 'Cost of Goods Sold'), ('tax', 'Tax'), ('discount', 'Discount'), ('rounding', 'Rounding'), ('payment_term', 'Payment Term'), ('line_section', 'Section'), ('line_note', 'Note'), ('epd', 'Early Payment Discount')]
store=True
epd_dirty
Boolean
compute='_compute_epd_needed'
epd_key
Binary
compute='_compute_epd_key'
exportable=False
epd_needed
Binary
compute='_compute_epd_needed'
exportable=False
full_reconcile_id
Many2one → account.full.reconcile
comodel_name='account.full.reconcile'
copy=False
index='btree_not_null'
readonly=True
string='Matching'
group_tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
index='btree_not_null'
string='Originator Group of Taxes'
invoice_date
Date
copy=False
group_operator='min'
related='move_id.invoice_date'
store=True
is_account_reconcile
Boolean
related='account_id.reconcile'
string='Account Reconcile'
is_refund
Boolean
compute='_compute_is_refund'
is_same_currency
Boolean
compute='_compute_same_currency'
is_storno
Boolean
help='Utility field to express whether the journal item is subject to storno accounting'
related='move_id.is_storno'
string='Company Storno Accounting'
journal_id
Many2one
copy=False
index=True
precompute=True
related='move_id.journal_id'
store=True
matched_credit_ids
One2many → account.partial.reconcile
comodel_name='account.partial.reconcile'
help='Credit journal items that are matched with this journal item.'
inverse_name='debit_move_id'
readonly=True
string='Matched Credits'
matched_debit_ids
One2many → account.partial.reconcile
comodel_name='account.partial.reconcile'
help='Debit journal items that are matched with this journal item.'
inverse_name='credit_move_id'
readonly=True
string='Matched Debits'
matching_number
Char
copy=False
help="Matching number for this line, 'P' if it is only partially reconcile, or the name of the full reconcile if it exists."
index='btree'
string='Matching #'
move_id
Many2one → account.move
auto_join=True
check_company=True
comodel_name='account.move'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
move_name
Char
index='btree'
related='move_id.name'
store=True
string='Number'
move_type
Selection
related='move_id.move_type'
name
Char
compute='_compute_name'
precompute=True
readonly=False
store=True
string='Label'
tracking=True
parent_state
Selection
related='move_id.state'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_partner_id'
inverse='_inverse_partner_id'
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Partner'
payment_date
Date
compute='_compute_payment_date'
search='_search_payment_date'
string='Payment Date'
payment_id
Many2one → account.payment
auto_join=True
comodel_name='account.payment'
help='The payment that created this entry'
index='btree_not_null'
related='move_id.payment_id'
store=True
string='Originator Payment'
price_subtotal
Monetary
compute='_compute_totals'
currency_field='currency_id'
store=True
string='Subtotal'
price_total
Monetary
compute='_compute_totals'
currency_field='currency_id'
store=True
string='Total'
price_unit
Float
compute='_compute_price_unit'
digits='Product Price'
precompute=True
readonly=False
store=True
string='Unit Price'
product_id
Many2one → product.product
check_company=True
comodel_name='product.product'
index=True
inverse='_inverse_product_id'
ondelete='restrict'
string='Product'
product_uom_category_id
Many2one → uom.category
comodel_name='uom.category'
related='product_id.uom_id.category_id'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
compute='_compute_product_uom_id'
domain="[('category_id', '=', product_uom_category_id)]"
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Unit of Measure'
quantity
Float
compute='_compute_quantity'
digits='Product Unit of Measure'
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
precompute=True
readonly=False
store=True
string='Quantity'
reconcile_model_id
Many2one → account.reconcile.model
check_company=True
comodel_name='account.reconcile.model'
copy=False
readonly=True
string='Reconciliation Model'
reconciled
Boolean
compute='_compute_amount_residual'
store=True
ref
Char
copy=False
index='trigram'
related='move_id.ref'
store=True
sequence
Integer
compute='_compute_sequence'
precompute=True
readonly=False
store=True
statement_id
Many2one
auto_join=True
copy=False
help='The bank statement used for bank reconciliation'
index='btree_not_null'
related='statement_line_id.statement_id'
store=True
statement_line_id
Many2one → account.bank.statement.line
auto_join=True
comodel_name='account.bank.statement.line'
help='The statement line that created this entry'
index='btree_not_null'
related='move_id.statement_line_id'
store=True
string='Originator Statement Line'
tax_base_amount
Monetary
currency_field='company_currency_id'
readonly=True
string='Base Amount'
tax_calculation_rounding_method
Selection
readonly=True
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_group_id
Many2one
precompute=True
related='tax_line_id.tax_group_id'
store=True
string='Originator tax group'
tax_ids
Many2many → account.tax
check_company=True
comodel_name='account.tax'
compute='_compute_tax_ids'
context={'active_test': False}
precompute=True
readonly=False
store=True
string='Taxes'
tracking=True
tax_key
Binary
compute='_compute_tax_key'
exportable=False
tax_line_id
Many2one → account.tax
comodel_name='account.tax'
help='Indicates that this journal item is a tax line'
ondelete='restrict'
precompute=True
related='tax_repartition_line_id.tax_id'
store=True
string='Originator Tax'
tax_repartition_line_id
Many2one → account.tax.repartition.line
check_company=True
comodel_name='account.tax.repartition.line'
help='Tax distribution line that caused the creation of this move line, if any'
ondelete='restrict'
readonly=True
string='Originator Tax Distribution Line'
tax_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
context={'active_test': False}
help='Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.'
ondelete='restrict'
string='Tags'
tracking=True
tax_tag_invert
Boolean
compute='_compute_tax_tag_invert'
copy=False
readonly=False
store=True
string='Invert Tags'
term_key
Binary
compute='_compute_term_key'
exportable=False
action_automatic_entry(self, default_action=None)
action_open_business_doc(self)
action_register_payment(self)
check_field_access_rights(self, operation, field_names)
copy_data(self, default=None)
create(self, vals_list)
default_get(self, fields_list)
flush_model(self, fnames=None)
flush_recordset(self, fnames=None)
get_import_templates(self)
get_views(self, views, options=None)
init(self)
invalidate_model(self, fnames=None, flush=True)
invalidate_recordset(self, fnames=None, flush=True)
open_reconcile_view(self)
reconcile(self)
remove_move_reconcile(self)
search_fetch(self, domain, field_names, offset=0, limit=None, order=None)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
available_journal_ids
Many2many → account.journal
compute='_compute_available_journal_ids'
args: 'account.journal'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
country_code
Char
related='company_id.country_id.code'
currency_id
Many2one → res.currency
compute='_compute_from_moves'
args: 'res.currency'
date
Date
default=fields.Date.context_today
string='Reversal date'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
help='If empty, uses the journal of the journal entry to be reversed.'
readonly=False
required=True
store=True
string='Journal'
move_ids
Many2many → account.move
domain=[('state', '=', 'posted')]
args: 'account.move', 'account_move_reversal_move', 'reversal_id', 'move_id'
move_type
Char
compute='_compute_from_moves'
new_move_ids
Many2many → account.move
reason
Char
string='Reason displayed on Credit Note'
residual
Monetary
compute='_compute_from_moves'
default_get(self, fields)
modify_moves(self)
refund_moves(self)
reverse_moves(self, is_modify=False)
attachments_not_supported
Json
compute='_compute_attachments_not_supported'
checkbox_download
Boolean
compute='_compute_checkbox_download'
readonly=False
store=True
string='Download'
checkbox_send_mail
Boolean
compute='_compute_checkbox_send_mail'
readonly=False
store=True
string='Email'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
store=True
display_attachments_widget
Boolean
compute='_compute_display_attachments_widget'
display_mail_composer
Boolean
compute='_compute_send_mail_extra_fields'
enable_download
Boolean
compute='_compute_enable_download'
enable_send_mail
Boolean
compute='_compute_enable_send_mail'
mail_attachments_widget
Json
compute='_compute_mail_attachments_widget'
readonly=False
store=True
mail_body
Html
compute='_compute_mail_subject_body'
readonly=False
sanitize_style=True
store=True
string='Contents'
mail_lang
Char
compute='_compute_mail_lang'
string='Lang'
mail_partner_ids
Many2many → res.partner
comodel_name='res.partner'
compute='_compute_mail_partner_ids'
readonly=False
store=True
string='Recipients'
mail_subject
Char
compute='_compute_mail_subject_body'
readonly=False
store=True
string='Subject'
mail_template_id
Many2one → mail.template
comodel_name='mail.template'
domain="[('model', '=', 'account.move')]"
string='Use template'
mode
Selection
compute='_compute_mode'
readonly=False
selection=[('invoice_single', 'Invoice Single'), ('invoice_multi', 'Invoice Multi')]
store=True
move_ids
Many2many → account.move
comodel_name='account.move'
send_mail_readonly
Boolean
compute='_compute_send_mail_extra_fields'
send_mail_warning_message
Json
compute='_compute_send_mail_extra_fields'
action_open_partners_without_email(self, res_ids=None)
action_send_and_print(self, force_synchronous=False, allow_fallback_pdf=False, **kwargs)
default_get(self, fields_list)
amount
Monetary
currency_field='company_currency_id'
help='Always positive amount concerned by this matching expressed in the company currency.'
company_currency_id
Many2one → res.currency
comodel_name='res.currency'
help='Utility field to express amount currency'
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
precompute=True
readonly=False
store=True
string='Company'
credit_amount_currency
Monetary
currency_field='credit_currency_id'
help='Always positive amount concerned by this matching expressed in the credit line foreign currency.'
credit_currency_id
Many2one → res.currency
comodel_name='res.currency'
precompute=True
related='credit_move_id.currency_id'
store=True
string='Currency of the credit journal item.'
credit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
debit_amount_currency
Monetary
currency_field='debit_currency_id'
help='Always positive amount concerned by this matching expressed in the debit line foreign currency.'
debit_currency_id
Many2one → res.currency
comodel_name='res.currency'
precompute=True
related='debit_move_id.currency_id'
store=True
string='Currency of the debit journal item.'
debit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
exchange_move_id
Many2one → account.move
comodel_name='account.move'
index='btree_not_null'
full_reconcile_id
Many2one → account.full.reconcile
comodel_name='account.full.reconcile'
copy=False
index='btree_not_null'
string='Full Reconcile'
max_date
Date
compute='_compute_max_date'
precompute=True
store=True
string='Max Date of Matched Lines'
create(self, vals_list)
unlink(self)
No new fields.
Public methods (0)No public methods.
amount
Monetary
currency_field='currency_id'
amount_company_currency_signed
Monetary
compute='_compute_amount_company_currency_signed'
currency_field='company_currency_id'
store=True
amount_signed
Monetary
compute='_compute_amount_signed'
currency_field='currency_id'
help='Negative value of amount field if payment_type is outbound'
tracking=True
available_journal_ids
Many2many → account.journal
comodel_name='account.journal'
compute='_compute_available_journal_ids'
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_line_ids
Many2many → account.payment.method.line
compute='_compute_payment_method_line_fields'
args: 'account.payment.method.line'
country_code
Char
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
help="The payment's currency."
precompute=True
readonly=False
store=True
string='Currency'
destination_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_destination_account_id'
domain="[('account_type', 'in', ('asset_receivable', 'liability_payable'))]"
readonly=False
store=True
string='Destination Account'
destination_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
domain="[('type', 'in', ('bank','cash')), ('id', '!=', journal_id)]"
string='Destination Journal'
is_internal_transfer
Boolean
compute='_compute_is_internal_transfer'
readonly=False
store=True
string='Internal Transfer'
tracking=True
is_matched
Boolean
compute='_compute_reconciliation_status'
store=True
string='Is Matched With a Bank Statement'
is_reconciled
Boolean
compute='_compute_reconciliation_status'
store=True
string='Is Reconciled'
move_id
Many2one → account.move
check_company=True
comodel_name='account.move'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
outstanding_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_outstanding_account_id'
index='btree_not_null'
store=True
string='Outstanding Account'
paired_internal_transfer_payment_id
Many2one → account.payment
copy=False
help='When an internal transfer is posted, a paired payment is created. They are cross referenced through this field'
index='btree_not_null'
args: 'account.payment'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
ondelete='restrict'
readonly=False
store=True
string='Recipient Bank Account'
tracking=True
args: 'res.partner.bank'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
compute='_compute_partner_id'
domain="['|', ('parent_id','=', False), ('is_company','=', True)]"
ondelete='restrict'
readonly=False
store=True
string='Customer/Vendor'
tracking=True
partner_type
Selection
default='customer'
required=True
tracking=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_method_code
Char
related='payment_method_line_id.code'
payment_method_id
Many2one
related='payment_method_line_id.payment_method_id'
store=True
string='Method'
tracking=True
payment_method_line_id
Many2one → account.payment.method.line
compute='_compute_payment_method_line_id'
copy=False
domain="[('id', 'in', available_payment_method_line_ids)]"
help='Manual: Pay or Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method.line'
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
string='Payment Reference'
tracking=True
payment_type
Selection
default='inbound'
required=True
string='Payment Type'
tracking=True
args: [('outbound', 'Send'), ('inbound', 'Receive')]
qr_code
Html
compute='_compute_qr_code'
string='QR Code URL'
reconciled_bill_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
string='Reconciled Bills'
args: 'account.move'
reconciled_bills_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Bills'
reconciled_invoice_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
string='Reconciled Invoices'
args: 'account.move'
reconciled_invoices_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Invoices'
reconciled_invoices_type
Selection
compute='_compute_stat_buttons_from_reconciliation'
args: [('credit_note', 'Credit Note'), ('invoice', 'Invoice')]
reconciled_statement_line_ids
Many2many → account.bank.statement.line
comodel_name='account.bank.statement.line'
compute='_compute_stat_buttons_from_reconciliation'
help='Statements lines matched to this payment'
string='Reconciled Statement Lines'
reconciled_statement_lines_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Statement Lines'
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
action_cancel(self)
action_draft(self)
action_open_destination_journal(self)
action_post(self)
button_open_bills(self)
button_open_invoices(self)
button_open_journal_entry(self)
button_open_statement_lines(self)
button_request_cancel(self)
create(self, vals_list)
mark_as_sent(self)
new(self, values=None, origin=None, ref=None)
unlink(self)
unmark_as_sent(self)
write(self, vals)
code
Char
required=True
name
Char
required=True
translate=True
payment_type
Selection
required=True
selection=[('inbound', 'Inbound'), ('outbound', 'Outbound')]
create(self, vals_list)
available_payment_method_ids
Many2many
related='journal_id.available_payment_method_ids'
code
Char
related='payment_method_id.code'
company_id
Many2one
related='journal_id.company_id'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
ondelete='cascade'
name
Char
compute='_compute_name'
readonly=False
store=True
payment_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain="[('deprecated', '=', False), '|', ('account_type', 'in', ('asset_current', 'liability_current')), ('id', '=', parent.default_account_id)]"
ondelete='restrict'
payment_method_id
Many2one → account.payment.method
comodel_name='account.payment.method'
domain="[('payment_type', '=?', payment_type), ('id', 'in', available_payment_method_ids)]"
ondelete='cascade'
required=True
string='Payment Method'
payment_type
Selection
related='payment_method_id.payment_type'
sequence
Integer
default=10
create(self, vals_list)
unlink(self)
write(self, vals)
amount
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=False
store=True
available_journal_ids
Many2many → account.journal
comodel_name='account.journal'
compute='_compute_available_journal_ids'
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_line_ids
Many2many → account.payment.method.line
compute='_compute_payment_method_line_fields'
args: 'account.payment.method.line'
can_edit_wizard
Boolean
compute='_compute_from_lines'
copy=False
store=True
can_group_payments
Boolean
compute='_compute_from_lines'
copy=False
store=True
communication
Char
compute='_compute_communication'
readonly=False
store=True
string='Memo'
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
compute='_compute_from_lines'
copy=False
store=True
args: 'res.company'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
help="The payment's currency."
precompute=True
readonly=False
store=True
string='Currency'
early_payment_discount_mode
Boolean
compute='_compute_early_payment_discount_mode'
group_payment
Boolean
compute='_compute_group_payment'
help='Only one payment will be created by partner (bank), instead of one per bill.'
readonly=False
store=True
string='Group Payments'
hide_writeoff_section
Boolean
compute='_compute_hide_writeoff_section'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
domain="[('id', 'in', available_journal_ids)]"
precompute=True
readonly=False
store=True
line_ids
Many2many → account.move.line
copy=False
readonly=True
string='Journal items'
args: 'account.move.line', 'account_payment_register_move_line_rel', 'wizard_id', 'line_id'
partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
readonly=False
store=True
string='Recipient Bank Account'
partner_id
Many2one → res.partner
compute='_compute_from_lines'
copy=False
ondelete='restrict'
store=True
string='Customer/Vendor'
args: 'res.partner'
partner_type
Selection
compute='_compute_from_lines'
copy=False
store=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_date
Date
default=fields.Date.context_today
required=True
string='Payment Date'
payment_difference
Monetary
compute='_compute_payment_difference'
payment_difference_handling
Selection
compute='_compute_payment_difference_handling'
readonly=False
selection=[('open', 'Keep open'), ('reconcile', 'Mark as fully paid')]
store=True
string='Payment Difference Handling'
payment_method_line_id
Many2one → account.payment.method.line
compute='_compute_payment_method_line_id'
domain="[('id', 'in', available_payment_method_line_ids)]"
help='Manual: Pay or Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method.line'
payment_type
Selection
compute='_compute_from_lines'
copy=False
store=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
qr_code
Html
compute='_compute_qr_code'
string='QR Code URL'
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
source_amount
Monetary
compute='_compute_from_lines'
copy=False
currency_field='company_currency_id'
store=True
string='Amount to Pay (company currency)'
source_amount_currency
Monetary
compute='_compute_from_lines'
copy=False
currency_field='source_currency_id'
store=True
string='Amount to Pay (foreign currency)'
source_currency_id
Many2one → res.currency
compute='_compute_from_lines'
copy=False
store=True
string='Source Currency'
args: 'res.currency'
total_payments_amount
Integer
compute='_compute_trust_values'
untrusted_bank_ids
Many2many → res.partner.bank
compute='_compute_trust_values'
args: 'res.partner.bank'
untrusted_payments_count
Integer
compute='_compute_trust_values'
writeoff_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain="[('deprecated', '=', False)]"
string='Difference Account'
writeoff_is_exchange_account
Boolean
compute='_compute_writeoff_is_exchange_account'
writeoff_label
Char
default='Write-Off'
help='Change label of the counterpart that will hold the payment difference'
string='Journal Item Label'
action_create_payments(self)
action_open_untrusted_bank_accounts(self)
default_get(self, fields_list)
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment terms without removing it.'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
args: 'res.currency'
discount_days
Integer
default=10
help='Number of days before the early payment proposition expires'
string='Discount Days'
discount_percentage
Float
default=2.0
help='Early Payment Discount granted for this payment term'
string='Discount %'
display_on_invoice
Boolean
default=True
string='Show installment dates'
early_discount
Boolean
string='Early Discount'
early_pay_discount_computation
Selection
compute='_compute_discount_computation'
readonly=False
store=True
string='Cash Discount Tax Reduction'
args: [('included', 'On early payment'), ('excluded', 'Never'), ('mixed', 'Always (upon invoice)')]
example_amount
Monetary
currency_field='currency_id'
default=1000
readonly=True
store=False
example_date
Date
default=_default_example_date
store=False
string='Date example'
example_invalid
Boolean
compute='_compute_example_invalid'
example_preview
Html
compute='_compute_example_preview'
example_preview_discount
Html
compute='_compute_example_preview'
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Terms'
translate=True
note
Html
string='Description on the Invoice'
translate=True
sequence
Integer
default=10
required=True
copy(self, default=None)
unlink(self)
delay_type
Selection
default='days_after'
required=True
args: [('days_after', 'Days after invoice date'), ('days_after_end_of_month', 'Days after end of month'), ('days_after_end_of_next_month', 'Days after end of next month')]
nb_days
Integer
compute='_compute_days'
readonly=False
store=True
string='Days'
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Terms'
args: 'account.payment.term'
value
Selection
default='percent'
help='Select here the kind of valuation related to this payment terms line.'
required=True
args: [('percent', 'Percent'), ('fixed', 'Fixed')]
value_amount
Float
compute='_compute_value_amount'
digits='Payment Terms'
help='For percent enter a ratio between 0-100.'
readonly=False
store=True
string='Due'
No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
allow_payment_tolerance
Boolean
default=True
help='Difference accepted in case of underpayment.'
string='Payment Tolerance'
tracking=True
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
tracking=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
decimal_separator
Char
default=<expr>
help='Every character that is nor a digit nor this separator will be removed from the matching string'
tracking=True
line_ids
One2many → account.reconcile.model.line
copy=True
args: 'account.reconcile.model.line', 'model_id'
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount Condition'
tracking=True
match_amount_max
Float
string='Amount Max Parameter'
tracking=True
match_amount_min
Float
string='Amount Min Parameter'
tracking=True
match_journal_ids
Many2many → account.journal
check_company=True
domain="[('type', 'in', ('bank', 'cash'))]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals Availability'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
tracking=True
match_label_param
Char
string='Label Parameter'
tracking=True
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Received'), ('amount_paid', 'Paid'), ('both', 'Paid/Received')]
string='Amount Type'
tracking=True
match_note
Selection
help='The reconciliation model will only be applied when the note:\n * Contains: The proposition note must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Note'
tracking=True
match_note_param
Char
string='Note Parameter'
tracking=True
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner is Set'
tracking=True
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Matching categories'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Matching partners'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency'
tracking=True
match_text_location_label
Boolean
default=True
help="Search in the Statement's Label to find the Invoice/Payment's reference"
tracking=True
match_text_location_note
Boolean
default=False
help="Search in the Statement's Note to find the Invoice/Payment's reference"
tracking=True
match_text_location_reference
Boolean
default=False
help="Search in the Statement's Reference to find the Invoice/Payment's reference"
tracking=True
match_transaction_type
Selection
help='The reconciliation model will only be applied when the transaction type:\n * Contains: The proposition transaction type must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Transaction Type'
tracking=True
match_transaction_type_param
Char
string='Transaction Type Parameter'
tracking=True
matching_order
Selection
default='old_first'
required=True
selection=[('old_first', 'Oldest first'), ('new_first', 'Newest first')]
tracking=True
name
Char
required=True
string='Name'
translate=True
number_entries
Integer
compute='_compute_number_entries'
string='Number of entries related to this model'
partner_mapping_line_ids
One2many → account.reconcile.model.partner.mapping
comodel_name='account.reconcile.model.partner.mapping'
help='The mapping uses regular expressions.\n- To Match the text at the beginning of the line (in label or notes), simply fill in your text.\n- To Match the text anywhere (in label or notes), put your text between .*\n e.g: .*N°48748 abc123.*'
inverse_name='model_id'
string='Partner Mapping Lines'
past_months_limit
Integer
default=18
help='Number of months in the past to consider entries from when applying this model.'
string='Search Months Limit'
tracking=True
payment_tolerance_param
Float
compute='_compute_payment_tolerance_param'
help='The sum of total residual amount propositions matches the statement line amount under this amount/percentage.'
readonly=False
store=True
string='Gap'
tracking=True
payment_tolerance_type
Selection
default='percentage'
help='The sum of total residual amount propositions and the statement line amount allowed gap type.'
required=True
selection=[('percentage', 'in percentage'), ('fixed_amount', 'in amount')]
tracking=True
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', 'Button to generate counterpart entry'), ('writeoff_suggestion', 'Rule to suggest counterpart entry'), ('invoice_matching', 'Rule to match invoices/bills')]
string='Type'
tracking=True
sequence
Integer
default=10
required=True
show_decimal_separator
Boolean
compute='_compute_show_decimal_separator'
to_check
Boolean
default=False
help='This matching rule is used when the user is not certain of all the information of the counterpart.'
string='To Check'
action_reconcile_stat(self)
copy(self, default=None)
No new fields.
Public methods (0)No public methods.
account_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('account_type', '!=', 'off_balance')]"
ondelete='cascade'
required=True
string='Account'
args: 'account.account'
allow_payment_tolerance
Boolean
related='model_id.allow_payment_tolerance'
amount
Float
compute='_compute_float_amount'
store=True
string='Float Amount'
amount_string
Char
default='100'
help='Value for the amount of the writeoff line\n * Percentage: Percentage of the balance, between 0 and 100.\n * Fixed: The fixed value of the writeoff. The amount will count as a debit if it is negative, as a credit if it is positive.\n * From Label: There is no need for regex delimiter, only the regex is needed. For instance if you want to extract the amount from\nR:9672938 10/07 AX 9415126318 T:5L:NA BRT: 3358,07 C:\nYou could enter\nBRT: ([\\d,]+)'
required=True
string='Amount'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('percentage_st_line', 'Percentage of statement line'), ('regex', 'From label')]
company_id
Many2one
related='model_id.company_id'
store=True
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
journal_id
Many2one → account.journal
check_company=True
domain="[('type', '=', 'general')]"
ondelete='cascade'
string='Journal'
args: 'account.journal'
label
Char
string='Journal Item Label'
translate=True
model_id
Many2one → account.reconcile.model
ondelete='cascade'
readonly=True
args: 'account.reconcile.model'
payment_tolerance_param
Float
related='model_id.payment_tolerance_param'
rule_type
Selection
related='model_id.rule_type'
sequence
Integer
default=10
required=True
show_force_tax_included
Boolean
compute='_compute_show_force_tax_included'
tax_ids
Many2many → account.tax
check_company=True
ondelete='restrict'
string='Taxes'
args: 'account.tax'
No public methods.
company_id
Many2one
related='model_id.company_id'
model_id
Many2one → account.reconcile.model
comodel_name='account.reconcile.model'
ondelete='cascade'
readonly=True
required=True
narration_regex
Char
string='Find Text in Notes'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
ondelete='cascade'
required=True
string='Partner'
payment_ref_regex
Char
string='Find Text in Label'
validate_regex(self)
active
Boolean
default=True
string='Active'
availability_condition
Selection
compute='_compute_default_availability_condition'
readonly=False
selection=[('country', 'Country Matches'), ('coa', 'Chart of Accounts Matches'), ('always', 'Always')]
store=True
string='Availability'
chart_template
Selection
selection=<expr>
string='Chart of Accounts'
column_ids
One2many → account.report.column
comodel_name='account.report.column'
inverse_name='report_id'
string='Columns'
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
default_opening_date_filter
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('this_year', 'This Year'), ('this_quarter', 'This Quarter'), ('this_month', 'This Month'), ('today', 'Today'), ('last_month', 'Last Month'), ('last_quarter', 'Last Quarter'), ('last_year', 'Last Year'), ('this_tax_period', 'This Tax Period'), ('last_tax_period', 'Last Tax Period')]
store=True
string='Default Opening'
filter_account_type
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('both', 'Payable and receivable'), ('payable', 'Payable'), ('receivable', 'Receivable'), ('disabled', 'Disabled')]
store=True
string='Account Types'
filter_aml_ir_filters
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
help='If activated, user-defined filters on journal items can be selected on this report'
readonly=False
store=True
string='Favorite Filters'
filter_analytic
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Analytic Filter'
filter_date_range
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Date Range'
filter_fiscal_position
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Filter Multivat'
filter_growth_comparison
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Growth Comparison'
filter_hide_0_lines
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('by_default', 'Enabled by Default'), ('optional', 'Optional'), ('never', 'Never')]
store=True
string='Hide lines at 0'
filter_hierarchy
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('by_default', 'Enabled by Default'), ('optional', 'Optional'), ('never', 'Never')]
store=True
string='Account Groups'
filter_journals
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Journals'
filter_multi_company
Selection
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
selection=[('disabled', 'Disabled'), ('selector', 'Use Company Selector'), ('tax_units', 'Use Tax Units')]
store=True
string='Multi-Company'
filter_partner
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Partners'
filter_period_comparison
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Period Comparison'
filter_show_draft
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Draft Entries'
filter_unfold_all
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Unfold All'
filter_unreconciled
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Unreconciled Entries'
line_ids
One2many → account.report.line
comodel_name='account.report.line'
inverse_name='report_id'
string='Lines'
load_more_limit
Integer
string='Load More Limit'
name
Char
required=True
string='Name'
translate=True
only_tax_exigible
Boolean
compute=<expr>
depends=['root_report_id', 'section_main_report_ids']
readonly=False
store=True
string='Only Tax Exigible Lines'
prefix_groups_threshold
Integer
string='Prefix Groups Threshold'
root_report_id
Many2one → account.report
comodel_name='account.report'
help='The report this report is a variant of.'
string='Root Report'
search_bar
Boolean
string='Search Bar'
section_main_report_ids
Many2many → account.report
column1='sub_report_id'
column2='main_report_id'
comodel_name='account.report'
relation='account_report_section_rel'
string='Section Of'
section_report_ids
Many2many → account.report
column1='main_report_id'
column2='sub_report_id'
comodel_name='account.report'
relation='account_report_section_rel'
string='Sections'
sequence
Integer
string='Sequence'
use_sections
Boolean
compute='_compute_use_sections'
help='Create a structured report with multiple sections for convenient navigation and simultaneous printing.'
readonly=False
store=True
string='Composite Report'
variant_report_ids
One2many → account.report
comodel_name='account.report'
inverse_name='root_report_id'
string='Variants'
copy(self, default=None)
write(self, vals)
blank_if_zero
Boolean
help='When checked, 0 values will not show in this column.'
string='Blank if Zero'
custom_audit_action_id
Many2one → ir.actions.act_window
comodel_name='ir.actions.act_window'
string='Custom Audit Action'
expression_label
Char
required=True
string='Expression Label'
figure_type
Selection
default='monetary'
required=True
selection=FIGURE_TYPE_SELECTION_VALUES
string='Figure Type'
name
Char
required=True
string='Name'
translate=True
report_id
Many2one → account.report
comodel_name='account.report'
string='Report'
sequence
Integer
string='Sequence'
sortable
Boolean
string='Sortable'
No public methods.
auditable
Boolean
compute='_compute_auditable'
readonly=False
store=True
string='Auditable'
blank_if_zero
Boolean
help="When checked, 0 values will not show when displaying this expression's value."
string='Blank if Zero'
carryover_target
Char
help='Formula in the form line_code.expression_label. This allows setting the target of the carryover for this expression (on a _carryover_*-labeled expression), in case it is different from the parent line.'
string='Carry Over To'
date_scope
Selection
default='strict_range'
required=True
selection=[('from_beginning', 'From the very start'), ('from_fiscalyear', 'From the start of the fiscal year'), ('to_beginning_of_fiscalyear', 'At the beginning of the fiscal year'), ('to_beginning_of_period', 'At the beginning of the period'), ('normal', 'According to each type of account'), ('strict_range', 'Strictly on the given dates'), ('previous_tax_period', 'From previous tax period')]
string='Date Scope'
engine
Selection
required=True
selection=[('domain', 'Odoo Domain'), ('tax_tags', 'Tax Tags'), ('aggregation', 'Aggregate Other Formulas'), ('account_codes', 'Prefix of Account Codes'), ('external', 'External Value'), ('custom', 'Custom Python Function')]
string='Computation Engine'
figure_type
Selection
selection=FIGURE_TYPE_SELECTION_VALUES
string='Figure Type'
formula
Char
required=True
string='Formula'
green_on_positive
Boolean
default=True
string='Is Growth Good when Positive'
label
Char
required=True
string='Label'
report_line_id
Many2one → account.report.line
comodel_name='account.report.line'
ondelete='cascade'
required=True
string='Report Line'
report_line_name
Char
related='report_line_id.name'
string='Report Line Name'
subformula
Char
string='Subformula'
create(self, vals_list)
write(self, vals)
carryover_origin_expression_label
Char
string='Origin Expression Label'
carryover_origin_report_line_id
Many2one → account.report.line
comodel_name='account.report.line'
string='Origin Line'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
date
Date
required=True
foreign_vat_fiscal_position_id
Many2one → account.fiscal.position
check_company=True
comodel_name='account.fiscal.position'
domain="[('country_id', '=', report_country_id), ('foreign_vat', '!=', False)]"
help='The foreign fiscal position for which this external value is made.'
string='Fiscal position'
name
Char
required=True
report_country_id
Many2one
related='target_report_line_id.report_id.country_id'
string='Country'
target_report_expression_id
Many2one → account.report.expression
comodel_name='account.report.expression'
ondelete='cascade'
required=True
string='Target Expression'
target_report_expression_label
Char
related='target_report_expression_id.label'
string='Target Expression Label'
target_report_line_id
Many2one
related='target_report_expression_id.report_line_id'
string='Target Line'
text_value
Char
string='Text Value'
value
Float
string='Numeric Value'
No public methods.
account_codes_formula
Char
help='Internal field to shorten expression_ids creation for the account_codes engine'
inverse='_inverse_account_codes_formula'
store=False
string='Account Codes Formula Shortcut'
action_id
Many2one → ir.actions.actions
comodel_name='ir.actions.actions'
help='Setting this field will turn the line into a link, executing the action when clicked.'
string='Action'
aggregation_formula
Char
help='Internal field to shorten expression_ids creation for the aggregation engine'
inverse='_inverse_aggregation_formula'
store=False
string='Aggregation Formula Shortcut'
children_ids
One2many → account.report.line
comodel_name='account.report.line'
inverse_name='parent_id'
string='Child Lines'
code
Char
help='Unique identifier for this line.'
string='Code'
domain_formula
Char
help='Internal field to shorten expression_ids creation for the domain engine'
inverse='_inverse_domain_formula'
store=False
string='Domain Formula Shortcut'
expression_ids
One2many → account.report.expression
comodel_name='account.report.expression'
inverse_name='report_line_id'
string='Expressions'
external_formula
Char
help='Internal field to shorten expression_ids creation for the external engine'
inverse='_inverse_external_formula'
store=False
string='External Formula Shortcut'
foldable
Boolean
help="By default, we always unfold the lines that can be. If this is checked, the line won't be unfolded by default, and a folding button will be displayed."
string='Foldable'
groupby
Char
help='Comma-separated list of fields from account.move.line (Journal Item). When set, this line will generate sublines grouped by those keys.'
string='Group By'
hide_if_zero
Boolean
help='This line and its children will be hidden when all of their columns are 0.'
string='Hide if Zero'
hierarchy_level
Integer
compute='_compute_hierarchy_level'
precompute=True
readonly=False
recursive=True
required=True
store=True
string='Level'
name
Char
required=True
string='Name'
translate=True
parent_id
Many2one → account.report.line
comodel_name='account.report.line'
ondelete='set null'
string='Parent Line'
print_on_new_page
Boolean
help='When checked this line and everything after it will be printed on a new page.'
args: 'Print On New Page'
report_id
Many2one → account.report
comodel_name='account.report'
compute='_compute_report_id'
ondelete='cascade'
precompute=True
readonly=False
recursive=True
required=True
store=True
string='Parent Report'
sequence
Integer
string='Sequence'
tax_tags_formula
Char
help='Internal field to shorten expression_ids creation for the tax_tags engine'
inverse='_inverse_aggregation_tax_formula'
store=False
string='Tax Tags Formula Shortcut'
user_groupby
Char
compute='_compute_user_groupby'
help='Comma-separated list of fields from account.move.line (Journal Item). When set, this line will generate sublines grouped by those keys.'
precompute=True
readonly=False
store=True
string='User Group By'
No public methods.
end_date
Date
help='Date (inclusive) to which the numbers are resequenced. If not set, all Journal Entries up to the end of the period are resequenced.'
first_date
Date
help='Date (inclusive) from which the numbers are resequenced.'
first_name
Char
compute='_compute_first_name'
readonly=False
required=True
store=True
string='First New Sequence'
move_ids
Many2many → account.move
new_values
Text
compute='_compute_new_values'
ordering
Selection
default='keep'
required=True
args: [('keep', 'Keep current order'), ('date', 'Reorder by accounting date')]
preview_moves
Text
compute='_compute_preview_moves'
sequence_number_reset
Char
compute='_compute_sequence_number_reset'
default_get(self, fields_list)
resequence(self)
company_id
Many2one → res.company
name
Char
parent_id
Many2one → account.root
init(self)
bank_bic
Char
readonly=False
related='bank_id.bic'
string='Bic'
company_id
Many2one → res.company
compute='_compute_company_id'
required=True
args: 'res.company'
linked_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_linked_journal_id'
domain=[('type', '=', 'bank'), ('bank_account_id', '=', False)]
inverse='set_linked_journal_id'
string='Journal'
new_journal_name
Char
default=<expr>
help='Will be used to name the Journal related to this bank account'
inverse='set_linked_journal_id'
required=True
num_journals_without_account
Integer
default=<expr>
res_partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
ondelete='cascade'
required=True
create(self, vals_list)
default_linked_journal_id(self)
set_linked_journal_id(self)
validate(self)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
default=0.0
digits=(16, 4)
required=True
tracking=True
amount_type
Selection
default='percent'
help='\n - Group of Taxes: The tax is a set of sub taxes.\n - Fixed: The tax amount stays the same whatever the price.\n - Percentage of Price: The tax amount is a % of the price:\n e.g 100 * (1 + 10%) = 110 (not price included)\n e.g 110 / (1 + 10%) = 100 (price included)\n - Percentage of Price Tax Included: The tax amount is a division of the price:\n e.g 180 / (1 - 10%) = 200 (not price included)\n e.g 200 * (1 - 10%) = 180 (price included)\n '
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
tracking=True
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Include in Analytic Cost'
cash_basis_transition_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="\n [\n ('deprecated', '=', False),\n ('account_type', 'not in', ('asset_receivable', 'liability_payable'))\n ]\n "
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
children_tax_ids
Many2many → account.tax
check_company=True
string='Children Taxes'
args: 'account.tax', 'account_tax_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_code
Char
readonly=True
related='country_id.code'
country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_country_id'
help='The country for which this tax is applicable.'
precompute=True
readonly=False
required=True
store=True
string='Country'
description
Char
string='Description'
translate=True
hide_tax_exigibility
Boolean
readonly=True
related='company_id.tax_exigibility'
string='Hide Use Cash Basis Option'
include_base_amount
Boolean
default=False
help='If set, taxes with a higher sequence than this one will be affected by it, provided they accept it.'
string='Affect Base of Subsequent Taxes'
tracking=True
invoice_label
Char
string='Label on Invoices'
translate=True
invoice_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
compute='_compute_invoice_repartition_line_ids'
domain=[('document_type', '=', 'invoice')]
help='Distribution when the tax is used on an invoice'
inverse_name='tax_id'
readonly=False
store=True
string='Distribution for Invoices'
is_base_affected
Boolean
default=True
help='If set, taxes with a lower sequence might affect this one, provided they try to do it.'
string='Base Affected by Previous Taxes'
tracking=True
is_used
Boolean
compute='_compute_is_used'
string='Tax used'
name
Char
required=True
string='Tax Name'
tracking=True
translate=True
name_searchable
Char
help="This dummy field lets us use another search method on the field 'name'.This allows more freedom on how to search the 'name' compared to 'filter_domain'.See '_search_name' and '_parse_name_search' for why this is not possible with 'filter_domain'."
search='_search_name'
store=False
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
tracking=True
refund_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
compute='_compute_refund_repartition_line_ids'
domain=[('document_type', '=', 'refund')]
help='Distribution when the tax is used on a refund'
inverse_name='tax_id'
readonly=False
store=True
string='Distribution for Refund Invoices'
repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
inverse_name='tax_id'
string='Distribution'
repartition_lines_str
Char
compute='_compute_repartition_lines_str'
string='Repartition Lines'
tracking=True
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Exigibility'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
comodel_name='account.tax.group'
compute='_compute_tax_group_id'
domain="[('country_id', 'in', (country_id, False))]"
precompute=True
readonly=False
required=True
store=True
string='Tax Group'
tax_scope
Selection
string='Tax Scope'
args: [('service', 'Services'), ('consu', 'Goods')]
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note: 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment."
required=True
string='Tax Type'
tracking=True
args: TYPE_TAX_USE
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True, include_caba_tags=False, fixed_multiplicator=1)
copy(self, default=None)
create(self, vals_list)
flatten_taxes_hierarchy(self, create_map=False)
get_tax_tags(self, is_refund, repartition_type)
json_friendly_compute_all(self, price_unit, currency_id=None, quantity=1.0, product_id=None, partner_id=None, is_refund=False, include_caba_tags=False)
onchange_amount(self)
onchange_amount_type(self)
onchange_price_include(self)
validate_tax_group_id(self)
write(self, vals)
advance_tax_payment_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Downpayments posted on this account will be considered by the Tax Closing Entry.'
string='Tax Advance Account'
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
country_code
Char
related='country_id.code'
country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_country_id'
help='The country for which this tax group is applicable.'
precompute=True
readonly=False
store=True
string='Country'
name
Char
required=True
translate=True
preceding_subtotal
Char
help="If set, this value will be used on documents as the label of a subtotal excluding this tax group before displaying it. If not set, the tax group will be displayed after the 'Untaxed amount' subtotal."
string='Preceding Subtotal'
sequence
Integer
default=10
tax_payable_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Tax current account used as a counterpart to the Tax Closing Entry when in favor of the authorities.'
string='Tax Payable Account'
tax_receivable_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
help='Tax current account used as a counterpart to the Tax Closing Entry when in favor of the company.'
string='Tax Receivable Account'
No public methods.
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'not in', ('asset_receivable', 'liability_payable', 'off_balance'))]"
help='Account on which to post the tax amount'
string='Account'
company_id
Many2one → res.company
comodel_name='res.company'
help='The company this distribution line belongs to.'
related='tax_id.company_id'
store=True
string='Company'
document_type
Selection
required=True
selection=[('invoice', 'Invoice'), ('refund', 'Refund')]
string='Related to'
factor
Float
compute='_compute_factor'
help='Factor to apply on the account move lines generated from this distribution line'
string='Factor Ratio'
factor_percent
Float
default=100
help='Factor to apply on the account move lines generated from this distribution line, in percents'
required=True
string='%'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
sequence
Integer
default=1
help='The order in which distribution lines are displayed and matched. For refunds to work properly, invoice distribution lines should be arranged in the same order as the credit note distribution lines they correspond to.'
string='Sequence'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
domain=[('applicability', '=', 'taxes')]
ondelete='restrict'
string='Tax Grids'
tag_ids_domain
Binary
compute='_compute_tag_ids_domain'
help='Dynamic domain used for the tag that can be set on tax'
string='tag domain'
tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
ondelete='cascade'
use_in_tax_closing
Boolean
compute='_compute_use_in_tax_closing'
precompute=True
readonly=False
store=True
string='Tax Closing Entry'
No public methods.
attachment_ids
Many2many → ir.attachment
comodel_name='ir.attachment'
relation='account_tour_upload_bill_ir_attachments_rel'
string='Attachments'
preview_invoice
Html
compute='_compute_preview_invoice'
string='Invoice Preview'
translate=True
selection
Selection
default=<expr>
selection=<expr>
apply(self)
email_alias
Char
readonly=True
apply(self)
No new fields.
Public methods (1)trans_unrec(self)
No new fields.
Public methods (1)document_layout_save(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)precision_get(self, application)
kpi_account_total_revenue
Boolean
kpi_account_total_revenue_value
Monetary
compute='_compute_kpi_account_total_revenue_value'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)action_download_xsd_files(self)
No new fields.
Public methods (1)session_info(self)
account_templates
Binary
compute='_compute_account_templates'
exportable=False
module_uninstall(self)
write(self, vals)
No new fields.
Public methods (2)get_account_kpi_summary(self)
get_kpi_summary(self)
No new fields.
Public methods (2)action_close_panel_account_dashboard(self)
action_close_panel_account_invoice(self)
No new fields.
Public methods (9)action_open_step_bank_account(self)
action_open_step_base_document_layout(self)
action_open_step_chart_of_accounts(self)
action_open_step_company_data(self)
action_open_step_create_invoice(self)
action_open_step_default_taxes(self)
action_open_step_fiscal_year(self)
action_open_step_sales_tax(self)
action_validate_step_base_document_layout(self)
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.'
string='Expense Account'
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='This account will be used when validating a customer invoice.'
string='Income Account'
args: 'account.account'
No public methods.
tax_string
Char
compute='_compute_tax_string'
No public methods.
account_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
domain="[('applicability', '=', 'products')]"
help='Tags to be set on the base and tax journal items created for this product.'
string='Account Tags'
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
property_account_expense_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category. If anglo-saxon accounting with automated valuation method is configured, the expense account on the product category will be used.'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category.'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'purchase')]
help='Default taxes used when buying the product.'
string='Vendor Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
tax_string
Char
compute='_compute_tax_string'
taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'sale')]
help='Default taxes used when selling the product.'
string='Customer Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
create(self, vals_list)
get_product_accounts(self, fiscal_pos=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
account_cash_basis_base_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
account_default_pos_receivable_account_id
Many2one → account.account
check_company=True
string='Default PoS Receivable Account'
args: 'account.account'
account_discount_expense_allocation_id
Many2one → account.account
comodel_name='account.account'
string='Separate account for expense discount'
account_discount_income_allocation_id
Many2one → account.account
comodel_name='account.account'
string='Separate account for income discount'
account_enabled_tax_country_ids
Many2many → res.country
comodel_name='res.country'
compute='_compute_account_enabled_tax_country_ids'
help='Technical field containing the countries for which this company is using tax-related features(hence the ones for which l10n modules need to show tax-related fields).'
string='l10n-used countries'
account_fiscal_country_id
Many2one → res.country
comodel_name='res.country'
compute='compute_account_tax_fiscal_country'
help='The country to use the tax reports from for this company'
readonly=False
store=True
string='Fiscal Country'
account_journal_early_pay_discount_gain_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
string='Cash Discount Write-Off Gain Account'
account_journal_early_pay_discount_loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
string='Cash Discount Write-Off Loss Account'
account_journal_payment_credit_account_id
Many2one → account.account
check_company=True
string='Journal Outstanding Payments'
args: 'account.account'
account_journal_payment_debit_account_id
Many2one → account.account
check_company=True
string='Journal Outstanding Receipts'
args: 'account.account'
account_journal_suspense_account_id
Many2one → account.account
check_company=True
string='Journal Suspense Account'
args: 'account.account'
account_opening_date
Date
default=<expr>
help='That is the date of the opening entry.'
required=True
string='Opening Entry'
account_opening_journal_id
Many2one → account.journal
comodel_name='account.journal'
help="Journal where the opening entry of this company's accounting has been posted."
readonly=False
related='account_opening_move_id.journal_id'
string='Opening Journal'
account_opening_move_id
Many2one → account.move
comodel_name='account.move'
help="The journal entry containing the initial balance of all this company's accounts."
string='Opening Journal Entry'
account_purchase_tax_id
Many2one → account.tax
check_company=True
string='Default Purchase Tax'
args: 'account.tax'
account_sale_tax_id
Many2one → account.tax
check_company=True
string='Default Sale Tax'
args: 'account.tax'
account_storno
Boolean
readonly=False
string='Storno accounting'
account_use_credit_limit
Boolean
help='Enable the use of credit limit on partners.'
string='Sales Credit Limit'
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
automatic_entry_default_journal_id
Many2one → account.journal
check_company=True
domain="[('type', '=', 'general')]"
help='Journal used by default for moving the period of an entry'
args: 'account.journal'
bank_account_code_prefix
Char
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template
Selection
selection='_chart_template_selection'
country_code
Char
depends=['country_id']
related='country_id.code'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
default_cash_difference_expense_account_id
Many2one → account.account
check_company=True
string='Cash Difference Expense'
args: 'account.account'
default_cash_difference_income_account_id
Many2one → account.account
check_company=True
string='Cash Difference Income'
args: 'account.account'
display_invoice_amount_total_words
Boolean
string='Total amount of invoice in letters'
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_accrual_account_id
Many2one → account.account
check_company=True
domain="[('internal_group', '=', 'liability'), ('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
help='Account used to move the period of an expense'
args: 'account.account'
expense_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', '=', 'expense')]"
string='Loss Exchange Rate Account'
fiscal_position_ids
One2many → account.fiscal.position
comodel_name='account.fiscal.position'
inverse_name='company_id'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default='12'
required=True
args: MONTH_SELECTION
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
string='All Users Lock Date'
tracking=True
income_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('internal_group', '=', 'income')]"
string='Gain Exchange Rate Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_download
Boolean
default=True
args: 'Download by default'
invoice_is_email
Boolean
default=True
args: 'Email by default'
invoice_terms
Html
string='Default Terms and Conditions'
translate=True
invoice_terms_html
Html
compute='_compute_invoice_terms_html'
readonly=False
sanitize_attributes=False
store=True
string='Default Terms and Conditions as a Web page'
translate=True
max_tax_lock_date
Date
compute='_compute_max_tax_lock_date'
recursive=True
multi_vat_foreign_country_ids
Many2many → res.country
comodel_name='res.country'
compute='_compute_multi_vat_foreign_country'
help='Countries for which the company has a VAT number'
string='Foreign VAT countries'
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
string='Journals Entries Lock Date'
tracking=True
qr_code
Boolean
string='Display QR-code on invoices'
quick_edit_mode
Selection
selection=[('out_invoices', 'Customer Invoices'), ('in_invoices', 'Vendor Bills'), ('out_and_in_invoices', 'Customer Invoices and Vendor Bills')]
string='Quick encoding'
revenue_accrual_account_id
Many2one → account.account
check_company=True
domain="[('internal_group', '=', 'asset'), ('account_type', 'not in', ('asset_receivable', 'liability_payable'))]"
help='Account used to move the period of a revenue'
args: 'account.account'
tax_calculation_rounding_method
Selection
default='round_per_line'
string='Tax Calculation Rounding Method'
args: [('round_per_line', 'Round per Line'), ('round_globally', 'Round Globally')]
tax_cash_basis_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
string='Cash Basis Journal'
tax_exigibility
Boolean
string='Use Cash Basis'
tax_lock_date
Date
help='No users can edit journal entries related to a tax prior and inclusive of this date.'
string='Tax Return Lock Date'
tracking=True
terms_type
Selection
default='plain'
string='Terms & Conditions format'
args: [('plain', 'Add a Note'), ('html', 'Add a link to a Web Page')]
transfer_account_code_prefix
Char
string='Prefix of the transfer accounts'
transfer_account_id
Many2one → account.account
check_company=True
domain="[('reconcile', '=', True), ('account_type', '=', 'asset_current'), ('deprecated', '=', False)]"
help='Intermediary account used when moving money from a liqity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
action_save_onboarding_sale_tax(self)
compute_account_tax_fiscal_country(self)
compute_fiscalyear_dates(self, current_date)
create(self, vals_list)
create_op_move_if_non_existant(self)
get_chart_of_accounts_or_fail(self)
get_new_account_code(self, current_code, old_prefix, new_prefix)
get_opening_move_differences(self, opening_move_lines)
get_unaffected_earnings_account(self)
opening_move_posted(self)
reflect_code_prefix_change(self, old_code, new_code)
setting_init_bank_account_action(self)
write(self, values)
account_cash_basis_base_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain=[('deprecated', '=', False)]
readonly=False
related='company_id.account_cash_basis_base_account_id'
string='Base Tax Received Account'
account_default_credit_limit
Monetary
compute='_compute_account_default_credit_limit'
help='This is the default credit limit that will be used on partners that do not have a specific limit on them.'
inverse='_inverse_account_default_credit_limit'
readonly=False
string='Default Credit Limit'
account_discount_expense_allocation_id
Many2one → account.account
comodel_name='account.account'
domain="[('account_type', 'in', ('income', 'expense'))]"
readonly=False
related='company_id.account_discount_expense_allocation_id'
string='Customer Invoices Discounts Account'
account_discount_income_allocation_id
Many2one → account.account
comodel_name='account.account'
domain="[('account_type', 'in', ('income', 'expense'))]"
readonly=False
related='company_id.account_discount_income_allocation_id'
string='Vendor Bills Discounts Account'
account_fiscal_country_id
Many2one
readonly=False
related='company_id.account_fiscal_country_id'
store=False
string='Fiscal Country Code'
account_journal_early_pay_discount_gain_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'in', ('income', 'income_other', 'expense'))]"
help='Account for the difference amount after the income discount has been granted'
readonly=False
related='company_id.account_journal_early_pay_discount_gain_account_id'
string='Cash Discount Gain'
account_journal_early_pay_discount_loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'in', ('expense', 'income', 'income_other'))]"
help='Account for the difference amount after the expense discount has been granted'
readonly=False
related='company_id.account_journal_early_pay_discount_loss_account_id'
string='Cash Discount Loss'
account_journal_payment_credit_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', '=', 'asset_current')]"
help='Outgoing Payments are posted on an Outstanding Payments Account. In the bank reconciliation widget, they appear as blue lines.\nBank transactions are then reconciled on the Outstanding Payments Account rather the Payable Account.'
readonly=False
related='company_id.account_journal_payment_credit_account_id'
string='Outstanding Payments'
account_journal_payment_debit_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', '=', 'asset_current')]"
help='Incoming payments are posted on an Outstanding Receipts Account. In the bank reconciliation widget, they appear as blue lines.\nBank transactions are then reconciled on the Outstanding Receipts Accounts rather than the Receivable Account.'
readonly=False
related='company_id.account_journal_payment_debit_account_id'
string='Outstanding Receipts'
account_journal_suspense_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', 'in', ('asset_current', 'liability_current'))]"
help='Bank Transactions are posted immediately after import or synchronization. Their counterparty is the bank suspense account.\nReconciliation replaces the latter by the definitive account(s).'
readonly=False
related='company_id.account_journal_suspense_account_id'
string='Bank Suspense'
account_storno
Boolean
readonly=False
related='company_id.account_storno'
string='Storno accounting'
account_use_credit_limit
Boolean
help='Enable the use of credit limit on partners.'
readonly=False
related='company_id.account_use_credit_limit'
string='Sales Credit Limit'
chart_template
Selection
default=<expr>
selection=<expr>
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_exchange_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
domain="[('type', '=', 'general')]"
help='The accounting journal where automatic exchange differences will be registered'
readonly=False
related='company_id.currency_exchange_journal_id'
string='Currency Exchange Journal'
currency_id
Many2one → res.currency
help='Main currency of the company.'
readonly=False
related='company_id.currency_id'
required=True
string='Currency'
args: 'res.currency'
display_invoice_amount_total_words
Boolean
readonly=False
related='company_id.display_invoice_amount_total_words'
string='Total amount of invoice in letters'
expense_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('account_type', '=', 'expense')]"
readonly=False
related='company_id.expense_currency_exchange_account_id'
string='Loss Exchange Rate Account'
group_cash_rounding
Boolean
implied_group='account.group_cash_rounding'
string='Cash Rounding'
group_sale_delivery_address
Boolean
implied_group='account.group_delivery_invoice_address'
args: 'Customer Addresses'
group_show_purchase_receipts
Boolean
implied_group='account.group_purchase_receipts'
string='Purchase Receipt'
group_show_sale_receipts
Boolean
implied_group='account.group_sale_receipts'
string='Sale Receipt'
group_warning_account
Boolean
implied_group='account.group_warning_account'
string='Warnings in Invoices'
has_accounting_entries
Boolean
compute='_compute_has_chart_of_accounts'
has_chart_of_accounts
Boolean
compute='_compute_has_chart_of_accounts'
string='Company has a chart of accounts'
income_currency_exchange_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('internal_group', '=', 'income')]"
readonly=False
related='company_id.income_currency_exchange_account_id'
string='Gain Exchange Rate Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
readonly=False
related='company_id.incoterm_id'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_download
Boolean
readonly=False
related='company_id.invoice_is_download'
string='Download'
invoice_is_email
Boolean
readonly=False
related='company_id.invoice_is_email'
string='Send Email'
invoice_terms
Html
readonly=False
related='company_id.invoice_terms'
string='Terms & Conditions'
invoice_terms_html
Html
readonly=False
related='company_id.invoice_terms_html'
string='Terms & Conditions as a Web page'
is_account_peppol_eligible
Boolean
compute='_compute_is_account_peppol_eligible'
string='PEPPOL eligible'
module_account_accountant
Boolean
string='Accounting'
module_account_avatax
Boolean
string='Account Avatax'
module_account_bank_statement_import_camt
Boolean
module_account_bank_statement_import_csv
Boolean
module_account_bank_statement_import_ofx
Boolean
module_account_bank_statement_import_qif
Boolean
module_account_batch_payment
Boolean
help='This allows you grouping payments into a single batch and eases the reconciliation process.\n-This installs the account_batch_payment module.'
string='Use batch payments'
module_account_budget
Boolean
string='Budget Management'
module_account_check_printing
Boolean
module_account_intrastat
Boolean
string='Intrastat'
module_account_invoice_extract
Boolean
string='Document Digitization'
module_account_payment
Boolean
string='Invoice Online Payment'
module_account_peppol
Boolean
string='PEPPOL Invoicing'
module_account_reports
Boolean
module_account_sepa
Boolean
string='SEPA Credit Transfer (SCT)'
module_account_sepa_direct_debit
Boolean
string='Use SEPA Direct Debit'
module_account_taxcloud
Boolean
string='Account TaxCloud'
module_currency_rate_live
Boolean
string='Automatic Currency Rates'
module_l10n_eu_oss
Boolean
string='EU Intra-community Distance Selling'
module_product_margin
Boolean
string='Allow Product Margin'
module_snailmail_account
Boolean
string='Snailmail'
preview_ready
Boolean
compute='_compute_terms_preview'
string='Display preview button'
purchase_tax_id
Many2one → account.tax
check_company=True
readonly=False
related='company_id.account_purchase_tax_id'
string='Default Purchase Tax'
args: 'account.tax'
qr_code
Boolean
readonly=False
related='company_id.qr_code'
string='Display SEPA QR-code'
quick_edit_mode
Selection
readonly=False
related='company_id.quick_edit_mode'
string='Quick encoding'
sale_tax_id
Many2one → account.tax
check_company=True
readonly=False
related='company_id.account_sale_tax_id'
string='Default Sale Tax'
args: 'account.tax'
tax_calculation_rounding_method
Selection
readonly=False
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_cash_basis_journal_id
Many2one → account.journal
check_company=True
readonly=False
related='company_id.tax_cash_basis_journal_id'
string='Tax Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
readonly=False
related='company_id.tax_exigibility'
string='Cash Basis'
terms_type
Selection
readonly=False
related='company_id.terms_type'
transfer_account_id
Many2one → account.account
check_company=True
domain=[('reconcile', '=', True), ('account_type', '=', 'asset_current'), ('deprecated', '=', False)]
help='Intermediary account used when moving from a liquidity account to another.'
readonly=False
related='company_id.transfer_account_id'
string='Internal Transfer'
args: 'account.account'
use_invoice_terms
Boolean
config_parameter='account.use_invoice_terms'
string='Default Terms & Conditions'
action_update_terms(self)
onchange_analytic_accounting(self)
onchange_module_account_budget(self)
reload_template(self)
set_values(self)
display_rounding_warning
Boolean
compute='_compute_display_rounding_warning'
help="The warning informs a rounding factor change might be dangerous on res.currency's form view."
string='Display Rounding Warning'
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
write(self, vals)
No new fields.
Public methods (1)get_application_groups(self, domain)
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Partner Contracts'
args: 'account.analytic.account', 'partner_id'
credit
Monetary
compute='_credit_debit_get'
groups='account.group_account_invoice,account.group_account_readonly'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
credit_limit
Float
company_dependent=True
copy=False
groups='account.group_account_invoice,account.group_account_readonly'
help='Credit limit specific to this partner.'
readonly=False
string='Credit Limit'
credit_to_invoice
Monetary
compute='_compute_credit_to_invoice'
groups='account.group_account_invoice,account.group_account_readonly'
currency_id
Many2one → res.currency
compute='_get_company_currency'
readonly=True
string='Currency'
args: 'res.currency'
customer_rank
Integer
copy=False
default=0
days_sales_outstanding
Float
compute='_compute_days_sales_outstanding'
help='[(Total Receivable/Total Revenue) * number of days since the first invoice] for this customer'
string='Days Sales Outstanding (DSO)'
debit
Monetary
compute='_credit_debit_get'
groups='account.group_account_invoice,account.group_account_readonly'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
debit_limit
Monetary
duplicated_bank_account_partners_count
Integer
compute='_compute_duplicated_bank_account_partners_count'
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
has_unreconciled_entries
Boolean
compute='_compute_has_unreconciled_entries'
help='The partner has at least one unreconciled debit and credit since last time the invoices & payments matching was performed.'
invoice_ids
One2many → account.move
copy=False
readonly=True
string='Invoices'
args: 'account.move', 'partner_id'
invoice_warn
Selection
default='no-message'
help=WARNING_HELP
args: WARNING_MESSAGE, 'Invoice'
invoice_warn_msg
Text
is_coa_installed
Boolean
default=<expr>
store=False
journal_item_count
Integer
compute='_compute_journal_item_count'
string='Journal Items'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed for this partner. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit or if you click the "Done" button.'
readonly=True
string='Latest Invoices & Payments Matching Date'
name
Char
tracking=True
property_account_payable_id
Many2one → account.account
company_dependent=True
domain="[('account_type', '=', 'liability_payable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the payable account for the current partner'
required=True
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
company_dependent=True
help='The fiscal position determines the taxes/accounts used for this contact.'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
company_dependent=True
domain="[('account_type', '=', 'asset_receivable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the receivable account for the current partner'
required=True
string='Account Receivable'
args: 'account.account'
property_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for sales orders and customer invoices'
string='Customer Payment Terms'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for purchase orders and vendor bills'
string='Vendor Payment Terms'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
show_credit_limit
Boolean
compute='_compute_show_credit_limit'
default=<expr>
groups='account.group_account_invoice,account.group_account_readonly'
supplier_invoice_count
Integer
compute='_compute_supplier_invoice_count'
string='# Vendor Bills'
supplier_rank
Integer
copy=False
default=0
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice,account.group_account_readonly'
string='Total Invoiced'
trust
Selection
company_dependent=True
default='normal'
string='Degree of trust you have in this debtor'
args: [('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')]
use_partner_credit_limit
Boolean
compute='_compute_use_partner_credit_limit'
groups='account.group_account_invoice,account.group_account_readonly'
help='Set a value greater than 0.0 to activate a credit limit check'
inverse='_inverse_use_partner_credit_limit'
string='Partner Limit'
action_view_partner_invoices(self)
action_view_partner_with_same_bank(self)
can_edit_vat(self)
create(self, vals_list)
get_partner_localisation_fields_required_to_invoice(self, country_id)
mark_as_reconciled(self)
acc_holder_name
Char
tracking=True
acc_number
Char
tracking=True
active
Boolean
tracking=True
allow_out_payment
Boolean
help='Sending fake invoices with a fraudulent account number is a common phishing practice. To protect yourself, always verify new bank account numbers, preferably by calling the vendor, as phishing usually happens when their emails are compromised. Once verified, you can activate the ability to send money.'
tracking=True
bank_id
Many2one
tracking=True
currency_id
Many2one
tracking=True
has_iban_warning
Boolean
compute='_compute_display_account_warning'
help='Technical field used to display a warning if the IBAN country is different than the holder country.'
store=True
has_money_transfer_warning
Boolean
compute='_compute_display_account_warning'
help='Technical field used to display a warning if the account is a transfer service account.'
store=True
journal_id
One2many → account.journal
check_company=True
domain=[('type', '=', 'bank')]
help='The accounting journal corresponding to this bank account.'
readonly=True
string='Account Journal'
args: 'account.journal', 'bank_account_id'
lock_trust_fields
Boolean
compute='_compute_lock_trust_fields'
money_transfer_service
Char
compute='_compute_money_transfer_service_name'
partner_country_name
Char
related='partner_id.country_id.name'
partner_customer_rank
Integer
related='partner_id.customer_rank'
partner_id
Many2one
tracking=True
partner_supplier_rank
Integer
related='partner_id.supplier_rank'
related_moves
One2many → account.move
inverse_name='partner_bank_id'
args: 'account.move'
user_has_group_validate_bank_account
Boolean
compute='_compute_user_has_group_validate_bank_account'
build_qr_code_base64(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
build_qr_code_url(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
create(self, vals_list)
default_get(self, fields_list)
get_available_qr_methods_in_sequence(self)
unlink(self)
write(self, vals)
sequence_number
Integer
compute='_compute_split_sequence'
store=True
sequence_prefix
Char
compute='_compute_split_sequence'
store=True
init(self)
fiscal_country_codes
Char
compute='_compute_fiscal_country_codes'
No public methods.
force_post
Boolean
help='Entries in the future are set to be auto-posted by default. Check this checkbox to post them now.'
string='Force'
validate_move(self)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account.account_terms_conditions_setting_banner |
Account Terms and Conditions Setting Banner | ir.ui.view | qweb | New |
account_analytic_account_view_form_inherit |
account.analytic.account.form.inherit | account.analytic.account | div | Inherits analytic.view_account_analytic_account_form |
account_analytic_account_view_list_inherit |
account.analytic.account.list.inherit | account.analytic.account | field | Inherits analytic.view_account_analytic_account_list |
account_analytic_distribution_model_form_inherit |
account.analytic.distribution.model.inherit.form | account.analytic.distribution.model | data | Inherits analytic.account_analytic_distribution_model_form_view |
account_analytic_distribution_model_tree_inherit |
account.analytic.distribution.model.inherit.tree | account.analytic.distribution.model | data | Inherits analytic.account_analytic_distribution_model_tree_view |
account_analytic_plan_form_view_inherit_account |
account.analytic.plan.inherit.form | account.analytic.plan | data | Inherits analytic.account_analytic_plan_form_view |
account_automatic_entry_wizard_form |
account.automatic.entry.wizard.form | account.automatic.entry.wizard | form | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_dashboard_onboarding_panel |
account.dashboard.onboarding.panel | ir.ui.view | qweb | New |
account_default_terms_and_conditions |
account_default_terms_and_conditions | ir.ui.view | qweb | New |
account_incoterms_form |
account.incoterms.form | account.incoterms | form | New |
account_incoterms_view_search |
account.incoterms.search | account.incoterms | search | New |
account_invoice_onboarding_panel |
account.invoice.onboarding.panel | ir.ui.view | qweb | New |
account_invoice_onboarding_sale_tax_form |
account.invoice.layout.onboarding.form | res.company | form | New |
account_invoice_report_view_tree |
account.invoice.report.view.tree | account.invoice.report | tree | New |
account_invoice_send_wizard_form |
account.invoice.send.form | account.invoice.send | form | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_journal_dashboard_kanban_view_js |
account.journal.dashboard.kanban.js | account.journal | xpath | Inherits account.account_journal_dashboard_kanban_view |
account_journal_view_kanban |
account.journal.kanban | account.journal | kanban | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_view_kanban |
account.move.line.kanban | account.move.line | kanban | New |
account_move_line_view_kanban_mobile |
account.move.line.kanban.mobile | account.move.line | xpath | Inherits account_move_line_view_kanban |
account_resequence_view |
Re-sequence Journal Entries | account.resequence.wizard | form | New |
account_tag_view_form |
Tags | account.account.tag | form | New |
account_tag_view_search |
account.tag.view.search | account.account.tag | search | New |
account_tag_view_tree |
Tags | account.account.tag | tree | New |
account_tax_group_view_search |
account.tax.group.search.filters | account.tax.group | search | New |
account_tax_view_search |
account.tax.search.filters | account.tax | search | New |
account_tax_view_tree |
account.invoice.line.tax.search | account.tax | tree | New |
account_terms_conditions_page |
Terms & Conditions | ir.ui.view | qweb | New |
account_tour_upload_bill |
account.tour.upload.bill | account.tour.upload.bill | form | New |
account_tour_upload_bill_email_confirm |
account.tour.upload.bill.email.confirm | account.tour.upload.bill.email.confirm | form | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
bill_preview |
bill_preview | ir.ui.view | qweb | New |
digest_digest_view_form |
digest.digest.view.form.inherit.account.account | digest.digest | xpath | Inherits digest.digest_digest_view_form |
document_tax_totals |
document_tax_totals | ir.ui.view | qweb | New |
init_accounts_tree |
account.setup.opening.move.line.tree | account.account | tree | New |
onboarding_bank_account_step |
onboarding_bank_account_step | ir.ui.view | qweb | New |
onboarding_chart_of_account_step |
onboarding_chart_of_account_step | ir.ui.view | qweb | New |
onboarding_create_invoice_step |
onboarding_create_invoice_step | ir.ui.view | qweb | New |
onboarding_fiscal_year_step |
onboarding_fiscal_year_step | ir.ui.view | qweb | New |
onboarding_invoice_layout_step |
onboarding_invoice_layout_step | ir.ui.view | qweb | New |
onboarding_sale_tax_step |
onboarding_sale_tax_step | ir.ui.view | qweb | New |
onboarding_taxes_step |
onboarding_taxes_step | ir.ui.view | qweb | New |
partner_view_buttons |
partner.view.buttons | res.partner | div | Inherits base.view_partner_form |
portal_invoice_error |
Invoice error/warning display | ir.ui.view | qweb | New |
portal_invoice_page |
Invoice Portal Template | ir.ui.view | qweb | Inherits portal.portal_sidebar |
portal_invoice_required_fields_form |
portal_invoice_required_fields_form | ir.ui.view | qweb | New |
portal_invoice_success |
Invoice success display | ir.ui.view | qweb | New |
portal_my_home_invoice |
Show Invoices & Bills | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_invoice |
Portal layout : invoice menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_invoices |
My Invoices and Payments | ir.ui.view | qweb | New |
product_template_form_view |
product.template.form.inherit | product.template | xpath | Inherits product.product_template_form_view |
product_template_view_tree |
product.template.tree | product.template | tree | New |
report_hash_integrity |
report_hash_integrity | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_invoice_with_payments |
report_invoice_with_payments | ir.ui.view | qweb | New |
report_original_vendor_bill |
report_original_vendor_bill | ir.ui.view | qweb | New |
report_payment_receipt |
report_payment_receipt | ir.ui.view | qweb | New |
report_payment_receipt_document |
report_payment_receipt_document | ir.ui.view | qweb | New |
report_statement |
report_statement | ir.ui.view | qweb | New |
res_company_view_form_terms |
res.company.view.form.terms | res.company | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.account | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_currency_form_inherit |
res.currency.form.inherit | res.currency | xpath | Inherits base.view_currency_form |
res_partner_view_search |
res.partner.search.inherit | res.partner | xpath | Inherits base.view_res_partner_filter |
rounding_form_view |
account.cash.rounding.form | account.cash.rounding | form | New |
rounding_search_view |
account.cash.rounding.search | account.cash.rounding | search | New |
rounding_tree_view |
account.cash.rounding.tree | account.cash.rounding | tree | New |
setup_bank_account_wizard |
account.online.sync.res.partner.bank.setup.form | account.setup.bank.manual.config | form | New |
setup_financial_year_opening_form |
account.financial.year.op.setup.wizard.form | account.financial.year.op | form | New |
tax_groups_totals |
tax_groups_totals | ir.ui.view | qweb | New |
tax_repartition_line_tree |
account.tax.repartition.line.tree | account.tax.repartition.line | tree | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_account_kanban |
account.account.kanban | account.account | kanban | New |
view_account_accrued_orders_wizard |
account.accrued.orders.wizard.view | account.accrued.orders.wizard | form | New |
view_account_analytic_line_filter_inherit |
account.analytic.line.select.inherit | account.analytic.line | xpath | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.tree.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_form |
account.account.form | account.account | form | New |
view_account_group_form |
account.group.form | account.group | form | New |
view_account_group_search |
account.group.search | account.group | search | New |
view_account_group_tree |
account.group.tree | account.group | tree | New |
view_account_invoice_filter |
account.invoice.select | account.move | search | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_group_form |
account.journal.group.form | account.journal.group | form | New |
view_account_journal_group_tree |
account.journal.group.tree | account.journal.group | tree | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_kanban |
account.move.kanban | account.move | kanban | New |
view_account_move_line_filter |
account.move.line.search | account.move.line | search | New |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_kanban |
account.payment.kanban | account.payment | kanban | New |
view_account_payment_register_form |
account.payment.register.form | account.payment.register | form | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_term_kanban |
account.payment.term.kanban | account.payment.term | kanban | New |
view_account_payment_tree |
account.payment.tree | account.payment | tree | New |
view_account_position_filter |
account.fiscal.position.filter | account.fiscal.position | search | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_reconcile_model_form |
account.reconcile.model.form | account.reconcile.model | form | New |
view_account_reconcile_model_line_form |
account.reconcile.model.line.form | account.reconcile.model.line | form | New |
view_account_reconcile_model_search |
account.reconcile.model.search | account.reconcile.model | search | New |
view_account_reconcile_model_tree |
account.reconcile.model.tree | account.reconcile.model | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_supplier_payment_tree |
account.supplier.payment.tree | account.payment | field | Inherits account.view_account_payment_tree |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_various_payment_tree |
account.supplier.payment.tree | account.payment | field | Inherits account.view_account_payment_tree |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_company_form |
res.company.form.inherit.account | res.company | xpath | Inherits base.view_company_form |
view_full_reconcile_form |
account.full.reconcile.form | account.full.reconcile | form | New |
view_in_invoice_bill_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_receipt_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_refund_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_tree |
account.out.invoice.tree | account.move | xpath | Inherits account.view_invoice_tree |
view_incoterms_tree |
account.incoterms.tree | account.incoterms | tree | New |
view_invoice_tree |
account.invoice.tree | account.move | tree | New |
view_module_filter_inherit_account |
ir.module.module.list.inherit.account | ir.module.module | xpath | Inherits base.view_module_filter |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_pivot |
account.move.line.pivot | account.move.line | pivot | New |
view_move_line_tax_audit_tree |
account.move.line.tax.audit.tree | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_line_tree_grouped_bank_cash |
account.move.line.tree.grouped.bank.cash | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_general |
account.move.line.tree.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_misc |
account.move.line.tree.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_partner |
account.move.line.tree.grouped.partner | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree_grouped_sales_purchases |
account.move.line.tree.grouped.sales.purchase | account.move.line | field | Inherits account.view_move_line_tree |
view_move_tree |
account.move.tree | account.move | tree | New |
view_onboarding_tax_tree |
account.onboarding.tax.tree | account.tax | xpath | Inherits account.view_tax_tree |
view_out_credit_note_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_invoice_tree |
view_out_invoice_tree |
account.out.invoice.tree | account.move | xpath | Inherits account.view_invoice_tree |
view_partner_bank_form_inherit_account |
res.partner.bank.form.inherit.account | res.partner.bank | xpath | Inherits base.view_partner_bank_form |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | xpath | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_payment_term_tree |
account.payment.term.tree | account.payment.term | tree | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_group_form |
account.tax.group.form | account.tax.group | form | New |
view_tax_group_tree |
account.tax.group.tree | account.tax.group | tree | New |
view_tax_kanban |
account.tax.kanban | account.tax | kanban | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
account_type
Selection
compute='_compute_account_type'
help='Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.'
index=True
precompute=True
readonly=False
required=True
selection=[('asset_receivable', 'Receivable'), ('asset_cash', 'Bank and Cash'), ('asset_current', 'Current Assets'), ('asset_non_current', 'Non-current Assets'), ('asset_prepayments', 'Prepayments'), ('asset_fixed', 'Fixed Assets'), ('liability_payable', 'Payable'), ('liability_credit_card', 'Credit Card'), ('liability_current', 'Current Liabilities'), ('liability_non_current', 'Non-current Liabilities'), ('equity', 'Equity'), ('equity_unaffected', 'Current Year Earnings'), ('income', 'Income'), ('income_other', 'Other Income'), ('expense', 'Expenses'), ('expense_depreciation', 'Depreciation'), ('expense_direct_cost', 'Cost of Revenue'), ('off_balance', 'Off-Balance Sheet')]
store=True
string='Type'
tracking=True
allowed_journal_ids
Many2many → account.journal
help='Define in which journals this account can be used. If empty, can be used in all journals.'
string='Allowed Journals'
args: 'account.journal'
code
Char
required=True
size=64
tracking=True
unaccent=False
company_currency_id
Many2one
related='company_id.currency_id'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='Forces all journal items in this account to have a specific currency (i.e. bank journals). If no currency is set, entries can use any currency.'
string='Account Currency'
tracking=True
args: 'res.currency'
current_balance
Float
compute='_compute_current_balance'
deprecated
Boolean
default=False
tracking=True
group_id
Many2one → account.group
compute='_compute_account_group'
help='Account prefixes can determine account groups.'
readonly=True
store=True
args: 'account.group'
include_initial_balance
Boolean
compute='_compute_include_initial_balance'
help='Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set.'
store=True
string='Bring Accounts Balance Forward'
internal_group
Selection
compute='_compute_internal_group'
readonly=True
selection=[('equity', 'Equity'), ('asset', 'Asset'), ('liability', 'Liability'), ('income', 'Income'), ('expense', 'Expense'), ('off_balance', 'Off Balance')]
store=True
string='Internal Group'
is_off_balance
Boolean
compute='_compute_is_off_balance'
default=False
readonly=True
store=True
name
Char
index='trigram'
required=True
string='Account Name'
tracking=True
non_trade
Boolean
default=False
help='If set, this account will belong to Non Trade Receivable/Payable in reports and filters.\nIf not, this account will belong to Trade Receivable/Payable in reports and filters.'
note
Text
tracking=True
args: 'Internal Notes'
opening_balance
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_balance'
string='Opening Balance'
opening_credit
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_credit'
string='Opening Credit'
opening_debit
Monetary
compute='_compute_opening_debit_credit'
currency_field='company_currency_id'
inverse='_set_opening_debit'
string='Opening Debit'
reconcile
Boolean
compute='_compute_reconcile'
help='Check this box if this account allows invoices & payments matching of journal items.'
readonly=False
store=True
string='Allow Reconciliation'
tracking=True
related_taxes_amount
Integer
compute='_compute_related_taxes_amount'
root_id
Many2one → account.root
compute='_compute_account_root'
store=True
args: 'account.root'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
ondelete='restrict'
string='Tags'
args: 'account.account.tag', 'account_account_account_tag'
tax_ids
Many2many → account.tax
check_company=True
context={'append_type_to_tax_name': True}
string='Default Taxes'
args: 'account.tax', 'account_account_tax_default_rel', 'account_id', 'tax_id'
used
Boolean
compute='_compute_used'
search='_search_used'
action_duplicate_accounts(self)
action_open_related_taxes(self)
action_read_account(self)
copy(self, default=None)
default_get(self, default_fields)
get_import_templates(self)
name_create(self, name)
name_get(self)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the Account Tag without removing it.'
applicability
Selection
default='accounts'
required=True
args: [('accounts', 'Accounts'), ('taxes', 'Taxes'), ('products', 'Products')]
color
Integer
country_id
Many2one → res.country
comodel_name='res.country'
help='Country for which this tag is available, when applied on taxes.'
string='Country'
name
Char
required=True
args: 'Tag Name'
tax_negate
Boolean
help='Check this box to negate the absolute value of the balance of the lines associated with this tag in tax report computation.'
string='Negate Tax Balance'
name_get(self)
account_type
Selection
help='These types are defined according to your country. The type contains more information about the account and its specificities.'
selection=[('asset_receivable', 'Receivable'), ('asset_cash', 'Bank and Cash'), ('asset_current', 'Current Assets'), ('asset_non_current', 'Non-current Assets'), ('asset_prepayments', 'Prepayments'), ('asset_fixed', 'Fixed Assets'), ('liability_payable', 'Payable'), ('liability_credit_card', 'Credit Card'), ('liability_current', 'Current Liabilities'), ('liability_non_current', 'Non-current Liabilities'), ('equity', 'Equity'), ('equity_unaffected', 'Current Year Earnings'), ('income', 'Income'), ('income_other', 'Other Income'), ('expense', 'Expenses'), ('expense_depreciation', 'Depreciation'), ('expense_direct_cost', 'Cost of Revenue'), ('off_balance', 'Off-Balance Sheet')]
string='Type'
chart_template_id
Many2one → account.chart.template
help="This optional field allow you to link an account template to a specific chart template that may differ from the one its root parent belongs to. This allow you to define chart templates that extend another and complete it with few new accounts (You don't need to define the whole structure that is common to both several times)."
string='Chart Template'
args: 'account.chart.template'
code
Char
required=True
size=64
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
name
Char
required=True
nocreate
Boolean
default=False
help='If checked, the new chart of accounts will not contain this by default.'
string='Optional Create'
note
Text
reconcile
Boolean
default=False
help='Check this option if you want the user to reconcile entries in this account.'
string='Allow Invoices & payments Matching'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag', 'account_account_template_account_tag'
tax_ids
Many2many → account.tax.template
string='Default Taxes'
args: 'account.tax.template', 'account_account_template_tax_rel', 'account_id', 'tax_id'
name_get(self)
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain=_get_account_domain
required=True
string='Accrual Account'
amount
Monetary
help='Specify an arbitrary value that will be accrued on a default account for the entire order, regardless of the products on the different lines.'
string='Amount'
company_id
Many2one → res.company
default=_get_default_company
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
date
Date
default=_get_default_date
required=True
display_amount
Boolean
compute='_compute_display_amount'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
company_dependent=True
compute='_compute_journal_id'
default=_get_default_journal
domain="[('type', '=', 'general'), ('company_id', '=', company_id)]"
readonly=False
required=True
string='Journal'
preview_data
Text
compute='_compute_preview_data'
reversal_date
Date
compute='_compute_reversal_date'
precompute=True
readonly=False
required=True
store=True
create_entries(self)
credit
Monetary
groups='account.group_account_readonly'
debit
Monetary
groups='account.group_account_readonly'
invoice_count
Integer
compute='_compute_invoice_count'
args: 'Invoice Count'
vendor_bill_count
Integer
compute='_compute_vendor_bill_count'
args: 'Vendor Bill Count'
action_view_invoice(self)
action_view_vendor_bill(self)
account_prefix
Char
help='Prefix that defines which accounts from the financial accounting this applicability should apply on.'
string='Financial Accounts Prefix'
business_domain
Selection
ondelete={'invoice': 'cascade', 'bill': 'cascade'}
selection_add=[('invoice', 'Invoice'), ('bill', 'Vendor Bill')]
product_categ_id
Many2one → product.category
string='Product Category'
args: 'product.category'
No public methods.
account_prefix
Char
help='Prefix that defines which accounts from the financial accounting this model should apply on.'
string='Accounts Prefix'
product_categ_id
Many2one → product.category
help='Select a product category which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
help='Select a product for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Product'
args: 'product.product'
No public methods.
category
Selection
selection_add=[('invoice', 'Customer Invoice'), ('vendor_bill', 'Vendor Bill')]
code
Char
size=8
general_account_id
Many2one → account.account
compute='_compute_general_account_id'
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
ondelete='restrict'
readonly=False
store=True
string='Financial Account'
args: 'account.account'
journal_id
Many2one → account.journal
check_company=True
readonly=True
related='move_line_id.journal_id'
store=True
string='Financial Journal'
args: 'account.journal'
move_line_id
Many2one → account.move.line
check_company=True
index=True
ondelete='cascade'
string='Journal Item'
args: 'account.move.line'
partner_id
Many2one
compute='_compute_partner_id'
readonly=False
store=True
product_id
Many2one → product.product
check_company=True
string='Product'
args: 'product.product'
ref
Char
string='Ref.'
on_change_unit_amount(self)
view_header_get(self, view_id, view_type)
account_type
Selection
compute='_compute_account_type'
store=True
args: [('income', 'Revenue'), ('expense', 'Expense')]
action
Selection
required=True
args: [('change_period', 'Change Period'), ('change_account', 'Change Account')]
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
date
Date
default=<expr>
required=True
destination_account_id
Many2one → account.account
comodel_name='account.account'
help='Account to transfer to.'
string='To'
display_currency_helper
Boolean
compute='_compute_display_currency_helper'
string='Currency Conversion Helper'
expense_accrual_account
Many2one → account.account
compute='_compute_expense_accrual_account'
domain="[('company_id', '=', company_id),('account_type', 'not in', ('asset_receivable', 'liability_payable')),('is_off_balance', '=', False)]"
inverse='_inverse_expense_accrual_account'
readonly=False
args: 'account.account'
journal_id
Many2one → account.journal
compute='_compute_journal_id'
domain="[('company_id', '=', company_id), ('type', '=', 'general')]"
help='Journal where to create the entry.'
inverse='_inverse_journal_id'
readonly=False
required=True
string='Journal'
args: 'account.journal'
lock_date_message
Char
compute='_compute_lock_date_message'
string='Lock Date Message'
move_data
Text
compute='_compute_move_data'
move_line_ids
Many2many → account.move.line
percentage
Float
compute='_compute_percentage'
help='Percentage of each line to execute the action on.'
readonly=False
store=True
args: 'Percentage'
preview_move_data
Text
compute='_compute_preview_move_data'
revenue_accrual_account
Many2one → account.account
compute='_compute_revenue_accrual_account'
domain="[('company_id', '=', company_id),('account_type', 'not in', ('asset_receivable', 'liability_payable')),('is_off_balance', '=', False)]"
inverse='_inverse_revenue_accrual_account'
readonly=False
args: 'account.account'
total_amount
Monetary
compute='_compute_total_amount'
currency_field='company_currency_id'
help='Total amount impacted by the automatic entry.'
readonly=False
store=True
default_get(self, fields)
do_action(self)
No new fields.
Public methods (0)No public methods.
attachment_ids
Many2many → ir.attachment
comodel_name='ir.attachment'
string='Attachments'
balance_end
Monetary
compute='_compute_balance_end'
store=True
string='Computed Balance'
balance_end_real
Monetary
compute='_compute_balance_end_real'
readonly=False
store=True
string='Ending Balance'
balance_start
Monetary
compute='_compute_balance_start'
readonly=False
store=True
string='Starting Balance'
company_id
Many2one → res.company
comodel_name='res.company'
related='journal_id.company_id'
store=True
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
date
Date
compute='_compute_date_index'
index=True
store=True
first_line_index
Char → account.bank.statement.line
comodel_name='account.bank.statement.line'
compute='_compute_date_index'
index=True
store=True
is_complete
Boolean
compute='_compute_is_complete'
store=True
is_valid
Boolean
compute='_compute_is_valid'
search='_search_is_valid'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
store=True
line_ids
One2many → account.bank.statement.line
comodel_name='account.bank.statement.line'
inverse_name='statement_id'
required=True
string='Statement lines'
name
Char
compute='_compute_name'
copy=False
readonly=False
store=True
string='Reference'
problem_description
Text
compute='_compute_problem_description'
reference
Char
copy=False
string='External Reference'
create(self, vals_list)
default_get(self, fields_list)
write(self, values)
No new fields.
Public methods (0)No public methods.
account_number
Char
string='Bank Account Number'
amount
Monetary
amount_currency
Monetary
compute='_compute_amount_currency'
currency_field='foreign_currency_id'
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
readonly=False
store=True
string='Amount in Currency'
amount_residual
Float
compute='_compute_is_reconciled'
store=True
string='Residual Amount'
country_code
Char
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
store=True
string='Journal Currency'
foreign_currency_id
Many2one → res.currency
comodel_name='res.currency'
help='The optional other currency if it is a multi-currency entry.'
string='Foreign Currency'
internal_index
Char
compute='_compute_internal_index'
index=True
store=True
string='Internal Reference'
is_reconciled
Boolean
compute='_compute_is_reconciled'
store=True
string='Is Reconciled'
move_id
Many2one → account.move
auto_join=True
check_company=True
comodel_name='account.move'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
domain="['|', ('parent_id','=', False), ('is_company','=',True)]"
ondelete='restrict'
string='Partner'
partner_name
Char
payment_ids
Many2many → account.payment
comodel_name='account.payment'
relation='account_payment_account_bank_statement_line_rel'
string='Auto-generated Payments'
payment_ref
Char
string='Label'
running_balance
Monetary
compute='_compute_running_balance'
sequence
Integer
default=1
statement_complete
Boolean
related='statement_id.is_complete'
statement_id
Many2one → account.bank.statement
comodel_name='account.bank.statement'
string='Statement'
statement_valid
Boolean
related='statement_id.is_valid'
transaction_type
Char
action_undo_reconciliation(self)
create(self, vals_list)
default_get(self, fields_list)
new(self, values=None, origin=None, ref=None)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
related='profit_account_id.company_id'
args: 'res.company'
loss_account_id
Many2one → account.account
company_dependent=True
domain="[('deprecated', '=', False), ('company_id', '=', current_company_id)]"
string='Loss Account'
args: 'account.account'
name
Char
required=True
string='Name'
translate=True
profit_account_id
Many2one → account.account
company_dependent=True
domain="[('deprecated', '=', False), ('company_id', '=', current_company_id)]"
string='Profit Account'
args: 'account.account'
rounding
Float
default=0.01
help='Represent the non-zero value smallest coinage (for example, 0.05).'
required=True
string='Rounding Precision'
rounding_method
Selection
default='HALF-UP'
help='The tie-breaking rule used for float rounding operations'
required=True
selection=[('UP', 'Up'), ('DOWN', 'Down'), ('HALF-UP', 'Nearest')]
string='Rounding Method'
strategy
Selection
default='add_invoice_line'
help='Specify which way will be used to round the invoice amount to the rounding precision'
required=True
string='Rounding Strategy'
args: [('biggest_tax', 'Modify tax amount'), ('add_invoice_line', 'Add a rounding line')]
compute_difference(self, currency, amount)
round(self, amount)
validate_rounding(self)
No new fields.
Public methods (0)No public methods.
account_ids
One2many → account.account.template
string='Associated Account Templates'
args: 'account.account.template', 'chart_template_id'
account_journal_early_pay_discount_gain_account_id
Many2one → account.account.template
comodel_name='account.account.template'
string='Cash Discount Write-Off Gain Account'
account_journal_early_pay_discount_loss_account_id
Many2one → account.account.template
comodel_name='account.account.template'
string='Cash Discount Write-Off Loss Account'
account_journal_payment_credit_account_id
Many2one → account.account.template
string='Journal Outstanding Payments Account'
args: 'account.account.template'
account_journal_payment_debit_account_id
Many2one → account.account.template
string='Journal Outstanding Receipts Account'
args: 'account.account.template'
account_journal_suspense_account_id
Many2one → account.account.template
string='Journal Suspense Account'
args: 'account.account.template'
bank_account_code_prefix
Char
required=True
string='Prefix of the bank accounts'
cash_account_code_prefix
Char
required=True
string='Prefix of the main cash accounts'
code_digits
Integer
default=6
help='No. of Digits to use for account code'
required=True
string='# of Digits'
country_id
Many2one → res.country
comodel_name='res.country'
help="The country this chart of accounts belongs to. None if it's generic."
string='Country'
currency_id
Many2one → res.currency
required=True
string='Currency'
args: 'res.currency'
default_cash_difference_expense_account_id
Many2one → account.account.template
string='Cash Difference Expense Account'
args: 'account.account.template'
default_cash_difference_income_account_id
Many2one → account.account.template
string='Cash Difference Income Account'
args: 'account.account.template'
default_pos_receivable_account_id
Many2one → account.account.template
string='PoS receivable account'
args: 'account.account.template'
expense_currency_exchange_account_id
Many2one → account.account.template
domain=[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card')), ('deprecated', '=', False)]
string='Loss Exchange Rate Account'
args: 'account.account.template'
income_currency_exchange_account_id
Many2one → account.account.template
domain=[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card')), ('deprecated', '=', False)]
string='Gain Exchange Rate Account'
args: 'account.account.template'
name
Char
required=True
parent_id
Many2one → account.chart.template
string='Parent Chart Template'
args: 'account.chart.template'
property_account_expense_categ_id
Many2one → account.account.template
string='Category of Expense Account'
args: 'account.account.template'
property_account_expense_id
Many2one → account.account.template
string='Expense Account on Product Template'
args: 'account.account.template'
property_account_income_categ_id
Many2one → account.account.template
string='Category of Income Account'
args: 'account.account.template'
property_account_income_id
Many2one → account.account.template
string='Income Account on Product Template'
args: 'account.account.template'
property_account_payable_id
Many2one → account.account.template
string='Payable Account'
args: 'account.account.template'
property_account_receivable_id
Many2one → account.account.template
string='Receivable Account'
args: 'account.account.template'
property_advance_tax_payment_account_id
Many2one → account.account.template
string='Advance tax payment account'
args: 'account.account.template'
property_cash_basis_base_account_id
Many2one → account.account.template
comodel_name='account.account.template'
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
property_stock_account_input_categ_id
Many2one → account.account.template
string='Input Account for Stock Valuation'
args: 'account.account.template'
property_stock_account_output_categ_id
Many2one → account.account.template
string='Output Account for Stock Valuation'
args: 'account.account.template'
property_stock_valuation_account_id
Many2one → account.account.template
string='Account Template for Stock Valuation'
args: 'account.account.template'
property_tax_payable_account_id
Many2one → account.account.template
string='Tax current account (payable)'
args: 'account.account.template'
property_tax_receivable_account_id
Many2one → account.account.template
string='Tax current account (receivable)'
args: 'account.account.template'
tax_template_ids
One2many → account.tax.template
help='List of all the taxes that have to be installed by the wizard'
string='Tax Template List'
args: 'account.tax.template', 'chart_template_id'
transfer_account_code_prefix
Char
required=True
string='Prefix of the main transfer accounts'
use_anglo_saxon
Boolean
default=False
string='Use Anglo-Saxon accounting'
use_storno_accounting
Boolean
default=False
string='Use Storno accounting'
visible
Boolean
default=True
help="Set this to False if you don't want this template to be used actively in the wizard that generate Chart of Accounts from templates, this is useful when you want to generate accounts of this template only when loading its child template."
string='Can be Visible?'
create_record_with_xmlid(self, company, template, model, vals)
existing_accounting(self, company_id)
generate_account(self, tax_template_ref, acc_template_ref, code_digits, company)
generate_account_groups(self, company)
generate_account_reconcile_model(self, tax_template_ref, acc_template_ref, company)
generate_fiscal_position(self, tax_template_ref, acc_template_ref, company)
generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company)
try_loading(self, company=False, install_demo=True)
company_id
Many2one → res.company
comodel_name='res.company'
required=True
fiscalyear_last_day
Integer
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_day'
required=True
fiscalyear_last_month
Selection
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_month'
required=True
opening_date
Date
help='Date from which the accounting is managed in Odoo. It is the date of the opening entry.'
readonly=False
related='company_id.account_opening_date'
required=True
string='Opening Date'
opening_move_posted
Boolean
compute='_compute_opening_move_posted'
string='Opening Move Posted'
action_save_onboarding_fiscal_year(self)
write(self, vals)
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
company_country_id
Many2one
related='company_id.account_fiscal_country_id'
string='Company Country'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery country matches the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery country matches.'
string='Country'
args: 'res.country'
foreign_vat
Char
help='The tax ID of your company in the region mapped by this fiscal position.'
string='Foreign Tax ID'
foreign_vat_header_mode
Selection
compute='_compute_foreign_vat_header_mode'
selection=[('templates_found', 'Templates Found'), ('no_template', 'No Template')]
name
Char
required=True
string='Fiscal Position'
note
Html
help='Legal mentions that have to be printed on the invoices.'
translate=True
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
One2many → account.fiscal.position.tax
copy=True
string='Tax Mapping'
args: 'account.fiscal.position.tax', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
action_create_foreign_taxes(self)
create(self, vals_list)
map_account(self, account)
map_accounts(self, accounts)
map_tax(self, taxes)
write(self, vals)
account_dest_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
required=True
string='Account on Product'
args: 'account.account'
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
account_dest_id
Many2one → account.account.template
required=True
string='Account Destination'
args: 'account.account.template'
account_src_id
Many2one → account.account.template
required=True
string='Account Source'
args: 'account.account.template'
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Mapping'
args: 'account.fiscal.position.template'
No public methods.
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
tax_dest_active
Boolean
related='tax_dest_id.active'
tax_dest_id
Many2one → account.tax
check_company=True
string='Tax to Apply'
args: 'account.tax'
tax_src_id
Many2one → account.tax
check_company=True
required=True
string='Tax on Product'
args: 'account.tax'
No public methods.
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position.template'
tax_dest_id
Many2one → account.tax.template
string='Replacement Tax'
args: 'account.tax.template'
tax_src_id
Many2one → account.tax.template
required=True
string='Tax Source'
args: 'account.tax.template'
No public methods.
account_ids
One2many → account.fiscal.position.account.template
string='Account Mapping'
args: 'account.fiscal.position.account.template', 'position_id'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
country_group_id
Many2one → res.country.group
help='Apply only if delivery country matches the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery country matches.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position Template'
note
Text
string='Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
tax_ids
One2many → account.fiscal.position.tax.template
string='Tax Mapping'
args: 'account.fiscal.position.tax.template', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
No public methods.
exchange_move_id
Many2one → account.move
index='btree_not_null'
args: 'account.move'
name
Char
copy=False
default=<expr>
required=True
string='Number'
partial_reconcile_ids
One2many → account.partial.reconcile
string='Reconciliation Parts'
args: 'account.partial.reconcile', 'full_reconcile_id'
reconciled_line_ids
One2many → account.move.line
string='Matched Journal Items'
args: 'account.move.line', 'full_reconcile_id'
unlink(self)
code_prefix_end
Char
code_prefix_start
Char
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
name
Char
required=True
parent_id
Many2one → account.group
index=True
ondelete='cascade'
readonly=True
args: 'account.group'
parent_path
Char
index=True
unaccent=False
create(self, vals_list)
name_get(self)
unlink(self)
write(self, vals)
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
code_prefix_end
Char
code_prefix_start
Char
name
Char
required=True
parent_id
Many2one → account.group.template
ondelete='cascade'
args: 'account.group.template'
No public methods.
active
Boolean
default=True
help='By unchecking the active field, you may hide an INCOTERM you will not use.'
args: 'Active'
code
Char
help='Incoterm Standard Code'
required=True
size=3
args: 'Code'
name
Char
help='Incoterms are series of sales terms. They are used to divide transaction costs and responsibilities between buyer and seller and reflect state-of-the-art transportation practices.'
required=True
translate=True
args: 'Name'
No public methods.
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Revenue/Expense Account'
args: 'account.account'
commercial_partner_id
Many2one → res.partner
string='Main Partner'
args: 'res.partner'
company_currency_id
Many2one → res.currency
readonly=True
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
fiscal_position_id
Many2one → account.fiscal.position
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
invoice_date
Date
readonly=True
string='Invoice Date'
invoice_date_due
Date
readonly=True
string='Due Date'
invoice_user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
readonly=True
args: 'account.move'
move_type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
payment_state
Selection
readonly=True
selection=PAYMENT_STATE_SELECTION
string='Payment Status'
price_average
Float
group_operator='avg'
readonly=True
string='Average Price'
price_subtotal
Float
readonly=True
string='Untaxed Total'
price_total
Float
readonly=True
string='Total in Currency'
product_categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
quantity
Float
readonly=True
string='Product Quantity'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('posted', 'Open'), ('cancel', 'Cancelled')]
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
attachments_not_supported
Json
compute='_compute_attachments_not_supported'
composer_id
Many2one → mail.compose.message
ondelete='cascade'
required=True
string='Composer'
args: 'mail.compose.message'
display_attachment_fields
Boolean
compute='_compute_display_attachment_fields'
invoice_ids
Many2many → account.move
string='Invoices'
args: 'account.move', 'account_move_account_invoice_send_rel'
invoice_without_email
Text
compute='_compute_invoice_without_email'
string='invoice(s) that will not be sent'
is_email
Boolean
default=<expr>
args: 'Email'
is_print
Boolean
default=<expr>
args: 'Print'
move_types
Char
compute='_compute_move_types'
readonly=True
string='Move types'
printed
Boolean
default=False
args: 'Is Printed'
template_id
Many2one → mail.template
domain="[('model', '=', 'account.move')]"
args: 'mail.template', 'Use template'
default_get(self, fields)
onchange_is_email(self)
onchange_template_id(self)
save_as_template(self)
send_and_print_action(self)
No new fields.
Public methods (0)No public methods.
account_control_ids
Many2many → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('is_off_balance', '=', False)]"
string='Allowed accounts'
args: 'account.account', 'journal_account_control_rel', 'journal_id', 'account_id'
active
Boolean
default=True
help='Set active to false to hide the Journal without removing it.'
alias_domain
Char
compute='_compute_alias_domain'
args: 'Alias domain'
alias_id
Many2one → mail.alias
copy=False
help='Send one separate email for each invoice.\n\nAny file extension will be accepted.\n\nOnly PDF and XML files will be interpreted by Odoo'
string='Email Alias'
args: 'mail.alias'
alias_name
Char
compute='_compute_alias_name'
copy=False
help='It creates draft invoices and bills by sending an email.'
inverse='_inverse_type'
args: 'Alias Name'
available_payment_method_ids
Many2many → account.payment.method
comodel_name='account.payment.method'
compute='_compute_available_payment_method_ids'
bank_acc_number
Char
readonly=False
related='bank_account_id.acc_number'
bank_account_id
Many2one → res.partner.bank
check_company=True
copy=False
domain="[('partner_id','=', company_partner_id), '|', ('company_id', '=', False), ('company_id', '=', company_id)]"
ondelete='restrict'
string='Bank Account'
args: 'res.partner.bank'
bank_id
Many2one → res.bank
readonly=False
related='bank_account_id.bank_id'
args: 'res.bank'
bank_statements_source
Selection
default='undefined'
help='Defines how the bank statements will be registered'
selection=_get_bank_statements_available_sources
string='Bank Feeds'
code
Char
help='Shorter name used for display. The journal entries of this journal will also be named using this prefix by default.'
required=True
size=5
string='Short Code'
company_id
Many2one → res.company
default=<expr>
help='Company related to this journal'
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
company_partner_id
Many2one → res.partner
readonly=True
related='company_id.partner_id'
store=False
string='Account Holder'
args: 'res.partner'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
help='The currency used to enter statement'
string='Currency'
args: 'res.currency'
default_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain=_get_default_account_domain
ondelete='restrict'
string='Default Account'
default_account_type
Char
compute='_compute_default_account_type'
string='Default Account Type'
inbound_payment_method_line_ids
One2many → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
compute='_compute_inbound_payment_method_line_ids'
copy=False
domain=[('payment_type', '=', 'inbound')]
help='Manual: Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
inverse_name='journal_id'
readonly=False
store=True
string='Inbound Payment Methods'
invoice_reference_model
Selection
default=_default_invoice_reference_model
help='You can choose different models for each type of reference. The default one is the Odoo reference.'
required=True
selection=[('odoo', 'Odoo'), ('euro', 'European')]
string='Communication Standard'
invoice_reference_type
Selection
default='invoice'
help='You can set here the default communication that will appear on customer invoices, once validated, to help the customer to refer to that particular invoice when making the payment.'
required=True
selection=[('none', 'Open'), ('partner', 'Based on Customer'), ('invoice', 'Based on Invoice')]
string='Communication Type'
journal_group_ids
Many2many → account.journal.group
check_company=True
domain="[('company_id', '=', company_id)]"
string='Journal Groups'
args: 'account.journal.group'
loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', '=', 'expense')]"
help='Used to register a loss when the ending balance of a cash register differs from what the system computes'
string='Loss Account'
name
Char
required=True
string='Journal Name'
outbound_payment_method_line_ids
One2many → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
compute='_compute_outbound_payment_method_line_ids'
copy=False
domain=[('payment_type', '=', 'outbound')]
help='Manual: Pay by any method outside of Odoo.\nCheck: Pay bills by check and print it from Odoo.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\n'
inverse_name='journal_id'
readonly=False
store=True
string='Outbound Payment Methods'
payment_sequence
Boolean
compute='_compute_payment_sequence'
help="Check this box if you don't want to share the same sequence on payments and bank transactions posted on this journal"
precompute=True
readonly=False
store=True
string='Dedicated Payment Sequence'
profit_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', 'in', ('income', 'income_other'))]"
help='Used to register a profit when the ending balance of a cash register differs from what the system computes'
string='Profit Account'
refund_sequence
Boolean
default=False
help="Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal"
string='Dedicated Credit Note Sequence'
restrict_mode_hash_table
Boolean
help='If ticked, the accounting entry or invoice receives a hash as soon as it is posted and cannot be modified anymore.'
string='Lock Posted Entries with Hash'
sale_activity_note
Text
sale_activity_type_id
Many2one → mail.activity.type
default=False
help='Activity will be automatically scheduled on payment due date, improving collection process.'
string='Schedule Activity'
args: 'mail.activity.type'
sale_activity_user_id
Many2one → res.users
help='Leave empty to assign the Salesperson of the invoice.'
string='Activity User'
args: 'res.users'
secure_sequence_id
Many2one → ir.sequence
check_company=True
copy=False
help='Sequence to use to ensure the securisation of data'
readonly=True
args: 'ir.sequence'
selected_payment_method_codes
Char
compute='_compute_selected_payment_method_codes'
sequence
Integer
default=10
help='Used to order Journals in the dashboard view'
sequence_override_regex
Text
help='Technical field used to enforce complex sequence composition that the system would normally misunderstand.\nThis is a regex that can include all the following capture groups: prefix1, year, prefix2, month, prefix3, seq, suffix.\nThe prefix* groups are the separators between the year, month and the actual increasing sequence number (seq).\ne.g: ^(?P<prefix1>.*?)(?P<year>\\d{4})(?P<prefix2>\\D*?)(?P<month>\\d{2})(?P<prefix3>\\D+?)(?P<seq>\\d+)(?P<suffix>\\D*?)$'
suspense_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_suspense_account_id'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', '=', 'asset_current')]"
help='Bank statements transactions will be posted on the suspense account until the final reconciliation allowing finding the right account.'
ondelete='restrict'
readonly=False
store=True
string='Suspense Account'
type
Selection
help="Select 'Sale' for customer invoices journals.\nSelect 'Purchase' for vendor bills journals.\nSelect 'Cash' or 'Bank' for journals that are used in customer or vendor payments.\nSelect 'General' for miscellaneous operations journals."
inverse='_inverse_type'
required=True
args: [('sale', 'Sales'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('bank', 'Bank'), ('general', 'Miscellaneous')]
action_configure_bank_journal(self)
copy(self, default=None)
create(self, vals_list)
create_document_from_attachment(self, attachment_ids=None)
get_next_bank_cash_default_code(self, journal_type, company, protected_codes=False)
name_get(self)
set_bank_account(self, acc_number, bank_id=None)
unlink(self)
write(self, vals)
color
Integer
default=0
args: 'Color Index'
current_statement_balance
Monetary
compute='_compute_current_statement_balance'
entries_count
Integer
compute='_compute_entries_count'
has_sequence_holes
Boolean
compute='_compute_has_sequence_holes'
has_statement_lines
Boolean
compute='_compute_current_statement_balance'
json_activity_data
Text
compute='_get_json_activity_data'
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
action_create_vendor_bill(self)
create_bank_statement(self)
create_cash_statement(self)
create_customer_payment(self)
create_internal_transfer(self)
create_supplier_payment(self)
get_bar_graph_datas(self)
get_journal_dashboard_datas(self)
get_line_graph_datas(self)
mark_bank_setup_as_done_action(self)
open_action(self)
open_action_with_context(self)
open_collect_money(self)
open_payments_action(self, payment_type, mode='tree')
open_spend_money(self)
open_transfer_money(self)
show_sequence_holes(self)
to_check_ids(self)
unmark_bank_setup_as_done_action(self)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
excluded_journal_ids
Many2many → account.journal
check_company=True
domain="[('company_id', '=', company_id)]"
string='Excluded Journals'
args: 'account.journal'
name
Char
required=True
translate=True
args: 'Journal Group'
sequence
Integer
default=10
No public methods.
No new fields.
Public methods (0)No public methods.
statement_line_ids
One2many → account.bank.statement.line
string='Statements'
args: 'account.bank.statement.line', 'move_id'
No public methods.
payment_ids
One2many → account.payment
string='Payments'
args: 'account.payment', 'move_id'
No public methods.
always_tax_exigible
Boolean
compute='_compute_always_tax_exigible'
readonly=False
store=True
amount_residual
Monetary
compute='_compute_amount'
store=True
string='Amount Due'
amount_residual_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
store=True
string='Amount Due Signed'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_tax_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Tax Signed'
amount_total
Monetary
compute='_compute_amount'
inverse='_inverse_amount_total'
readonly=True
store=True
string='Total'
amount_total_in_currency_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=True
store=True
string='Total in Currency Signed'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Total Signed'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
tracking=True
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount Signed'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'account.move')]
string='Attachments'
args: 'ir.attachment', 'res_id'
auto_post
Selection
copy=False
default='no'
help='Specify whether this entry is posted automatically on its accounting date, and any similar recurring invoices.'
required=True
selection=[('no', 'No'), ('at_date', 'At Date'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly'), ('yearly', 'Yearly')]
string='Auto-post'
auto_post_origin_id
Many2one → account.move
comodel_name='account.move'
copy=False
index='btree_not_null'
readonly=True
string='First recurring entry'
auto_post_until
Date
compute='_compute_auto_post_until'
copy=False
help='This recurring move will be posted up to and including this date.'
readonly=False
store=True
string='Auto-post until'
bank_partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_bank_partner_id'
help='Technical field to get the domain on the bank'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner_id'
ondelete='restrict'
readonly=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
index=True
inverse='_inverse_company_id'
precompute=True
readonly=False
store=True
string='Company'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
inverse='_inverse_currency_id'
precompute=True
readonly=False
required=True
states={'posted': [('readonly', True)], 'cancel': [('readonly', True)]}
store=True
string='Currency'
tracking=True
args: 'res.currency'
date
Date
compute='_compute_date'
copy=False
index=True
precompute=True
readonly=False
required=True
states={'posted': [('readonly', True)], 'cancel': [('readonly', True)]}
store=True
string='Date'
tracking=True
direction_sign
Integer
compute='_compute_direction_sign'
help='Multiplicator depending on the document type, to convert a price into a balance'
display_inactive_currency_warning
Boolean
compute='_compute_display_inactive_currency_warning'
display_qr_code
Boolean
compute='_compute_display_qr_code'
string='Display QR-code'
duplicated_ref_ids
Many2many → account.move
comodel_name='account.move'
compute='_compute_duplicated_ref_ids'
fiscal_position_id
Many2one → account.fiscal.position
check_company=True
compute='_compute_fiscal_position_id'
domain="[('company_id', '=', company_id)]"
help='Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. The default value comes from the customer.'
ondelete='restrict'
precompute=True
readonly=False
states={'posted': [('readonly', True)], 'cancel': [('readonly', True)]}
store=True
string='Fiscal Position'
args: 'account.fiscal.position'
has_reconciled_entries
Boolean
compute='_compute_has_reconciled_entries'
hide_post_button
Boolean
compute='_compute_hide_post_button'
readonly=True
highest_name
Char
compute='_compute_highest_name'
inalterable_hash
Char
copy=False
readonly=True
string='Inalterability Hash'
invoice_cash_rounding_id
Many2one → account.cash.rounding
comodel_name='account.cash.rounding'
help='Defines the smallest coinage of the currency that can be used to pay by cash.'
readonly=True
states={'draft': [('readonly', False)]}
string='Cash Rounding Method'
invoice_date
Date
copy=False
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice/Bill Date'
invoice_date_due
Date
compute='_compute_invoice_date_due'
copy=False
index=True
readonly=False
states={'draft': [('readonly', False)]}
store=True
string='Due Date'
invoice_filter_type_domain
Char
compute='_compute_invoice_filter_type_domain'
invoice_has_outstanding
Boolean
compute='_compute_payments_widget_to_reconcile_info'
groups='account.group_account_invoice,account.group_account_readonly'
invoice_incoterm_id
Many2one → account.incoterms
comodel_name='account.incoterms'
default=<expr>
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Incoterm'
invoice_line_ids
One2many → account.move.line
copy=False
domain=[('display_type', 'in', ('product', 'line_section', 'line_note'))]
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice lines'
args: 'account.move.line', 'move_id'
invoice_origin
Char
help='The document(s) that generated the invoice.'
readonly=True
string='Origin'
tracking=True
invoice_outstanding_credits_debits_widget
Binary
compute='_compute_payments_widget_to_reconcile_info'
exportable=False
groups='account.group_account_invoice,account.group_account_readonly'
invoice_partner_display_name
Char
compute='_compute_invoice_partner_display_info'
store=True
invoice_payment_term_id
Many2one → account.payment.term
check_company=True
comodel_name='account.payment.term'
compute='_compute_invoice_payment_term_id'
precompute=True
readonly=False
states={'posted': [('readonly', True)], 'cancel': [('readonly', True)]}
store=True
string='Payment Terms'
invoice_payments_widget
Binary
compute='_compute_payments_widget_reconciled_info'
exportable=False
groups='account.group_account_invoice,account.group_account_readonly'
invoice_source_email
Char
string='Source Email'
tracking=True
invoice_user_id
Many2one → res.users
comodel_name='res.users'
compute='_compute_invoice_default_sale_person'
copy=False
readonly=False
store=True
string='Salesperson'
tracking=True
invoice_vendor_bill_id
Many2one → account.move
check_company=True
help='Auto-complete from a past bill.'
store=False
string='Vendor Bill'
args: 'account.move'
is_move_sent
Boolean
copy=False
default=False
help='It indicates that the invoice/payment has been sent.'
readonly=True
tracking=True
is_storno
Boolean
compute='_compute_is_storno'
copy=False
readonly=False
store=True
journal_id
Many2one → account.journal
check_company=True
compute='_compute_journal_id'
domain="[('id', 'in', suitable_journal_ids)]"
inverse='_inverse_journal_id'
precompute=True
readonly=False
required=True
states={'draft': [('readonly', False)]}
store=True
string='Journal'
args: 'account.journal'
line_ids
One2many → account.move.line
copy=True
readonly=True
states={'draft': [('readonly', False)]}
string='Journal Items'
args: 'account.move.line', 'move_id'
made_sequence_hole
Boolean
compute='_compute_made_sequence_hole'
move_type
Selection
change_default=True
default='entry'
index=True
readonly=True
required=True
selection=[('entry', 'Journal Entry'), ('out_invoice', 'Customer Invoice'), ('out_refund', 'Customer Credit Note'), ('in_invoice', 'Vendor Bill'), ('in_refund', 'Vendor Credit Note'), ('out_receipt', 'Sales Receipt'), ('in_receipt', 'Purchase Receipt')]
string='Type'
tracking=True
name
Char
compute='_compute_name'
copy=False
index='trigram'
inverse='_inverse_name'
readonly=False
store=True
string='Number'
tracking=True
narration
Html
compute='_compute_narration'
readonly=False
store=True
string='Terms and Conditions'
needed_terms
Binary
compute='_compute_needed_terms'
exportable=False
needed_terms_dirty
Boolean
compute='_compute_needed_terms'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.'
readonly=False
store=True
string='Recipient Bank'
tracking=True
args: 'res.partner.bank'
partner_credit_warning
Text
compute='_compute_partner_credit_warning'
groups='account.group_account_invoice,account.group_account_readonly'
partner_id
Many2one → res.partner
change_default=True
check_company=True
index=True
inverse='_inverse_partner_id'
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Partner'
tracking=True
args: 'res.partner'
partner_shipping_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_partner_shipping_id'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Delivery address for current invoice.'
precompute=True
readonly=False
store=True
string='Delivery Address'
payment_id
Many2one → account.payment
check_company=True
comodel_name='account.payment'
copy=False
index='btree_not_null'
string='Payment'
payment_reference
Char
compute='_compute_payment_reference'
copy=False
help='The payment reference to set on journal items.'
index='trigram'
inverse='_inverse_payment_reference'
readonly=False
store=True
string='Payment Reference'
tracking=True
payment_state
Selection
compute='_compute_payment_state'
copy=False
readonly=True
selection=PAYMENT_STATE_SELECTION
store=True
string='Payment Status'
tracking=True
payment_term_details
Binary
compute='_compute_payment_term_details'
exportable=False
posted_before
Boolean
copy=False
qr_code_method
Selection
copy=False
help='Type of QR-code to be generated for the payment of this invoice, when printing it. If left blank, the first available and usable method will be used.'
selection=<expr>
string='Payment QR-code'
quick_edit_mode
Boolean
compute='_compute_quick_edit_mode'
quick_edit_total_amount
Monetary
help='Use this field to encode the total amount of the invoice.\nOdoo will automatically create one invoice line with default values to match it.'
string='Total (Tax inc.)'
quick_encoding_vals
Binary
compute='_compute_quick_encoding_vals'
exportable=False
ref
Char
copy=False
string='Reference'
tracking=True
restrict_mode_hash_table
Boolean
related='journal_id.restrict_mode_hash_table'
reversal_move_id
One2many → account.move
reversed_entry_id
Many2one → account.move
check_company=True
comodel_name='account.move'
copy=False
index='btree_not_null'
readonly=True
string='Reversal of'
secure_sequence_number
Integer
copy=False
index=True
readonly=True
string='Inalteralbility No Gap Sequence #'
show_discount_details
Boolean
compute='_compute_show_payment_term_details'
show_name_warning
Boolean
store=False
show_payment_term_details
Boolean
compute='_compute_show_payment_term_details'
show_reset_to_draft_button
Boolean
compute='_compute_show_reset_to_draft_button'
state
Selection
copy=False
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('cancel', 'Cancelled')]
string='Status'
tracking=True
statement_line_id
Many2one → account.bank.statement.line
check_company=True
comodel_name='account.bank.statement.line'
copy=False
index='btree_not_null'
string='Statement Line'
string_to_hash
Char
compute='_compute_string_to_hash'
readonly=True
suitable_journal_ids
Many2many → account.journal
compute='_compute_suitable_journal_ids'
args: 'account.journal'
tax_cash_basis_created_move_ids
One2many → account.move
comodel_name='account.move'
help='The cash basis entries created from the taxes on this entry, when reconciling its lines.'
inverse_name='tax_cash_basis_origin_move_id'
string='Cash Basis Entries'
tax_cash_basis_origin_move_id
Many2one → account.move
comodel_name='account.move'
help='The journal entry from which this tax cash basis journal entry has been created.'
index='btree_not_null'
readonly=True
string='Cash Basis Origin'
tax_cash_basis_rec_id
Many2one → account.partial.reconcile
comodel_name='account.partial.reconcile'
index='btree_not_null'
string='Tax Cash Basis Entry of'
tax_country_code
Char
compute='_compute_tax_country_code'
tax_country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_tax_country_id'
tax_lock_date_message
Char
compute='_compute_tax_lock_date_message'
tax_totals
Binary
compute='_compute_tax_totals'
exportable=False
help='Edit Tax amounts if you encounter rounding issues.'
inverse='_inverse_tax_totals'
string='Invoice Totals'
to_check
Boolean
help='If this checkbox is ticked, it means that the user was not sure of all the related information at the time of the creation of the move and that the move needs to be checked again.'
string='To Check'
tracking=True
type_name
Char
compute='_compute_type_name'
args: 'Type Name'
user_id
Many2one
related='invoice_user_id'
string='User'
action_activate_currency(self)
action_duplicate(self)
action_invoice_print(self)
action_invoice_sent(self)
action_open_business_doc(self)
action_post(self)
action_register_payment(self)
action_reverse(self)
action_send_and_print(self)
action_switch_invoice_into_refund_credit_note(self)
button_cancel(self)
button_draft(self)
button_set_checked(self)
check_field_access_rights(self, operation, field_names)
check_move_sequence_chain(self)
copy(self, default=None)
copy_data(self, default=None)
create(self, vals_list)
get_inbound_types(self, include_receipts=True)
get_invoice_localisation_fields_required_to_invoice(self, country_id)
get_invoice_types(self, include_receipts=False)
get_outbound_types(self, include_receipts=True)
get_purchase_types(self, include_receipts=False)
get_sale_types(self, include_receipts=False)
is_inbound(self, include_receipts=True)
is_invoice(self, include_receipts=False)
is_outbound(self, include_receipts=True)
is_purchase_document(self, include_receipts=False)
is_sale_document(self, include_receipts=False)
js_assign_outstanding_line(self, line_id)
js_remove_outstanding_partial(self, partial_id)
message_new(self, msg_dict, custom_values=None)
name_get(self)
onchange(self, values, field_name, field_onchange)
open_created_caba_entries(self)
open_duplicated_ref_bill_view(self)
open_reconcile_view(self)
preview_invoice(self)
unlink(self)
write(self, vals)
account_id
Many2one → account.account
auto_join=True
check_company=True
comodel_name='account.account'
compute='_compute_account_id'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('is_off_balance', '=', False)]"
index=True
inverse='_inverse_account_id'
ondelete='cascade'
precompute=True
readonly=False
store=True
string='Account'
tracking=True
account_internal_group
Selection
related='account_id.internal_group'
account_root_id
Many2one
related='account_id.root_id'
store=True
string='Account Root'
account_type
Selection
related='account_id.account_type'
string='Internal Type'
amount_currency
Monetary
compute='_compute_amount_currency'
group_operator=None
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
inverse='_inverse_amount_currency'
precompute=True
readonly=False
store=True
string='Amount in Currency'
amount_residual
Monetary
compute='_compute_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
compute='_compute_amount_residual'
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_distribution
Json
inverse='_inverse_analytic_distribution'
analytic_line_ids
One2many → account.analytic.line
comodel_name='account.analytic.line'
inverse_name='move_line_id'
string='Analytic lines'
balance
Monetary
compute='_compute_balance'
currency_field='company_currency_id'
precompute=True
readonly=False
store=True
string='Balance'
blocked
Boolean
default=False
help='You can check this box to mark this journal item as a litigation with the associated partner'
string='No Follow-up'
company_currency_id
Many2one
precompute=True
readonly=True
related='move_id.company_currency_id'
store=True
string='Company Currency'
company_id
Many2one
index=True
precompute=True
readonly=True
related='move_id.company_id'
store=True
compute_all_tax
Binary
compute='_compute_all_tax'
exportable=False
compute_all_tax_dirty
Boolean
compute='_compute_all_tax'
credit
Monetary
compute='_compute_debit_credit'
currency_field='company_currency_id'
inverse='_inverse_credit'
precompute=True
store=True
string='Credit'
cumulated_balance
Monetary
compute='_compute_cumulated_balance'
currency_field='company_currency_id'
exportable=False
help='Cumulated balance depending on the domain and the order chosen in the view.'
string='Cumulated Balance'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
precompute=True
readonly=False
required=True
store=True
string='Currency'
currency_rate
Float
compute='_compute_currency_rate'
help='Currency rate from company currency to document currency.'
date
Date
copy=False
group_operator='min'
related='move_id.date'
store=True
date_maturity
Date
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
string='Due Date'
tracking=True
debit
Monetary
compute='_compute_debit_credit'
currency_field='company_currency_id'
inverse='_inverse_debit'
precompute=True
store=True
string='Debit'
discount
Float
default=0.0
digits='Discount'
string='Discount (%)'
discount_amount_currency
Monetary
currency_field='currency_id'
store=True
string='Discount amount in Currency'
discount_balance
Monetary
currency_field='company_currency_id'
store=True
string='Discount Balance'
discount_date
Date
help='Last date at which the discounted amount must be paid in order for the Early Payment Discount to be granted'
store=True
string='Discount Date'
discount_percentage
Float
store=True
display_type
Selection
compute='_compute_display_type'
precompute=True
readonly=False
required=True
selection=[('product', 'Product'), ('cogs', 'Cost of Goods Sold'), ('tax', 'Tax'), ('rounding', 'Rounding'), ('payment_term', 'Payment Term'), ('line_section', 'Section'), ('line_note', 'Note'), ('epd', 'Early Payment Discount')]
store=True
epd_dirty
Boolean
compute='_compute_epd_needed'
epd_key
Binary
compute='_compute_epd_key'
exportable=False
epd_needed
Binary
compute='_compute_epd_needed'
exportable=False
full_reconcile_id
Many2one → account.full.reconcile
comodel_name='account.full.reconcile'
copy=False
index='btree_not_null'
readonly=True
string='Matching'
group_tax_id
Many2one → account.tax
comodel_name='account.tax'
index='btree_not_null'
string='Originator Group of Taxes'
is_account_reconcile
Boolean
related='account_id.reconcile'
string='Account Reconcile'
is_refund
Boolean
compute='_compute_is_refund'
is_same_currency
Boolean
compute='_compute_same_currency'
is_storno
Boolean
help='Utility field to express whether the journal item is subject to storno accounting'
related='move_id.is_storno'
string='Company Storno Accounting'
journal_id
Many2one
copy=False
index=True
precompute=True
related='move_id.journal_id'
store=True
matched_credit_ids
One2many → account.partial.reconcile
comodel_name='account.partial.reconcile'
help='Credit journal items that are matched with this journal item.'
inverse_name='debit_move_id'
readonly=True
string='Matched Credits'
matched_debit_ids
One2many → account.partial.reconcile
comodel_name='account.partial.reconcile'
help='Debit journal items that are matched with this journal item.'
inverse_name='credit_move_id'
readonly=True
string='Matched Debits'
matching_number
Char
compute='_compute_matching_number'
help="Matching number for this line, 'P' if it is only partially reconcile, or the name of the full reconcile if it exists."
store=True
string='Matching #'
move_id
Many2one → account.move
auto_join=True
check_company=True
comodel_name='account.move'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
move_name
Char
index='btree'
related='move_id.name'
store=True
string='Number'
move_type
Selection
related='move_id.move_type'
name
Char
compute='_compute_name'
precompute=True
readonly=False
store=True
string='Label'
tracking=True
parent_state
Selection
related='move_id.state'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
compute='_compute_partner_id'
inverse='_inverse_partner_id'
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Partner'
payment_id
Many2one → account.payment
auto_join=True
comodel_name='account.payment'
help='The payment that created this entry'
index='btree_not_null'
related='move_id.payment_id'
store=True
string='Originator Payment'
price_subtotal
Monetary
compute='_compute_totals'
currency_field='currency_id'
store=True
string='Subtotal'
price_total
Monetary
compute='_compute_totals'
currency_field='currency_id'
store=True
string='Total'
price_unit
Float
compute='_compute_price_unit'
digits='Product Price'
precompute=True
readonly=False
store=True
string='Unit Price'
product_id
Many2one → product.product
comodel_name='product.product'
index=True
inverse='_inverse_product_id'
ondelete='restrict'
string='Product'
product_uom_category_id
Many2one → uom.category
comodel_name='uom.category'
related='product_id.uom_id.category_id'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
compute='_compute_product_uom_id'
domain="[('category_id', '=', product_uom_category_id)]"
ondelete='restrict'
precompute=True
readonly=False
store=True
string='Unit of Measure'
quantity
Float
compute='_compute_quantity'
digits='Product Unit of Measure'
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
precompute=True
readonly=False
store=True
string='Quantity'
reconcile_model_id
Many2one → account.reconcile.model
check_company=True
comodel_name='account.reconcile.model'
copy=False
readonly=True
string='Reconciliation Model'
reconciled
Boolean
compute='_compute_amount_residual'
store=True
ref
Char
copy=False
index='trigram'
related='move_id.ref'
store=True
sequence
Integer
compute='_compute_sequence'
precompute=True
readonly=False
store=True
statement_id
Many2one
auto_join=True
copy=False
help='The bank statement used for bank reconciliation'
index='btree_not_null'
related='statement_line_id.statement_id'
store=True
statement_line_id
Many2one → account.bank.statement.line
auto_join=True
comodel_name='account.bank.statement.line'
help='The statement line that created this entry'
index='btree_not_null'
related='move_id.statement_line_id'
store=True
string='Originator Statement Line'
tax_audit
Char
compute='_compute_tax_audit'
help='Computed field, listing the tax grids impacted by this line, and the amount it applies to each of them.'
store=True
string='Tax Audit String'
tax_base_amount
Monetary
currency_field='company_currency_id'
readonly=True
string='Base Amount'
tax_group_id
Many2one
precompute=True
related='tax_line_id.tax_group_id'
store=True
string='Originator tax group'
tax_ids
Many2many → account.tax
check_company=True
comodel_name='account.tax'
compute='_compute_tax_ids'
context={'active_test': False}
precompute=True
readonly=False
store=True
string='Taxes'
tax_key
Binary
compute='_compute_tax_key'
exportable=False
tax_line_id
Many2one → account.tax
comodel_name='account.tax'
help='Indicates that this journal item is a tax line'
ondelete='restrict'
precompute=True
related='tax_repartition_line_id.tax_id'
store=True
string='Originator Tax'
tax_repartition_line_id
Many2one → account.tax.repartition.line
check_company=True
comodel_name='account.tax.repartition.line'
help='Tax distribution line that caused the creation of this move line, if any'
ondelete='restrict'
readonly=True
string='Originator Tax Distribution Line'
tax_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
context={'active_test': False}
help='Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.'
ondelete='restrict'
string='Tags'
tracking=True
tax_tag_invert
Boolean
compute='_compute_tax_tag_invert'
copy=False
readonly=False
store=True
string='Invert Tags'
term_key
Binary
compute='_compute_term_key'
exportable=False
action_automatic_entry(self)
action_open_business_doc(self)
check_field_access_rights(self, operation, field_names)
copy_data(self, default=None)
create(self, vals_list)
default_get(self, fields_list)
flush_model(self, fnames=None)
flush_recordset(self, fnames=None)
get_import_templates(self)
init(self)
invalidate_model(self, fnames=None, flush=True)
invalidate_recordset(self, fnames=None, flush=True)
name_get(self)
open_reconcile_view(self)
reconcile(self)
remove_move_reconcile(self)
search_read(self, domain=None, fields=None, offset=0, limit=None, order=None)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
available_journal_ids
Many2many → account.journal
compute='_compute_available_journal_ids'
args: 'account.journal'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
country_code
Char
related='company_id.country_id.code'
currency_id
Many2one → res.currency
compute='_compute_from_moves'
args: 'res.currency'
date
Date
default=fields.Date.context_today
string='Reversal date'
date_mode
Selection
default='custom'
required=True
selection=[('custom', 'Specific'), ('entry', 'Journal Entry Date')]
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
help='If empty, uses the journal of the journal entry to be reversed.'
readonly=False
required=True
store=True
string='Use Specific Journal'
move_ids
Many2many → account.move
domain=[('state', '=', 'posted')]
args: 'account.move', 'account_move_reversal_move', 'reversal_id', 'move_id'
move_type
Char
compute='_compute_from_moves'
new_move_ids
Many2many → account.move
reason
Char
string='Reason'
refund_method
Selection
help='Choose how you want to credit this invoice. You cannot "modify" nor "cancel" if the invoice is already reconciled.'
required=True
selection=[('refund', 'Partial Refund'), ('cancel', 'Full Refund'), ('modify', 'Full refund and new draft invoice')]
string='Credit Method'
residual
Monetary
compute='_compute_from_moves'
default_get(self, fields)
reverse_moves(self)
amount
Monetary
currency_field='company_currency_id'
help='Always positive amount concerned by this matching expressed in the company currency.'
company_currency_id
Many2one → res.currency
comodel_name='res.currency'
help='Utility field to express amount currency'
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
readonly=False
related='debit_move_id.company_id'
store=True
string='Company'
credit_amount_currency
Monetary
currency_field='credit_currency_id'
help='Always positive amount concerned by this matching expressed in the credit line foreign currency.'
credit_currency_id
Many2one → res.currency
comodel_name='res.currency'
precompute=True
related='credit_move_id.currency_id'
store=True
string='Currency of the credit journal item.'
credit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
debit_amount_currency
Monetary
currency_field='debit_currency_id'
help='Always positive amount concerned by this matching expressed in the debit line foreign currency.'
debit_currency_id
Many2one → res.currency
comodel_name='res.currency'
precompute=True
related='debit_move_id.currency_id'
store=True
string='Currency of the debit journal item.'
debit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
exchange_move_id
Many2one → account.move
comodel_name='account.move'
index='btree_not_null'
full_reconcile_id
Many2one → account.full.reconcile
comodel_name='account.full.reconcile'
copy=False
index='btree_not_null'
string='Full Reconcile'
max_date
Date
compute='_compute_max_date'
store=True
string='Max Date of Matched Lines'
unlink(self)
No new fields.
Public methods (0)No public methods.
amount
Monetary
currency_field='currency_id'
amount_company_currency_signed
Monetary
compute='_compute_amount_company_currency_signed'
currency_field='company_currency_id'
store=True
amount_signed
Monetary
compute='_compute_amount_signed'
currency_field='currency_id'
help='Negative value of amount field if payment_type is outbound'
tracking=True
available_journal_ids
Many2many → account.journal
comodel_name='account.journal'
compute='_compute_available_journal_ids'
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_line_ids
Many2many → account.payment.method.line
compute='_compute_payment_method_line_fields'
args: 'account.payment.method.line'
country_code
Char
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
help="The payment's currency."
precompute=True
readonly=False
store=True
string='Currency'
destination_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_destination_account_id'
domain="[('account_type', 'in', ('asset_receivable', 'liability_payable')), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Destination Account'
destination_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
domain="[('type', 'in', ('bank','cash')), ('company_id', '=', company_id), ('id', '!=', journal_id)]"
string='Destination Journal'
is_internal_transfer
Boolean
compute='_compute_is_internal_transfer'
readonly=False
store=True
string='Internal Transfer'
tracking=True
is_matched
Boolean
compute='_compute_reconciliation_status'
store=True
string='Is Matched With a Bank Statement'
is_reconciled
Boolean
compute='_compute_reconciliation_status'
store=True
string='Is Reconciled'
move_id
Many2one → account.move
check_company=True
comodel_name='account.move'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
outstanding_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_outstanding_account_id'
store=True
string='Outstanding Account'
paired_internal_transfer_payment_id
Many2one → account.payment
copy=False
help='When an internal transfer is posted, a paired payment is created. They are cross referenced through this field'
index='btree_not_null'
args: 'account.payment'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
readonly=False
store=True
string='Recipient Bank Account'
tracking=True
args: 'res.partner.bank'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
compute='_compute_partner_id'
domain="['|', ('parent_id','=', False), ('is_company','=', True)]"
ondelete='restrict'
readonly=False
store=True
string='Customer/Vendor'
tracking=True
partner_type
Selection
default='customer'
required=True
tracking=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_method_code
Char
related='payment_method_line_id.code'
payment_method_id
Many2one
related='payment_method_line_id.payment_method_id'
store=True
string='Method'
tracking=True
payment_method_line_id
Many2one → account.payment.method.line
compute='_compute_payment_method_line_id'
copy=False
domain="[('id', 'in', available_payment_method_line_ids)]"
help='Manual: Pay or Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method.line'
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
string='Payment Reference'
tracking=True
payment_type
Selection
default='inbound'
required=True
string='Payment Type'
tracking=True
args: [('outbound', 'Send'), ('inbound', 'Receive')]
qr_code
Char
compute='_compute_qr_code'
string='QR Code URL'
reconciled_bill_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
string='Reconciled Bills'
args: 'account.move'
reconciled_bills_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Bills'
reconciled_invoice_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
string='Reconciled Invoices'
args: 'account.move'
reconciled_invoices_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Invoices'
reconciled_invoices_type
Selection
compute='_compute_stat_buttons_from_reconciliation'
args: [('credit_note', 'Credit Note'), ('invoice', 'Invoice')]
reconciled_statement_line_ids
Many2many → account.bank.statement.line
comodel_name='account.bank.statement.line'
compute='_compute_stat_buttons_from_reconciliation'
help='Statements lines matched to this payment'
string='Reconciled Statement Lines'
reconciled_statement_lines_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Statement Lines'
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
action_cancel(self)
action_draft(self)
action_open_destination_journal(self)
action_post(self)
button_open_bills(self)
button_open_invoices(self)
button_open_journal_entry(self)
button_open_statement_lines(self)
create(self, vals_list)
mark_as_sent(self)
name_get(self)
new(self, values=None, origin=None, ref=None)
unlink(self)
unmark_as_sent(self)
write(self, vals)
code
Char
required=True
name
Char
required=True
translate=True
payment_type
Selection
required=True
selection=[('inbound', 'Inbound'), ('outbound', 'Outbound')]
create(self, vals_list)
available_payment_method_ids
Many2many
related='journal_id.available_payment_method_ids'
code
Char
related='payment_method_id.code'
company_id
Many2one
related='journal_id.company_id'
journal_id
Many2one → account.journal
comodel_name='account.journal'
ondelete='cascade'
name
Char
compute='_compute_name'
readonly=False
store=True
payment_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', 'not in', ('asset_receivable', 'liability_payable')), '|', ('account_type', 'in', ('asset_current', 'liability_current')), ('id', '=', parent.default_account_id)]"
ondelete='restrict'
payment_method_id
Many2one → account.payment.method
comodel_name='account.payment.method'
domain="[('payment_type', '=?', payment_type), ('id', 'in', available_payment_method_ids)]"
ondelete='cascade'
required=True
string='Payment Method'
payment_type
Selection
related='payment_method_id.payment_type'
sequence
Integer
default=10
create(self, vals_list)
unlink(self)
write(self, vals)
amount
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=False
store=True
available_journal_ids
Many2many → account.journal
comodel_name='account.journal'
compute='_compute_available_journal_ids'
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_line_ids
Many2many → account.payment.method.line
compute='_compute_payment_method_line_fields'
args: 'account.payment.method.line'
can_edit_wizard
Boolean
compute='_compute_from_lines'
copy=False
store=True
can_group_payments
Boolean
compute='_compute_from_lines'
copy=False
store=True
communication
Char
compute='_compute_communication'
readonly=False
store=True
string='Memo'
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
compute='_compute_from_lines'
copy=False
store=True
args: 'res.company'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_currency_id'
help="The payment's currency."
precompute=True
readonly=False
store=True
string='Currency'
early_payment_discount_mode
Boolean
compute='_compute_early_payment_discount_mode'
group_payment
Boolean
compute='_compute_group_payment'
help='Only one payment will be created by partner (bank), instead of one per bill.'
readonly=False
store=True
string='Group Payments'
hide_writeoff_section
Boolean
compute='_compute_hide_writeoff_section'
journal_id
Many2one → account.journal
comodel_name='account.journal'
compute='_compute_journal_id'
domain="[('id', 'in', available_journal_ids)]"
precompute=True
readonly=False
store=True
line_ids
Many2many → account.move.line
copy=False
readonly=True
string='Journal items'
args: 'account.move.line', 'account_payment_register_move_line_rel', 'wizard_id', 'line_id'
partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
readonly=False
store=True
string='Recipient Bank Account'
partner_id
Many2one → res.partner
compute='_compute_from_lines'
copy=False
ondelete='restrict'
store=True
string='Customer/Vendor'
args: 'res.partner'
partner_type
Selection
compute='_compute_from_lines'
copy=False
store=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_date
Date
default=fields.Date.context_today
required=True
string='Payment Date'
payment_difference
Monetary
compute='_compute_payment_difference'
payment_difference_handling
Selection
compute='_compute_payment_difference_handling'
readonly=False
selection=[('open', 'Keep open'), ('reconcile', 'Mark as fully paid')]
store=True
string='Payment Difference Handling'
payment_method_line_id
Many2one → account.payment.method.line
compute='_compute_payment_method_line_id'
domain="[('id', 'in', available_payment_method_line_ids)]"
help='Manual: Pay or Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method.line'
payment_type
Selection
compute='_compute_from_lines'
copy=False
store=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
source_amount
Monetary
compute='_compute_from_lines'
copy=False
currency_field='company_currency_id'
store=True
string='Amount to Pay (company currency)'
source_amount_currency
Monetary
compute='_compute_from_lines'
copy=False
currency_field='source_currency_id'
store=True
string='Amount to Pay (foreign currency)'
source_currency_id
Many2one → res.currency
compute='_compute_from_lines'
copy=False
store=True
string='Source Currency'
args: 'res.currency'
writeoff_account_id
Many2one → account.account
comodel_name='account.account'
copy=False
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
string='Difference Account'
writeoff_label
Char
default='Write-Off'
help='Change label of the counterpart that will hold the payment difference'
string='Journal Item Label'
action_create_payments(self)
default_get(self, fields_list)
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment terms without removing it.'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
display_on_invoice
Boolean
help='If set, the payment deadlines and respective due amounts will be detailed on invoices.'
string='Display terms on invoice'
example_amount
Float
default=_default_example_amount
store=False
example_date
Date
default=_default_example_date
store=False
string='Date example'
example_invalid
Boolean
compute='_compute_example_invalid'
example_preview
Html
compute='_compute_example_preview'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Terms'
translate=True
note
Html
string='Description on the Invoice'
translate=True
sequence
Integer
default=10
required=True
copy(self, default=None)
unlink(self)
days
Integer
default=0
required=True
string='Days'
days_after
Integer
help='Days to add after the end of the month'
string='Days after End of month'
discount_days
Integer
help='Number of days before the early payment proposition expires'
string='Discount Days'
discount_percentage
Float
help='Early Payment Discount granted for this line'
string='Discount %'
end_month
Boolean
help='Switch to end of the month after having added months or days'
string='End of month'
months
Integer
default=0
required=True
string='Months'
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Terms'
args: 'account.payment.term'
value
Selection
default='percent'
help='Select here the kind of valuation related to this payment terms line.'
required=True
string='Type'
args: [('balance', 'Balance'), ('percent', 'Percent'), ('fixed', 'Fixed Amount')]
value_amount
Float
digits='Payment Terms'
help='For percent enter a ratio between 0-100.'
string='Value'
No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
allow_payment_tolerance
Boolean
default=True
help='Difference accepted in case of underpayment.'
string='Payment Tolerance'
tracking=True
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
tracking=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
decimal_separator
Char
default=<expr>
help='Every character that is nor a digit nor this separator will be removed from the matching string'
tracking=True
line_ids
One2many → account.reconcile.model.line
copy=True
args: 'account.reconcile.model.line', 'model_id'
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount Condition'
tracking=True
match_amount_max
Float
string='Amount Max Parameter'
tracking=True
match_amount_min
Float
string='Amount Min Parameter'
tracking=True
match_journal_ids
Many2many → account.journal
check_company=True
domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id)]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals Availability'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
tracking=True
match_label_param
Char
string='Label Parameter'
tracking=True
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Received'), ('amount_paid', 'Paid'), ('both', 'Paid/Received')]
string='Amount Type'
tracking=True
match_note
Selection
help='The reconciliation model will only be applied when the note:\n * Contains: The proposition note must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Note'
tracking=True
match_note_param
Char
string='Note Parameter'
tracking=True
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner is Set'
tracking=True
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Matching categories'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Matching partners'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency'
tracking=True
match_text_location_label
Boolean
default=True
help="Search in the Statement's Label to find the Invoice/Payment's reference"
tracking=True
match_text_location_note
Boolean
default=False
help="Search in the Statement's Note to find the Invoice/Payment's reference"
tracking=True
match_text_location_reference
Boolean
default=False
help="Search in the Statement's Reference to find the Invoice/Payment's reference"
tracking=True
match_transaction_type
Selection
help='The reconciliation model will only be applied when the transaction type:\n * Contains: The proposition transaction type must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Transaction Type'
tracking=True
match_transaction_type_param
Char
string='Transaction Type Parameter'
tracking=True
matching_order
Selection
default='old_first'
required=True
selection=[('old_first', 'Oldest first'), ('new_first', 'Newest first')]
tracking=True
name
Char
required=True
string='Name'
number_entries
Integer
compute='_compute_number_entries'
string='Number of entries related to this model'
partner_mapping_line_ids
One2many → account.reconcile.model.partner.mapping
comodel_name='account.reconcile.model.partner.mapping'
help='The mapping uses regular expressions.\n- To Match the text at the beginning of the line (in label or notes), simply fill in your text.\n- To Match the text anywhere (in label or notes), put your text between .*\n e.g: .*N°48748 abc123.*'
inverse_name='model_id'
string='Partner Mapping Lines'
past_months_limit
Integer
default=18
help='Number of months in the past to consider entries from when applying this model.'
string='Search Months Limit'
tracking=True
payment_tolerance_param
Float
compute='_compute_payment_tolerance_param'
help='The sum of total residual amount propositions matches the statement line amount under this amount/percentage.'
readonly=False
store=True
string='Gap'
tracking=True
payment_tolerance_type
Selection
default='percentage'
help='The sum of total residual amount propositions and the statement line amount allowed gap type.'
required=True
selection=[('percentage', 'in percentage'), ('fixed_amount', 'in amount')]
tracking=True
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', 'Button to generate counterpart entry'), ('writeoff_suggestion', 'Rule to suggest counterpart entry'), ('invoice_matching', 'Rule to match invoices/bills')]
string='Type'
tracking=True
sequence
Integer
default=10
required=True
show_decimal_separator
Boolean
compute='_compute_show_decimal_separator'
to_check
Boolean
default=False
help='This matching rule is used when the user is not certain of all the information of the counterpart.'
string='To Check'
action_reconcile_stat(self)
copy(self, default=None)
No new fields.
Public methods (0)No public methods.
account_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('is_off_balance', '=', False)]"
ondelete='cascade'
required=True
string='Account'
args: 'account.account'
allow_payment_tolerance
Boolean
related='model_id.allow_payment_tolerance'
amount
Float
compute='_compute_float_amount'
store=True
string='Float Amount'
amount_string
Char
default='100'
help='Value for the amount of the writeoff line\n * Percentage: Percentage of the balance, between 0 and 100.\n * Fixed: The fixed value of the writeoff. The amount will count as a debit if it is negative, as a credit if it is positive.\n * From Label: There is no need for regex delimiter, only the regex is needed. For instance if you want to extract the amount from\nR:9672938 10/07 AX 9415126318 T:5L:NA BRT: 3358,07 C:\nYou could enter\nBRT: ([\\d,]+)'
required=True
string='Amount'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('percentage_st_line', 'Percentage of statement line'), ('regex', 'From label')]
company_id
Many2one
related='model_id.company_id'
store=True
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
journal_id
Many2one → account.journal
check_company=True
domain="[('type', '=', 'general'), ('company_id', '=', company_id)]"
ondelete='cascade'
string='Journal'
args: 'account.journal'
label
Char
string='Journal Item Label'
model_id
Many2one → account.reconcile.model
ondelete='cascade'
readonly=True
args: 'account.reconcile.model'
payment_tolerance_param
Float
related='model_id.payment_tolerance_param'
rule_type
Selection
related='model_id.rule_type'
sequence
Integer
default=10
required=True
show_force_tax_included
Boolean
compute='_compute_show_force_tax_included'
tax_ids
Many2many → account.tax
check_company=True
ondelete='restrict'
string='Taxes'
args: 'account.tax'
No public methods.
account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Account'
args: 'account.account.template'
amount_string
Char
string='Amount'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('regex', 'From label')]
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
label
Char
string='Journal Item Label'
model_id
Many2one → account.reconcile.model.template
sequence
Integer
default=10
required=True
tax_ids
Many2many → account.tax.template
ondelete='restrict'
string='Taxes'
args: 'account.tax.template'
No public methods.
model_id
Many2one → account.reconcile.model
comodel_name='account.reconcile.model'
ondelete='cascade'
readonly=True
required=True
narration_regex
Char
string='Find Text in Notes'
partner_id
Many2one → res.partner
comodel_name='res.partner'
ondelete='cascade'
required=True
string='Partner'
payment_ref_regex
Char
string='Find Text in Label'
validate_regex(self)
allow_payment_tolerance
Boolean
default=True
help='Difference accepted in case of underpayment.'
string='Allow Payment Gap'
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
decimal_separator
Char
help='Every character that is nor a digit nor this separator will be removed from the matching string'
line_ids
One2many → account.reconcile.model.line.template
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount Condition'
match_amount_max
Float
string='Amount Max Parameter'
match_amount_min
Float
string='Amount Min Parameter'
match_journal_ids
Many2many → account.journal
domain="[('type', 'in', ('bank', 'cash'))]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals Availability'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
match_label_param
Char
string='Label Parameter'
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Amount Received'), ('amount_paid', 'Amount Paid'), ('both', 'Amount Paid/Received')]
string='Amount Type'
match_note
Selection
help='The reconciliation model will only be applied when the note:\n * Contains: The proposition note must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Note'
match_note_param
Char
string='Note Parameter'
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner Is Set'
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Restrict Partner Categories to'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Restrict Partners to'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency'
match_text_location_label
Boolean
default=True
help="Search in the Statement's Label to find the Invoice/Payment's reference"
match_text_location_note
Boolean
default=False
help="Search in the Statement's Note to find the Invoice/Payment's reference"
match_text_location_reference
Boolean
default=False
help="Search in the Statement's Reference to find the Invoice/Payment's reference"
match_transaction_type
Selection
help='The reconciliation model will only be applied when the transaction type:\n * Contains: The proposition transaction type must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Transaction Type'
match_transaction_type_param
Char
string='Transaction Type Parameter'
matching_order
Selection
selection=[('old_first', 'Oldest first'), ('new_first', 'Newest first')]
name
Char
required=True
string='Button Label'
payment_tolerance_param
Float
default=0.0
help='The sum of total residual amount propositions matches the statement line amount under this amount/percentage.'
string='Gap'
payment_tolerance_type
Selection
default='percentage'
help='The sum of total residual amount propositions and the statement line amount allowed gap type.'
required=True
selection=[('percentage', 'in percentage'), ('fixed_amount', 'in amount')]
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', 'Button to generate counterpart entry'), ('writeoff_suggestion', 'Rule to suggest counterpart entry'), ('invoice_matching', 'Rule to match invoices/bills')]
string='Type'
sequence
Integer
default=10
required=True
to_check
Boolean
default=False
help='This matching rule is used when the user is not certain of all the information of the counterpart.'
string='To Check'
No public methods.
availability_condition
Selection
compute='_compute_default_availability_condition'
readonly=False
selection=[('country', 'Country Matches'), ('coa', 'Chart of Accounts Matches'), ('always', 'Always')]
store=True
string='Availability'
chart_template_id
Many2one → account.chart.template
comodel_name='account.chart.template'
string='Chart of Accounts'
column_ids
One2many → account.report.column
comodel_name='account.report.column'
inverse_name='report_id'
string='Columns'
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
default_opening_date_filter
Selection
compute=<expr>
depends=['root_report_id']
readonly=False
selection=[('this_year', 'This Year'), ('this_quarter', 'This Quarter'), ('this_month', 'This Month'), ('today', 'Today'), ('last_month', 'Last Month'), ('last_quarter', 'Last Quarter'), ('last_year', 'Last Year')]
store=True
string='Default Opening'
filter_account_type
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Account Types'
filter_analytic
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Analytic Filter'
filter_date_range
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Date Range'
filter_fiscal_position
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Filter Multivat'
filter_growth_comparison
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Growth Comparison'
filter_hierarchy
Selection
compute=<expr>
depends=['root_report_id']
readonly=False
selection=[('by_default', 'Enabled by Default'), ('optional', 'Optional'), ('never', 'Never')]
store=True
string='Account Groups'
filter_journals
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Journals'
filter_multi_company
Selection
compute=<expr>
depends=['root_report_id']
readonly=False
selection=[('disabled', 'Disabled'), ('selector', 'Use Company Selector'), ('tax_units', 'Use Tax Units')]
store=True
string='Multi-Company'
filter_partner
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Partners'
filter_period_comparison
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Period Comparison'
filter_show_draft
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Draft Entries'
filter_unfold_all
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Unfold All'
filter_unreconciled
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Unreconciled Entries'
line_ids
One2many → account.report.line
comodel_name='account.report.line'
inverse_name='report_id'
string='Lines'
load_more_limit
Integer
string='Load More Limit'
name
Char
required=True
string='Name'
translate=True
only_tax_exigible
Boolean
compute=<expr>
depends=['root_report_id']
readonly=False
store=True
string='Only Tax Exigible Lines'
root_report_id
Many2one → account.report
comodel_name='account.report'
help='The report this report is a variant of.'
string='Root Report'
search_bar
Boolean
string='Search Bar'
variant_report_ids
One2many → account.report
comodel_name='account.report'
inverse_name='root_report_id'
string='Variants'
copy(self, default=None)
name_get(self)
write(self, vals)
blank_if_zero
Boolean
default=True
help='When checked, 0 values will not show in this column.'
string='Blank if Zero'
custom_audit_action_id
Many2one → ir.actions.act_window
comodel_name='ir.actions.act_window'
string='Custom Audit Action'
expression_label
Char
required=True
string='Expression Label'
figure_type
Selection
default='monetary'
required=True
selection=FIGURE_TYPE_SELECTION_VALUES
string='Figure Type'
name
Char
required=True
string='Name'
translate=True
report_id
Many2one → account.report
comodel_name='account.report'
string='Report'
sequence
Integer
string='Sequence'
sortable
Boolean
string='Sortable'
No public methods.
auditable
Boolean
compute='_compute_auditable'
readonly=False
store=True
string='Auditable'
blank_if_zero
Boolean
help="When checked, 0 values will not show when displaying this expression's value."
string='Blank if Zero'
carryover_target
Char
help="Formula in the form line_code.expression_label. This allows setting the target of the carryover for this expression (on a _carryover_*-labeled expression), in case it is different from the parent line. 'custom' is also allowed as value in case the carryover destination requires more complex logic."
string='Carry Over To'
date_scope
Selection
default='strict_range'
required=True
selection=[('from_beginning', 'From the very start'), ('from_fiscalyear', 'From the start of the fiscal year'), ('to_beginning_of_fiscalyear', 'At the beginning of the fiscal year'), ('to_beginning_of_period', 'At the beginning of the period'), ('normal', 'According to each type of account'), ('strict_range', 'Strictly on the given dates'), ('previous_tax_period', 'From previous tax period')]
string='Date Scope'
engine
Selection
required=True
selection=[('domain', 'Odoo Domain'), ('tax_tags', 'Tax Tags'), ('aggregation', 'Aggregate Other Formulas'), ('account_codes', 'Prefix of Account Codes'), ('external', 'External Value'), ('custom', 'Custom Python Function')]
string='Computation Engine'
figure_type
Selection
selection=FIGURE_TYPE_SELECTION_VALUES
string='Figure Type'
formula
Char
required=True
string='Formula'
green_on_positive
Boolean
default=True
string='Is Growth Good when Positive'
label
Char
required=True
string='Label'
report_line_id
Many2one → account.report.line
comodel_name='account.report.line'
ondelete='cascade'
required=True
string='Report Line'
report_line_name
Char
related='report_line_id.name'
string='Report Line Name'
subformula
Char
string='Subformula'
create(self, vals_list)
name_get(self)
write(self, vals)
carryover_origin_expression_label
Char
string='Origin Expression Label'
carryover_origin_report_line_id
Many2one → account.report.line
comodel_name='account.report.line'
string='Origin Line'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
date
Date
required=True
foreign_vat_fiscal_position_id
Many2one → account.fiscal.position
check_company=True
comodel_name='account.fiscal.position'
domain="[('company_id', '=', company_id), ('country_id', '=', report_country_id), ('foreign_vat', '!=', False)]"
help='The foreign fiscal position for which this external value is made.'
string='Fiscal position'
name
Char
required=True
report_country_id
Many2one
related='target_report_line_id.report_id.country_id'
string='Country'
target_report_expression_id
Many2one → account.report.expression
comodel_name='account.report.expression'
ondelete='cascade'
required=True
string='Target Expression'
target_report_expression_label
Char
related='target_report_expression_id.label'
string='Target Expression Label'
target_report_line_id
Many2one
related='target_report_expression_id.report_line_id'
string='Target Line'
value
Float
required=True
No public methods.
account_codes_formula
Char
help='Internal field to shorten expression_ids creation for the account_codes engine'
inverse='_inverse_account_codes_formula'
store=False
string='Account Codes Formula Shortcut'
action_id
Many2one → ir.actions.actions
comodel_name='ir.actions.actions'
help='Setting this field will turn the line into a link, executing the action when clicked.'
string='Action'
aggregation_formula
Char
help='Internal field to shorten expression_ids creation for the aggregation engine'
inverse='_inverse_aggregation_formula'
store=False
string='Aggregation Formula Shortcut'
children_ids
One2many → account.report.line
comodel_name='account.report.line'
inverse_name='parent_id'
string='Child Lines'
code
Char
help='Unique identifier for this line.'
string='Code'
domain_formula
Char
help='Internal field to shorten expression_ids creation for the domain engine'
inverse='_inverse_domain_formula'
store=False
string='Domain Formula Shortcut'
expression_ids
One2many → account.report.expression
comodel_name='account.report.expression'
inverse_name='report_line_id'
string='Expressions'
foldable
Boolean
help="By default, we always unfold the lines that can be. If this is checked, the line won't be unfolded by default, and a folding button will be displayed."
string='Foldable'
groupby
Char
help='Comma-separated list of fields from account.move.line (Journal Item). When set, this line will generate sublines grouped by those keys.'
string='Group By'
hide_if_zero
Boolean
help='This line and its children will be hidden when all of their columns are 0.'
string='Hide if Zero'
hierarchy_level
Integer
compute='_compute_hierarchy_level'
precompute=True
readonly=False
recursive=True
required=True
store=True
string='Level'
name
Char
required=True
string='Name'
translate=True
parent_id
Many2one → account.report.line
comodel_name='account.report.line'
ondelete='set null'
string='Parent Line'
print_on_new_page
Boolean
help='When checked this line and everything after it will be printed on a new page.'
args: 'Print On New Page'
report_id
Many2one → account.report
comodel_name='account.report'
compute='_compute_report_id'
ondelete='cascade'
precompute=True
readonly=False
recursive=True
required=True
store=True
string='Parent Report'
sequence
Integer
string='Sequence'
tax_tags_formula
Char
help='Internal field to shorten expression_ids creation for the tax_tags engine'
inverse='_inverse_aggregation_tax_formula'
store=False
string='Tax Tags Formula Shortcut'
No public methods.
end_date
Date
help='Date (inclusive) to which the numbers are resequenced. If not set, all Journal Entries up to the end of the period are resequenced.'
first_date
Date
help='Date (inclusive) from which the numbers are resequenced.'
first_name
Char
compute='_compute_first_name'
readonly=False
required=True
store=True
string='First New Sequence'
move_ids
Many2many → account.move
new_values
Text
compute='_compute_new_values'
ordering
Selection
default='keep'
required=True
args: [('keep', 'Keep current order'), ('date', 'Reorder by accounting date')]
preview_moves
Text
compute='_compute_preview_moves'
sequence_number_reset
Char
compute='_compute_sequence_number_reset'
default_get(self, fields_list)
resequence(self)
company_id
Many2one → res.company
name
Char
parent_id
Many2one → account.root
init(self)
bank_bic
Char
readonly=False
related='bank_id.bic'
string='Bic'
linked_journal_id
Many2one → account.journal
comodel_name='account.journal'
compute='_compute_linked_journal_id'
domain=<expr>
inverse='set_linked_journal_id'
string='Journal'
new_journal_name
Char
default=<expr>
help='Will be used to name the Journal related to this bank account'
inverse='set_linked_journal_id'
required=True
num_journals_without_account
Integer
default=<expr>
res_partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
ondelete='cascade'
required=True
create(self, vals_list)
default_linked_journal_id(self)
set_linked_journal_id(self)
validate(self)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
default=0.0
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
help='\n - Group of Taxes: The tax is a set of sub taxes.\n - Fixed: The tax amount stays the same whatever the price.\n - Percentage of Price: The tax amount is a % of the price:\n e.g 100 * (1 + 10%) = 110 (not price included)\n e.g 110 / (1 + 10%) = 100 (price included)\n - Percentage of Price Tax Included: The tax amount is a division of the price:\n e.g 180 / (1 - 10%) = 200 (not price included)\n e.g 200 * (1 - 10%) = 180 (price included)\n '
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Include in Analytic Cost'
cash_basis_transition_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
children_tax_ids
Many2many → account.tax
check_company=True
string='Children Taxes'
args: 'account.tax', 'account_tax_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_code
Char
readonly=True
related='country_id.code'
country_id
Many2one → res.country
comodel_name='res.country'
help='The country for which this tax is applicable.'
required=True
string='Country'
description
Char
string='Label on Invoices'
hide_tax_exigibility
Boolean
readonly=True
related='company_id.tax_exigibility'
string='Hide Use Cash Basis Option'
include_base_amount
Boolean
default=False
help='If set, taxes with a higher sequence than this one will be affected by it, provided they accept it.'
string='Affect Base of Subsequent Taxes'
invoice_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
help='Distribution when the tax is used on an invoice'
inverse_name='invoice_tax_id'
string='Distribution for Invoices'
is_base_affected
Boolean
default=True
help='If set, taxes with a lower sequence might affect this one, provided they try to do it.'
string='Base Affected by Previous Taxes'
name
Char
required=True
string='Tax Name'
name_searchable
Char
help="This dummy field lets us use another search method on the field 'name'.This allows more freedom on how to search the 'name' compared to 'filter_domain'.See '_search_name' and '_parse_name_search' for why this is not possible with 'filter_domain'."
search='_search_name'
store=False
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
real_amount
Float
compute='_compute_real_amount'
store=True
string='Real amount to apply'
refund_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
help='Distribution when the tax is used on a refund'
inverse_name='refund_tax_id'
string='Distribution for Refund Invoices'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Exigibility'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
default=_default_tax_group
domain="[('country_id', 'in', (country_id, False))]"
required=True
string='Tax Group'
args: 'account.tax.group'
tax_scope
Selection
help='Restrict the use of taxes to a type of product.'
string='Tax Scope'
args: [('service', 'Services'), ('consu', 'Goods')]
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment."
required=True
string='Tax Type'
args: TYPE_TAX_USE
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True, include_caba_tags=False, fixed_multiplicator=1)
copy(self, default=None)
default_get(self, fields_list)
flatten_taxes_hierarchy(self, create_map=False)
get_tax_tags(self, is_refund, repartition_type)
json_friendly_compute_all(self, price_unit, currency_id=None, quantity=1.0, product_id=None, partner_id=None, is_refund=False, include_caba_tags=False)
name_get(self)
onchange_amount(self)
onchange_amount_type(self)
onchange_price_include(self)
validate_tax_group_id(self)
country_code
Char
related='country_id.code'
country_id
Many2one → res.country
comodel_name='res.country'
help='The country for which this tax group is applicable.'
string='Country'
name
Char
required=True
translate=True
preceding_subtotal
Char
help="If set, this value will be used on documents as the label of a subtotal excluding this tax group before displaying it. If not set, the tax group will be displayed after the 'Untaxed amount' subtotal."
string='Preceding Subtotal'
property_advance_tax_payment_account_id
Many2one → account.account
comodel_name='account.account'
company_dependent=True
help='Downpayments posted on this account will be considered by the Tax Closing Entry.'
string='Tax Advance Account'
property_tax_payable_account_id
Many2one → account.account
comodel_name='account.account'
company_dependent=True
help='Tax current account used as a counterpart to the Tax Closing Entry when in favor of the authorities.'
string='Tax Payable Account'
property_tax_receivable_account_id
Many2one → account.account
comodel_name='account.account'
company_dependent=True
help='Tax current account used as a counterpart to the Tax Closing Entry when in favor of the company.'
string='Tax Receivable Account'
sequence
Integer
default=10
No public methods.
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', 'not in', ('asset_receivable', 'liability_payable', 'off_balance'))]"
help='Account on which to post the tax amount'
string='Account'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company'
help='The company this distribution line belongs to.'
store=True
string='Company'
document_type
Selection
compute='_compute_document_type'
help='The type of documnet on which the repartition line should be applied'
selection=[('invoice', 'Invoice'), ('refund', 'Refund')]
factor
Float
compute='_compute_factor'
help='Factor to apply on the account move lines generated from this distribution line'
string='Factor Ratio'
factor_percent
Float
default=100
help='Factor to apply on the account move lines generated from this distribution line, in percents'
required=True
string='%'
invoice_tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
help='The tax set to apply this distribution on invoices. Mutually exclusive with refund_tax_id'
ondelete='cascade'
refund_tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
help='The tax set to apply this distribution on refund invoices. Mutually exclusive with invoice_tax_id'
ondelete='cascade'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
sequence
Integer
default=1
help='The order in which distribution lines are displayed and matched. For refunds to work properly, invoice distribution lines should be arranged in the same order as the credit note distribution lines they correspond to.'
string='Sequence'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
domain=[('applicability', '=', 'taxes')]
ondelete='restrict'
string='Tax Grids'
tag_ids_domain
Binary
compute='_compute_tag_ids_domain'
help='Dynamic domain used for the tag that can be set on tax'
string='tag domain'
tax_id
Many2one → account.tax
comodel_name='account.tax'
compute='_compute_tax_id'
use_in_tax_closing
Boolean
default=True
string='Tax Closing Entry'
validate_tax_template_link(self)
account_id
Many2one → account.account.template
comodel_name='account.account.template'
help='Account on which to post the tax amount'
string='Account'
factor_percent
Float
default=100
help='Factor to apply on the account move lines generated from this distribution line, in percents'
required=True
string='%'
invoice_tax_id
Many2one → account.tax.template
comodel_name='account.tax.template'
help='The tax set to apply this distribution on invoices. Mutually exclusive with refund_tax_id'
minus_report_expression_ids
Many2many → account.report.expression
comodel_name='account.report.expression'
copy=True
help="Tax report expressions whose '-' tag will be assigned to move lines by this repartition line"
relation='account_tax_rep_template_minus'
string='Minus Report Expressions'
plus_report_expression_ids
Many2many → account.report.expression
comodel_name='account.report.expression'
copy=True
help="Tax report expressions whose '+' tag will be assigned to move lines by this repartition line"
relation='account_tax_rep_template_plus'
string='Plus Tax Report Expressions'
refund_tax_id
Many2one → account.tax.template
comodel_name='account.tax.template'
help='The tax set to apply this distribution on refund invoices. Mutually exclusive with invoice_tax_id'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
help='Additional tags that will be assigned by this repartition line for use in domains'
relation='account_tax_repartition_financial_tags'
string='Financial Tags'
use_in_tax_closing
Boolean
string='Tax Closing Entry'
create(self, vals_list)
get_repartition_line_create_vals(self, company)
validate_tax_template_link(self)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
default=0
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Analytic Cost'
cash_basis_transition_account_id
Many2one → account.account.template
comodel_name='account.account.template'
domain=[('deprecated', '=', False)]
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
children_tax_ids
Many2many → account.tax.template
string='Children Taxes'
args: 'account.tax.template', 'account_tax_template_filiation_rel', 'parent_tax', 'child_tax'
description
Char
string='Display on Invoices'
include_base_amount
Boolean
default=False
help='If set, taxes with a higher sequence than this one will be affected by it, provided they accept it.'
string='Affect Subsequent Taxes'
invoice_repartition_line_ids
One2many → account.tax.repartition.line.template
comodel_name='account.tax.repartition.line.template'
copy=True
help='Repartition when the tax is used on an invoice'
inverse_name='invoice_tax_id'
string='Repartition for Invoices'
is_base_affected
Boolean
default=True
help='If set, taxes with a lower sequence might affect this one, provided they try to do it.'
string='Base Affected by Previous Taxes'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_repartition_line_ids
One2many → account.tax.repartition.line.template
comodel_name='account.tax.repartition.line.template'
copy=True
help='Repartition when the tax is used on a refund'
inverse_name='refund_tax_id'
string='Repartition for Refund Invoices'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Due'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
string='Tax Group'
args: 'account.tax.group'
tax_scope
Selection
help='Restrict the use of taxes to a type of product.'
args: [('service', 'Service'), ('consu', 'Consumable')]
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group."
required=True
string='Tax Type'
args: TYPE_TAX_USE
name_get(self)
attachment_ids
Many2many → ir.attachment
comodel_name='ir.attachment'
relation='account_tour_upload_bill_ir_attachments_rel'
string='Attachments'
preview_invoice
Html
compute='_compute_preview_invoice'
string='Invoice Preview'
translate=True
selection
Selection
default=<expr>
selection=<expr>
apply(self)
email_alias
Char
readonly=True
apply(self)
No new fields.
Public methods (1)trans_unrec(self)
No new fields.
Public methods (1)document_layout_save(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)precision_get(self, application)
kpi_account_total_revenue
Boolean
kpi_account_total_revenue_value
Monetary
compute='_compute_kpi_account_total_revenue_value'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)action_download_xsd_files(self)
No new fields.
Public methods (2)get_account_kpi_summary(self)
get_kpi_summary(self)
No new fields.
Public methods (0)No public methods.
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.'
string='Expense Account'
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='This account will be used when validating a customer invoice.'
string='Income Account'
args: 'account.account'
No public methods.
tax_string
Char
compute='_compute_tax_string'
No public methods.
account_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
domain="[('applicability', '=', 'products')]"
help='Tags to be set on the base and tax journal items created for this product.'
string='Account Tags'
property_account_expense_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category. If anglo-saxon accounting with automated valuation method is configured, the expense account on the product category will be used.'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category.'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'purchase')]
help='Default taxes used when buying the product.'
string='Vendor Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
tax_string
Char
compute='_compute_tax_string'
taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'sale')]
help='Default taxes used when selling the product.'
string='Customer Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
get_product_accounts(self, fiscal_pos=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
account_cash_basis_base_account_id
Many2one → account.account
comodel_name='account.account'
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
account_dashboard_onboarding_state
Selection
default='not_done'
string='State of the account dashboard onboarding panel'
args: DASHBOARD_ONBOARDING_STATES
account_default_pos_receivable_account_id
Many2one → account.account
string='Default PoS Receivable Account'
args: 'account.account'
account_enabled_tax_country_ids
Many2many → res.country
comodel_name='res.country'
compute='_compute_account_enabled_tax_country_ids'
help='Technical field containing the countries for which this company is using tax-related features(hence the ones for which l10n modules need to show tax-related fields).'
string='l10n-used countries'
account_fiscal_country_id
Many2one → res.country
comodel_name='res.country'
compute='compute_account_tax_fiscal_country'
help='The country to use the tax reports from for this company'
readonly=False
store=True
string='Fiscal Country'
account_invoice_onboarding_state
Selection
default='not_done'
string='State of the account invoice onboarding panel'
args: DASHBOARD_ONBOARDING_STATES
account_journal_early_pay_discount_gain_account_id
Many2one → account.account
comodel_name='account.account'
string='Cash Discount Write-Off Gain Account'
account_journal_early_pay_discount_loss_account_id
Many2one → account.account
comodel_name='account.account'
string='Cash Discount Write-Off Loss Account'
account_journal_payment_credit_account_id
Many2one → account.account
string='Journal Outstanding Payments Account'
args: 'account.account'
account_journal_payment_debit_account_id
Many2one → account.account
string='Journal Outstanding Receipts Account'
args: 'account.account'
account_journal_suspense_account_id
Many2one → account.account
string='Journal Suspense Account'
args: 'account.account'
account_onboarding_create_invoice_state
Selection
compute='_compute_account_onboarding_create_invoice_state'
string='State of the onboarding create invoice step'
args: ONBOARDING_STEP_STATES
account_onboarding_create_invoice_state_flag
Boolean
default=False
store=True
account_onboarding_invoice_layout_state
Selection
default='not_done'
string='State of the onboarding invoice layout step'
args: ONBOARDING_STEP_STATES
account_onboarding_sale_tax_state
Selection
default='not_done'
string='State of the onboarding sale tax step'
args: ONBOARDING_STEP_STATES
account_opening_date
Date
default=<expr>
help='That is the date of the opening entry.'
required=True
string='Opening Entry'
account_opening_journal_id
Many2one → account.journal
comodel_name='account.journal'
help="Journal where the opening entry of this company's accounting has been posted."
readonly=False
related='account_opening_move_id.journal_id'
string='Opening Journal'
account_opening_move_id
Many2one → account.move
comodel_name='account.move'
help="The journal entry containing the initial balance of all this company's accounts."
string='Opening Journal Entry'
account_purchase_tax_id
Many2one → account.tax
string='Default Purchase Tax'
args: 'account.tax'
account_sale_tax_id
Many2one → account.tax
string='Default Sale Tax'
args: 'account.tax'
account_setup_bank_data_state
Selection
default='not_done'
string='State of the onboarding bank data step'
args: ONBOARDING_STEP_STATES
account_setup_bill_state
Selection
default='not_done'
string='State of the onboarding bill step'
args: ONBOARDING_STEP_STATES
account_setup_coa_state
Selection
default='not_done'
string='State of the onboarding charts of account step'
args: ONBOARDING_STEP_STATES
account_setup_fy_data_state
Selection
default='not_done'
string='State of the onboarding fiscal year step'
args: ONBOARDING_STEP_STATES
account_setup_taxes_state
Selection
default='not_done'
string='State of the onboarding Taxes step'
args: ONBOARDING_STEP_STATES
account_storno
Boolean
readonly=False
string='Storno accounting'
account_use_credit_limit
Boolean
help='Enable the use of credit limit on partners.'
string='Sales Credit Limit'
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
automatic_entry_default_journal_id
Many2one → account.journal
domain="[('type', '=', 'general')]"
help='Journal used by default for moving the period of an entry'
args: 'account.journal'
bank_account_code_prefix
Char
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template_id
Many2one → account.chart.template
help='The chart template for the company (if any)'
args: 'account.chart.template'
country_code
Char
depends=['country_id']
related='country_id.code'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
default_cash_difference_expense_account_id
Many2one → account.account
string='Cash Difference Expense Account'
args: 'account.account'
default_cash_difference_income_account_id
Many2one → account.account
string='Cash Difference Income Account'
args: 'account.account'
early_pay_discount_computation
Selection
compute='_compute_early_pay_discount_computation'
readonly=False
store=True
string='Cash Discount Tax Reduction'
args: [('included', 'On early payment'), ('excluded', 'Never'), ('mixed', 'Always (upon invoice)')]
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_accrual_account_id
Many2one → account.account
domain="[('internal_group', '=', 'liability'), ('account_type', 'not in', ('asset_receivable', 'liability_payable')), ('company_id', '=', id)]"
help='Account used to move the period of an expense'
args: 'account.account'
expense_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', id), ('account_type', '=', 'expense')]"
string='Loss Exchange Rate Account'
fiscal_position_ids
One2many → account.fiscal.position
comodel_name='account.fiscal.position'
inverse_name='company_id'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default='12'
required=True
args: MONTH_SELECTION
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
string='All Users Lock Date'
tracking=True
income_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', id), ('internal_group', '=', 'income')]"
string='Gain Exchange Rate Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_email
Boolean
default=True
args: 'Email by default'
invoice_is_print
Boolean
default=True
args: 'Print by default'
invoice_terms
Html
string='Default Terms and Conditions'
translate=True
invoice_terms_html
Html
compute='_compute_invoice_terms_html'
readonly=False
sanitize_attributes=False
store=True
string='Default Terms and Conditions as a Web page'
translate=True
multi_vat_foreign_country_ids
Many2many → res.country
comodel_name='res.country'
compute='_compute_multi_vat_foreign_country'
help='Countries for which the company has a VAT number'
string='Foreign VAT countries'
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
string='Journals Entries Lock Date'
tracking=True
property_stock_account_input_categ_id
Many2one → account.account
string='Input Account for Stock Valuation'
args: 'account.account'
property_stock_account_output_categ_id
Many2one → account.account
string='Output Account for Stock Valuation'
args: 'account.account'
property_stock_valuation_account_id
Many2one → account.account
string='Account Template for Stock Valuation'
args: 'account.account'
qr_code
Boolean
string='Display QR-code on invoices'
quick_edit_mode
Selection
selection=[('out_invoices', 'Customer Invoices'), ('in_invoices', 'Vendor Bills'), ('out_and_in_invoices', 'Customer Invoices and Vendor Bills')]
string='Quick encoding'
revenue_accrual_account_id
Many2one → account.account
domain="[('internal_group', '=', 'asset'), ('account_type', 'not in', ('asset_receivable', 'liability_payable')), ('company_id', '=', id)]"
help='Account used to move the period of a revenue'
args: 'account.account'
tax_calculation_rounding_method
Selection
default='round_per_line'
string='Tax Calculation Rounding Method'
args: [('round_per_line', 'Round per Line'), ('round_globally', 'Round Globally')]
tax_cash_basis_journal_id
Many2one → account.journal
comodel_name='account.journal'
string='Cash Basis Journal'
tax_exigibility
Boolean
string='Use Cash Basis'
tax_lock_date
Date
help='No users can edit journal entries related to a tax prior and inclusive of this date.'
string='Tax Return Lock Date'
tracking=True
terms_type
Selection
default='plain'
string='Terms & Conditions format'
args: [('plain', 'Add a Note'), ('html', 'Add a link to a Web Page')]
transfer_account_code_prefix
Char
string='Prefix of the transfer accounts'
transfer_account_id
Many2one → account.account
domain="[('reconcile', '=', True), ('account_type', '=', 'asset_current'), ('deprecated', '=', False)]"
help='Intermediary account used when moving money from a liqity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
action_close_account_dashboard_onboarding(self)
action_close_account_invoice_onboarding(self)
action_open_account_onboarding_create_invoice(self)
action_open_account_onboarding_sale_tax(self)
action_open_taxes_onboarding(self)
action_save_onboarding_invoice_layout(self)
action_save_onboarding_sale_tax(self)
compute_account_tax_fiscal_country(self)
compute_fiscalyear_dates(self, current_date)
create_op_move_if_non_existant(self)
get_account_dashboard_onboarding_steps_states_names(self)
get_account_invoice_onboarding_steps_states_names(self)
get_and_update_account_dashboard_onboarding_state(self)
get_and_update_account_invoice_onboarding_state(self)
get_chart_of_accounts_or_fail(self)
get_new_account_code(self, current_code, old_prefix, new_prefix)
get_opening_move_differences(self, opening_move_lines)
get_unaffected_earnings_account(self)
opening_move_posted(self)
reflect_code_prefix_change(self, old_code, new_code)
setting_chart_of_accounts_action(self)
setting_init_bank_account_action(self)
setting_init_fiscal_year_action(self)
write(self, values)
account_cash_basis_base_account_id
Many2one → account.account
comodel_name='account.account'
domain=[('deprecated', '=', False)]
readonly=False
related='company_id.account_cash_basis_base_account_id'
string='Base Tax Received Account'
account_default_credit_limit
Monetary
compute='_compute_account_default_credit_limit'
help='This is the default credit limit that will be used on partners that do not have a specific limit on them.'
inverse='_inverse_account_default_credit_limit'
readonly=False
string='Default Credit Limit'
account_fiscal_country_id
Many2one
readonly=False
related='company_id.account_fiscal_country_id'
store=False
string='Fiscal Country Code'
account_journal_early_pay_discount_gain_account_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', 'in', ('income', 'income_other', 'expense'))]"
help='Account for the difference amount after the income discount has been granted'
readonly=False
related='company_id.account_journal_early_pay_discount_gain_account_id'
string='Cash Discount Gain account'
account_journal_early_pay_discount_loss_account_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', 'in', ('expense', 'income', 'income_other'))]"
help='Account for the difference amount after the expense discount has been granted'
readonly=False
related='company_id.account_journal_early_pay_discount_loss_account_id'
string='Cash Discount Loss account'
account_journal_payment_credit_account_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', '=', 'asset_current')]"
help='Outgoing Payments are posted on an Outstanding Payments Account. In the bank reconciliation widget, they appear as blue lines.\nBank transactions are then reconciled on the Outstanding Payments Account rather the Payable Account.'
readonly=False
related='company_id.account_journal_payment_credit_account_id'
string='Outstanding Payments Account'
account_journal_payment_debit_account_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', '=', 'asset_current')]"
help='Incoming payments are posted on an Outstanding Receipts Account. In the bank reconciliation widget, they appear as blue lines.\nBank transactions are then reconciled on the Outstanding Receipts Accounts rather than the Receivable Account.'
readonly=False
related='company_id.account_journal_payment_debit_account_id'
string='Outstanding Receipts Account'
account_journal_suspense_account_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', 'in', ('asset_current', 'liability_current'))]"
help='Bank Transactions are posted immediately after import or synchronization. Their counterparty is the bank suspense account.\nReconciliation replaces the latter by the definitive account(s).'
readonly=False
related='company_id.account_journal_suspense_account_id'
string='Bank Suspense Account'
account_storno
Boolean
readonly=False
related='company_id.account_storno'
string='Storno accounting'
account_use_credit_limit
Boolean
help='Enable the use of credit limit on partners.'
readonly=False
related='company_id.account_use_credit_limit'
string='Sales Credit Limit'
chart_template_id
Many2one → account.chart.template
default=<expr>
domain="[('visible','=', True)]"
string='Template'
args: 'account.chart.template'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_exchange_journal_id
Many2one → account.journal
comodel_name='account.journal'
domain="[('company_id', '=', company_id), ('type', '=', 'general')]"
help='The accounting journal where automatic exchange differences will be registered'
readonly=False
related='company_id.currency_exchange_journal_id'
string='Currency Exchange Journal'
currency_id
Many2one → res.currency
help='Main currency of the company.'
readonly=False
related='company_id.currency_id'
required=True
string='Currency'
args: 'res.currency'
early_pay_discount_computation
Selection
readonly=False
related='company_id.early_pay_discount_computation'
string='Tax setting'
expense_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('account_type', '=', 'expense')]"
readonly=False
related='company_id.expense_currency_exchange_account_id'
string='Loss Account'
group_cash_rounding
Boolean
implied_group='account.group_cash_rounding'
string='Cash Rounding'
group_sale_delivery_address
Boolean
implied_group='account.group_delivery_invoice_address'
args: 'Customer Addresses'
group_show_line_subtotals_tax_excluded
Boolean
compute='_compute_group_show_line_subtotals'
group='base.group_portal,base.group_user,base.group_public'
implied_group='account.group_show_line_subtotals_tax_excluded'
readonly=False
store=True
args: 'Show line subtotals without taxes (B2B)'
group_show_line_subtotals_tax_included
Boolean
compute='_compute_group_show_line_subtotals'
group='base.group_portal,base.group_user,base.group_public'
implied_group='account.group_show_line_subtotals_tax_included'
readonly=False
store=True
args: 'Show line subtotals with taxes (B2C)'
group_show_purchase_receipts
Boolean
implied_group='account.group_purchase_receipts'
string='Purchase Receipt'
group_show_sale_receipts
Boolean
implied_group='account.group_sale_receipts'
string='Sale Receipt'
group_warning_account
Boolean
implied_group='account.group_warning_account'
string='Warnings in Invoices'
has_accounting_entries
Boolean
compute='_compute_has_chart_of_accounts'
has_chart_of_accounts
Boolean
compute='_compute_has_chart_of_accounts'
string='Company has a chart of accounts'
income_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('internal_group', '=', 'income')]"
readonly=False
related='company_id.income_currency_exchange_account_id'
string='Gain Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
readonly=False
related='company_id.incoterm_id'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_email
Boolean
readonly=False
related='company_id.invoice_is_email'
string='Send Email'
invoice_is_print
Boolean
readonly=False
related='company_id.invoice_is_print'
string='Print'
invoice_terms
Html
readonly=False
related='company_id.invoice_terms'
string='Terms & Conditions'
invoice_terms_html
Html
readonly=False
related='company_id.invoice_terms_html'
string='Terms & Conditions as a Web page'
is_account_peppol_eligible
Boolean
compute='_compute_is_account_peppol_eligible'
string='PEPPOL eligible'
module_account_accountant
Boolean
string='Accounting'
module_account_bank_statement_import_camt
Boolean
module_account_bank_statement_import_csv
Boolean
module_account_bank_statement_import_ofx
Boolean
module_account_bank_statement_import_qif
Boolean
module_account_batch_payment
Boolean
help='This allows you grouping payments into a single batch and eases the reconciliation process.\n-This installs the account_batch_payment module.'
string='Use batch payments'
module_account_budget
Boolean
string='Budget Management'
module_account_check_printing
Boolean
module_account_intrastat
Boolean
string='Intrastat'
module_account_invoice_extract
Boolean
string='Document Digitization'
module_account_payment
Boolean
string='Invoice Online Payment'
module_account_reports
Boolean
module_account_sepa
Boolean
string='SEPA Credit Transfer (SCT)'
module_account_sepa_direct_debit
Boolean
string='Use SEPA Direct Debit'
module_account_taxcloud
Boolean
string='Account TaxCloud'
module_currency_rate_live
Boolean
string='Automatic Currency Rates'
module_l10n_eu_oss
Boolean
string='EU Intra-community Distance Selling'
module_product_margin
Boolean
string='Allow Product Margin'
module_snailmail_account
Boolean
string='Snailmail'
preview_ready
Boolean
compute='_compute_terms_preview'
string='Display preview button'
purchase_tax_id
Many2one → account.tax
readonly=False
related='company_id.account_purchase_tax_id'
string='Default Purchase Tax'
args: 'account.tax'
qr_code
Boolean
readonly=False
related='company_id.qr_code'
string='Display SEPA QR-code'
quick_edit_mode
Selection
readonly=False
related='company_id.quick_edit_mode'
string='Quick encoding'
sale_tax_id
Many2one → account.tax
readonly=False
related='company_id.account_sale_tax_id'
string='Default Sale Tax'
args: 'account.tax'
show_line_subtotals_tax_selection
Selection
config_parameter='account.show_line_subtotals_tax_selection'
default='tax_excluded'
required=True
string='Line Subtotals Tax Display'
args: [('tax_excluded', 'Tax Excluded'), ('tax_included', 'Tax Included')]
tax_calculation_rounding_method
Selection
readonly=False
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_cash_basis_journal_id
Many2one → account.journal
readonly=False
related='company_id.tax_cash_basis_journal_id'
string='Tax Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
readonly=False
related='company_id.tax_exigibility'
string='Cash Basis'
terms_type
Selection
readonly=False
related='company_id.terms_type'
transfer_account_id
Many2one → account.account
domain=[('reconcile', '=', True), ('account_type', '=', 'asset_current'), ('deprecated', '=', False)]
help='Intermediary account used when moving from a liquidity account to another.'
readonly=False
related='company_id.transfer_account_id'
string='Internal Transfer Account'
args: 'account.account'
use_invoice_terms
Boolean
config_parameter='account.use_invoice_terms'
string='Default Terms & Conditions'
action_update_terms(self)
onchange_analytic_accounting(self)
onchange_module_account_budget(self)
set_values(self)
display_rounding_warning
Boolean
compute='_compute_display_rounding_warning'
help="The warning informs a rounding factor change might be dangerous on res.currency's form view."
string='Display Rounding Warning'
write(self, vals)
No new fields.
Public methods (1)get_application_groups(self, domain)
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Partner Contracts'
args: 'account.analytic.account', 'partner_id'
credit
Monetary
compute='_credit_debit_get'
groups='account.group_account_invoice,account.group_account_readonly'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
credit_limit
Float
company_dependent=True
copy=False
groups='account.group_account_invoice,account.group_account_readonly'
help='Credit limit specific to this partner.'
readonly=False
string='Credit Limit'
currency_id
Many2one → res.currency
compute='_get_company_currency'
readonly=True
string='Currency'
args: 'res.currency'
customer_rank
Integer
copy=False
default=0
debit
Monetary
compute='_credit_debit_get'
groups='account.group_account_invoice,account.group_account_readonly'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
debit_limit
Monetary
duplicated_bank_account_partners_count
Integer
compute='_compute_duplicated_bank_account_partners_count'
has_unreconciled_entries
Boolean
compute='_compute_has_unreconciled_entries'
help='The partner has at least one unreconciled debit and credit since last time the invoices & payments matching was performed.'
invoice_ids
One2many → account.move
copy=False
readonly=True
string='Invoices'
args: 'account.move', 'partner_id'
invoice_warn
Selection
default='no-message'
help=WARNING_HELP
args: WARNING_MESSAGE, 'Invoice'
invoice_warn_msg
Text
is_coa_installed
Boolean
default=<expr>
store=False
journal_item_count
Integer
compute='_compute_journal_item_count'
string='Journal Items'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed for this partner. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit or if you click the "Done" button.'
readonly=True
string='Latest Invoices & Payments Matching Date'
property_account_payable_id
Many2one → account.account
company_dependent=True
domain="[('account_type', '=', 'liability_payable'), ('deprecated', '=', False), ('company_id', '=', current_company_id)]"
help='This account will be used instead of the default one as the payable account for the current partner'
required=True
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
company_dependent=True
domain="[('company_id', '=', current_company_id)]"
help='The fiscal position determines the taxes/accounts used for this contact.'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
company_dependent=True
domain="[('account_type', '=', 'asset_receivable'), ('deprecated', '=', False), ('company_id', '=', current_company_id)]"
help='This account will be used instead of the default one as the receivable account for the current partner'
required=True
string='Account Receivable'
args: 'account.account'
property_payment_term_id
Many2one → account.payment.term
company_dependent=True
domain="[('company_id', 'in', [current_company_id, False])]"
help='This payment term will be used instead of the default one for sales orders and customer invoices'
string='Customer Payment Terms'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
company_dependent=True
domain="[('company_id', 'in', [current_company_id, False])]"
help='This payment term will be used instead of the default one for purchase orders and vendor bills'
string='Vendor Payment Terms'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
show_credit_limit
Boolean
compute='_compute_show_credit_limit'
default=<expr>
groups='account.group_account_invoice,account.group_account_readonly'
supplier_invoice_count
Integer
compute='_compute_supplier_invoice_count'
string='# Vendor Bills'
supplier_rank
Integer
copy=False
default=0
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice,account.group_account_readonly'
string='Total Invoiced'
trust
Selection
company_dependent=True
default='normal'
string='Degree of trust you have in this debtor'
args: [('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')]
use_partner_credit_limit
Boolean
compute='_compute_use_partner_credit_limit'
groups='account.group_account_invoice,account.group_account_readonly'
help='Set a value greater than 0.0 to activate a credit limit check'
inverse='_inverse_use_partner_credit_limit'
string='Partner Limit'
action_view_partner_invoices(self)
action_view_partner_with_same_bank(self)
can_edit_vat(self)
create(self, vals_list)
get_partner_localisation_fields_required_to_invoice(self, country_id)
mark_as_reconciled(self)
acc_holder_name
Char
tracking=True
acc_number
Char
tracking=True
active
Boolean
tracking=True
allow_out_payment
Boolean
tracking=True
bank_id
Many2one
tracking=True
currency_id
Many2one
tracking=True
journal_id
One2many → account.journal
domain=[('type', '=', 'bank')]
help='The accounting journal corresponding to this bank account.'
readonly=True
string='Account Journal'
args: 'account.journal', 'bank_account_id'
partner_id
Many2one
tracking=True
build_qr_code_base64(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
build_qr_code_url(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
create(self, vals_list)
default_get(self, fields_list)
get_available_qr_methods_in_sequence(self)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
sequence_number
Integer
compute='_compute_split_sequence'
store=True
sequence_prefix
Char
compute='_compute_split_sequence'
store=True
init(self)
force_post
Boolean
help='Entries in the future are set to be auto-posted by default. Check this checkbox to post them now.'
string='Force'
validate_move(self)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account.account_terms_conditions_setting_banner |
Account Terms and Conditions Setting Banner | ir.ui.view | qweb | New |
account_analytic_account_view_form_inherit |
account.analytic.account.form.inherit | account.analytic.account | div | Inherits analytic.view_account_analytic_account_form |
account_analytic_account_view_list_inherit |
account.analytic.account.list.inherit | account.analytic.account | field | Inherits analytic.view_account_analytic_account_list |
account_automatic_entry_wizard_form |
account.automatic.entry.wizard.form | account.automatic.entry.wizard | form | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_common_report_view |
Common Report | account.common.report | form | New |
account_dashboard_onboarding_panel |
account.dashboard.onboarding.panel | ir.ui.view | qweb | New |
account_default_terms_and_conditions |
account_default_terms_and_conditions | ir.ui.view | qweb | New |
account_incoterms_form |
account.incoterms.form | account.incoterms | form | New |
account_incoterms_view_search |
account.incoterms.search | account.incoterms | search | New |
account_invoice_onboarding_panel |
account.invoice.onboarding.panel | ir.ui.view | qweb | New |
account_invoice_onboarding_sale_tax_form |
account.invoice.layout.onboarding.form | res.company | form | New |
account_invoice_report_view_tree |
account.invoice.report.view.tree | account.invoice.report | tree | New |
account_invoice_send_wizard_form |
account.invoice.send.form | account.invoice.send | form | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_journal_dashboard_kanban_view_js |
account.journal.dashboard.kanban.js | account.journal | xpath | Inherits account.account_journal_dashboard_kanban_view |
account_journal_view_kanban |
account.journal.kanban | account.journal | kanban | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_view_kanban |
account.move.line.kanban | account.move.line | kanban | New |
account_move_line_view_kanban_mobile |
account.move.line.kanban.mobile | account.move.line | xpath | Inherits account_move_line_view_kanban |
account_resequence_view |
Re-sequence Journal Entries | account.resequence.wizard | form | New |
account_tag_view_form |
Tags | account.account.tag | form | New |
account_tag_view_search |
account.tag.view.search | account.account.tag | search | New |
account_tag_view_tree |
Tags | account.account.tag | tree | New |
account_tax_carryover_line_form |
account.tax.carryover.line.form | account.tax.carryover.line | form | New |
account_tax_carryover_line_tree |
account.tax.carryover.line.tree | account.tax.carryover.line | tree | New |
account_tax_group_view_search |
account.tax.group.search.filters | account.tax.group | search | New |
account_tax_report_form |
account.tax.report.form | account.tax.report | form | New |
account_tax_report_line_form |
account.tax.report.line.form | account.tax.report.line | form | New |
account_tax_report_line_tree |
account.tax.report.line.tree | account.tax.report.line | tree | New |
account_tax_report_search |
account.tax.report.search | account.tax.report | search | New |
account_tax_report_tree |
account.tax.report.tree | account.tax.report | tree | New |
account_tax_view_search |
account.tax.search.filters | account.tax | search | New |
account_tax_view_tree |
account.invoice.line.tax.search | account.tax | tree | New |
account_terms_conditions_page |
Terms & Conditions | ir.ui.view | qweb | New |
account_tour_upload_bill |
account.tour.upload.bill | account.tour.upload.bill | form | New |
account_tour_upload_bill_email_confirm |
account.tour.upload.bill.email.confirm | account.tour.upload.bill.email.confirm | form | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
bill_preview |
bill_preview | ir.ui.view | qweb | New |
cash_box_out_form |
cash_box_out | cash.box.out | form | New |
digest_digest_view_form |
digest.digest.view.form.inherit.account.account | digest.digest | xpath | Inherits digest.digest_digest_view_form |
document_tax_totals |
document_tax_totals | ir.ui.view | qweb | New |
init_accounts_tree |
account.setup.opening.move.line.tree | account.account | tree | New |
onboarding_bank_account_step |
onboarding_bank_account_step | ir.ui.view | qweb | New |
onboarding_chart_of_account_step |
onboarding_chart_of_account_step | ir.ui.view | qweb | New |
onboarding_create_invoice_step |
onboarding_create_invoice_step | ir.ui.view | qweb | New |
onboarding_fiscal_year_step |
onboarding_fiscal_year_step | ir.ui.view | qweb | New |
onboarding_invoice_layout_step |
onboarding_invoice_layout_step | ir.ui.view | qweb | New |
onboarding_sale_tax_step |
onboarding_sale_tax_step | ir.ui.view | qweb | New |
onboarding_taxes_step |
onboarding_taxes_step | ir.ui.view | qweb | New |
partner_view_buttons |
partner.view.buttons | res.partner | div | Inherits base.view_partner_form |
portal_invoice_error |
Invoice error/warning display | ir.ui.view | qweb | New |
portal_invoice_page |
Invoice Portal Template | ir.ui.view | qweb | Inherits portal.portal_sidebar |
portal_invoice_success |
Invoice success display | ir.ui.view | qweb | New |
portal_my_home_invoice |
Show Invoices & Bills | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_invoice |
Portal layout : invoice menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_invoices |
My Invoices and Payments | ir.ui.view | qweb | New |
product_template_form_view |
product.template.form.inherit | product.template | xpath | Inherits product.product_template_form_view |
product_template_view_tree |
product.template.tree | product.template | tree | New |
report_hash_integrity |
report_hash_integrity | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_invoice_with_payments |
report_invoice_with_payments | ir.ui.view | qweb | New |
report_journal |
report_journal | ir.ui.view | qweb | New |
report_original_vendor_bill |
report_original_vendor_bill | ir.ui.view | qweb | New |
report_payment_receipt |
report_payment_receipt | ir.ui.view | qweb | New |
report_payment_receipt_document |
report_payment_receipt_document | ir.ui.view | qweb | New |
report_statement |
report_statement | ir.ui.view | qweb | New |
res_company_view_form_terms |
res.company.view.form.terms | res.company | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.account | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_currency_form_inherit |
res.currency.form.inherit | res.currency | xpath | Inherits base.view_currency_form |
res_partner_view_search |
res.partner.search.inherit | res.partner | xpath | Inherits base.view_res_partner_filter |
rounding_form_view |
account.cash.rounding.form | account.cash.rounding | form | New |
rounding_search_view |
account.cash.rounding.search | account.cash.rounding | search | New |
rounding_tree_view |
account.cash.rounding.tree | account.cash.rounding | tree | New |
setup_bank_account_wizard |
account.online.sync.res.partner.bank.setup.form | account.setup.bank.manual.config | form | New |
setup_financial_year_opening_form |
account.financial.year.op.setup.wizard.form | account.financial.year.op | form | New |
tax_adjustments_wizard |
tax.adjustments.wizard.form | tax.adjustments.wizard | form | New |
tax_groups_totals |
tax_groups_totals | ir.ui.view | qweb | New |
tax_repartition_line_tree |
account.tax.repartition.line.tree | account.tax.repartition.line | tree | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_account_kanban |
account.account.kanban | account.account | kanban | New |
view_account_accrued_orders_wizard |
account.accrued.orders.wizard.view | account.accrued.orders.wizard | form | New |
view_account_analytic_default_form |
account.analytic.default.form | account.analytic.default | form | New |
view_account_analytic_default_form_search |
account.analytic.default.search | account.analytic.default | search | New |
view_account_analytic_default_kanban |
account.analytic.default.kanban | account.analytic.default | kanban | New |
view_account_analytic_default_tree |
account.analytic.default.tree | account.analytic.default | tree | New |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.tree.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_bnk_stmt_cashbox |
account.bnk_stmt_cashbox.form | account.bank.statement.cashbox | form | New |
view_account_bnk_stmt_cashbox_footer |
account.bnk_stmt_cashbox.form | account.bank.statement.cashbox | xpath | Inherits view_account_bnk_stmt_cashbox |
view_account_bnk_stmt_check |
account.bnk_stmt_check.form | account.bank.statement.closebalance | form | New |
view_account_chart_template_form |
account.chart.template.form | account.chart.template | form | New |
view_account_chart_template_seacrh |
account.chart.template.search | account.chart.template | search | New |
view_account_chart_template_tree |
account.chart.template.tree | account.chart.template | tree | New |
view_account_form |
account.account.form | account.account | form | New |
view_account_group_form |
account.group.form | account.group | form | New |
view_account_group_search |
account.group.search | account.group | search | New |
view_account_group_tree |
account.group.tree | account.group | tree | New |
view_account_invoice_filter |
account.invoice.select | account.move | search | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_invoice_report_search_analytic_accounting |
account.invoice.report.search_analytic_accounting | account.invoice.report | filter | Inherits account.view_account_invoice_report_search |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_group_form |
account.journal.group.form | account.journal.group | form | New |
view_account_journal_group_tree |
account.journal.group.tree | account.journal.group | tree | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_kanban |
account.move.kanban | account.move | kanban | New |
view_account_move_line_filter |
account.move.line.search | account.move.line | search | New |
view_account_move_line_filter_with_root_selection |
account.move.line.search | account.move.line | xpath | Inherits account.view_account_move_line_filter |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_kanban |
account.payment.kanban | account.payment | kanban | New |
view_account_payment_register_form |
account.payment.register.form | account.payment.register | form | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_term_kanban |
account.payment.term.kanban | account.payment.term | kanban | New |
view_account_payment_tree |
account.payment.tree | account.payment | tree | New |
view_account_position_filter |
account.fiscal.position.filter | account.fiscal.position | search | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_reconcile_model_form |
account.reconcile.model.form | account.reconcile.model | form | New |
view_account_reconcile_model_line_form |
account.reconcile.model.line.form | account.reconcile.model.line | form | New |
view_account_reconcile_model_search |
account.reconcile.model.search | account.reconcile.model | search | New |
view_account_reconcile_model_tree |
account.reconcile.model.tree | account.reconcile.model | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_supplier_payment_tree |
account.supplier.payment.tree | account.payment | field | Inherits account.view_account_payment_tree |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_template_form |
account.account.template.form | account.account.template | form | New |
view_account_template_search |
account.account.template.search | account.account.template | search | New |
view_account_template_tree |
account.account.template.tree | account.account.template | tree | New |
view_account_type_form |
account.account.type.form | account.account.type | form | New |
view_account_type_search |
account.account.type.search | account.account.type | search | New |
view_account_type_tree |
account.account.type.tree | account.account.type | tree | New |
view_account_various_payment_tree |
account.supplier.payment.tree | account.payment | field | Inherits account.view_account_payment_tree |
view_bank_statement_form |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_line_form |
bank.statement.line.form | account.bank.statement.line | form | New |
view_bank_statement_line_search |
account.bank.statement.line.search | account.bank.statement.line | search | New |
view_bank_statement_line_tree |
account.bank.statement.line.tree | account.bank.statement.line | tree | New |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_company_form |
res.company.form.inherit.account | res.company | xpath | Inherits base.view_company_form |
view_company_partner_bank_form |
company.res.partner.bank.form | res.partner.bank | xpath | Inherits base.view_partner_bank_form |
view_full_reconcile_form |
account.full.reconcile.form | account.full.reconcile | form | New |
view_in_invoice_bill_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_receipt_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_refund_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_in_invoice_tree |
view_in_invoice_tree |
account.out.invoice.tree | account.move | xpath | Inherits account.view_invoice_tree |
view_incoterms_tree |
account.incoterms.tree | account.incoterms | tree | New |
view_invoice_tree |
account.invoice.tree | account.move | tree | New |
view_module_filter_inherit_account |
ir.module.module.list.inherit.account | ir.module.module | xpath | Inherits base.view_module_filter |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_pivot |
account.move.line.pivot | account.move.line | pivot | New |
view_move_line_tax_audit_tree |
account.move.line.tax.audit.tree | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_line_tree_grouped |
account.move.line.tree.grouped | account.move.line | tree | New |
view_move_line_tree_grouped_bank_cash |
account.move.line.tree.grouped.bank.cash | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_general |
account.move.line.tree.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_misc |
account.move.line.tree.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_partner |
account.move.line.tree.grouped.partner | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_sales_purchases |
account.move.line.tree.grouped.sales.purchase | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_tree |
account.move.tree | account.move | tree | New |
view_out_credit_note_tree |
account.out.invoice.tree | account.move | field | Inherits account.view_invoice_tree |
view_out_invoice_tree |
account.out.invoice.tree | account.move | xpath | Inherits account.view_invoice_tree |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | page | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_line_form |
account.payment.term.line.form | account.payment.term.line | form | New |
view_payment_term_line_tree |
account.payment.term.line.tree | account.payment.term.line | tree | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_payment_term_tree |
account.payment.term.tree | account.payment.term | tree | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_group_tree |
account.tax.group.tree | account.tax.group | tree | New |
view_tax_kanban |
account.tax.kanban | account.tax | kanban | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
allowed_journal_ids
Many2many → account.journal
help='Define in which journals this account can be used. If empty, can be used in all journals.'
string='Allowed Journals'
args: 'account.journal'
code
Char
index=True
required=True
size=64
tracking=True
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this account currency.'
string='Account Currency'
tracking=True
args: 'res.currency'
current_balance
Float
compute='_compute_current_balance'
deprecated
Boolean
default=False
index=True
tracking=True
group_id
Many2one → account.group
compute='_compute_account_group'
help='Account prefixes can determine account groups.'
readonly=True
store=True
args: 'account.group'
internal_group
Selection
readonly=True
related='user_type_id.internal_group'
store=True
string='Internal Group'
internal_type
Selection
readonly=True
related='user_type_id.type'
store=True
string='Internal Type'
is_off_balance
Boolean
compute='_compute_is_off_balance'
default=False
readonly=True
store=True
name
Char
index=True
required=True
string='Account Name'
tracking=True
note
Text
tracking=True
args: 'Internal Notes'
opening_balance
Monetary
compute='_compute_opening_debit_credit'
help='Opening balance value for this account.'
string='Opening Balance'
opening_credit
Monetary
compute='_compute_opening_debit_credit'
help='Opening credit value for this account.'
inverse='_set_opening_credit'
string='Opening Credit'
opening_debit
Monetary
compute='_compute_opening_debit_credit'
help='Opening debit value for this account.'
inverse='_set_opening_debit'
string='Opening Debit'
reconcile
Boolean
default=False
help='Check this box if this account allows invoices & payments matching of journal items.'
string='Allow Reconciliation'
tracking=True
related_taxes_amount
Integer
compute='_compute_related_taxes_amount'
root_id
Many2one → account.root
compute='_compute_account_root'
store=True
args: 'account.root'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Tags'
args: 'account.account.tag', 'account_account_account_tag'
tax_ids
Many2many → account.tax
check_company=True
context={'append_type_to_tax_name': True}
string='Default Taxes'
args: 'account.tax', 'account_account_tax_default_rel', 'account_id', 'tax_id'
used
Boolean
compute='_compute_used'
search='_search_used'
user_type_id
Many2one → account.account.type
help='Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.'
required=True
string='Type'
tracking=True
args: 'account.account.type'
action_duplicate_accounts(self)
action_open_related_taxes(self)
action_read_account(self)
copy(self, default=None)
default_get(self, default_fields)
load(self, fields, data)
name_get(self)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the Account Tag without removing it.'
applicability
Selection
default='accounts'
required=True
args: [('accounts', 'Accounts'), ('taxes', 'Taxes'), ('products', 'Products')]
color
Integer
country_id
Many2one → res.country
comodel_name='res.country'
help='Country for which this tag is available, when applied on taxes.'
string='Country'
name
Char
required=True
args: 'Tag Name'
tax_negate
Boolean
help='Check this box to negate the absolute value of the balance of the lines associated with this tag in tax report computation.'
string='Negate Tax Balance'
tax_report_line_ids
Many2many → account.tax.report.line
comodel_name='account.tax.report.line'
help='The tax report lines using this tag'
relation='account_tax_report_line_tags_rel'
string='Tax Report Lines'
name_get(self)
chart_template_id
Many2one → account.chart.template
help="This optional field allow you to link an account template to a specific chart template that may differ from the one its root parent belongs to. This allow you to define chart templates that extend another and complete it with few new accounts (You don't need to define the whole structure that is common to both several times)."
string='Chart Template'
args: 'account.chart.template'
code
Char
index=True
required=True
size=64
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
name
Char
index=True
required=True
nocreate
Boolean
default=False
help='If checked, the new chart of accounts will not contain this by default.'
string='Optional Create'
note
Text
reconcile
Boolean
default=False
help='Check this option if you want the user to reconcile entries in this account.'
string='Allow Invoices & payments Matching'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag', 'account_account_template_account_tag'
tax_ids
Many2many → account.tax.template
string='Default Taxes'
args: 'account.tax.template', 'account_account_template_tax_rel', 'account_id', 'tax_id'
user_type_id
Many2one → account.account.type
help='These types are defined according to your country. The type contains more information about the account and its specificities.'
required=True
string='Type'
args: 'account.account.type'
name_get(self)
include_initial_balance
Boolean
help='Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set.'
string='Bring Accounts Balance Forward'
internal_group
Selection
help="The 'Internal Group' is used to filter accounts based on the internal group set on the account type."
required=True
string='Internal Group'
args: [('equity', 'Equity'), ('asset', 'Asset'), ('liability', 'Liability'), ('income', 'Income'), ('expense', 'Expense'), ('off_balance', 'Off Balance')]
name
Char
required=True
string='Account Type'
translate=True
note
Text
string='Description'
type
Selection
default='other'
help="The 'Internal Type' is used for features available on different types of accounts: liquidity type is for cash or bank accounts, payable/receivable is for vendor/customer accounts."
required=True
args: [('other', 'Regular'), ('receivable', 'Receivable'), ('payable', 'Payable'), ('liquidity', 'Liquidity')]
No public methods.
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain=_get_account_domain
required=True
string='Accrual Account'
amount
Monetary
help='Specify an arbitrary value that will be accrued on a default account for the entire order, regardless of the products on the different lines.'
string='Amount'
company_id
Many2one → res.company
default=_get_default_company
args: 'res.company'
currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
date
Date
default=_get_default_date
required=True
display_amount
Boolean
compute='_compute_display_amount'
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
company_dependent=True
compute='_compute_journal_id'
default=_get_default_journal
domain="[('type', '=', 'general'), ('company_id', '=', company_id)]"
readonly=False
required=True
string='Journal'
preview_data
Text
compute='_compute_preview_data'
reversal_date
Date
compute='_compute_reversal_date'
readonly=False
required=True
create_entries(self)
credit
Monetary
groups='account.group_account_readonly'
debit
Monetary
groups='account.group_account_readonly'
invoice_count
Integer
compute='_compute_invoice_count'
args: 'Invoice Count'
vendor_bill_count
Integer
compute='_compute_vendor_bill_count'
args: 'Vendor Bill Count'
action_view_invoice(self)
action_view_vendor_bill(self)
account_id
Many2one → account.account
help='Select an accounting account which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this account, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Account'
args: 'account.account'
analytic_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
analytic_tag_ids
Many2many → account.analytic.tag
string='Analytic Tags'
args: 'account.analytic.tag'
company_id
Many2one → res.company
help='Select a company which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this company, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Company'
args: 'res.company'
date_start
Date
help='Default start date for this Analytic Account.'
string='Start Date'
date_stop
Date
help='Default end date for this Analytic Account.'
string='End Date'
partner_id
Many2one → res.partner
help='Select a partner which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Partner'
args: 'res.partner'
product_id
Many2one → product.product
help='Select a product which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Product'
args: 'product.product'
sequence
Integer
help='Gives the sequence order when displaying a list of analytic distribution'
string='Sequence'
user_id
Many2one → res.users
help='Select a user which will use analytic account specified in analytic default.'
ondelete='cascade'
string='User'
args: 'res.users'
account_get(self, product_id=None, partner_id=None, account_id=None, user_id=None, date=None, company_id=None)
category
Selection
selection_add=[('invoice', 'Customer Invoice'), ('vendor_bill', 'Vendor Bill')]
code
Char
size=8
general_account_id
Many2one → account.account
compute_sudo=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
ondelete='restrict'
readonly=True
related='move_id.account_id'
store=True
string='Financial Account'
args: 'account.account'
move_id
Many2one → account.move.line
check_company=True
index=True
ondelete='cascade'
string='Journal Item'
args: 'account.move.line'
product_id
Many2one → product.product
check_company=True
string='Product'
args: 'product.product'
ref
Char
string='Ref.'
on_change_unit_amount(self)
view_header_get(self, view_id, view_type)
No new fields.
Public methods (0)No public methods.
account_type
Selection
compute='_compute_account_type'
store=True
args: [('income', 'Revenue'), ('expense', 'Expense')]
action
Selection
required=True
args: [('change_period', 'Change Period'), ('change_account', 'Change Account')]
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
date
Date
default=<expr>
required=True
destination_account_id
Many2one → account.account
comodel_name='account.account'
help='Account to transfer to.'
string='To'
display_currency_helper
Boolean
compute='_compute_display_currency_helper'
help='Technical field. Used to indicate whether or not to display the currency conversion tooltip. The tooltip informs a currency conversion will be performed with the transfer.'
string='Currency Conversion Helper'
expense_accrual_account
Many2one → account.account
compute='_compute_expense_accrual_account'
domain="[('company_id', '=', company_id),('internal_type', 'not in', ('receivable', 'payable')),('is_off_balance', '=', False)]"
inverse='_inverse_expense_accrual_account'
readonly=False
args: 'account.account'
journal_id
Many2one → account.journal
compute='_compute_journal_id'
domain="[('company_id', '=', company_id), ('type', '=', 'general')]"
help='Journal where to create the entry.'
inverse='_inverse_journal_id'
readonly=False
required=True
string='Journal'
args: 'account.journal'
move_data
Text
compute='_compute_move_data'
help='JSON value of the moves to be created'
move_line_ids
Many2many → account.move.line
percentage
Float
compute='_compute_percentage'
help='Percentage of each line to execute the action on.'
readonly=False
store=True
args: 'Percentage'
preview_move_data
Text
compute='_compute_preview_move_data'
help='JSON value of the data to be displayed in the previewer'
revenue_accrual_account
Many2one → account.account
compute='_compute_revenue_accrual_account'
domain="[('company_id', '=', company_id),('internal_type', 'not in', ('receivable', 'payable')),('is_off_balance', '=', False)]"
inverse='_inverse_revenue_accrual_account'
readonly=False
args: 'account.account'
total_amount
Monetary
compute='_compute_total_amount'
currency_field='company_currency_id'
help='Total amount impacted by the automatic entry.'
readonly=False
store=True
default_get(self, fields)
do_action(self)
No new fields.
Public methods (0)No public methods.
all_lines_reconciled
Boolean
compute='_compute_all_lines_reconciled'
help='Technical field indicating if all statement lines are fully reconciled.'
balance_end
Monetary
compute='_end_balance'
help='Balance as calculated based on Opening Balance and transaction lines'
store=True
args: 'Computed Balance'
balance_end_real
Monetary
compute='_compute_ending_balance'
readonly=False
recursive=True
states={'confirm': [('readonly', True)]}
store=True
tracking=True
args: 'Ending Balance'
balance_start
Monetary
compute='_compute_starting_balance'
readonly=False
states={'confirm': [('readonly', True)]}
store=True
string='Starting Balance'
tracking=True
cashbox_end_id
Many2one → account.bank.statement.cashbox
string='Ending Cashbox'
args: 'account.bank.statement.cashbox'
cashbox_start_id
Many2one → account.bank.statement.cashbox
string='Starting Cashbox'
args: 'account.bank.statement.cashbox'
company_id
Many2one → res.company
readonly=True
related='journal_id.company_id'
store=True
string='Company'
args: 'res.company'
country_code
Char
related='company_id.account_fiscal_country_id.code'
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)]}
date_done
Datetime
string='Closed On'
difference
Monetary
compute='_end_balance'
help='Difference between the computed ending balance and the specified ending balance.'
store=True
is_difference_zero
Boolean
compute='_is_difference_zero'
help='Check if difference is zero.'
string='Is zero'
is_valid_balance_start
Boolean
compute='_compute_is_valid_balance_start'
help='Technical field to display a warning message in case starting balance is different than previous ending balance'
store=True
string='Is Valid Balance Start'
journal_id
Many2one → account.journal
check_company=True
default=_default_journal
required=True
states={'confirm': [('readonly', True)]}
string='Journal'
args: 'account.journal'
journal_type
Selection
help='Technical field used for usability purposes'
related='journal_id.type'
line_ids
One2many → account.bank.statement.line
copy=True
states={'confirm': [('readonly', True)]}
string='Statement lines'
args: 'account.bank.statement.line', 'statement_id'
move_line_count
Integer
compute='_get_move_line_count'
move_line_ids
One2many → account.move.line
states={'confirm': [('readonly', True)]}
string='Entry lines'
args: 'account.move.line', 'statement_id'
name
Char
copy=False
readonly=True
states={'open': [('readonly', False)]}
string='Reference'
previous_statement_id
Many2one → account.bank.statement
compute='_get_previous_statement'
help='technical field to compute starting balance correctly'
store=True
args: 'account.bank.statement'
reference
Char
copy=False
help='Used to hold the reference of the external mean that created this statement (name of imported file, reference of online synchronization...)'
readonly=True
states={'open': [('readonly', False)]}
string='External Reference'
state
Selection
copy=False
default='open'
help='The current state of your bank statement:- New: Fully editable with draft Journal Entries.- Processing: No longer editable with posted Journal entries, ready for the reconciliation.- Validated: All lines are reconciled. There is nothing left to process.'
readonly=True
required=True
selection=[('open', 'New'), ('posted', 'Processing'), ('confirm', 'Validated')]
string='Status'
tracking=True
total_entry_encoding
Monetary
compute='_end_balance'
help='Total of transaction lines.'
store=True
args: 'Transactions Subtotal'
user_id
Many2one → res.users
default=<expr>
required=False
string='Responsible'
args: 'res.users'
button_journal_entries(self)
button_post(self)
button_reopen(self)
button_reprocess(self)
button_validate(self)
button_validate_or_action(self)
create(self, values)
onchange_journal_id(self)
open_cashbox_id(self)
unlink(self)
write(self, values)
cashbox_lines_ids
One2many → account.cashbox.line
string='Cashbox Lines'
args: 'account.cashbox.line', 'cashbox_id'
currency_id
Many2one → res.currency
compute='_compute_currency'
args: 'res.currency'
end_bank_stmt_ids
One2many → account.bank.statement
start_bank_stmt_ids
One2many → account.bank.statement
total
Float
compute='_compute_total'
create(self, vals)
default_get(self, fields)
name_get(self)
write(self, vals)
No new fields.
Public methods (1)validate(self)
No new fields.
Public methods (0)No public methods.
account_number
Char
help="Technical field used to store the bank account number before its creation, upon the line's processing"
string='Bank Account Number'
amount
Monetary
currency_field='currency_id'
amount_currency
Monetary
currency_field='foreign_currency_id'
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
amount_residual
Float
compute='_compute_is_reconciled'
help="The amount left to be reconciled on this statement line (signed according to its move lines' balance), expressed in its currency. This is a technical field use to speedup the application of reconciliation models."
store=True
string='Residual Amount'
country_code
Char
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
string='Journal Currency'
args: 'res.currency'
foreign_currency_id
Many2one → res.currency
help='The optional other currency if it is a multi-currency entry.'
string='Foreign Currency'
args: 'res.currency'
is_reconciled
Boolean
compute='_compute_is_reconciled'
help='Technical field indicating if the statement line is already reconciled.'
store=True
string='Is Reconciled'
move_id
Many2one → account.move
auto_join=True
check_company=True
comodel_name='account.move'
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
domain="['|', ('parent_id','=', False), ('is_company','=',True)]"
ondelete='restrict'
string='Partner'
partner_name
Char
help="This field is used to record the third party name when importing bank statement in electronic format, when the partner doesn't exist yet in the database (or cannot be found)."
payment_ids
Many2many → account.payment
comodel_name='account.payment'
help='Payments generated during the reconciliation of this bank statement lines.'
relation='account_payment_account_bank_statement_line_rel'
string='Auto-generated Payments'
payment_ref
Char
required=True
string='Label'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of bank statement lines.'
index=True
state
Selection
readonly=True
related='statement_id.state'
string='Status'
statement_id
Many2one → account.bank.statement
check_company=True
comodel_name='account.bank.statement'
index=True
ondelete='cascade'
required=True
string='Statement'
transaction_type
Char
string='Transaction Type'
button_undo_reconciliation(self)
create(self, vals_list)
reconcile(self, lines_vals_list, to_check=False, allow_partial=False)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
related='profit_account_id.company_id'
args: 'res.company'
loss_account_id
Many2one → account.account
company_dependent=True
domain="[('deprecated', '=', False), ('company_id', '=', current_company_id)]"
string='Loss Account'
args: 'account.account'
name
Char
required=True
string='Name'
translate=True
profit_account_id
Many2one → account.account
company_dependent=True
domain="[('deprecated', '=', False), ('company_id', '=', current_company_id)]"
string='Profit Account'
args: 'account.account'
rounding
Float
default=0.01
help='Represent the non-zero value smallest coinage (for example, 0.05).'
required=True
string='Rounding Precision'
rounding_method
Selection
default='HALF-UP'
help='The tie-breaking rule used for float rounding operations'
required=True
selection=[('UP', 'UP'), ('DOWN', 'DOWN'), ('HALF-UP', 'HALF-UP')]
string='Rounding Method'
strategy
Selection
default='add_invoice_line'
help='Specify which way will be used to round the invoice amount to the rounding precision'
required=True
string='Rounding Strategy'
args: [('biggest_tax', 'Modify tax amount'), ('add_invoice_line', 'Add a rounding line')]
compute_difference(self, currency, amount)
round(self, amount)
validate_rounding(self)
cashbox_id
Many2one → account.bank.statement.cashbox
string='Cashbox'
args: 'account.bank.statement.cashbox'
coin_value
Float
digits=0
required=True
string='Coin/Bill Value'
currency_id
Many2one → res.currency
related='cashbox_id.currency_id'
args: 'res.currency'
number
Integer
help='Opening Unit Numbers'
string='#Coins/Bills'
subtotal
Float
compute='_sub_total'
digits=0
readonly=True
string='Subtotal'
No public methods.
No new fields.
Public methods (0)No public methods.
account_ids
One2many → account.account.template
string='Associated Account Templates'
args: 'account.account.template', 'chart_template_id'
account_journal_payment_credit_account_id
Many2one → account.account.template
string='Journal Outstanding Payments Account'
args: 'account.account.template'
account_journal_payment_debit_account_id
Many2one → account.account.template
string='Journal Outstanding Receipts Account'
args: 'account.account.template'
account_journal_suspense_account_id
Many2one → account.account.template
string='Journal Suspense Account'
args: 'account.account.template'
bank_account_code_prefix
Char
required=True
string='Prefix of the bank accounts'
cash_account_code_prefix
Char
required=True
string='Prefix of the main cash accounts'
code_digits
Integer
default=6
help='No. of Digits to use for account code'
required=True
string='# of Digits'
complete_tax_set
Boolean
default=True
help='This boolean helps you to choose if you want to propose to the user to encode the sale and purchase rates or choose from list of taxes. This last choice assumes that the set of tax defined on this template is complete'
string='Complete Set of Taxes'
country_id
Many2one → res.country
comodel_name='res.country'
help="The country this chart of accounts belongs to. None if it's generic."
string='Country'
currency_id
Many2one → res.currency
required=True
string='Currency'
args: 'res.currency'
default_cash_difference_expense_account_id
Many2one → account.account.template
string='Cash Difference Expense Account'
args: 'account.account.template'
default_cash_difference_income_account_id
Many2one → account.account.template
string='Cash Difference Income Account'
args: 'account.account.template'
default_pos_receivable_account_id
Many2one → account.account.template
string='PoS receivable account'
args: 'account.account.template'
expense_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Loss Exchange Rate Account'
args: 'account.account.template'
income_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Gain Exchange Rate Account'
args: 'account.account.template'
name
Char
required=True
parent_id
Many2one → account.chart.template
string='Parent Chart Template'
args: 'account.chart.template'
property_account_expense_categ_id
Many2one → account.account.template
string='Category of Expense Account'
args: 'account.account.template'
property_account_expense_id
Many2one → account.account.template
string='Expense Account on Product Template'
args: 'account.account.template'
property_account_income_categ_id
Many2one → account.account.template
string='Category of Income Account'
args: 'account.account.template'
property_account_income_id
Many2one → account.account.template
string='Income Account on Product Template'
args: 'account.account.template'
property_account_payable_id
Many2one → account.account.template
string='Payable Account'
args: 'account.account.template'
property_account_receivable_id
Many2one → account.account.template
string='Receivable Account'
args: 'account.account.template'
property_advance_tax_payment_account_id
Many2one → account.account.template
string='Advance tax payment account'
args: 'account.account.template'
property_cash_basis_base_account_id
Many2one → account.account.template
comodel_name='account.account.template'
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
property_stock_account_input_categ_id
Many2one → account.account.template
string='Input Account for Stock Valuation'
args: 'account.account.template'
property_stock_account_output_categ_id
Many2one → account.account.template
string='Output Account for Stock Valuation'
args: 'account.account.template'
property_stock_valuation_account_id
Many2one → account.account.template
string='Account Template for Stock Valuation'
args: 'account.account.template'
property_tax_payable_account_id
Many2one → account.account.template
string='Tax current account (payable)'
args: 'account.account.template'
property_tax_receivable_account_id
Many2one → account.account.template
string='Tax current account (receivable)'
args: 'account.account.template'
tax_template_ids
One2many → account.tax.template
help='List of all the taxes that have to be installed by the wizard'
string='Tax Template List'
args: 'account.tax.template', 'chart_template_id'
transfer_account_code_prefix
Char
required=True
string='Prefix of the main transfer accounts'
use_anglo_saxon
Boolean
default=False
string='Use Anglo-Saxon accounting'
visible
Boolean
default=True
help="Set this to False if you don't want this template to be used actively in the wizard that generate Chart of Accounts from templates, this is useful when you want to generate accounts of this template only when loading its child template."
string='Can be Visible?'
create_record_with_xmlid(self, company, template, model, vals)
existing_accounting(self, company_id)
generate_account(self, tax_template_ref, acc_template_ref, code_digits, company)
generate_account_groups(self, company)
generate_account_reconcile_model(self, tax_template_ref, acc_template_ref, company)
generate_fiscal_position(self, tax_template_ref, acc_template_ref, company)
generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company)
try_loading(self, company=False, install_demo=True)
amount_currency
Boolean
help='Print Report with the currency column if the currency differs from the company currency.'
args: 'With Currency'
pre_print_report(self, data)
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
date_from
Date
string='Start Date'
date_to
Date
string='End Date'
journal_ids
Many2many → account.journal
comodel_name='account.journal'
default=<expr>
domain="[('company_id', '=', company_id)]"
required=True
string='Journals'
target_move
Selection
default='posted'
required=True
string='Target Moves'
args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
check_report(self)
company_id
Many2one → res.company
comodel_name='res.company'
required=True
fiscalyear_last_day
Integer
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_day'
required=True
fiscalyear_last_month
Selection
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_month'
required=True
opening_date
Date
help='Date from which the accounting is managed in Odoo. It is the date of the opening entry.'
readonly=False
related='company_id.account_opening_date'
required=True
string='Opening Date'
opening_move_posted
Boolean
compute='_compute_opening_move_posted'
string='Opening Move Posted'
action_save_onboarding_fiscal_year(self)
write(self, vals)
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
company_country_id
Many2one
related='company_id.account_fiscal_country_id'
string='Company Country'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery country matches the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery country matches.'
string='Country'
args: 'res.country'
foreign_vat
Char
help='The tax ID of your company in the region mapped by this fiscal position.'
string='Foreign Tax ID'
foreign_vat_header_mode
Selection
compute='_compute_foreign_vat_header_mode'
help='Technical field used to display a banner on top of foreign vat fiscal positions, in order to ease the instantiation of foreign taxes when possible.'
selection=[('templates_found', 'Templates Found'), ('no_template', 'No Template')]
name
Char
required=True
string='Fiscal Position'
note
Html
help='Legal mentions that have to be printed on the invoices.'
translate=True
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
One2many → account.fiscal.position.tax
copy=True
string='Tax Mapping'
args: 'account.fiscal.position.tax', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
action_create_foreign_taxes(self)
create(self, vals)
get_fiscal_position(self, partner_id, delivery_id=None)
map_account(self, account)
map_accounts(self, accounts)
map_tax(self, taxes)
write(self, vals)
account_dest_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
required=True
string='Account on Product'
args: 'account.account'
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
account_dest_id
Many2one → account.account.template
required=True
string='Account Destination'
args: 'account.account.template'
account_src_id
Many2one → account.account.template
required=True
string='Account Source'
args: 'account.account.template'
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Mapping'
args: 'account.fiscal.position.template'
No public methods.
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
tax_dest_active
Boolean
related='tax_dest_id.active'
tax_dest_id
Many2one → account.tax
check_company=True
string='Tax to Apply'
args: 'account.tax'
tax_src_id
Many2one → account.tax
check_company=True
required=True
string='Tax on Product'
args: 'account.tax'
No public methods.
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position.template'
tax_dest_id
Many2one → account.tax.template
string='Replacement Tax'
args: 'account.tax.template'
tax_src_id
Many2one → account.tax.template
required=True
string='Tax Source'
args: 'account.tax.template'
No public methods.
account_ids
One2many → account.fiscal.position.account.template
string='Account Mapping'
args: 'account.fiscal.position.account.template', 'position_id'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
country_group_id
Many2one → res.country.group
help='Apply only if delivery country matches the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery country matches.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position Template'
note
Text
string='Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
tax_ids
One2many → account.fiscal.position.tax.template
string='Tax Mapping'
args: 'account.fiscal.position.tax.template', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
No public methods.
exchange_move_id
Many2one → account.move
index=True
args: 'account.move'
name
Char
copy=False
default=<expr>
required=True
string='Number'
partial_reconcile_ids
One2many → account.partial.reconcile
string='Reconciliation Parts'
args: 'account.partial.reconcile', 'full_reconcile_id'
reconciled_line_ids
One2many → account.move.line
string='Matched Journal Items'
args: 'account.move.line', 'full_reconcile_id'
unlink(self)
code_prefix_end
Char
code_prefix_start
Char
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
name
Char
required=True
parent_id
Many2one → account.group
index=True
ondelete='cascade'
readonly=True
args: 'account.group'
parent_path
Char
index=True
create(self, vals_list)
name_get(self)
unlink(self)
write(self, vals)
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
code_prefix_end
Char
code_prefix_start
Char
name
Char
required=True
parent_id
Many2one → account.group.template
index=True
ondelete='cascade'
args: 'account.group.template'
No public methods.
active
Boolean
default=True
help='By unchecking the active field, you may hide an INCOTERM you will not use.'
args: 'Active'
code
Char
help='Incoterm Standard Code'
required=True
size=3
args: 'Code'
name
Char
help='Incoterms are series of sales terms. They are used to divide transaction costs and responsibilities between buyer and seller and reflect state-of-the-art transportation practices.'
required=True
translate=True
args: 'Name'
No public methods.
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Revenue/Expense Account'
args: 'account.account'
analytic_account_id
Many2one → account.analytic.account
groups='analytic.group_analytic_accounting'
string='Analytic Account'
args: 'account.analytic.account'
commercial_partner_id
Many2one → res.partner
help='Commercial Entity'
string='Partner Company'
args: 'res.partner'
company_currency_id
Many2one → res.currency
readonly=True
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
fiscal_position_id
Many2one → account.fiscal.position
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
invoice_date
Date
readonly=True
string='Invoice Date'
invoice_date_due
Date
readonly=True
string='Due Date'
invoice_user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
readonly=True
args: 'account.move'
move_type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
payment_state
Selection
readonly=True
selection=PAYMENT_STATE_SELECTION
string='Payment Status'
price_average
Float
group_operator='avg'
readonly=True
string='Average Price'
price_subtotal
Float
readonly=True
string='Untaxed Total'
product_categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
quantity
Float
readonly=True
string='Product Quantity'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('posted', 'Open'), ('cancel', 'Cancelled')]
No public methods.
composer_id
Many2one → mail.compose.message
ondelete='cascade'
required=True
string='Composer'
args: 'mail.compose.message'
invoice_ids
Many2many → account.move
string='Invoices'
args: 'account.move', 'account_move_account_invoice_send_rel'
invoice_without_email
Text
compute='_compute_invoice_without_email'
string='invoice(s) that will not be sent'
is_email
Boolean
default=<expr>
args: 'Email'
is_print
Boolean
default=<expr>
args: 'Print'
move_types
Char
compute='_compute_move_types'
help='Technical field containing a textual representation of the selected move types, if multiple. It is used to inform the user in the window in such case.'
readonly=True
string='Move types'
printed
Boolean
default=False
args: 'Is Printed'
template_id
Many2one → mail.template
domain="[('model', '=', 'account.move')]"
index=True
args: 'mail.template', 'Use template'
default_get(self, fields)
onchange_is_email(self)
onchange_template_id(self)
save_as_template(self)
send_and_print_action(self)
No new fields.
Public methods (0)No public methods.
account_control_ids
Many2many → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('is_off_balance', '=', False)]"
string='Allowed accounts'
args: 'account.account', 'journal_account_control_rel', 'journal_id', 'account_id'
active
Boolean
default=True
help='Set active to false to hide the Journal without removing it.'
alias_domain
Char
compute='_compute_alias_domain'
args: 'Alias domain'
alias_id
Many2one → mail.alias
copy=False
help='Send one separate email for each invoice.\n\nAny file extension will be accepted.\n\nOnly PDF and XML files will be interpreted by Odoo'
string='Email Alias'
args: 'mail.alias'
alias_name
Char
compute='_compute_alias_name'
copy=False
help='It creates draft invoices and bills by sending an email.'
inverse='_inverse_type'
readonly=False
args: 'Alias Name'
available_payment_method_ids
Many2many → account.payment.method
comodel_name='account.payment.method'
compute='_compute_available_payment_method_ids'
bank_acc_number
Char
readonly=False
related='bank_account_id.acc_number'
bank_account_id
Many2one → res.partner.bank
check_company=True
copy=False
domain="[('partner_id','=', company_partner_id), '|', ('company_id', '=', False), ('company_id', '=', company_id)]"
ondelete='restrict'
string='Bank Account'
args: 'res.partner.bank'
bank_id
Many2one → res.bank
readonly=False
related='bank_account_id.bank_id'
args: 'res.bank'
bank_statements_source
Selection
default='undefined'
help='Defines how the bank statements will be registered'
selection=_get_bank_statements_available_sources
string='Bank Feeds'
code
Char
help='Shorter name used for display. The journal entries of this journal will also be named using this prefix by default.'
required=True
size=5
string='Short Code'
company_id
Many2one → res.company
default=<expr>
help='Company related to this journal'
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
company_partner_id
Many2one → res.partner
readonly=True
related='company_id.partner_id'
store=False
string='Account Holder'
args: 'res.partner'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
help='The currency used to enter statement'
string='Currency'
args: 'res.currency'
default_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain=_get_default_account_domain
ondelete='restrict'
string='Default Account'
default_account_type
Many2one → account.account.type
compute='_compute_default_account_type'
args: 'account.account.type'
inbound_payment_method_line_ids
One2many → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
compute='_compute_inbound_payment_method_line_ids'
copy=False
domain=[('payment_type', '=', 'inbound')]
help='Manual: Get paid by any method outside of Odoo.\nPayment Acquirers: Each payment acquirer has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
inverse_name='journal_id'
readonly=False
store=True
string='Inbound Payment Methods'
invoice_reference_model
Selection
default=_default_invoice_reference_model
help='You can choose different models for each type of reference. The default one is the Odoo reference.'
required=True
selection=[('odoo', 'Odoo'), ('euro', 'European')]
string='Communication Standard'
invoice_reference_type
Selection
default='invoice'
help='You can set here the default communication that will appear on customer invoices, once validated, to help the customer to refer to that particular invoice when making the payment.'
required=True
selection=[('none', 'Open'), ('partner', 'Based on Customer'), ('invoice', 'Based on Invoice')]
string='Communication Type'
journal_group_ids
Many2many → account.journal.group
check_company=True
domain="[('company_id', '=', company_id)]"
string='Journal Groups'
args: 'account.journal.group'
loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain=<expr>
help='Used to register a loss when the ending balance of a cash register differs from what the system computes'
string='Loss Account'
name
Char
required=True
string='Journal Name'
outbound_payment_method_line_ids
One2many → account.payment.method.line
check_company=True
comodel_name='account.payment.method.line'
compute='_compute_outbound_payment_method_line_ids'
copy=False
domain=[('payment_type', '=', 'outbound')]
help='Manual: Pay by any method outside of Odoo.\nCheck: Pay bills by check and print it from Odoo.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\n'
inverse_name='journal_id'
readonly=False
store=True
string='Outbound Payment Methods'
profit_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain=<expr>
help='Used to register a profit when the ending balance of a cash register differs from what the system computes'
string='Profit Account'
refund_sequence
Boolean
default=False
help="Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal"
string='Dedicated Credit Note Sequence'
restrict_mode_hash_table
Boolean
help='If ticked, the accounting entry or invoice receives a hash as soon as it is posted and cannot be modified anymore.'
string='Lock Posted Entries with Hash'
sale_activity_note
Text
sale_activity_type_id
Many2one → mail.activity.type
default=False
help='Activity will be automatically scheduled on payment due date, improving collection process.'
string='Schedule Activity'
args: 'mail.activity.type'
sale_activity_user_id
Many2one → res.users
help='Leave empty to assign the Salesperson of the invoice.'
string='Activity User'
args: 'res.users'
secure_sequence_id
Many2one → ir.sequence
check_company=True
copy=False
help='Sequence to use to ensure the securisation of data'
readonly=True
args: 'ir.sequence'
selected_payment_method_codes
Char
compute='_compute_selected_payment_method_codes'
help='Technical field used to hide or show payment method options if needed.'
sequence
Integer
default=10
help='Used to order Journals in the dashboard view'
sequence_override_regex
Text
help='Technical field used to enforce complex sequence composition that the system would normally misunderstand.\nThis is a regex that can include all the following capture groups: prefix1, year, prefix2, month, prefix3, seq, suffix.\nThe prefix* groups are the separators between the year, month and the actual increasing sequence number (seq).\ne.g: ^(?P<prefix1>.*?)(?P<year>\\d{4})(?P<prefix2>\\D*?)(?P<month>\\d{2})(?P<prefix3>\\D+?)(?P<seq>\\d+)(?P<suffix>\\D*?)$'
suspense_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_suspense_account_id'
domain=<expr>
help='Bank statements transactions will be posted on the suspense account until the final reconciliation allowing finding the right account.'
ondelete='restrict'
readonly=False
store=True
string='Suspense Account'
type
Selection
help="Select 'Sale' for customer invoices journals.\nSelect 'Purchase' for vendor bills journals.\nSelect 'Cash' or 'Bank' for journals that are used in customer or vendor payments.\nSelect 'General' for miscellaneous operations journals."
inverse='_inverse_type'
required=True
args: [('sale', 'Sales'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('bank', 'Bank'), ('general', 'Miscellaneous')]
type_control_ids
Many2many → account.account.type
string='Allowed account types'
args: 'account.account.type', 'journal_account_type_control_rel', 'journal_id', 'type_id'
action_configure_bank_journal(self)
copy(self, default=None)
create(self, vals)
create_invoice_from_attachment(self, attachment_ids=None)
get_next_bank_cash_default_code(self, journal_type, company)
name_get(self)
set_bank_account(self, acc_number, bank_id=None)
unlink(self)
write(self, vals)
color
Integer
default=0
args: 'Color Index'
entries_count
Integer
compute='_compute_entries_count'
json_activity_data
Text
compute='_get_json_activity_data'
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
action_create_vendor_bill(self)
create_bank_statement(self)
create_cash_statement(self)
create_customer_payment(self)
create_internal_transfer(self)
create_supplier_payment(self)
get_bar_graph_datas(self)
get_journal_dashboard_datas(self)
get_line_graph_datas(self)
mark_bank_setup_as_done_action(self)
open_action(self)
open_action_with_context(self)
open_collect_money(self)
open_payments_action(self, payment_type, mode='tree')
open_spend_money(self)
open_transfer_money(self)
to_check_ids(self)
unmark_bank_setup_as_done_action(self)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
excluded_journal_ids
Many2many → account.journal
check_company=True
domain="[('company_id', '=', company_id)]"
string='Excluded Journals'
args: 'account.journal'
name
Char
required=True
translate=True
args: 'Journal Group'
sequence
Integer
default=10
No public methods.
No new fields.
Public methods (0)No public methods.
always_tax_exigible
Boolean
compute='_compute_always_tax_exigible'
help='Technical field used by cash basis taxes, telling the lines of the move are always exigible. This happens if the move contains no payable or receivable line.'
readonly=False
store=True
amount_residual
Monetary
compute='_compute_amount'
store=True
string='Amount Due'
amount_residual_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
store=True
string='Amount Due Signed'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_tax_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Tax Signed'
amount_total
Monetary
compute='_compute_amount'
inverse='_inverse_amount_total'
readonly=True
store=True
string='Total'
amount_total_in_currency_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=True
store=True
string='Total in Currency Signed'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Total Signed'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
tracking=True
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount Signed'
auto_post
Boolean
copy=False
default=False
help='If this checkbox is ticked, this entry will be automatically posted at its date.'
string='Post Automatically'
bank_partner_id
Many2one → res.partner
compute='_compute_bank_partner_id'
help='Technical field to get the domain on the bank'
args: 'res.partner'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner_id'
ondelete='restrict'
readonly=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=True
store=True
string='Company'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
default=_get_default_currency
readonly=True
required=True
states={'draft': [('readonly', False)]}
store=True
string='Currency'
tracking=True
args: 'res.currency'
date
Date
copy=False
default=fields.Date.context_today
index=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date'
tracking=True
display_inactive_currency_warning
Boolean
compute='_compute_display_inactive_currency_warning'
help='Technical field used for tracking the status of the currency'
display_qr_code
Boolean
compute='_compute_display_qr_code'
string='Display QR-code'
fiscal_position_id
Many2one → account.fiscal.position
check_company=True
domain="[('company_id', '=', company_id)]"
help='Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. The default value comes from the customer.'
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Fiscal Position'
args: 'account.fiscal.position'
has_reconciled_entries
Boolean
compute='_compute_has_reconciled_entries'
highest_name
Char
compute='_compute_highest_name'
inalterable_hash
Char
copy=False
readonly=True
string='Inalterability Hash'
invoice_cash_rounding_id
Many2one → account.cash.rounding
help='Defines the smallest coinage of the currency that can be used to pay by cash.'
readonly=True
states={'draft': [('readonly', False)]}
string='Cash Rounding Method'
args: 'account.cash.rounding'
invoice_date
Date
copy=False
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice/Bill Date'
invoice_date_due
Date
copy=False
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Due Date'
invoice_filter_type_domain
Char
compute='_compute_invoice_filter_type_domain'
help='Technical field used to have a dynamic domain on journal / taxes in the form view.'
invoice_has_matching_suspense_amount
Boolean
compute='_compute_has_matching_suspense_amount'
groups='account.group_account_invoice,account.group_account_readonly'
help='Technical field used to display an alert on invoices if there is at least a matching amount in any supsense account.'
invoice_has_outstanding
Boolean
compute='_compute_payments_widget_to_reconcile_info'
groups='account.group_account_invoice,account.group_account_readonly'
invoice_incoterm_id
Many2one → account.incoterms
default=_get_default_invoice_incoterm
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Incoterm'
args: 'account.incoterms'
invoice_line_ids
One2many → account.move.line
copy=False
domain=[('exclude_from_invoice_tab', '=', False)]
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice lines'
args: 'account.move.line', 'move_id'
invoice_origin
Char
help='The document(s) that generated the invoice.'
readonly=True
string='Origin'
tracking=True
invoice_outstanding_credits_debits_widget
Text
compute='_compute_payments_widget_to_reconcile_info'
groups='account.group_account_invoice,account.group_account_readonly'
invoice_partner_display_name
Char
compute='_compute_invoice_partner_display_info'
store=True
invoice_payment_term_id
Many2one → account.payment.term
check_company=True
readonly=True
states={'draft': [('readonly', False)]}
string='Payment Terms'
args: 'account.payment.term'
invoice_payments_widget
Text
compute='_compute_payments_widget_reconciled_info'
groups='account.group_account_invoice,account.group_account_readonly'
invoice_source_email
Char
string='Source Email'
tracking=True
invoice_user_id
Many2one → res.users
copy=False
default=<expr>
string='Salesperson'
tracking=True
args: 'res.users'
invoice_vendor_bill_id
Many2one → account.move
check_company=True
help='Auto-complete from a past bill.'
store=False
string='Vendor Bill'
args: 'account.move'
is_move_sent
Boolean
copy=False
default=False
help='It indicates that the invoice/payment has been sent.'
readonly=True
tracking=True
journal_id
Many2one → account.journal
check_company=True
default=_get_default_journal
domain="[('id', 'in', suitable_journal_ids)]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
line_ids
One2many → account.move.line
copy=True
readonly=True
states={'draft': [('readonly', False)]}
string='Journal Items'
args: 'account.move.line', 'move_id'
move_type
Selection
change_default=True
default='entry'
index=True
readonly=True
required=True
selection=[('entry', 'Journal Entry'), ('out_invoice', 'Customer Invoice'), ('out_refund', 'Customer Credit Note'), ('in_invoice', 'Vendor Bill'), ('in_refund', 'Vendor Credit Note'), ('out_receipt', 'Sales Receipt'), ('in_receipt', 'Purchase Receipt')]
store=True
string='Type'
tracking=True
name
Char
compute='_compute_name'
copy=False
index=True
readonly=False
store=True
string='Number'
tracking=True
narration
Html
compute='_compute_narration'
readonly=False
store=True
string='Terms and Conditions'
partner_bank_id
Many2one → res.partner.bank
check_company=True
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.'
string='Recipient Bank'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
change_default=True
check_company=True
index=True
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Partner'
tracking=True
args: 'res.partner'
payment_id
Many2one → account.payment
check_company=True
comodel_name='account.payment'
copy=False
index=True
string='Payment'
payment_reference
Char
compute='_compute_payment_reference'
copy=False
help='The payment reference to set on journal items.'
index=True
readonly=False
store=True
string='Payment Reference'
payment_state
Selection
compute='_compute_amount'
copy=False
readonly=True
store=True
string='Payment Status'
tracking=True
args: PAYMENT_STATE_SELECTION
posted_before
Boolean
copy=False
help='Technical field for knowing if the move has been posted before'
qr_code_method
Selection
copy=False
help='Type of QR-code to be generated for the payment of this invoice, when printing it. If left blank, the first available and usable method will be used.'
selection=<expr>
string='Payment QR-code'
ref
Char
copy=False
string='Reference'
tracking=True
restrict_mode_hash_table
Boolean
related='journal_id.restrict_mode_hash_table'
reversal_move_id
One2many → account.move
reversed_entry_id
Many2one → account.move
check_company=True
copy=False
index=True
readonly=True
string='Reversal of'
args: 'account.move'
secure_sequence_number
Integer
copy=False
index=True
readonly=True
string='Inalteralbility No Gap Sequence #'
show_name_warning
Boolean
store=False
show_reset_to_draft_button
Boolean
compute='_compute_show_reset_to_draft_button'
state
Selection
copy=False
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('cancel', 'Cancelled')]
string='Status'
tracking=True
statement_id
Many2one
copy=False
help='Technical field used to open the linked bank statement from the edit button in a group by view, or via the smart button on journal entries.'
readonly=True
related='statement_line_id.statement_id'
statement_line_id
Many2one → account.bank.statement.line
check_company=True
comodel_name='account.bank.statement.line'
copy=False
string='Statement Line'
string_to_hash
Char
compute='_compute_string_to_hash'
readonly=True
suitable_journal_ids
Many2many → account.journal
compute='_compute_suitable_journal_ids'
args: 'account.journal'
tax_cash_basis_created_move_ids
One2many → account.move
comodel_name='account.move'
help='The cash basis entries created from the taxes on this entry, when reconciling its lines.'
inverse_name='tax_cash_basis_origin_move_id'
string='Cash Basis Entries'
tax_cash_basis_origin_move_id
Many2one → account.move
comodel_name='account.move'
help='The journal entry from which this tax cash basis journal entry has been created.'
index=True
readonly=1
string='Cash Basis Origin'
tax_cash_basis_rec_id
Many2one → account.partial.reconcile
help='Technical field used to keep track of the tax cash basis reconciliation. This is needed when cancelling the source: it will post the inverse journal entry to cancel that part too.'
string='Tax Cash Basis Entry of'
args: 'account.partial.reconcile'
tax_country_code
Char
compute='_compute_tax_country_code'
tax_country_id
Many2one → res.country
comodel_name='res.country'
compute='_compute_tax_country_id'
help='Technical field to filter the available taxes depending on the fiscal country and fiscal position.'
tax_lock_date_message
Char
compute='_compute_tax_lock_date_message'
help="Technical field used to display a message when the invoice's accounting date is prior of the tax lock date."
tax_totals_json
Char
compute='_compute_tax_totals_json'
help='Edit Tax amounts if you encounter rounding issues.'
readonly=False
string='Invoice Totals JSON'
to_check
Boolean
default=False
help='If this checkbox is ticked, it means that the user was not sure of all the related information at the time of the creation of the move and that the move needs to be checked again.'
string='To Check'
tracking=True
type_name
Char
compute='_compute_type_name'
args: 'Type Name'
user_id
Many2one
help='Technical field used to fit the generic behavior in mail templates.'
related='invoice_user_id'
string='User'
action_activate_currency(self)
action_duplicate(self)
action_invoice_paid(self)
action_invoice_print(self)
action_invoice_sent(self)
action_post(self)
action_register_payment(self)
action_reverse(self)
action_send_and_print(self)
action_switch_invoice_into_refund_credit_note(self)
action_view_reverse_entry(self)
button_cancel(self)
button_draft(self)
button_set_checked(self)
copy(self, default=None)
create(self, vals_list)
generate_qr_code(self)
get_inbound_types(self, include_receipts=True)
get_invoice_types(self, include_receipts=False)
get_outbound_types(self, include_receipts=True)
get_purchase_types(self, include_receipts=False)
get_sale_types(self, include_receipts=False)
init(self)
is_inbound(self, include_receipts=True)
is_invoice(self, include_receipts=False)
is_outbound(self, include_receipts=True)
is_purchase_document(self, include_receipts=False)
is_sale_document(self, include_receipts=False)
js_assign_outstanding_line(self, line_id)
js_remove_outstanding_partial(self, partial_id)
message_new(self, msg_dict, custom_values=None)
name_get(self)
onchange(self, values, field_name, field_onchange)
open_bank_statement_view(self)
open_created_caba_entries(self)
open_payment_view(self)
open_reconcile_view(self)
post(self)
preview_invoice(self)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
account_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id),('is_off_balance', '=', False)]"
index=True
ondelete='cascade'
string='Account'
tracking=True
args: 'account.account'
account_internal_group
Selection
readonly=True
related='account_id.user_type_id.internal_group'
string='Internal Group'
account_internal_type
Selection
readonly=True
related='account_id.user_type_id.type'
string='Internal Type'
account_root_id
Many2one
readonly=True
related='account_id.root_id'
store=True
string='Account Root'
amount_currency
Monetary
copy=True
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
store=True
string='Amount in Currency'
amount_residual
Monetary
compute='_compute_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
compute='_compute_amount_residual'
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_account_id
Many2one → account.analytic.account
check_company=True
compute='_compute_analytic_account_id'
copy=True
index=True
readonly=False
store=True
string='Analytic Account'
args: 'account.analytic.account'
analytic_line_ids
One2many → account.analytic.line
string='Analytic lines'
args: 'account.analytic.line', 'move_id'
analytic_tag_ids
Many2many → account.analytic.tag
check_company=True
compute='_compute_analytic_tag_ids'
copy=True
readonly=False
store=True
string='Analytic Tags'
args: 'account.analytic.tag'
balance
Monetary
compute='_compute_balance'
currency_field='company_currency_id'
help='Technical field holding the debit - credit in order to open meaningful graph views from reports'
store=True
string='Balance'
blocked
Boolean
default=False
help='You can check this box to mark this journal item as a litigation with the associated partner'
string='No Follow-up'
company_currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
company_id
Many2one
readonly=True
related='move_id.company_id'
store=True
credit
Monetary
currency_field='company_currency_id'
default=0.0
string='Credit'
cumulated_balance
Monetary
compute='_compute_cumulated_balance'
currency_field='company_currency_id'
help='Cumulated balance depending on the domain and the order chosen in the view.'
store=False
string='Cumulated Balance'
currency_id
Many2one → res.currency
required=True
string='Currency'
args: 'res.currency'
date
Date
copy=False
group_operator='min'
index=True
readonly=True
related='move_id.date'
store=True
date_maturity
Date
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
string='Due Date'
tracking=True
debit
Monetary
currency_field='company_currency_id'
default=0.0
string='Debit'
discount
Float
default=0.0
digits='Discount'
string='Discount (%)'
display_type
Selection
default=False
help='Technical field for UX purpose.'
args: [('line_section', 'Section'), ('line_note', 'Note')]
exclude_from_invoice_tab
Boolean
help='Technical field used to exclude some lines from the invoice_line_ids tab in the form view.'
full_reconcile_id
Many2one → account.full.reconcile
copy=False
index=True
readonly=True
string='Matching'
args: 'account.full.reconcile'
group_tax_id
Many2one → account.tax
comodel_name='account.tax'
help='The group of taxes that generated this tax line'
index=True
string='Originator Group of Taxes'
is_rounding_line
Boolean
help='Technical field used to retrieve the cash rounding line.'
journal_id
Many2one
copy=False
index=True
related='move_id.journal_id'
store=True
matched_credit_ids
One2many → account.partial.reconcile
help='Credit journal items that are matched with this journal item.'
readonly=True
string='Matched Credits'
args: 'account.partial.reconcile', 'debit_move_id'
matched_debit_ids
One2many → account.partial.reconcile
help='Debit journal items that are matched with this journal item.'
readonly=True
string='Matched Debits'
args: 'account.partial.reconcile', 'credit_move_id'
matching_number
Char
compute='_compute_matching_number'
help="Matching number for this line, 'P' if it is only partially reconcile, or the name of the full reconcile if it exists."
store=True
string='Matching #'
move_id
Many2one → account.move
auto_join=True
check_company=True
help='The move of this entry line.'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
args: 'account.move'
move_name
Char
index=True
related='move_id.name'
store=True
string='Number'
name
Char
compute='_compute_name'
readonly=False
store=True
string='Label'
tracking=True
parent_state
Selection
readonly=True
related='move_id.state'
store=True
partner_id
Many2one → res.partner
ondelete='restrict'
string='Partner'
args: 'res.partner'
payment_id
Many2one → account.payment
help='The payment that created this entry'
index=True
related='move_id.payment_id'
store=True
string='Originator Payment'
args: 'account.payment'
price_subtotal
Monetary
currency_field='currency_id'
readonly=True
store=True
string='Subtotal'
price_total
Monetary
currency_field='currency_id'
readonly=True
store=True
string='Total'
price_unit
Float
digits='Product Price'
string='Unit Price'
product_id
Many2one → product.product
ondelete='restrict'
string='Product'
args: 'product.product'
product_uom_category_id
Many2one → uom.category
related='product_id.uom_id.category_id'
args: 'uom.category'
product_uom_id
Many2one → uom.uom
domain="[('category_id', '=', product_uom_category_id)]"
ondelete='restrict'
string='Unit of Measure'
args: 'uom.uom'
quantity
Float
default=<expr>
digits='Product Unit of Measure'
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
string='Quantity'
recompute_tax_line
Boolean
help='Technical field used to know on which lines the taxes must be recomputed.'
readonly=True
store=False
reconcile_model_id
Many2one → account.reconcile.model
check_company=True
copy=False
readonly=True
string='Reconciliation Model'
args: 'account.reconcile.model'
reconciled
Boolean
compute='_compute_amount_residual'
store=True
ref
Char
copy=False
index=True
readonly=True
related='move_id.ref'
store=True
sequence
Integer
default=10
statement_id
Many2one
copy=False
help='The bank statement used for bank reconciliation'
index=True
related='statement_line_id.statement_id'
store=True
statement_line_id
Many2one → account.bank.statement.line
help='The statement line that created this entry'
index=True
related='move_id.statement_line_id'
store=True
string='Originator Statement Line'
args: 'account.bank.statement.line'
tax_audit
Char
compute='_compute_tax_audit'
help='Computed field, listing the tax grids impacted by this line, and the amount it applies to each of them.'
store=True
string='Tax Audit String'
tax_base_amount
Monetary
currency_field='company_currency_id'
readonly=True
store=True
string='Base Amount'
tax_group_id
Many2one
help='technical field for widget tax-group-custom-field'
readonly=True
related='tax_line_id.tax_group_id'
store=True
string='Originator tax group'
tax_ids
Many2many → account.tax
check_company=True
comodel_name='account.tax'
context={'active_test': False}
help='Taxes that apply on the base amount'
string='Taxes'
tax_line_id
Many2one → account.tax
compute='_compute_tax_line_id'
help='Indicates that this journal item is a tax line'
ondelete='restrict'
store=True
string='Originator Tax'
args: 'account.tax'
tax_repartition_line_id
Many2one → account.tax.repartition.line
check_company=True
comodel_name='account.tax.repartition.line'
help='Tax distribution line that caused the creation of this move line, if any'
ondelete='restrict'
readonly=True
string='Originator Tax Distribution Line'
tax_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
context={'active_test': False}
help='Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.'
ondelete='restrict'
string='Tags'
tracking=True
tax_tag_invert
Boolean
compute='_compute_tax_tag_invert'
copy=False
help='Technical field. True if the balance of this move line needs to be inverted when computing its total for each tag (for sales invoices, for example).'
readonly=False
store=True
string='Invert Tags'
action_automatic_entry(self)
belongs_to_refund(self)
copy_data(self, default=None)
create(self, vals_list)
create_analytic_lines(self)
default_get(self, default_fields)
fields_get(self, allfields=None, attributes=None)
init(self)
invalidate_cache(self, fnames=None, ids=None)
name_get(self)
open_reconcile_view(self)
reconcile(self)
remove_move_reconcile(self)
search_read(self, domain=None, fields=None, offset=0, limit=None, order=None)
unlink(self)
write(self, vals)
available_journal_ids
Many2many → account.journal
compute='_compute_available_journal_ids'
args: 'account.journal'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
country_code
Char
related='company_id.country_id.code'
currency_id
Many2one → res.currency
compute='_compute_from_moves'
args: 'res.currency'
date
Date
default=fields.Date.context_today
string='Reversal date'
date_mode
Selection
default='custom'
required=True
selection=[('custom', 'Specific'), ('entry', 'Journal Entry Date')]
journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_journal_id'
help='If empty, uses the journal of the journal entry to be reversed.'
readonly=False
required=True
store=True
string='Use Specific Journal'
move_ids
Many2many → account.move
domain=[('state', '=', 'posted')]
args: 'account.move', 'account_move_reversal_move', 'reversal_id', 'move_id'
move_type
Char
compute='_compute_from_moves'
new_move_ids
Many2many → account.move
reason
Char
string='Reason'
refund_method
Selection
help='Choose how you want to credit this invoice. You cannot "modify" nor "cancel" if the invoice is already reconciled.'
required=True
selection=[('refund', 'Partial Refund'), ('cancel', 'Full Refund'), ('modify', 'Full refund and new draft invoice')]
string='Credit Method'
residual
Monetary
compute='_compute_from_moves'
default_get(self, fields)
reverse_moves(self)
amount
Monetary
currency_field='company_currency_id'
help='Always positive amount concerned by this matching expressed in the company currency.'
company_currency_id
Many2one → res.currency
comodel_name='res.currency'
help='Utility field to express amount currency'
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
readonly=False
related='debit_move_id.company_id'
store=True
string='Company'
credit_amount_currency
Monetary
currency_field='credit_currency_id'
help='Always positive amount concerned by this matching expressed in the credit line foreign currency.'
credit_currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_credit_currency_id'
store=True
string='Currency of the credit journal item.'
credit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
debit_amount_currency
Monetary
currency_field='debit_currency_id'
help='Always positive amount concerned by this matching expressed in the debit line foreign currency.'
debit_currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_debit_currency_id'
store=True
string='Currency of the debit journal item.'
debit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
full_reconcile_id
Many2one → account.full.reconcile
comodel_name='account.full.reconcile'
copy=False
string='Full Reconcile'
max_date
Date
compute='_compute_max_date'
help='Technical field used to determine at which date this reconciliation needs to be shown on the aged receivable/payable reports.'
store=True
string='Max Date of Matched Lines'
unlink(self)
No new fields.
Public methods (0)No public methods.
amount
Monetary
currency_field='currency_id'
amount_company_currency_signed
Monetary
compute='_compute_amount_company_currency_signed'
currency_field='company_currency_id'
amount_signed
Monetary
compute='_compute_amount_signed'
currency_field='currency_id'
help='Negative value of amount field if payment_type is outbound'
tracking=True
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_line_ids
Many2many → account.payment.method.line
compute='_compute_payment_method_line_fields'
args: 'account.payment.method.line'
country_code
Char
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
help="The payment's currency."
readonly=False
store=True
string='Currency'
args: 'res.currency'
destination_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_destination_account_id'
domain="[('user_type_id.type', 'in', ('receivable', 'payable')), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Destination Account'
destination_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
domain="[('type', 'in', ('bank','cash')), ('company_id', '=', company_id), ('id', '!=', journal_id)]"
string='Destination Journal'
hide_payment_method_line
Boolean
compute='_compute_payment_method_line_fields'
help="Technical field used to hide the payment method if the selected journal has only one available which is 'manual'"
is_internal_transfer
Boolean
compute='_compute_is_internal_transfer'
readonly=False
store=True
string='Internal Transfer'
tracking=True
is_matched
Boolean
compute='_compute_reconciliation_status'
help='Technical field indicating if the payment has been matched with a statement line.'
store=True
string='Is Matched With a Bank Statement'
is_reconciled
Boolean
compute='_compute_reconciliation_status'
help='Technical field indicating if the payment is already reconciled.'
store=True
string='Is Reconciled'
move_id
Many2one → account.move
check_company=True
comodel_name='account.move'
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
outstanding_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_outstanding_account_id'
store=True
string='Outstanding Account'
paired_internal_transfer_payment_id
Many2one → account.payment
copy=False
help='When an internal transfer is posted, a paired payment is created. They are cross referenced trough this field'
args: 'account.payment'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
readonly=False
store=True
string='Recipient Bank Account'
tracking=True
args: 'res.partner.bank'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
compute='_compute_partner_id'
domain="['|', ('parent_id','=', False), ('is_company','=', True)]"
ondelete='restrict'
readonly=False
store=True
string='Customer/Vendor'
tracking=True
partner_type
Selection
default='customer'
required=True
tracking=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_method_code
Char
help='Technical field used to adapt the interface to the payment type selected.'
related='payment_method_line_id.code'
payment_method_id
Many2one
related='payment_method_line_id.payment_method_id'
store=True
string='Method'
tracking=True
payment_method_line_id
Many2one → account.payment.method.line
compute='_compute_payment_method_line_id'
copy=False
domain="[('id', 'in', available_payment_method_line_ids)]"
help='Manual: Pay or Get paid by any method outside of Odoo.\nPayment Acquirers: Each payment acquirer has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method.line'
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
string='Payment Reference'
tracking=True
payment_type
Selection
default='inbound'
required=True
string='Payment Type'
tracking=True
args: [('outbound', 'Send'), ('inbound', 'Receive')]
qr_code
Char
compute='_compute_qr_code'
help='QR-code report URL to use to generate the QR-code to scan with a banking app to perform this payment.'
string='QR Code'
reconciled_bill_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
string='Reconciled Bills'
args: 'account.move'
reconciled_bills_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Bills'
reconciled_invoice_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
string='Reconciled Invoices'
args: 'account.move'
reconciled_invoices_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Invoices'
reconciled_invoices_type
Selection
compute='_compute_stat_buttons_from_reconciliation'
help="Technical field used to determine label 'invoice' or 'credit note' in view"
args: [('credit_note', 'Credit Note'), ('invoice', 'Invoice')]
reconciled_statement_ids
Many2many → account.bank.statement
compute='_compute_stat_buttons_from_reconciliation'
help='Statements matched to this payment'
string='Reconciled Statements'
args: 'account.bank.statement'
reconciled_statements_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Statements'
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
help='Technical field used to know whether the field `partner_bank_id` needs to be required or not in the payments form views'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
help='Technical field used to know whether the field `partner_bank_id` needs to be displayed or not in the payments form views'
action_cancel(self)
action_draft(self)
action_open_destination_journal(self)
action_post(self)
button_open_bills(self)
button_open_invoices(self)
button_open_journal_entry(self)
button_open_statements(self)
create(self, vals_list)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
mark_as_sent(self)
name_get(self)
unlink(self)
unmark_as_sent(self)
write(self, vals)
code
Char
required=True
name
Char
required=True
translate=True
payment_type
Selection
required=True
selection=[('inbound', 'Inbound'), ('outbound', 'Outbound')]
create(self, vals_list)
available_payment_method_ids
Many2many
related='journal_id.available_payment_method_ids'
code
Char
related='payment_method_id.code'
company_id
Many2one
related='journal_id.company_id'
journal_id
Many2one → account.journal
comodel_name='account.journal'
ondelete='cascade'
name
Char
compute='_compute_name'
readonly=False
store=True
payment_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain=<expr>
ondelete='restrict'
payment_method_id
Many2one → account.payment.method
comodel_name='account.payment.method'
domain="[('payment_type', '=?', payment_type), ('id', 'in', available_payment_method_ids)]"
required=True
string='Payment Method'
payment_type
Selection
related='payment_method_id.payment_type'
sequence
Integer
default=10
create(self, vals_list)
unlink(self)
write(self, vals)
amount
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=False
store=True
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_line_ids
Many2many → account.payment.method.line
compute='_compute_payment_method_line_fields'
args: 'account.payment.method.line'
can_edit_wizard
Boolean
compute='_compute_from_lines'
copy=False
help='Technical field used to indicate the user can edit the wizard content such as the amount.'
store=True
can_group_payments
Boolean
compute='_compute_from_lines'
copy=False
help="Technical field used to indicate the user can see the 'group_payments' box."
store=True
communication
Char
compute='_compute_communication'
readonly=False
store=True
string='Memo'
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
compute='_compute_from_lines'
copy=False
store=True
args: 'res.company'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
help="The payment's currency."
readonly=False
store=True
string='Currency'
args: 'res.currency'
group_payment
Boolean
compute='_compute_group_payment'
help='Only one payment will be created by partner (bank)/ currency.'
readonly=False
store=True
string='Group Payments'
hide_payment_method_line
Boolean
compute='_compute_payment_method_line_fields'
help="Technical field used to hide the payment method if the selected journal has only one available which is 'manual'"
journal_id
Many2one → account.journal
compute='_compute_journal_id'
domain="[('company_id', '=', company_id), ('type', 'in', ('bank', 'cash'))]"
readonly=False
store=True
args: 'account.journal'
line_ids
Many2many → account.move.line
copy=False
readonly=True
string='Journal items'
args: 'account.move.line', 'account_payment_register_move_line_rel', 'wizard_id', 'line_id'
partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
readonly=False
store=True
string='Recipient Bank Account'
partner_id
Many2one → res.partner
compute='_compute_from_lines'
copy=False
ondelete='restrict'
store=True
string='Customer/Vendor'
args: 'res.partner'
partner_type
Selection
compute='_compute_from_lines'
copy=False
store=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_date
Date
default=fields.Date.context_today
required=True
string='Payment Date'
payment_difference
Monetary
compute='_compute_payment_difference'
payment_difference_handling
Selection
default='open'
string='Payment Difference Handling'
args: [('open', 'Keep open'), ('reconcile', 'Mark as fully paid')]
payment_method_line_id
Many2one → account.payment.method.line
compute='_compute_payment_method_line_id'
domain="[('id', 'in', available_payment_method_line_ids)]"
help='Manual: Pay or Get paid by any method outside of Odoo.\nPayment Acquirers: Each payment acquirer has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n'
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method.line'
payment_type
Selection
compute='_compute_from_lines'
copy=False
store=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
help='Technical field used to know whether the field `partner_bank_id` needs to be required or not in the payments form views'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
help='Technical field used to know whether the field `partner_bank_id` needs to be displayed or not in the payments form views'
source_amount
Monetary
compute='_compute_from_lines'
copy=False
currency_field='company_currency_id'
store=True
string='Amount to Pay (company currency)'
source_amount_currency
Monetary
compute='_compute_from_lines'
copy=False
currency_field='source_currency_id'
store=True
string='Amount to Pay (foreign currency)'
source_currency_id
Many2one → res.currency
compute='_compute_from_lines'
copy=False
help="The payment's currency."
store=True
string='Source Currency'
args: 'res.currency'
writeoff_account_id
Many2one → account.account
copy=False
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
string='Difference Account'
args: 'account.account'
writeoff_label
Char
default='Write-Off'
help='Change label of the counterpart that will hold the payment difference'
string='Journal Item Label'
action_create_payments(self)
default_get(self, fields_list)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment terms without removing it.'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Terms'
translate=True
note
Html
string='Description on the Invoice'
translate=True
sequence
Integer
default=10
required=True
compute(self, value, date_ref=False, currency=None)
unlink(self)
day_of_the_month
Integer
help='Day of the month on which the invoice must come to its term. If zero or negative, this value will be ignored, and no specific day will be set. If greater than the last day of a month, this number will instead select the last day of this month.'
string='Day of the month'
days
Integer
default=0
required=True
string='Number of Days'
option
Selection
default='day_after_invoice_date'
required=True
string='Options'
args: [('day_after_invoice_date', 'days after the invoice date'), ('after_invoice_month', 'days after the end of the invoice month'), ('day_following_month', 'of the following month'), ('day_current_month', 'of the current month')]
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Terms'
args: 'account.payment.term'
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of payment terms lines.'
value
Selection
default='balance'
help='Select here the kind of valuation related to this payment terms line.'
required=True
string='Type'
args: [('balance', 'Balance'), ('percent', 'Percent'), ('fixed', 'Fixed Amount')]
value_amount
Float
digits='Payment Terms'
help='For percent enter a ratio between 0-100.'
string='Value'
No public methods.
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
sort_selection
Selection
default='move_name'
required=True
args: [('date', 'Date'), ('move_name', 'Journal Entry Number')], 'Entries Sorted by'
No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
allow_payment_tolerance
Boolean
default=True
help='Difference accepted in case of underpayment.'
string='Payment Tolerance'
tracking=True
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
tracking=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
decimal_separator
Char
default=<expr>
help='Every character that is nor a digit nor this separator will be removed from the matching string'
tracking=True
line_ids
One2many → account.reconcile.model.line
copy=True
args: 'account.reconcile.model.line', 'model_id'
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount Condition'
tracking=True
match_amount_max
Float
string='Amount Max Parameter'
tracking=True
match_amount_min
Float
string='Amount Min Parameter'
tracking=True
match_journal_ids
Many2many → account.journal
check_company=True
domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id)]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals Availability'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
tracking=True
match_label_param
Char
string='Label Parameter'
tracking=True
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Received'), ('amount_paid', 'Paid'), ('both', 'Paid/Received')]
string='Amount Type'
tracking=True
match_note
Selection
help='The reconciliation model will only be applied when the note:\n * Contains: The proposition note must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Note'
tracking=True
match_note_param
Char
string='Note Parameter'
tracking=True
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner should be set'
tracking=True
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Only Those Partner Categories'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Only Those Partners'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency'
tracking=True
match_text_location_label
Boolean
default=True
help="Search in the Statement's Label to find the Invoice/Payment's reference"
tracking=True
match_text_location_note
Boolean
default=False
help="Search in the Statement's Note to find the Invoice/Payment's reference"
tracking=True
match_text_location_reference
Boolean
default=False
help="Search in the Statement's Reference to find the Invoice/Payment's reference"
tracking=True
match_transaction_type
Selection
help='The reconciliation model will only be applied when the transaction type:\n * Contains: The proposition transaction type must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Transaction Type'
tracking=True
match_transaction_type_param
Char
string='Transaction Type Parameter'
tracking=True
matching_order
Selection
default='old_first'
required=True
selection=[('old_first', 'Oldest first'), ('new_first', 'Newest first')]
tracking=True
name
Char
required=True
string='Name'
number_entries
Integer
compute='_compute_number_entries'
string='Number of entries related to this model'
partner_mapping_line_ids
One2many → account.reconcile.model.partner.mapping
comodel_name='account.reconcile.model.partner.mapping'
help='The mapping uses regular expressions.\n- To Match the text at the beginning of the line (in label or notes), simply fill in your text.\n- To Match the text anywhere (in label or notes), put your text between .*\n e.g: .*N°48748 abc123.*'
inverse_name='model_id'
string='Partner Mapping Lines'
past_months_limit
Integer
default=18
help='Number of months in the past to consider entries from when applying this model.'
string='Search Months Limit'
tracking=True
payment_tolerance_param
Float
compute='_compute_payment_tolerance_param'
help='The sum of total residual amount propositions matches the statement line amount under this amount/percentage.'
readonly=False
store=True
string='Gap'
tracking=True
payment_tolerance_type
Selection
default='percentage'
help='The sum of total residual amount propositions and the statement line amount allowed gap type.'
required=True
selection=[('percentage', 'in percentage'), ('fixed_amount', 'in amount')]
tracking=True
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', 'Button to generate counterpart entry'), ('writeoff_suggestion', 'Rule to suggest counterpart entry'), ('invoice_matching', 'Rule to match invoices/bills')]
string='Type'
tracking=True
sequence
Integer
default=10
required=True
show_decimal_separator
Boolean
compute='_compute_show_decimal_separator'
help='Technical field to decide if we should show the decimal separator for the regex matching field.'
to_check
Boolean
default=False
help='This matching rule is used when the user is not certain of all the information of the counterpart.'
string='To Check'
action_reconcile_stat(self)
No new fields.
Public methods (0)No public methods.
account_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('is_off_balance', '=', False)]"
ondelete='cascade'
required=True
string='Account'
args: 'account.account'
allow_payment_tolerance
Boolean
related='model_id.allow_payment_tolerance'
amount
Float
compute='_compute_float_amount'
help='Technical shortcut to parse the amount to a float'
store=True
string='Float Amount'
amount_string
Char
default='100'
help='Value for the amount of the writeoff line\n * Percentage: Percentage of the balance, between 0 and 100.\n * Fixed: The fixed value of the writeoff. The amount will count as a debit if it is negative, as a credit if it is positive.\n * From Label: There is no need for regex delimiter, only the regex is needed. For instance if you want to extract the amount from\nR:9672938 10/07 AX 9415126318 T:5L:NA BRT: 3358,07 C:\nYou could enter\nBRT: ([\\d,]+)'
required=True
string='Amount'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('percentage_st_line', 'Percentage of statement line'), ('regex', 'From label')]
analytic_account_id
Many2one → account.analytic.account
check_company=True
ondelete='set null'
string='Analytic Account'
args: 'account.analytic.account'
analytic_tag_ids
Many2many → account.analytic.tag
check_company=True
relation='account_reconcile_model_analytic_tag_rel'
string='Analytic Tags'
args: 'account.analytic.tag'
company_id
Many2one
related='model_id.company_id'
store=True
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
journal_id
Many2one → account.journal
check_company=True
domain="[('type', '=', 'general'), ('company_id', '=', company_id)]"
help='This field is ignored in a bank statement reconciliation.'
ondelete='cascade'
string='Journal'
args: 'account.journal'
label
Char
string='Journal Item Label'
model_id
Many2one → account.reconcile.model
ondelete='cascade'
readonly=True
args: 'account.reconcile.model'
payment_tolerance_param
Float
related='model_id.payment_tolerance_param'
rule_type
Selection
related='model_id.rule_type'
sequence
Integer
default=10
required=True
show_force_tax_included
Boolean
compute='_compute_show_force_tax_included'
help='Technical field used to show the force tax included button'
tax_ids
Many2many → account.tax
check_company=True
ondelete='restrict'
string='Taxes'
args: 'account.tax'
No public methods.
account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Account'
args: 'account.account.template'
amount_string
Char
string='Amount'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('regex', 'From label')]
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
label
Char
string='Journal Item Label'
model_id
Many2one → account.reconcile.model.template
sequence
Integer
default=10
required=True
tax_ids
Many2many → account.tax.template
ondelete='restrict'
string='Taxes'
args: 'account.tax.template'
No public methods.
model_id
Many2one → account.reconcile.model
comodel_name='account.reconcile.model'
ondelete='cascade'
readonly=True
required=True
narration_regex
Char
string='Find Text in Notes'
partner_id
Many2one → res.partner
comodel_name='res.partner'
ondelete='cascade'
required=True
string='Partner'
payment_ref_regex
Char
string='Find Text in Label'
validate_regex(self)
allow_payment_tolerance
Boolean
default=True
help='Difference accepted in case of underpayment.'
string='Allow Payment Gap'
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
decimal_separator
Char
help='Every character that is nor a digit nor this separator will be removed from the matching string'
line_ids
One2many → account.reconcile.model.line.template
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount Condition'
match_amount_max
Float
string='Amount Max Parameter'
match_amount_min
Float
string='Amount Min Parameter'
match_journal_ids
Many2many → account.journal
domain="[('type', 'in', ('bank', 'cash'))]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals Availability'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
match_label_param
Char
string='Label Parameter'
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Amount Received'), ('amount_paid', 'Amount Paid'), ('both', 'Amount Paid/Received')]
string='Amount Type'
match_note
Selection
help='The reconciliation model will only be applied when the note:\n * Contains: The proposition note must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Note'
match_note_param
Char
string='Note Parameter'
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner Is Set'
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Restrict Partner Categories to'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Restrict Partners to'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency'
match_text_location_label
Boolean
default=True
help="Search in the Statement's Label to find the Invoice/Payment's reference"
match_text_location_note
Boolean
default=False
help="Search in the Statement's Note to find the Invoice/Payment's reference"
match_text_location_reference
Boolean
default=False
help="Search in the Statement's Reference to find the Invoice/Payment's reference"
match_transaction_type
Selection
help='The reconciliation model will only be applied when the transaction type:\n * Contains: The proposition transaction type must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Transaction Type'
match_transaction_type_param
Char
string='Transaction Type Parameter'
matching_order
Selection
selection=[('old_first', 'Oldest first'), ('new_first', 'Newest first')]
name
Char
required=True
string='Button Label'
payment_tolerance_param
Float
default=0.0
help='The sum of total residual amount propositions matches the statement line amount under this amount/percentage.'
string='Gap'
payment_tolerance_type
Selection
default='percentage'
help='The sum of total residual amount propositions and the statement line amount allowed gap type.'
required=True
selection=[('percentage', 'in percentage'), ('fixed_amount', 'in amount')]
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', 'Button to generate counterpart entry'), ('writeoff_suggestion', 'Rule to suggest counterpart entry'), ('invoice_matching', 'Rule to match invoices/bills')]
string='Type'
sequence
Integer
default=10
required=True
to_check
Boolean
default=False
help='This matching rule is used when the user is not certain of all the information of the counterpart.'
string='To Check'
No public methods.
end_date
Date
help='Date (inclusive) to which the numbers are resequenced. If not set, all Journal Entries up to the end of the period are resequenced.'
first_date
Date
help='Date (inclusive) from which the numbers are resequenced.'
first_name
Char
compute='_compute_first_name'
readonly=False
required=True
store=True
string='First New Sequence'
move_ids
Many2many → account.move
new_values
Text
compute='_compute_new_values'
ordering
Selection
default='keep'
required=True
args: [('keep', 'Keep current order'), ('date', 'Reorder by accounting date')]
preview_moves
Text
compute='_compute_preview_moves'
sequence_number_reset
Char
compute='_compute_sequence_number_reset'
default_get(self, fields_list)
resequence(self)
company_id
Many2one → res.company
name
Char
parent_id
Many2one → account.root
init(self)
bank_bic
Char
readonly=False
related='bank_id.bic'
string='Bic'
linked_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_linked_journal_id'
domain="[('type','=','bank'), ('bank_account_id', '=', False), ('company_id', '=', company_id)]"
inverse='set_linked_journal_id'
string='Journal'
new_journal_name
Char
default=<expr>
help='Will be used to name the Journal related to this bank account'
inverse='set_linked_journal_id'
required=True
num_journals_without_account
Integer
default=<expr>
res_partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
ondelete='cascade'
required=True
create(self, vals)
default_linked_journal_id(self)
set_linked_journal_id(self)
validate(self)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
default=0.0
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
help='\n - Group of Taxes: The tax is a set of sub taxes.\n - Fixed: The tax amount stays the same whatever the price.\n - Percentage of Price: The tax amount is a % of the price:\n e.g 100 * (1 + 10%) = 110 (not price included)\n e.g 110 / (1 + 10%) = 100 (price included)\n - Percentage of Price Tax Included: The tax amount is a division of the price:\n e.g 180 / (1 - 10%) = 200 (not price included)\n e.g 200 * (1 - 10%) = 180 (price included)\n '
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Include in Analytic Cost'
cash_basis_transition_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
children_tax_ids
Many2many → account.tax
check_company=True
string='Children Taxes'
args: 'account.tax', 'account_tax_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_code
Char
readonly=True
related='country_id.code'
country_id
Many2one → res.country
comodel_name='res.country'
help='The country for which this tax is applicable.'
required=True
string='Country'
description
Char
string='Label on Invoices'
hide_tax_exigibility
Boolean
readonly=True
related='company_id.tax_exigibility'
string='Hide Use Cash Basis Option'
include_base_amount
Boolean
default=False
help='If set, taxes with a higher sequence than this one will be affected by it, provided they accept it.'
string='Affect Base of Subsequent Taxes'
invoice_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
help='Distribution when the tax is used on an invoice'
inverse_name='invoice_tax_id'
string='Distribution for Invoices'
is_base_affected
Boolean
default=True
help='If set, taxes with a lower sequence might affect this one, provided they try to do it.'
string='Base Affected by Previous Taxes'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
help='Distribution when the tax is used on a refund'
inverse_name='refund_tax_id'
string='Distribution for Refund Invoices'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Exigibility'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
default=_default_tax_group
domain="[('country_id', 'in', (country_id, False))]"
required=True
string='Tax Group'
args: 'account.tax.group'
tax_scope
Selection
help='Restrict the use of taxes to a type of product.'
string='Tax Scope'
args: [('service', 'Services'), ('consu', 'Goods')]
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment."
required=True
string='Tax Type'
args: TYPE_TAX_USE
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True, include_caba_tags=False)
copy(self, default=None)
default_get(self, fields_list)
flatten_taxes_hierarchy(self, create_map=False)
get_tax_tags(self, is_refund, repartition_type)
json_friendly_compute_all(self, price_unit, currency_id=None, quantity=1.0, product_id=None, partner_id=None, is_refund=False, include_caba_tags=False)
name_get(self)
onchange_amount(self)
onchange_amount_type(self)
onchange_price_include(self)
validate_tax_group_id(self)
amount
Float
default=0.0
required=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
date
Date
default=fields.Date.context_today
required=True
foreign_vat_fiscal_position_id
Many2one → account.fiscal.position
comodel_name='account.fiscal.position'
domain="[('company_id', '=', company_id), ('country_id', '=', tax_report_country_id), ('foreign_vat', '!=', False)]"
help='The foreign fiscal position for which this carryover is made.'
string='Fiscal position'
name
Char
required=True
tax_report_country_id
Many2one
related='tax_report_id.country_id'
tax_report_id
Many2one
related='tax_report_line_id.report_id'
tax_report_line_id
Many2one → account.tax.report.line
comodel_name='account.tax.report.line'
string='Tax report line'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
help='The country for which this tax group is applicable.'
string='Country'
name
Char
required=True
translate=True
preceding_subtotal
Char
help="If set, this value will be used on documents as the label of a subtotal excluding this tax group before displaying it. If not set, the tax group will be displayed after the 'Untaxed amount' subtotal."
string='Preceding Subtotal'
property_advance_tax_payment_account_id
Many2one → account.account
company_dependent=True
string='Advance Tax payment account'
args: 'account.account'
property_tax_payable_account_id
Many2one → account.account
company_dependent=True
string='Tax current account (payable)'
args: 'account.account'
property_tax_receivable_account_id
Many2one → account.account
company_dependent=True
string='Tax current account (receivable)'
args: 'account.account'
sequence
Integer
default=10
No public methods.
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('internal_type', 'not in', ('receivable', 'payable'))]"
help='Account on which to post the tax amount'
string='Account'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company'
help='The company this distribution line belongs to.'
store=True
string='Company'
factor
Float
compute='_compute_factor'
help='Factor to apply on the account move lines generated from this distribution line'
string='Factor Ratio'
factor_percent
Float
help='Factor to apply on the account move lines generated from this distribution line, in percents'
required=True
string='%'
invoice_tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
help='The tax set to apply this distribution on invoices. Mutually exclusive with refund_tax_id'
ondelete='cascade'
refund_tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
help='The tax set to apply this distribution on refund invoices. Mutually exclusive with invoice_tax_id'
ondelete='cascade'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
sequence
Integer
default=1
help='The order in which distribution lines are displayed and matched. For refunds to work properly, invoice distribution lines should be arranged in the same order as the credit note distribution lines they correspond to.'
string='Sequence'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
domain=[('applicability', '=', 'taxes')]
string='Tax Grids'
tag_ids_domain
Binary
compute='_compute_tag_ids_domain'
help='Dynamic domain used for the tag that can be set on tax'
string='tag domain'
tax_id
Many2one → account.tax
comodel_name='account.tax'
compute='_compute_tax_id'
use_in_tax_closing
Boolean
default=True
string='Tax Closing Entry'
validate_tax_template_link(self)
account_id
Many2one → account.account.template
comodel_name='account.account.template'
help='Account on which to post the tax amount'
string='Account'
factor_percent
Float
help='Factor to apply on the account move lines generated from this distribution line, in percents'
required=True
string='%'
invoice_tax_id
Many2one → account.tax.template
comodel_name='account.tax.template'
help='The tax set to apply this distribution on invoices. Mutually exclusive with refund_tax_id'
minus_report_line_ids
Many2many → account.tax.report.line
comodel_name='account.tax.report.line'
copy=True
help="Tax report lines whose '-' tag will be assigned to move lines by this repartition line"
relation='account_tax_repartition_minus_report_line'
string='Minus Report Lines'
plus_report_line_ids
Many2many → account.tax.report.line
comodel_name='account.tax.report.line'
copy=True
help="Tax report lines whose '+' tag will be assigned to move lines by this repartition line"
relation='account_tax_repartition_plus_report_line'
string='Plus Tax Report Lines'
refund_tax_id
Many2one → account.tax.template
comodel_name='account.tax.template'
help='The tax set to apply this distribution on refund invoices. Mutually exclusive with invoice_tax_id'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
help='Additional tags that will be assigned by this repartition line for use in financial reports'
relation='account_tax_repartition_financial_tags'
string='Financial Tags'
use_in_tax_closing
Boolean
string='Tax Closing Entry'
create(self, vals)
get_repartition_line_create_vals(self, company)
validate_tags(self)
validate_tax_template_link(self)
country_id
Many2one → res.country
comodel_name='res.country'
default=<expr>
help='Country for which this report is available.'
required=True
string='Country'
line_ids
One2many → account.tax.report.line
comodel_name='account.tax.report.line'
help='Content of this tax report'
inverse_name='report_id'
string='Report Lines'
name
Char
help='Name of this tax report'
required=True
string='Name'
root_line_ids
One2many → account.tax.report.line
comodel_name='account.tax.report.line'
domain=[('parent_id', '=', None)]
help='Subset of line_ids, containing the lines at the root of the report.'
inverse_name='report_id'
string='Root Report Lines'
copy(self, default=None)
get_checks_to_perform(self, amounts, carried_over)
get_lines_in_hierarchy(self)
validate_country_id(self)
write(self, vals)
carry_over_condition_method
Selection
help='The method used to determine if this line should be carried over.'
selection=[('no_negative_amount_carry_over_condition', 'No negative amount'), ('always_carry_over_and_set_to_0', 'Always carry over and set to 0')]
string='Method'
carry_over_destination_line_id
Many2one → account.tax.report.line
comodel_name='account.tax.report.line'
domain="[('report_id', '=', report_id)]"
help='The line to which the value of this line will be carried over to if needed. If left empty the line will carry over to itself.'
string='Destination'
carryover_line_ids
One2many → account.tax.carryover.line
comodel_name='account.tax.carryover.line'
inverse_name='tax_report_line_id'
string='Carryover lines'
children_line_ids
One2many → account.tax.report.line
comodel_name='account.tax.report.line'
help='Lines that should be rendered as children of this one'
inverse_name='parent_id'
string='Children Lines'
code
Char
help='Optional unique code to refer to this line in total formulas'
string='Code'
formula
Char
help='Python expression used to compute the value of a total line. This field is mutually exclusive with tag_name, setting it turns the line to a total line. Tax report line codes can be used as variables in this expression to refer to the balance of the corresponding lines in the report. A formula cannot refer to another line using a formula.'
string='Formula'
is_carryover_persistent
Boolean
default=True
help='Defines how this report line creates carry over lines when performing tax closing. If true, the amounts carried over will always be added on top of each other: for example, a report line with a balance of 10 with an existing carryover of 50 will add an additional 10 to it when doing the closing, making a total carryover of 60. If false, the total carried over amount will be forced to the total of this report line: a report line with a balance of 10 with an existing carryover of 50 will create a new carryover line of -40, so that the total carryover becomes 10.'
string='Persistent'
is_carryover_used_in_balance
Boolean
help='If set, the carryover amount for this line will be used when calculating its balance in the report. This means that the carryover could affect other lines if they are using this one in their computation.'
string='Used in line balance'
name
Char
help='Complete name for this report line, to be used in report.'
required=True
string='Name'
parent_id
Many2one → account.tax.report.line
comodel_name='account.tax.report.line'
string='Parent Line'
parent_path
Char
index=True
report_action_id
Many2one → ir.actions.act_window
comodel_name='ir.actions.act_window'
help='The optional action to call when clicking on this line in accounting reports.'
string='Report Action'
report_id
Many2one → account.tax.report
comodel_name='account.tax.report'
help='The parent tax report of this line'
ondelete='cascade'
required=True
string='Tax Report'
sequence
Integer
help='Sequence determining the order of the lines in the report (smaller ones come first). This order is applied locally per section (so, children of the same line are always rendered one after the other).'
required=True
string='Sequence'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
help='Tax tags populating this line'
relation='account_tax_report_line_tags_rel'
string='Tags'
tag_name
Char
help='Short name for the tax grid corresponding to this report line. Leave empty if this report line should not correspond to any such grid.'
string='Tag Name'
action_view_carryover_lines(self, options)
always_carry_over_and_set_to_0(self, options, line_amount, carried_over_amount)
create(self, vals)
no_negative_amount_carry_over_condition(self, options, line_amount, carried_over_amount)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
default=0
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Analytic Cost'
cash_basis_transition_account_id
Many2one → account.account.template
comodel_name='account.account.template'
domain=[('deprecated', '=', False)]
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
children_tax_ids
Many2many → account.tax.template
string='Children Taxes'
args: 'account.tax.template', 'account_tax_template_filiation_rel', 'parent_tax', 'child_tax'
description
Char
string='Display on Invoices'
include_base_amount
Boolean
default=False
help='If set, taxes with a higher sequence than this one will be affected by it, provided they accept it.'
string='Affect Subsequent Taxes'
invoice_repartition_line_ids
One2many → account.tax.repartition.line.template
comodel_name='account.tax.repartition.line.template'
copy=True
help='Repartition when the tax is used on an invoice'
inverse_name='invoice_tax_id'
string='Repartition for Invoices'
is_base_affected
Boolean
default=True
help='If set, taxes with a lower sequence might affect this one, provided they try to do it.'
string='Base Affected by Previous Taxes'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_repartition_line_ids
One2many → account.tax.repartition.line.template
comodel_name='account.tax.repartition.line.template'
copy=True
help='Repartition when the tax is used on a refund'
inverse_name='refund_tax_id'
string='Repartition for Refund Invoices'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Due'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
string='Tax Group'
args: 'account.tax.group'
tax_scope
Selection
help='Restrict the use of taxes to a type of product.'
args: [('service', 'Service'), ('consu', 'Consumable')]
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group."
required=True
string='Tax Type'
args: TYPE_TAX_USE
name_get(self)
attachment_ids
Many2many → ir.attachment
comodel_name='ir.attachment'
relation='account_tour_upload_bill_ir_attachments_rel'
string='Attachments'
preview_invoice
Html
compute='_compute_preview_invoice'
string='Invoice Preview'
translate=True
selection
Selection
default='sample'
selection=<expr>
apply(self)
email_alias
Char
readonly=True
apply(self)
No new fields.
Public methods (1)trans_unrec(self)
No new fields.
Public methods (1)document_layout_save(self)
No new fields.
Public methods (0)No public methods.
kpi_account_total_revenue
Boolean
kpi_account_total_revenue_value
Monetary
compute='_compute_kpi_account_total_revenue_value'
No public methods.
No new fields.
Public methods (1)retrieve_attachment(self, record)
No new fields.
Public methods (1)write(self, values)
No new fields.
Public methods (0)No public methods.
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.'
string='Expense Account'
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='This account will be used when validating a customer invoice.'
string='Income Account'
args: 'account.account'
No public methods.
tax_string
Char
compute='_compute_tax_string'
No public methods.
account_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
domain="[('applicability', '=', 'products')]"
help='Tags to be set on the base and tax journal items created for this product.'
string='Account Tags'
property_account_expense_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category. If anglo-saxon accounting with automated valuation method is configured, the expense account on the product category will be used.'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category.'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'purchase')]
help='Default taxes used when buying the product.'
string='Vendor Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
tax_string
Char
compute='_compute_tax_string'
taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'sale')]
help='Default taxes used when selling the product.'
string='Customer Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
get_product_accounts(self, fiscal_pos=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)lines(self, target_move, journal_ids, sort_selection, data)
No new fields.
Public methods (0)No public methods.
account_cash_basis_base_account_id
Many2one → account.account
comodel_name='account.account'
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
account_dashboard_onboarding_state
Selection
default='not_done'
string='State of the account dashboard onboarding panel'
args: DASHBOARD_ONBOARDING_STATES
account_default_pos_receivable_account_id
Many2one → account.account
string='Default PoS Receivable Account'
args: 'account.account'
account_enabled_tax_country_ids
Many2many → res.country
comodel_name='res.country'
compute='_compute_account_enabled_tax_country_ids'
help='Technical field containing the countries for which this company is using tax-related features(hence the ones for which l10n modules need to show tax-related fields).'
string='l10n-used countries'
account_fiscal_country_id
Many2one → res.country
comodel_name='res.country'
compute='compute_account_tax_fiscal_country'
help='The country to use the tax reports from for this company'
readonly=False
store=True
string='Fiscal Country'
account_invoice_onboarding_state
Selection
default='not_done'
string='State of the account invoice onboarding panel'
args: DASHBOARD_ONBOARDING_STATES
account_journal_payment_credit_account_id
Many2one → account.account
string='Journal Outstanding Payments Account'
args: 'account.account'
account_journal_payment_debit_account_id
Many2one → account.account
string='Journal Outstanding Receipts Account'
args: 'account.account'
account_journal_suspense_account_id
Many2one → account.account
string='Journal Suspense Account'
args: 'account.account'
account_onboarding_create_invoice_state
Selection
default='not_done'
string='State of the onboarding create invoice step'
args: ONBOARDING_STEP_STATES
account_onboarding_invoice_layout_state
Selection
default='not_done'
string='State of the onboarding invoice layout step'
args: ONBOARDING_STEP_STATES
account_onboarding_sale_tax_state
Selection
default='not_done'
string='State of the onboarding sale tax step'
args: ONBOARDING_STEP_STATES
account_opening_date
Date
default=<expr>
help='That is the date of the opening entry.'
required=True
string='Opening Entry'
account_opening_journal_id
Many2one → account.journal
comodel_name='account.journal'
help="Journal where the opening entry of this company's accounting has been posted."
readonly=False
related='account_opening_move_id.journal_id'
string='Opening Journal'
account_opening_move_id
Many2one → account.move
comodel_name='account.move'
help="The journal entry containing the initial balance of all this company's accounts."
string='Opening Journal Entry'
account_purchase_tax_id
Many2one → account.tax
string='Default Purchase Tax'
args: 'account.tax'
account_sale_tax_id
Many2one → account.tax
string='Default Sale Tax'
args: 'account.tax'
account_setup_bank_data_state
Selection
default='not_done'
string='State of the onboarding bank data step'
args: ONBOARDING_STEP_STATES
account_setup_bill_state
Selection
default='not_done'
string='State of the onboarding bill step'
args: ONBOARDING_STEP_STATES
account_setup_coa_state
Selection
default='not_done'
string='State of the onboarding charts of account step'
args: ONBOARDING_STEP_STATES
account_setup_fy_data_state
Selection
default='not_done'
string='State of the onboarding fiscal year step'
args: ONBOARDING_STEP_STATES
account_setup_taxes_state
Selection
default='not_done'
string='State of the onboarding Taxes step'
args: ONBOARDING_STEP_STATES
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
automatic_entry_default_journal_id
Many2one → account.journal
domain="[('type', '=', 'general')]"
help='Journal used by default for moving the period of an entry'
args: 'account.journal'
bank_account_code_prefix
Char
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template_id
Many2one → account.chart.template
help='The chart template for the company (if any)'
args: 'account.chart.template'
country_code
Char
related='country_id.code'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
default_cash_difference_expense_account_id
Many2one → account.account
string='Cash Difference Expense Account'
args: 'account.account'
default_cash_difference_income_account_id
Many2one → account.account
string='Cash Difference Income Account'
args: 'account.account'
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_accrual_account_id
Many2one → account.account
domain="[('internal_group', '=', 'liability'), ('internal_type', 'not in', ('receivable', 'payable')), ('company_id', '=', id)]"
help='Account used to move the period of an expense'
args: 'account.account'
expense_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
string='Loss Exchange Rate Account'
fiscal_position_ids
One2many → account.fiscal.position
comodel_name='account.fiscal.position'
inverse_name='company_id'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default='12'
required=True
args: MONTH_SELECTION
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
string='Lock Date'
income_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
string='Gain Exchange Rate Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_email
Boolean
default=True
args: 'Email by default'
invoice_is_print
Boolean
default=True
args: 'Print by default'
invoice_terms
Html
string='Default Terms and Conditions'
translate=True
invoice_terms_html
Html
compute='_compute_invoice_terms_html'
readonly=False
sanitize_attributes=False
store=True
string='Default Terms and Conditions as a Web page'
translate=True
multi_vat_foreign_country_ids
Many2many → res.country
comodel_name='res.country'
compute='_compute_multi_vat_foreign_country'
help='Countries for which the company has a VAT number'
string='Foreign VAT countries'
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
string='Lock Date for Non-Advisers'
property_stock_account_input_categ_id
Many2one → account.account
string='Input Account for Stock Valuation'
args: 'account.account'
property_stock_account_output_categ_id
Many2one → account.account
string='Output Account for Stock Valuation'
args: 'account.account'
property_stock_valuation_account_id
Many2one → account.account
string='Account Template for Stock Valuation'
args: 'account.account'
qr_code
Boolean
string='Display QR-code on invoices'
revenue_accrual_account_id
Many2one → account.account
domain="[('internal_group', '=', 'asset'), ('internal_type', 'not in', ('receivable', 'payable')), ('company_id', '=', id)]"
help='Account used to move the period of a revenue'
args: 'account.account'
tax_calculation_rounding_method
Selection
default='round_per_line'
string='Tax Calculation Rounding Method'
args: [('round_per_line', 'Round per Line'), ('round_globally', 'Round Globally')]
tax_cash_basis_journal_id
Many2one → account.journal
comodel_name='account.journal'
string='Cash Basis Journal'
tax_exigibility
Boolean
string='Use Cash Basis'
tax_lock_date
Date
help='No users can edit journal entries related to a tax prior and inclusive of this date.'
args: 'Tax Lock Date'
terms_type
Selection
default='plain'
string='Terms & Conditions format'
args: [('plain', 'Add a Note'), ('html', 'Add a link to a Web Page')]
transfer_account_code_prefix
Char
string='Prefix of the transfer accounts'
transfer_account_id
Many2one → account.account
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
action_close_account_dashboard_onboarding(self)
action_close_account_invoice_onboarding(self)
action_open_account_onboarding_create_invoice(self)
action_open_account_onboarding_sale_tax(self)
action_open_taxes_onboarding(self)
action_save_onboarding_invoice_layout(self)
action_save_onboarding_sale_tax(self)
compute_account_tax_fiscal_country(self)
compute_fiscalyear_dates(self, current_date)
create_op_move_if_non_existant(self)
get_account_dashboard_onboarding_steps_states_names(self)
get_account_invoice_onboarding_steps_states_names(self)
get_and_update_account_dashboard_onboarding_state(self)
get_and_update_account_invoice_onboarding_state(self)
get_chart_of_accounts_or_fail(self)
get_new_account_code(self, current_code, old_prefix, new_prefix)
get_opening_move_differences(self, opening_move_lines)
get_unaffected_earnings_account(self)
opening_move_posted(self)
reflect_code_prefix_change(self, old_code, new_code)
setting_chart_of_accounts_action(self)
setting_init_bank_account_action(self)
setting_init_fiscal_year_action(self)
write(self, values)
account_cash_basis_base_account_id
Many2one → account.account
comodel_name='account.account'
domain=[('deprecated', '=', False)]
readonly=False
related='company_id.account_cash_basis_base_account_id'
string='Base Tax Received Account'
account_fiscal_country_id
Many2one
readonly=False
related='company_id.account_fiscal_country_id'
store=False
string='Fiscal Country Code'
account_journal_payment_credit_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
help='Outgoing Payments are posted on an Outstanding Payments Account. In the bank reconciliation widget, they appear as blue lines.\nBank transactions are then reconciled on the Outstanding Payments Account rather the Payable Account.'
readonly=False
related='company_id.account_journal_payment_credit_account_id'
string='Outstanding Payments Account'
account_journal_payment_debit_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
help='Incoming payments are posted on an Outstanding Receipts Account. In the bank reconciliation widget, they appear as blue lines.\nBank transactions are then reconciled on the Outstanding Receipts Accounts rather than the Receivable Account.'
readonly=False
related='company_id.account_journal_payment_debit_account_id'
string='Outstanding Receipts Account'
account_journal_suspense_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
help='Bank Transactions are posted immediately after import or synchronization. Their counterparty is the bank suspense account.\nReconciliation replaces the latter by the definitive account(s).'
readonly=False
related='company_id.account_journal_suspense_account_id'
string='Bank Suspense Account'
chart_template_id
Many2one → account.chart.template
default=<expr>
domain="[('visible','=', True)]"
string='Template'
args: 'account.chart.template'
country_code
Char
readonly=True
related='company_id.account_fiscal_country_id.code'
currency_exchange_journal_id
Many2one → account.journal
comodel_name='account.journal'
domain="[('company_id', '=', company_id), ('type', '=', 'general')]"
help='The accounting journal where automatic exchange differences will be registered'
readonly=False
related='company_id.currency_exchange_journal_id'
string='Currency Exchange Journal'
currency_id
Many2one → res.currency
help='Main currency of the company.'
readonly=False
related='company_id.currency_id'
required=True
string='Currency'
args: 'res.currency'
expense_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
readonly=False
related='company_id.expense_currency_exchange_account_id'
string='Loss Account'
group_analytic_tags
Boolean
implied_group='analytic.group_analytic_tags'
string='Analytic Tags'
group_cash_rounding
Boolean
implied_group='account.group_cash_rounding'
string='Cash Rounding'
group_show_line_subtotals_tax_excluded
Boolean
group='base.group_portal,base.group_user,base.group_public'
implied_group='account.group_show_line_subtotals_tax_excluded'
args: 'Show line subtotals without taxes (B2B)'
group_show_line_subtotals_tax_included
Boolean
group='base.group_portal,base.group_user,base.group_public'
implied_group='account.group_show_line_subtotals_tax_included'
args: 'Show line subtotals with taxes (B2C)'
group_show_purchase_receipts
Boolean
implied_group='account.group_purchase_receipts'
string='Purchase Receipt'
group_show_sale_receipts
Boolean
implied_group='account.group_sale_receipts'
string='Sale Receipt'
group_warning_account
Boolean
implied_group='account.group_warning_account'
string='Warnings in Invoices'
has_accounting_entries
Boolean
compute='_compute_has_chart_of_accounts'
has_chart_of_accounts
Boolean
compute='_compute_has_chart_of_accounts'
string='Company has a chart of accounts'
income_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
readonly=False
related='company_id.income_currency_exchange_account_id'
string='Gain Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
readonly=False
related='company_id.incoterm_id'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_email
Boolean
readonly=False
related='company_id.invoice_is_email'
string='Send Email'
invoice_is_print
Boolean
readonly=False
related='company_id.invoice_is_print'
string='Print'
invoice_terms
Html
readonly=False
related='company_id.invoice_terms'
string='Terms & Conditions'
invoice_terms_html
Html
readonly=False
related='company_id.invoice_terms_html'
string='Terms & Conditions as a Web page'
module_account_accountant
Boolean
string='Accounting'
module_account_bank_statement_import_camt
Boolean
module_account_bank_statement_import_csv
Boolean
module_account_bank_statement_import_ofx
Boolean
module_account_bank_statement_import_qif
Boolean
module_account_batch_payment
Boolean
help='This allows you grouping payments into a single batch and eases the reconciliation process.\n-This installs the account_batch_payment module.'
string='Use batch payments'
module_account_budget
Boolean
string='Budget Management'
module_account_check_printing
Boolean
module_account_intrastat
Boolean
string='Intrastat'
module_account_invoice_extract
Boolean
string='Bill Digitalization'
module_account_payment
Boolean
string='Invoice Online Payment'
module_account_reports
Boolean
module_account_sepa
Boolean
string='SEPA Credit Transfer (SCT)'
module_account_sepa_direct_debit
Boolean
string='Use SEPA Direct Debit'
module_account_taxcloud
Boolean
string='Account TaxCloud'
module_currency_rate_live
Boolean
string='Automatic Currency Rates'
module_l10n_eu_oss
Boolean
string='EU Intra-community Distance Selling'
module_l10n_fr_fec_import
Boolean
help='Allows you to import FEC files.\n-This installs the l10n_fr_fec_import module.'
args: 'Import FEC files'
module_product_margin
Boolean
string='Allow Product Margin'
module_snailmail_account
Boolean
string='Snailmail'
preview_ready
Boolean
compute='_compute_terms_preview'
string='Display preview button'
purchase_tax_id
Many2one → account.tax
readonly=False
related='company_id.account_purchase_tax_id'
string='Default Purchase Tax'
args: 'account.tax'
qr_code
Boolean
readonly=False
related='company_id.qr_code'
string='Display SEPA QR-code'
sale_tax_id
Many2one → account.tax
readonly=False
related='company_id.account_sale_tax_id'
string='Default Sale Tax'
args: 'account.tax'
show_line_subtotals_tax_selection
Selection
config_parameter='account.show_line_subtotals_tax_selection'
default='tax_excluded'
required=True
string='Line Subtotals Tax Display'
args: [('tax_excluded', 'Tax-Excluded'), ('tax_included', 'Tax-Included')]
tax_calculation_rounding_method
Selection
readonly=False
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_cash_basis_journal_id
Many2one → account.journal
readonly=False
related='company_id.tax_cash_basis_journal_id'
string='Tax Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
readonly=False
related='company_id.tax_exigibility'
string='Cash Basis'
terms_type
Selection
readonly=False
related='company_id.terms_type'
transfer_account_id
Many2one → account.account
domain=<expr>
help='Intermediary account used when moving from a liquidity account to another.'
readonly=False
related='company_id.transfer_account_id'
string='Internal Transfer Account'
args: 'account.account'
use_invoice_terms
Boolean
config_parameter='account.use_invoice_terms'
string='Default Terms & Conditions'
action_update_terms(self)
onchange_analytic_accounting(self)
onchange_module_account_budget(self)
set_values(self)
display_rounding_warning
Boolean
compute='_compute_display_rounding_warning'
help="Technical field. Used to tell whether or not to display the rounding warning. The warning informs a rounding factor change might be dangerous on res.currency's form view."
string='Display Rounding Warning'
write(self, vals)
No new fields.
Public methods (1)get_application_groups(self, domain)
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Partner Contracts'
args: 'account.analytic.account', 'partner_id'
credit
Monetary
compute='_credit_debit_get'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
currency_id
Many2one → res.currency
compute='_get_company_currency'
help='Utility field to express amount currency'
readonly=True
string='Currency'
args: 'res.currency'
customer_rank
Integer
copy=False
default=0
debit
Monetary
compute='_credit_debit_get'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
debit_limit
Monetary
has_unreconciled_entries
Boolean
compute='_compute_has_unreconciled_entries'
help='The partner has at least one unreconciled debit and credit since last time the invoices & payments matching was performed.'
invoice_ids
One2many → account.move
copy=False
readonly=True
string='Invoices'
args: 'account.move', 'partner_id'
invoice_warn
Selection
default='no-message'
help=WARNING_HELP
args: WARNING_MESSAGE, 'Invoice'
invoice_warn_msg
Text
journal_item_count
Integer
compute='_compute_journal_item_count'
string='Journal Items'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed for this partner. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit or if you click the "Done" button.'
readonly=True
string='Latest Invoices & Payments Matching Date'
property_account_payable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'payable'), ('deprecated', '=', False), ('company_id', '=', current_company_id)]"
help='This account will be used instead of the default one as the payable account for the current partner'
required=True
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
company_dependent=True
domain="[('company_id', '=', current_company_id)]"
help='The fiscal position determines the taxes/accounts used for this contact.'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'receivable'), ('deprecated', '=', False), ('company_id', '=', current_company_id)]"
help='This account will be used instead of the default one as the receivable account for the current partner'
required=True
string='Account Receivable'
args: 'account.account'
property_payment_term_id
Many2one → account.payment.term
company_dependent=True
domain="[('company_id', 'in', [current_company_id, False])]"
help='This payment term will be used instead of the default one for sales orders and customer invoices'
string='Customer Payment Terms'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
company_dependent=True
domain="[('company_id', 'in', [current_company_id, False])]"
help='This payment term will be used instead of the default one for purchase orders and vendor bills'
string='Vendor Payment Terms'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
supplier_rank
Integer
copy=False
default=0
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice,account.group_account_readonly'
string='Total Invoiced'
trust
Selection
company_dependent=True
default='normal'
string='Degree of trust you have in this debtor'
args: [('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')]
action_view_partner_invoices(self)
can_edit_vat(self)
create(self, vals_list)
mark_as_reconciled(self)
No new fields.
Public methods (3)build_qr_code_base64(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
build_qr_code_url(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
get_available_qr_methods_in_sequence(self)
journal_id
One2many → account.journal
domain=[('type', '=', 'bank')]
help='The accounting journal corresponding to this bank account.'
readonly=True
string='Account Journal'
args: 'account.journal', 'bank_account_id'
default_get(self, fields_list)
No new fields.
Public methods (0)No public methods.
sequence_number
Integer
compute='_compute_split_sequence'
store=True
sequence_prefix
Char
compute='_compute_split_sequence'
store=True
init(self)
adjustment_type
Selection
required=True
string='Adjustment Type'
args: [('debit', 'Applied on debit journal item'), ('credit', 'Applied on credit journal item')]
amount
Monetary
currency_field='company_currency_id'
required=True
company_currency_id
Many2one → res.currency
default=<expr>
readonly=True
args: 'res.currency'
credit_account_id
Many2one → account.account
domain="[('deprecated', '=', False), ('is_off_balance', '=', False)]"
required=True
string='Credit account'
args: 'account.account'
date
Date
default=fields.Date.context_today
required=True
debit_account_id
Many2one → account.account
domain="[('deprecated', '=', False), ('is_off_balance', '=', False)]"
required=True
string='Debit account'
args: 'account.account'
journal_id
Many2one → account.journal
default=_get_default_journal
domain=[('type', '=', 'general')]
required=True
string='Journal'
args: 'account.journal'
reason
Char
required=True
string='Justification'
report_id
Many2one
related='tax_report_line_id.report_id'
string='Report'
tax_report_line_id
Many2one → account.tax.report.line
comodel_name='account.tax.report.line'
domain=_domain_tax_report
help='The report line to make an adjustment for.'
required=True
string='Report Line'
create_move(self)
force_post
Boolean
help='Entries in the future are set to be auto-posted by default. Check this checkbox to post them now.'
string='Force'
validate_move(self)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
_assets_primary_variables |
_assets_primary_variables | ir.ui.view | qweb | Inherits web._assets_primary_variables |
account_automatic_entry_wizard_form |
account.automatic.entry.wizard.form | account.automatic.entry.wizard | form | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_common_report_view |
Common Report | account.common.report | form | New |
account_dashboard_onboarding_panel |
account.dashboard.onboarding.panel | ir.ui.view | qweb | New |
account_incoterms_form |
account.incoterms.form | account.incoterms | form | New |
account_incoterms_view_search |
account.incoterms.search | account.incoterms | search | New |
account_invoice_onboarding_panel |
account.invoice.onboarding.panel | ir.ui.view | qweb | New |
account_invoice_onboarding_sale_tax_form |
account.invoice.layout.onboarding.form | res.company | form | New |
account_invoice_send_wizard_form |
account.invoice.send.form | account.invoice.send | form | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_journal_dashboard_kanban_view_js |
account.journal.dashboard.kanban.js | account.journal | xpath | Inherits account.account_journal_dashboard_kanban_view |
account_journal_view_kanban |
account.journal.kanban | account.journal | kanban | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_view_kanban |
account.move.line.kanban | account.move.line | kanban | New |
account_resequence_view |
Re-sequence Journal Entries | account.resequence.wizard | form | New |
account_tag_view_form |
Tags | account.account.tag | form | New |
account_tag_view_search |
account.tag.view.search | account.account.tag | search | New |
account_tag_view_tree |
Tags | account.account.tag | tree | New |
account_tax_report_form |
account.tax.report.form | account.tax.report | form | New |
account_tax_report_line_form |
account.tax.report.line.form | account.tax.report.line | form | New |
account_tax_report_line_tree |
account.tax.report.line.tree | account.tax.report.line | tree | New |
account_tax_report_search |
account.tax.report.search | account.tax.report | search | New |
account_tax_report_tree |
account.tax.report.tree | account.tax.report | tree | New |
account_tax_view_search |
account.tax.search.filters | account.tax | search | New |
account_tax_view_tree |
account.invoice.line.tax.search | account.tax | tree | New |
account_tour_upload_bill |
account.tour.upload.bill | account.tour.upload.bill | form | New |
account_tour_upload_bill_email_confirm |
account.tour.upload.bill.email.confirm | account.tour.upload.bill.email.confirm | form | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
assets_backend |
account assets | ir.ui.view | qweb | Inherits web.assets_backend |
assets_frontend |
account assets | ir.ui.view | qweb | Inherits web.assets_frontend |
assets_tests |
Account Assets Tests | ir.ui.view | qweb | Inherits web.assets_tests |
cash_box_out_form |
cash_box_out | cash.box.out | form | New |
dashboard_onboarding_bill_step |
dashboard_onboarding_bill_step | ir.ui.view | qweb | New |
digest_digest_view_form |
digest.digest.view.form.inherit.account.account | digest.digest | xpath | Inherits digest.digest_digest_view_form |
init_accounts_tree |
account.setup.opening.move.line.tree | account.account | tree | New |
onboarding_bank_account_step |
onboarding_bank_account_step | ir.ui.view | qweb | New |
onboarding_chart_of_account_step |
onboarding_chart_of_account_step | ir.ui.view | qweb | New |
onboarding_create_invoice_step |
onboarding_create_invoice_step | ir.ui.view | qweb | New |
onboarding_fiscal_year_step |
onboarding_fiscal_year_step | ir.ui.view | qweb | New |
onboarding_invoice_layout_step |
onboarding_invoice_layout_step | ir.ui.view | qweb | New |
onboarding_sale_tax_step |
onboarding_sale_tax_step | ir.ui.view | qweb | New |
partner_view_buttons |
partner.view.buttons | res.partner | div | Inherits base.view_partner_form |
portal_invoice_error |
Invoice error/warning display | ir.ui.view | qweb | New |
portal_invoice_page |
Invoice Portal Template | ir.ui.view | qweb | Inherits portal.portal_sidebar |
portal_invoice_success |
Invoice success display | ir.ui.view | qweb | New |
portal_my_home_invoice |
Show Invoices & Bills | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_invoice |
Portal layout : invoice menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_invoices |
My Invoices and Payments | ir.ui.view | qweb | New |
product_template_form_view |
product.template.form.inherit | product.template | xpath | Inherits product.product_template_form_view |
product_template_view_tree |
product.template.tree | product.template | tree | New |
qunit_suite |
account tests | ir.ui.view | qweb | Inherits web.qunit_suite_tests |
report_hash_integrity |
report_hash_integrity | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_invoice_with_payments |
report_invoice_with_payments | ir.ui.view | qweb | New |
report_journal |
report_journal | ir.ui.view | qweb | New |
report_original_vendor_bill |
report_original_vendor_bill | ir.ui.view | qweb | New |
report_payment_receipt |
report_payment_receipt | ir.ui.view | qweb | New |
report_payment_receipt_document |
report_payment_receipt_document | ir.ui.view | qweb | New |
report_statement |
report_statement | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.account | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_currency_form_inherit |
res.currency.form.inherit | res.currency | xpath | Inherits base.view_currency_form |
res_partner_view_search |
res.partner.search.inherit | res.partner | xpath | Inherits base.view_res_partner_filter |
rounding_form_view |
account.cash.rounding.form | account.cash.rounding | form | New |
rounding_search_view |
account.cash.rounding.search | account.cash.rounding | search | New |
rounding_tree_view |
account.cash.rounding.tree | account.cash.rounding | tree | New |
setup_bank_account_wizard |
account.online.sync.res.partner.bank.setup.form | account.setup.bank.manual.config | form | New |
setup_financial_year_opening_form |
account.financial.year.op.setup.wizard.form | account.financial.year.op | form | New |
tax_adjustments_wizard |
tax.adjustments.wizard.form | tax.adjustments.wizard | form | New |
tax_repartition_line_tree |
account.tax.repartition.line.tree | account.tax.repartition.line | tree | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_account_kanban |
account.account.kanban | account.account | kanban | New |
view_account_analytic_default_form |
account.analytic.default.form | account.analytic.default | form | New |
view_account_analytic_default_form_search |
account.analytic.default.search | account.analytic.default | search | New |
view_account_analytic_default_kanban |
account.analytic.default.kanban | account.analytic.default | kanban | New |
view_account_analytic_default_tree |
account.analytic.default.tree | account.analytic.default | tree | New |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.tree.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_bnk_stmt_cashbox |
account.bnk_stmt_cashbox.form | account.bank.statement.cashbox | form | New |
view_account_bnk_stmt_cashbox_footer |
account.bnk_stmt_cashbox.form | account.bank.statement.cashbox | xpath | Inherits view_account_bnk_stmt_cashbox |
view_account_bnk_stmt_check |
account.bnk_stmt_check.form | account.bank.statement.closebalance | form | New |
view_account_chart_template_form |
account.chart.template.form | account.chart.template | form | New |
view_account_chart_template_seacrh |
account.chart.template.search | account.chart.template | search | New |
view_account_chart_template_tree |
account.chart.template.tree | account.chart.template | tree | New |
view_account_form |
account.account.form | account.account | form | New |
view_account_group_form |
account.group.form | account.group | form | New |
view_account_group_search |
account.group.search | account.group | search | New |
view_account_group_tree |
account.group.tree | account.group | tree | New |
view_account_invoice_filter |
account.invoice.select | account.move | search | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_invoice_report_search_analytic_accounting |
account.invoice.report.search_analytic_accounting | account.invoice.report | filter | Inherits account.view_account_invoice_report_search |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_group_form |
account.journal.group.form | account.journal.group | form | New |
view_account_journal_group_tree |
account.journal.group.tree | account.journal.group | tree | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_kanban |
account.move.kanban | account.move | kanban | New |
view_account_move_line_filter |
account.move.line.search | account.move.line | search | New |
view_account_move_line_filter_with_root_selection |
account.move.line.search | account.move.line | xpath | Inherits account.view_account_move_line_filter |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_kanban |
account.payment.kanban | account.payment | kanban | New |
view_account_payment_register_form |
account.payment.register.form | account.payment.register | form | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_term_kanban |
account.payment.term.kanban | account.payment.term | kanban | New |
view_account_payment_tree |
account.payment.tree | account.payment | tree | New |
view_account_position_filter |
account.fiscal.position.filter | account.fiscal.position | search | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_reconcile_model_form |
account.reconcile.model.form | account.reconcile.model | form | New |
view_account_reconcile_model_line_form |
account.reconcile.model.line.form | account.reconcile.model.line | form | New |
view_account_reconcile_model_search |
account.reconcile.model.search | account.reconcile.model | search | New |
view_account_reconcile_model_tree |
account.reconcile.model.tree | account.reconcile.model | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_supplier_payment_tree |
account.supplier.payment.tree | account.payment | field | Inherits account.view_account_payment_tree |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_template_form |
account.account.template.form | account.account.template | form | New |
view_account_template_search |
account.account.template.search | account.account.template | search | New |
view_account_template_tree |
account.account.template.tree | account.account.template | tree | New |
view_account_type_form |
account.account.type.form | account.account.type | form | New |
view_account_type_search |
account.account.type.search | account.account.type | search | New |
view_account_type_tree |
account.account.type.tree | account.account.type | tree | New |
view_bank_statement_form |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_line_form |
bank.statement.line.form | account.bank.statement.line | form | New |
view_bank_statement_line_search |
account.bank.statement.line.search | account.bank.statement.line | search | New |
view_bank_statement_line_tree |
account.bank.statement.line.tree | account.bank.statement.line | tree | New |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_company_form |
res.company.form.inherit.account | res.company | xpath | Inherits base.view_company_form |
view_company_partner_bank_form |
company.res.partner.bank.form | res.partner.bank | xpath | Inherits base.view_partner_bank_form |
view_full_reconcile_form |
account.full.reconcile.form | account.full.reconcile | form | New |
view_in_invoice_tree |
account.out.invoice.tree | account.move | xpath | Inherits account.view_invoice_tree |
view_incoterms_tree |
account.incoterms.tree | account.incoterms | tree | New |
view_invoice_tree |
account.invoice.tree | account.move | tree | New |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_pivot |
account.move.line.pivot | account.move.line | pivot | New |
view_move_line_tax_audit_tree |
account.move.line.tax.audit.tree | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_line_tree_grouped |
account.move.line.tree.grouped | account.move.line | tree | New |
view_move_line_tree_grouped_bank_cash |
account.move.line.tree.grouped.bank.cash | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_general |
account.move.line.tree.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_misc |
account.move.line.tree.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_partner |
account.move.line.tree.grouped.partner | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_sales_purchases |
account.move.line.tree.grouped.sales.purchase | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_tree |
account.move.tree | account.move | tree | New |
view_out_invoice_tree |
account.out.invoice.tree | account.move | xpath | Inherits account.view_invoice_tree |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | page | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_line_form |
account.payment.term.line.form | account.payment.term.line | form | New |
view_payment_term_line_tree |
account.payment.term.line.tree | account.payment.term.line | tree | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_payment_term_tree |
account.payment.term.tree | account.payment.term | tree | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_group_tree |
account.tax.group.tree | account.tax.group | tree | New |
view_tax_kanban |
account.tax.kanban | account.tax | kanban | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
allowed_journal_ids
Many2many → account.journal
help='Define in which journals this account can be used. If empty, can be used in all journals.'
string='Allowed Journals'
args: 'account.journal'
code
Char
index=True
required=True
size=64
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this account currency.'
string='Account Currency'
args: 'res.currency'
deprecated
Boolean
default=False
index=True
group_id
Many2one → account.group
compute='_compute_account_group'
readonly=True
store=True
args: 'account.group'
internal_group
Selection
readonly=True
related='user_type_id.internal_group'
store=True
string='Internal Group'
internal_type
Selection
readonly=True
related='user_type_id.type'
store=True
string='Internal Type'
is_off_balance
Boolean
compute='_compute_is_off_balance'
default=False
readonly=True
store=True
name
Char
index=True
required=True
string='Account Name'
note
Text
opening_balance
Monetary
compute='_compute_opening_debit_credit'
help='Opening balance value for this account.'
string='Opening Balance'
opening_credit
Monetary
compute='_compute_opening_debit_credit'
help='Opening credit value for this account.'
inverse='_set_opening_credit'
string='Opening Credit'
opening_debit
Monetary
compute='_compute_opening_debit_credit'
help='Opening debit value for this account.'
inverse='_set_opening_debit'
string='Opening Debit'
reconcile
Boolean
default=False
help='Check this box if this account allows invoices & payments matching of journal items.'
string='Allow Reconciliation'
root_id
Many2one → account.root
compute='_compute_account_root'
store=True
args: 'account.root'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Tags'
args: 'account.account.tag', 'account_account_account_tag'
tax_ids
Many2many → account.tax
check_company=True
context={'append_type_to_tax_name': True}
string='Default Taxes'
args: 'account.tax', 'account_account_tax_default_rel', 'account_id', 'tax_id'
used
Boolean
compute='_compute_used'
search='_search_used'
user_type_id
Many2one → account.account.type
help='Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.'
required=True
string='Type'
args: 'account.account.type'
action_duplicate_accounts(self)
action_read_account(self)
copy(self, default=None)
default_get(self, default_fields)
load(self, fields, data)
name_get(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the Account Tag without removing it.'
applicability
Selection
default='accounts'
required=True
args: [('accounts', 'Accounts'), ('taxes', 'Taxes')]
color
Integer
country_id
Many2one → res.country
comodel_name='res.country'
help='Country for which this tag is available, when applied on taxes.'
string='Country'
name
Char
required=True
args: 'Tag Name'
tax_negate
Boolean
help='Check this box to negate the absolute value of the balance of the lines associated with this tag in tax report computation.'
string='Negate Tax Balance'
tax_report_line_ids
Many2many → account.tax.report.line
comodel_name='account.tax.report.line'
help='The tax report lines using this tag'
relation='account_tax_report_line_tags_rel'
string='Tax Report Lines'
No public methods.
chart_template_id
Many2one → account.chart.template
help="This optional field allow you to link an account template to a specific chart template that may differ from the one its root parent belongs to. This allow you to define chart templates that extend another and complete it with few new accounts (You don't need to define the whole structure that is common to both several times)."
string='Chart Template'
args: 'account.chart.template'
code
Char
index=True
required=True
size=64
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
name
Char
index=True
required=True
nocreate
Boolean
default=False
help='If checked, the new chart of accounts will not contain this by default.'
string='Optional Create'
note
Text
reconcile
Boolean
default=False
help='Check this option if you want the user to reconcile entries in this account.'
string='Allow Invoices & payments Matching'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag', 'account_account_template_account_tag'
tax_ids
Many2many → account.tax.template
string='Default Taxes'
args: 'account.tax.template', 'account_account_template_tax_rel', 'account_id', 'tax_id'
user_type_id
Many2one → account.account.type
help='These types are defined according to your country. The type contains more information about the account and its specificities.'
required=True
string='Type'
args: 'account.account.type'
name_get(self)
include_initial_balance
Boolean
help='Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set.'
string='Bring Accounts Balance Forward'
internal_group
Selection
help="The 'Internal Group' is used to filter accounts based on the internal group set on the account type."
required=True
string='Internal Group'
args: [('equity', 'Equity'), ('asset', 'Asset'), ('liability', 'Liability'), ('income', 'Income'), ('expense', 'Expense'), ('off_balance', 'Off Balance')]
name
Char
required=True
string='Account Type'
translate=True
note
Text
string='Description'
type
Selection
default='other'
help="The 'Internal Type' is used for features available on different types of accounts: liquidity type is for cash or bank accounts, payable/receivable is for vendor/customer accounts."
required=True
args: [('other', 'Regular'), ('receivable', 'Receivable'), ('payable', 'Payable'), ('liquidity', 'Liquidity')]
No public methods.
No new fields.
Public methods (0)No public methods.
account_id
Many2one → account.account
help='Select an accounting account which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this account, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Account'
args: 'account.account'
analytic_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
analytic_tag_ids
Many2many → account.analytic.tag
string='Analytic Tags'
args: 'account.analytic.tag'
company_id
Many2one → res.company
help='Select a company which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this company, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Company'
args: 'res.company'
date_start
Date
help='Default start date for this Analytic Account.'
string='Start Date'
date_stop
Date
help='Default end date for this Analytic Account.'
string='End Date'
partner_id
Many2one → res.partner
help='Select a partner which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Partner'
args: 'res.partner'
product_id
Many2one → product.product
help='Select a product which will use analytic account specified in analytic default (e.g. create new customer invoice or Sales order if we select this product, it will automatically take this as an analytic account)'
ondelete='cascade'
string='Product'
args: 'product.product'
sequence
Integer
help='Gives the sequence order when displaying a list of analytic distribution'
string='Sequence'
user_id
Many2one → res.users
help='Select a user which will use analytic account specified in analytic default.'
ondelete='cascade'
string='User'
args: 'res.users'
account_get(self, product_id=None, partner_id=None, account_id=None, user_id=None, date=None, company_id=None)
code
Char
size=8
general_account_id
Many2one → account.account
compute_sudo=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
ondelete='restrict'
readonly=True
related='move_id.account_id'
store=True
string='Financial Account'
args: 'account.account'
move_id
Many2one → account.move.line
check_company=True
index=True
ondelete='cascade'
string='Journal Item'
args: 'account.move.line'
product_id
Many2one → product.product
check_company=True
string='Product'
args: 'product.product'
ref
Char
string='Ref.'
on_change_unit_amount(self)
view_header_get(self, view_id, view_type)
No new fields.
Public methods (0)No public methods.
account_type
Selection
compute='_compute_account_type'
store=True
args: [('income', 'Revenue'), ('expense', 'Expense')]
action
Selection
required=True
args: [('change_period', 'Change Period'), ('change_account', 'Change Account')]
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
date
Date
default=<expr>
required=True
destination_account_id
Many2one → account.account
comodel_name='account.account'
help='Account to transfer to.'
string='To'
display_currency_helper
Boolean
compute='_compute_display_currency_helper'
help='Technical field. Used to indicate whether or not to display the currency conversion tooltip. The tooltip informs a currency conversion will be performed with the transfer.'
string='Currency Conversion Helper'
expense_accrual_account
Many2one → account.account
compute='_compute_expense_accrual_account'
domain="[('company_id', '=', company_id),('internal_type', 'not in', ('receivable', 'payable')),('is_off_balance', '=', False)]"
inverse='_inverse_expense_accrual_account'
readonly=False
args: 'account.account'
journal_id
Many2one → account.journal
compute='_compute_journal_id'
domain="[('company_id', '=', company_id), ('type', '=', 'general')]"
help='Journal where to create the entry.'
inverse='_inverse_journal_id'
readonly=False
required=True
string='Journal'
args: 'account.journal'
move_data
Text
compute='_compute_move_data'
help='JSON value of the moves to be created'
move_line_ids
Many2many → account.move.line
percentage
Float
compute='_compute_percentage'
help='Percentage of each line to execute the action on.'
readonly=False
store=True
args: 'Percentage'
preview_move_data
Text
compute='_compute_preview_move_data'
help='JSON value of the data to be displayed in the previewer'
revenue_accrual_account
Many2one → account.account
compute='_compute_revenue_accrual_account'
domain="[('company_id', '=', company_id),('internal_type', 'not in', ('receivable', 'payable')),('is_off_balance', '=', False)]"
inverse='_inverse_revenue_accrual_account'
readonly=False
args: 'account.account'
total_amount
Monetary
compute='_compute_total_amount'
currency_field='company_currency_id'
help='Total amount impacted by the automatic entry.'
readonly=False
store=True
default_get(self, fields)
do_action(self)
all_lines_reconciled
Boolean
compute='_compute_all_lines_reconciled'
help='Technical field indicating if all statement lines are fully reconciled.'
balance_end
Monetary
compute='_end_balance'
help='Balance as calculated based on Opening Balance and transaction lines'
store=True
args: 'Computed Balance'
balance_end_real
Monetary
compute='_compute_ending_balance'
readonly=False
states={'confirm': [('readonly', True)]}
store=True
tracking=True
args: 'Ending Balance'
balance_start
Monetary
compute='_compute_starting_balance'
readonly=False
states={'confirm': [('readonly', True)]}
store=True
string='Starting Balance'
tracking=True
cashbox_end_id
Many2one → account.bank.statement.cashbox
string='Ending Cashbox'
args: 'account.bank.statement.cashbox'
cashbox_start_id
Many2one → account.bank.statement.cashbox
string='Starting Cashbox'
args: 'account.bank.statement.cashbox'
company_id
Many2one → res.company
default=<expr>
readonly=True
related='journal_id.company_id'
store=True
string='Company'
args: 'res.company'
country_code
Char
related='company_id.country_id.code'
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)]}
date_done
Datetime
string='Closed On'
difference
Monetary
compute='_end_balance'
help='Difference between the computed ending balance and the specified ending balance.'
store=True
is_difference_zero
Boolean
compute='_is_difference_zero'
help='Check if difference is zero.'
string='Is zero'
is_valid_balance_start
Boolean
compute='_compute_is_valid_balance_start'
help='Technical field to display a warning message in case starting balance is different than previous ending balance'
store=True
string='Is Valid Balance Start'
journal_id
Many2one → account.journal
check_company=True
default=_default_journal
required=True
states={'confirm': [('readonly', True)]}
string='Journal'
args: 'account.journal'
journal_type
Selection
help='Technical field used for usability purposes'
related='journal_id.type'
line_ids
One2many → account.bank.statement.line
copy=True
states={'confirm': [('readonly', True)]}
string='Statement lines'
args: 'account.bank.statement.line', 'statement_id'
move_line_count
Integer
compute='_get_move_line_count'
move_line_ids
One2many → account.move.line
states={'confirm': [('readonly', True)]}
string='Entry lines'
args: 'account.move.line', 'statement_id'
name
Char
copy=False
readonly=True
states={'open': [('readonly', False)]}
string='Reference'
previous_statement_id
Many2one → account.bank.statement
compute='_get_previous_statement'
help='technical field to compute starting balance correctly'
store=True
args: 'account.bank.statement'
reference
Char
copy=False
help='Used to hold the reference of the external mean that created this statement (name of imported file, reference of online synchronization...)'
readonly=True
states={'open': [('readonly', False)]}
string='External Reference'
state
Selection
copy=False
default='open'
help='The current state of your bank statement:- New: Fully editable with draft Journal Entries.- Processing: No longer editable with posted Journal entries, ready for the reconciliation.- Validated: All lines are reconciled. There is nothing left to process.'
readonly=True
required=True
selection=[('open', 'New'), ('posted', 'Processing'), ('confirm', 'Validated')]
string='Status'
tracking=True
total_entry_encoding
Monetary
compute='_end_balance'
help='Total of transaction lines.'
store=True
args: 'Transactions Subtotal'
user_id
Many2one → res.users
default=<expr>
required=False
string='Responsible'
args: 'res.users'
button_journal_entries(self)
button_post(self)
button_reopen(self)
button_reprocess(self)
button_validate(self)
button_validate_or_action(self)
create(self, values)
onchange_journal_id(self)
open_cashbox_id(self)
unlink(self)
write(self, values)
cashbox_lines_ids
One2many → account.cashbox.line
string='Cashbox Lines'
args: 'account.cashbox.line', 'cashbox_id'
currency_id
Many2one → res.currency
compute='_compute_currency'
args: 'res.currency'
end_bank_stmt_ids
One2many → account.bank.statement
start_bank_stmt_ids
One2many → account.bank.statement
total
Float
compute='_compute_total'
create(self, vals)
default_get(self, fields)
name_get(self)
write(self, vals)
No new fields.
Public methods (1)validate(self)
account_number
Char
help="Technical field used to store the bank account number before its creation, upon the line's processing"
string='Bank Account Number'
amount
Monetary
currency_field='currency_id'
amount_currency
Monetary
currency_field='foreign_currency_id'
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
amount_residual
Float
compute='_compute_is_reconciled'
help="The amount left to be reconciled on this statement line (signed according to its move lines' balance), expressed in its currency. This is a technical field use to speedup the application of reconciliation models."
store=True
string='Residual Amount'
country_code
Char
related='company_id.country_id.code'
currency_id
Many2one → res.currency
string='Journal Currency'
args: 'res.currency'
foreign_currency_id
Many2one → res.currency
help='The optional other currency if it is a multi-currency entry.'
string='Foreign Currency'
args: 'res.currency'
is_reconciled
Boolean
compute='_compute_is_reconciled'
help='Technical field indicating if the statement line is already reconciled.'
store=True
string='Is Reconciled'
move_id
Many2one → account.move
auto_join=True
check_company=True
comodel_name='account.move'
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
domain="['|', ('parent_id','=', False), ('is_company','=',True)]"
ondelete='restrict'
string='Partner'
partner_name
Char
help="This field is used to record the third party name when importing bank statement in electronic format, when the partner doesn't exist yet in the database (or cannot be found)."
payment_ids
Many2many → account.payment
comodel_name='account.payment'
help='Payments generated during the reconciliation of this bank statement lines.'
relation='account_payment_account_bank_statement_line_rel'
string='Auto-generated Payments'
payment_ref
Char
required=True
string='Label'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of bank statement lines.'
index=True
state
Selection
readonly=True
related='statement_id.state'
string='Status'
statement_id
Many2one → account.bank.statement
check_company=True
comodel_name='account.bank.statement'
index=True
ondelete='cascade'
required=True
string='Statement'
transaction_type
Char
string='Transaction Type'
button_undo_reconciliation(self)
create(self, vals_list)
reconcile(self, lines_vals_list, to_check=False)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
related='profit_account_id.company_id'
args: 'res.company'
loss_account_id
Many2one → account.account
company_dependent=True
domain="[('deprecated', '=', False), ('company_id', '=', current_company_id)]"
string='Loss Account'
args: 'account.account'
name
Char
required=True
string='Name'
translate=True
profit_account_id
Many2one → account.account
company_dependent=True
domain="[('deprecated', '=', False), ('company_id', '=', current_company_id)]"
string='Profit Account'
args: 'account.account'
rounding
Float
default=0.01
help='Represent the non-zero value smallest coinage (for example, 0.05).'
required=True
string='Rounding Precision'
rounding_method
Selection
default='HALF-UP'
help='The tie-breaking rule used for float rounding operations'
required=True
selection=[('UP', 'UP'), ('DOWN', 'DOWN'), ('HALF-UP', 'HALF-UP')]
string='Rounding Method'
strategy
Selection
default='add_invoice_line'
help='Specify which way will be used to round the invoice amount to the rounding precision'
required=True
string='Rounding Strategy'
args: [('biggest_tax', 'Modify tax amount'), ('add_invoice_line', 'Add a rounding line')]
compute_difference(self, currency, amount)
round(self, amount)
validate_rounding(self)
cashbox_id
Many2one → account.bank.statement.cashbox
string='Cashbox'
args: 'account.bank.statement.cashbox'
coin_value
Float
digits=0
required=True
string='Coin/Bill Value'
currency_id
Many2one → res.currency
related='cashbox_id.currency_id'
args: 'res.currency'
number
Integer
help='Opening Unit Numbers'
string='#Coins/Bills'
subtotal
Float
compute='_sub_total'
digits=0
readonly=True
string='Subtotal'
No public methods.
account_ids
One2many → account.account.template
string='Associated Account Templates'
args: 'account.account.template', 'chart_template_id'
account_journal_suspense_account_id
Many2one → account.account.template
string='Journal Suspense Account'
args: 'account.account.template'
bank_account_code_prefix
Char
required=True
string='Prefix of the bank accounts'
cash_account_code_prefix
Char
required=True
string='Prefix of the main cash accounts'
code_digits
Integer
default=6
help='No. of Digits to use for account code'
required=True
string='# of Digits'
complete_tax_set
Boolean
default=True
help='This boolean helps you to choose if you want to propose to the user to encode the sale and purchase rates or choose from list of taxes. This last choice assumes that the set of tax defined on this template is complete'
string='Complete Set of Taxes'
currency_id
Many2one → res.currency
required=True
string='Currency'
args: 'res.currency'
default_cash_difference_expense_account_id
Many2one → account.account.template
string='Cash Difference Expense Account'
args: 'account.account.template'
default_cash_difference_income_account_id
Many2one → account.account.template
string='Cash Difference Income Account'
args: 'account.account.template'
default_pos_receivable_account_id
Many2one → account.account.template
string='PoS receivable account'
args: 'account.account.template'
expense_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Loss Exchange Rate Account'
args: 'account.account.template'
income_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Gain Exchange Rate Account'
args: 'account.account.template'
name
Char
required=True
parent_id
Many2one → account.chart.template
string='Parent Chart Template'
args: 'account.chart.template'
property_account_expense_categ_id
Many2one → account.account.template
string='Category of Expense Account'
args: 'account.account.template'
property_account_expense_id
Many2one → account.account.template
string='Expense Account on Product Template'
args: 'account.account.template'
property_account_income_categ_id
Many2one → account.account.template
string='Category of Income Account'
args: 'account.account.template'
property_account_income_id
Many2one → account.account.template
string='Income Account on Product Template'
args: 'account.account.template'
property_account_payable_id
Many2one → account.account.template
string='Payable Account'
args: 'account.account.template'
property_account_receivable_id
Many2one → account.account.template
string='Receivable Account'
args: 'account.account.template'
property_advance_tax_payment_account_id
Many2one → account.account.template
string='Advance tax payment account'
args: 'account.account.template'
property_cash_basis_base_account_id
Many2one → account.account.template
comodel_name='account.account.template'
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
property_stock_account_input_categ_id
Many2one → account.account.template
string='Input Account for Stock Valuation'
args: 'account.account.template'
property_stock_account_output_categ_id
Many2one → account.account.template
string='Output Account for Stock Valuation'
args: 'account.account.template'
property_stock_valuation_account_id
Many2one → account.account.template
string='Account Template for Stock Valuation'
args: 'account.account.template'
property_tax_payable_account_id
Many2one → account.account.template
string='Tax current account (payable)'
args: 'account.account.template'
property_tax_receivable_account_id
Many2one → account.account.template
string='Tax current account (receivable)'
args: 'account.account.template'
tax_template_ids
One2many → account.tax.template
help='List of all the taxes that have to be installed by the wizard'
string='Tax Template List'
args: 'account.tax.template', 'chart_template_id'
transfer_account_code_prefix
Char
required=True
string='Prefix of the main transfer accounts'
use_anglo_saxon
Boolean
default=False
string='Use Anglo-Saxon accounting'
visible
Boolean
default=True
help="Set this to False if you don't want this template to be used actively in the wizard that generate Chart of Accounts from templates, this is useful when you want to generate accounts of this template only when loading its child template."
string='Can be Visible?'
create_record_with_xmlid(self, company, template, model, vals)
existing_accounting(self, company_id)
generate_account(self, tax_template_ref, acc_template_ref, code_digits, company)
generate_account_groups(self, company)
generate_account_reconcile_model(self, tax_template_ref, acc_template_ref, company)
generate_fiscal_position(self, tax_template_ref, acc_template_ref, company)
generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company)
open_select_template_wizard(self)
try_loading(self, company=False)
amount_currency
Boolean
help='Print Report with the currency column if the currency differs from the company currency.'
args: 'With Currency'
pre_print_report(self, data)
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date_from
Date
string='Start Date'
date_to
Date
string='End Date'
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
target_move
Selection
default='posted'
required=True
string='Target Moves'
args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
check_report(self)
company_id
Many2one → res.company
comodel_name='res.company'
required=True
fiscalyear_last_day
Integer
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_day'
required=True
fiscalyear_last_month
Selection
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_month'
required=True
opening_date
Date
help='Date from which the accounting is managed in Odoo. It is the date of the opening entry.'
readonly=False
related='company_id.account_opening_date'
required=True
string='Opening Date'
opening_move_posted
Boolean
compute='_compute_opening_move_posted'
string='Opening Move Posted'
action_save_onboarding_fiscal_year(self)
write(self, vals)
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery country matches the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery country matches.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position'
note
Text
help='Legal mentions that have to be printed on the invoices.'
translate=True
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
One2many → account.fiscal.position.tax
copy=True
string='Tax Mapping'
args: 'account.fiscal.position.tax', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
create(self, vals)
get_fiscal_position(self, partner_id, delivery_id=None)
map_account(self, account)
map_accounts(self, accounts)
map_tax(self, taxes, product=None, partner=None)
write(self, vals)
account_dest_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
required=True
string='Account on Product'
args: 'account.account'
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
account_dest_id
Many2one → account.account.template
required=True
string='Account Destination'
args: 'account.account.template'
account_src_id
Many2one → account.account.template
required=True
string='Account Source'
args: 'account.account.template'
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Mapping'
args: 'account.fiscal.position.template'
No public methods.
company_id
Many2one → res.company
related='position_id.company_id'
store=True
string='Company'
args: 'res.company'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
tax_dest_id
Many2one → account.tax
check_company=True
string='Tax to Apply'
args: 'account.tax'
tax_src_id
Many2one → account.tax
check_company=True
required=True
string='Tax on Product'
args: 'account.tax'
No public methods.
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position.template'
tax_dest_id
Many2one → account.tax.template
string='Replacement Tax'
args: 'account.tax.template'
tax_src_id
Many2one → account.tax.template
required=True
string='Tax Source'
args: 'account.tax.template'
No public methods.
account_ids
One2many → account.fiscal.position.account.template
string='Account Mapping'
args: 'account.fiscal.position.account.template', 'position_id'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
country_group_id
Many2one → res.country.group
help='Apply only if delivery country matches the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery country matches.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position Template'
note
Text
string='Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
tax_ids
One2many → account.fiscal.position.tax.template
string='Tax Mapping'
args: 'account.fiscal.position.tax.template', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
No public methods.
exchange_move_id
Many2one → account.move
index=True
args: 'account.move'
name
Char
copy=False
default=<expr>
required=True
string='Number'
partial_reconcile_ids
One2many → account.partial.reconcile
string='Reconciliation Parts'
args: 'account.partial.reconcile', 'full_reconcile_id'
reconciled_line_ids
One2many → account.move.line
string='Matched Journal Items'
args: 'account.move.line', 'full_reconcile_id'
unlink(self)
code_prefix_end
Char
code_prefix_start
Char
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
name
Char
required=True
parent_id
Many2one → account.group
index=True
ondelete='cascade'
readonly=True
args: 'account.group'
parent_path
Char
index=True
create(self, vals_list)
name_get(self)
unlink(self)
write(self, vals)
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
code_prefix_end
Char
code_prefix_start
Char
name
Char
required=True
parent_id
Many2one → account.group.template
index=True
ondelete='cascade'
args: 'account.group.template'
No public methods.
active
Boolean
default=True
help='By unchecking the active field, you may hide an INCOTERM you will not use.'
args: 'Active'
code
Char
help='Incoterm Standard Code'
required=True
size=3
args: 'Code'
name
Char
help='Incoterms are series of sales terms. They are used to divide transaction costs and responsibilities between buyer and seller and reflect state-of-the-art transportation practices.'
required=True
translate=True
args: 'Name'
No public methods.
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Revenue/Expense Account'
args: 'account.account'
analytic_account_id
Many2one → account.analytic.account
groups='analytic.group_analytic_accounting'
string='Analytic Account'
args: 'account.analytic.account'
commercial_partner_id
Many2one → res.partner
help='Commercial Entity'
string='Partner Company'
args: 'res.partner'
company_currency_id
Many2one → res.currency
readonly=True
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
fiscal_position_id
Many2one → account.fiscal.position
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
invoice_date
Date
readonly=True
string='Invoice Date'
invoice_date_due
Date
readonly=True
string='Due Date'
invoice_user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
readonly=True
args: 'account.move'
move_type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
payment_state
Selection
readonly=True
selection=[('not_paid', 'Not Paid'), ('in_payment', 'In Payment'), ('paid', 'paid')]
string='Payment Status'
price_average
Float
group_operator='avg'
readonly=True
string='Average Price'
price_subtotal
Float
readonly=True
string='Untaxed Total'
product_categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
quantity
Float
readonly=True
string='Product Quantity'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('posted', 'Open'), ('cancel', 'Cancelled')]
No public methods.
composer_id
Many2one → mail.compose.message
ondelete='cascade'
required=True
string='Composer'
args: 'mail.compose.message'
invoice_ids
Many2many → account.move
string='Invoices'
args: 'account.move', 'account_move_account_invoice_send_rel'
invoice_without_email
Text
compute='_compute_invoice_without_email'
string='invoice(s) that will not be sent'
is_email
Boolean
default=<expr>
args: 'Email'
is_print
Boolean
default=<expr>
args: 'Print'
printed
Boolean
default=False
args: 'Is Printed'
template_id
Many2one → mail.template
domain="[('model', '=', 'account.move')]"
index=True
args: 'mail.template', 'Use template'
default_get(self, fields)
onchange_is_email(self)
onchange_template_id(self)
save_as_template(self)
send_and_print_action(self)
account_control_ids
Many2many → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('is_off_balance', '=', False)]"
string='Allowed accounts'
args: 'account.account', 'journal_account_control_rel', 'journal_id', 'account_id'
active
Boolean
default=True
help='Set active to false to hide the Journal without removing it.'
alias_domain
Char
compute='_compute_alias_domain'
compute_sudo=True
default=_default_alias_domain
args: 'Alias domain'
alias_id
Many2one → mail.alias
copy=False
help='Send one separate email for each invoice.\n\nAny file extension will be accepted.\n\nOnly PDF and XML files will be interpreted by Odoo'
string='Email Alias'
args: 'mail.alias'
alias_name
Char
compute='_compute_alias_name'
copy=False
help='It creates draft invoices and bills by sending an email.'
inverse='_inverse_type'
readonly=False
args: 'Alias Name'
at_least_one_inbound
Boolean
compute='_methods_compute'
store=True
at_least_one_outbound
Boolean
compute='_methods_compute'
store=True
bank_acc_number
Char
readonly=False
related='bank_account_id.acc_number'
bank_account_id
Many2one → res.partner.bank
check_company=True
copy=False
domain="[('partner_id','=', company_partner_id), '|', ('company_id', '=', False), ('company_id', '=', company_id)]"
ondelete='restrict'
string='Bank Account'
args: 'res.partner.bank'
bank_id
Many2one → res.bank
readonly=False
related='bank_account_id.bank_id'
args: 'res.bank'
bank_statements_source
Selection
default='undefined'
help='Defines how the bank statements will be registered'
selection=_get_bank_statements_available_sources
string='Bank Feeds'
code
Char
help='Shorter name used for display. The journal entries of this journal will also be named using this prefix by default.'
required=True
size=5
string='Short Code'
company_id
Many2one → res.company
default=<expr>
help='Company related to this journal'
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
company_partner_id
Many2one → res.partner
readonly=True
related='company_id.partner_id'
store=False
string='Account Holder'
args: 'res.partner'
country_code
Char
readonly=True
related='company_id.country_id.code'
currency_id
Many2one → res.currency
help='The currency used to enter statement'
string='Currency'
args: 'res.currency'
default_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain="[('deprecated', '=', False), ('company_id', '=', company_id),'|', ('user_type_id', '=', default_account_type), ('user_type_id', 'in', type_control_ids),('user_type_id.type', 'not in', ('receivable', 'payable'))]"
ondelete='restrict'
string='Default Account'
default_account_type
Many2one → account.account.type
compute='_compute_default_account_type'
args: 'account.account.type'
inbound_payment_method_ids
Many2many → account.payment.method
column1='journal_id'
column2='inbound_payment_method'
comodel_name='account.payment.method'
compute='_compute_inbound_payment_method_ids'
domain=[('payment_type', '=', 'inbound')]
help='Manual: Get paid by cash, check or any other method outside of Odoo.\nElectronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\nBatch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo,you are suggested to reconcile the transaction with the batch deposit. Enable this option from the settings.'
readonly=False
relation='account_journal_inbound_payment_method_rel'
store=True
string='Inbound Payment Methods'
invoice_reference_model
Selection
default=_default_invoice_reference_model
help='You can choose different models for each type of reference. The default one is the Odoo reference.'
required=True
selection=[('odoo', 'Odoo'), ('euro', 'European')]
string='Communication Standard'
invoice_reference_type
Selection
default='invoice'
help='You can set here the default communication that will appear on customer invoices, once validated, to help the customer to refer to that particular invoice when making the payment.'
required=True
selection=[('none', 'Free'), ('partner', 'Based on Customer'), ('invoice', 'Based on Invoice')]
string='Communication Type'
journal_group_ids
Many2many → account.journal.group
check_company=True
domain="[('company_id', '=', company_id)]"
string='Journal Groups'
args: 'account.journal.group'
loss_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain=<expr>
help='Used to register a loss when the ending balance of a cash register differs from what the system computes'
string='Loss Account'
name
Char
required=True
string='Journal Name'
outbound_payment_method_ids
Many2many → account.payment.method
column1='journal_id'
column2='outbound_payment_method'
comodel_name='account.payment.method'
compute='_compute_outbound_payment_method_ids'
domain=[('payment_type', '=', 'outbound')]
help='Manual:Pay bill by cash or any other method outside of Odoo.\nCheck:Pay bill by check and print it from Odoo.\nSEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. Enable this option from the settings.'
readonly=False
relation='account_journal_outbound_payment_method_rel'
store=True
string='Outbound Payment Methods'
payment_credit_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain=<expr>
help='Outgoing payments entries triggered by bills/credit notes will be posted on the Outstanding Payments Account and displayed as blue lines in the bank reconciliation widget. During the reconciliation process, concerned transactions will be reconciled with entries on the Outstanding Payments Account instead of the payable account.'
ondelete='restrict'
string='Outstanding Payments Account'
payment_debit_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
copy=False
domain=<expr>
help='Incoming payments entries triggered by invoices/refunds will be posted on the Outstanding Receipts Account and displayed as blue lines in the bank reconciliation widget. During the reconciliation process, concerned transactions will be reconciled with entries on the Outstanding Receipts Account instead of the receivable account.'
ondelete='restrict'
string='Outstanding Receipts Account'
profit_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain=<expr>
help='Used to register a profit when the ending balance of a cash register differs from what the system computes'
string='Profit Account'
refund_sequence
Boolean
default=False
help="Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal"
string='Dedicated Credit Note Sequence'
restrict_mode_hash_table
Boolean
help='If ticked, the accounting entry or invoice receives a hash as soon as it is posted and cannot be modified anymore.'
string='Lock Posted Entries with Hash'
sale_activity_note
Text
sale_activity_type_id
Many2one → mail.activity.type
default=False
help='Activity will be automatically scheduled on payment due date, improving collection process.'
string='Schedule Activity'
args: 'mail.activity.type'
sale_activity_user_id
Many2one → res.users
help='Leave empty to assign the Salesperson of the invoice.'
string='Activity User'
args: 'res.users'
secure_sequence_id
Many2one → ir.sequence
check_company=True
copy=False
help='Sequence to use to ensure the securisation of data'
readonly=True
args: 'ir.sequence'
sequence
Integer
default=10
help='Used to order Journals in the dashboard view'
sequence_override_regex
Text
help='Technical field used to enforce complex sequence composition that the system would normally misunderstand.\nThis is a regex that can include all the following capture groups: prefix1, year, prefix2, month, prefix3, seq, suffix.\nThe prefix* groups are the separators between the year, month and the actual increasing sequence number (seq).\ne.g: ^(?P<prefix1>.*?)(?P<year>\\d{4})(?P<prefix2>\\D*?)(?P<month>\\d{2})(?P<prefix3>\\D+?)(?P<seq>\\d+)(?P<suffix>\\D*?)$'
suspense_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_suspense_account_id'
domain=<expr>
help='Bank statements transactions will be posted on the suspense account until the final reconciliation allowing finding the right account.'
ondelete='restrict'
readonly=False
store=True
string='Suspense Account'
type
Selection
help="Select 'Sale' for customer invoices journals.\nSelect 'Purchase' for vendor bills journals.\nSelect 'Cash' or 'Bank' for journals that are used in customer or vendor payments.\nSelect 'General' for miscellaneous operations journals."
inverse='_inverse_type'
required=True
args: [('sale', 'Sales'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('bank', 'Bank'), ('general', 'Miscellaneous')]
type_control_ids
Many2many → account.account.type
string='Allowed account types'
args: 'account.account.type', 'journal_account_type_control_rel', 'journal_id', 'type_id'
action_configure_bank_journal(self)
copy(self, default=None)
create(self, vals)
create_invoice_from_attachment(self, attachment_ids=None)
get_next_bank_cash_default_code(self, journal_type, company)
name_get(self)
set_bank_account(self, acc_number, bank_id=None)
unlink(self)
write(self, vals)
color
Integer
default=0
args: 'Color Index'
json_activity_data
Text
compute='_get_json_activity_data'
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
create_bank_statement(self)
create_cash_statement(self)
create_customer_payment(self)
create_internal_transfer(self)
create_supplier_payment(self)
get_bar_graph_datas(self)
get_journal_dashboard_datas(self)
get_line_graph_datas(self)
mark_bank_setup_as_done_action(self)
open_action(self)
open_action_with_context(self)
open_collect_money(self)
open_payments_action(self, payment_type, mode='tree')
open_spend_money(self)
open_transfer_money(self)
to_check_ids(self)
unmark_bank_setup_as_done_action(self)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
excluded_journal_ids
Many2many → account.journal
check_company=True
domain="[('company_id', '=', company_id)]"
string='Excluded Journals'
args: 'account.journal'
name
Char
required=True
translate=True
args: 'Journal Group'
sequence
Integer
default=10
No public methods.
amount_by_group
Binary
compute='_compute_invoice_taxes_by_group'
help='Edit Tax amounts if you encounter rounding issues.'
string='Tax amount by group'
amount_residual
Monetary
compute='_compute_amount'
store=True
string='Amount Due'
amount_residual_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
store=True
string='Amount Due Signed'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_tax_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Tax Signed'
amount_total
Monetary
compute='_compute_amount'
inverse='_inverse_amount_total'
readonly=True
store=True
string='Total'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Total Signed'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
tracking=True
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount Signed'
auto_post
Boolean
copy=False
default=False
help='If this checkbox is ticked, this entry will be automatically posted at its date.'
string='Post Automatically'
bank_partner_id
Many2one → res.partner
compute='_compute_bank_partner_id'
help='Technical field to get the domain on the bank'
args: 'res.partner'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner_id'
ondelete='restrict'
readonly=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=True
store=True
string='Company'
country_code
Char
readonly=True
related='company_id.country_id.code'
currency_id
Many2one → res.currency
default=_get_default_currency
readonly=True
required=True
states={'draft': [('readonly', False)]}
store=True
string='Currency'
tracking=True
args: 'res.currency'
date
Date
copy=False
default=fields.Date.context_today
index=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date'
display_qr_code
Boolean
compute='_compute_display_qr_code'
string='Display QR-code'
fiscal_position_id
Many2one → account.fiscal.position
check_company=True
domain="[('company_id', '=', company_id)]"
help='Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. The default value comes from the customer.'
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Fiscal Position'
args: 'account.fiscal.position'
has_reconciled_entries
Boolean
compute='_compute_has_reconciled_entries'
highest_name
Char
compute='_compute_highest_name'
inalterable_hash
Char
copy=False
readonly=True
string='Inalterability Hash'
invoice_cash_rounding_id
Many2one → account.cash.rounding
help='Defines the smallest coinage of the currency that can be used to pay by cash.'
readonly=True
states={'draft': [('readonly', False)]}
string='Cash Rounding Method'
args: 'account.cash.rounding'
invoice_date
Date
copy=False
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice/Bill Date'
invoice_date_due
Date
copy=False
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Due Date'
invoice_filter_type_domain
Char
compute='_compute_invoice_filter_type_domain'
help='Technical field used to have a dynamic domain on journal / taxes in the form view.'
invoice_has_matching_suspense_amount
Boolean
compute='_compute_has_matching_suspense_amount'
groups='account.group_account_invoice,account.group_account_readonly'
help='Technical field used to display an alert on invoices if there is at least a matching amount in any supsense account.'
invoice_has_outstanding
Boolean
compute='_compute_payments_widget_to_reconcile_info'
groups='account.group_account_invoice,account.group_account_readonly'
invoice_incoterm_id
Many2one → account.incoterms
default=_get_default_invoice_incoterm
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Incoterm'
args: 'account.incoterms'
invoice_line_ids
One2many → account.move.line
copy=False
domain=[('exclude_from_invoice_tab', '=', False)]
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice lines'
args: 'account.move.line', 'move_id'
invoice_origin
Char
help='The document(s) that generated the invoice.'
readonly=True
string='Origin'
tracking=True
invoice_outstanding_credits_debits_widget
Text
compute='_compute_payments_widget_to_reconcile_info'
groups='account.group_account_invoice,account.group_account_readonly'
invoice_partner_display_name
Char
compute='_compute_invoice_partner_display_info'
store=True
invoice_payment_term_id
Many2one → account.payment.term
check_company=True
readonly=True
states={'draft': [('readonly', False)]}
string='Payment Terms'
args: 'account.payment.term'
invoice_payments_widget
Text
compute='_compute_payments_widget_reconciled_info'
groups='account.group_account_invoice,account.group_account_readonly'
invoice_source_email
Char
string='Source Email'
tracking=True
invoice_user_id
Many2one → res.users
copy=False
default=<expr>
string='Salesperson'
tracking=True
args: 'res.users'
invoice_vendor_bill_id
Many2one → account.move
check_company=True
help='Auto-complete from a past bill.'
store=False
string='Vendor Bill'
args: 'account.move'
is_move_sent
Boolean
copy=False
default=False
help='It indicates that the invoice/payment has been sent.'
readonly=True
tracking=True
journal_id
Many2one → account.journal
check_company=True
default=_get_default_journal
domain="[('id', 'in', suitable_journal_ids)]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
line_ids
One2many → account.move.line
copy=True
readonly=True
states={'draft': [('readonly', False)]}
string='Journal Items'
args: 'account.move.line', 'move_id'
move_type
Selection
change_default=True
default='entry'
index=True
readonly=True
required=True
selection=[('entry', 'Journal Entry'), ('out_invoice', 'Customer Invoice'), ('out_refund', 'Customer Credit Note'), ('in_invoice', 'Vendor Bill'), ('in_refund', 'Vendor Credit Note'), ('out_receipt', 'Sales Receipt'), ('in_receipt', 'Purchase Receipt')]
store=True
string='Type'
tracking=True
name
Char
compute='_compute_name'
copy=False
index=True
readonly=False
store=True
string='Number'
tracking=True
narration
Text
string='Terms and Conditions'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.'
readonly=False
store=True
string='Recipient Bank'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
change_default=True
check_company=True
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Partner'
tracking=True
args: 'res.partner'
payment_id
Many2one → account.payment
check_company=True
comodel_name='account.payment'
copy=False
index=True
string='Payment'
payment_reference
Char
compute='_compute_payment_reference'
copy=False
help='The payment reference to set on journal items.'
index=True
readonly=False
store=True
string='Payment Reference'
payment_state
Selection
compute='_compute_amount'
copy=False
readonly=True
selection=[('not_paid', 'Not Paid'), ('in_payment', 'In Payment'), ('paid', 'Paid'), ('partial', 'Partially Paid'), ('reversed', 'Reversed'), ('invoicing_legacy', 'Invoicing App Legacy')]
store=True
string='Payment Status'
tracking=True
posted_before
Boolean
copy=False
help='Technical field for knowing if the move has been posted before'
qr_code_method
Selection
copy=False
help='Type of QR-code to be generated for the payment of this invoice, when printing it. If left blank, the first available and usable method will be used.'
selection=<expr>
string='Payment QR-code'
ref
Char
copy=False
string='Reference'
tracking=True
restrict_mode_hash_table
Boolean
related='journal_id.restrict_mode_hash_table'
reversal_move_id
One2many → account.move
reversed_entry_id
Many2one → account.move
check_company=True
copy=False
index=True
readonly=True
string='Reversal of'
args: 'account.move'
secure_sequence_number
Integer
copy=False
index=True
readonly=True
string='Inalteralbility No Gap Sequence #'
show_name_warning
Boolean
store=False
show_reset_to_draft_button
Boolean
compute='_compute_show_reset_to_draft_button'
state
Selection
copy=False
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('cancel', 'Cancelled')]
string='Status'
tracking=True
statement_line_id
Many2one → account.bank.statement.line
check_company=True
comodel_name='account.bank.statement.line'
copy=False
string='Statement Line'
string_to_hash
Char
compute='_compute_string_to_hash'
readonly=True
suitable_journal_ids
Many2many → account.journal
compute='_compute_suitable_journal_ids'
args: 'account.journal'
tax_cash_basis_move_id
Many2one → account.move
comodel_name='account.move'
help='The journal entry from which this tax cash basis journal entry has been created.'
index=True
string='Origin Tax Cash Basis Entry'
tax_cash_basis_rec_id
Many2one → account.partial.reconcile
help='Technical field used to keep track of the tax cash basis reconciliation. This is needed when cancelling the source: it will post the inverse journal entry to cancel that part too.'
string='Tax Cash Basis Entry of'
args: 'account.partial.reconcile'
tax_lock_date_message
Char
compute='_compute_tax_lock_date_message'
help="Technical field used to display a message when the invoice's accounting date is prior of the tax lock date."
to_check
Boolean
default=False
help='If this checkbox is ticked, it means that the user was not sure of all the related information at the time of the creation of the move and that the move needs to be checked again.'
string='To Check'
type_name
Char
compute='_compute_type_name'
args: 'Type Name'
user_id
Many2one
help='Technical field used to fit the generic behavior in mail templates.'
related='invoice_user_id'
string='User'
action_duplicate(self)
action_invoice_paid(self)
action_invoice_print(self)
action_invoice_sent(self)
action_post(self)
action_register_payment(self)
action_reverse(self)
action_switch_invoice_into_refund_credit_note(self)
action_view_reverse_entry(self)
button_cancel(self)
button_draft(self)
copy(self, default=None)
create(self, vals_list)
generate_qr_code(self)
get_inbound_types(self, include_receipts=True)
get_invoice_types(self, include_receipts=False)
get_outbound_types(self, include_receipts=True)
get_purchase_types(self, include_receipts=False)
get_sale_types(self, include_receipts=False)
init(self)
is_inbound(self, include_receipts=True)
is_invoice(self, include_receipts=False)
is_outbound(self, include_receipts=True)
is_purchase_document(self, include_receipts=False)
is_sale_document(self, include_receipts=False)
js_assign_outstanding_line(self, line_id)
js_remove_outstanding_partial(self, partial_id)
message_new(self, msg_dict, custom_values=None)
name_get(self)
onchange(self, values, field_name, field_onchange)
open_reconcile_view(self)
post(self)
preview_invoice(self)
setting_upload_bill_wizard(self)
unlink(self)
update_lines_tax_exigibility(self)
write(self, vals)
account_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', 'company_id'),('is_off_balance', '=', False)]"
index=True
ondelete='cascade'
string='Account'
tracking=True
args: 'account.account'
account_internal_group
Selection
readonly=True
related='account_id.user_type_id.internal_group'
string='Internal Group'
account_internal_type
Selection
readonly=True
related='account_id.user_type_id.type'
string='Internal Type'
account_root_id
Many2one
readonly=True
related='account_id.root_id'
store=True
string='Account Root'
amount_currency
Monetary
copy=True
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
store=True
string='Amount in Currency'
amount_residual
Monetary
compute='_compute_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
compute='_compute_amount_residual'
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_account_id
Many2one → account.analytic.account
check_company=True
compute='_compute_analytic_account_id'
copy=True
index=True
readonly=False
store=True
string='Analytic Account'
args: 'account.analytic.account'
analytic_line_ids
One2many → account.analytic.line
string='Analytic lines'
args: 'account.analytic.line', 'move_id'
analytic_tag_ids
Many2many → account.analytic.tag
check_company=True
compute='_compute_analytic_tag_ids'
copy=True
readonly=False
store=True
string='Analytic Tags'
args: 'account.analytic.tag'
balance
Monetary
compute='_compute_balance'
currency_field='company_currency_id'
help='Technical field holding the debit - credit in order to open meaningful graph views from reports'
store=True
string='Balance'
blocked
Boolean
default=False
help='You can check this box to mark this journal item as a litigation with the associated partner'
string='No Follow-up'
company_currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
company_id
Many2one
default=<expr>
readonly=True
related='move_id.company_id'
store=True
credit
Monetary
currency_field='company_currency_id'
default=0.0
string='Credit'
cumulated_balance
Monetary
compute='_compute_cumulated_balance'
currency_field='company_currency_id'
help='Cumulated balance depending on the domain and the order chosen in the view.'
store=False
string='Cumulated Balance'
currency_id
Many2one → res.currency
required=True
string='Currency'
args: 'res.currency'
date
Date
copy=False
group_operator='min'
index=True
readonly=True
related='move_id.date'
store=True
date_maturity
Date
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
string='Due Date'
tracking=True
debit
Monetary
currency_field='company_currency_id'
default=0.0
string='Debit'
discount
Float
default=0.0
digits='Discount'
string='Discount (%)'
display_type
Selection
default=False
help='Technical field for UX purpose.'
args: [('line_section', 'Section'), ('line_note', 'Note')]
exclude_from_invoice_tab
Boolean
help='Technical field used to exclude some lines from the invoice_line_ids tab in the form view.'
full_reconcile_id
Many2one → account.full.reconcile
copy=False
index=True
readonly=True
string='Matching'
args: 'account.full.reconcile'
is_rounding_line
Boolean
help='Technical field used to retrieve the cash rounding line.'
journal_id
Many2one
copy=False
index=True
related='move_id.journal_id'
store=True
matched_credit_ids
One2many → account.partial.reconcile
help='Credit journal items that are matched with this journal item.'
readonly=True
string='Matched Credits'
args: 'account.partial.reconcile', 'debit_move_id'
matched_debit_ids
One2many → account.partial.reconcile
help='Debit journal items that are matched with this journal item.'
readonly=True
string='Matched Debits'
args: 'account.partial.reconcile', 'credit_move_id'
matching_number
Char
compute='_compute_matching_number'
help="Matching number for this line, 'P' if it is only partially reconcile, or the name of the full reconcile if it exists."
store=True
string='Matching #'
move_id
Many2one → account.move
auto_join=True
check_company=True
help='The move of this entry line.'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
args: 'account.move'
move_name
Char
index=True
related='move_id.name'
store=True
string='Number'
name
Char
compute='_compute_name'
readonly=False
store=True
string='Label'
tracking=True
parent_state
Selection
readonly=True
related='move_id.state'
store=True
partner_id
Many2one → res.partner
ondelete='restrict'
string='Partner'
args: 'res.partner'
payment_id
Many2one → account.payment
help='The payment that created this entry'
index=True
related='move_id.payment_id'
store=True
string='Originator Payment'
args: 'account.payment'
price_subtotal
Monetary
currency_field='currency_id'
readonly=True
store=True
string='Subtotal'
price_total
Monetary
currency_field='currency_id'
readonly=True
store=True
string='Total'
price_unit
Float
digits='Product Price'
string='Unit Price'
product_id
Many2one → product.product
ondelete='restrict'
string='Product'
args: 'product.product'
product_uom_category_id
Many2one → uom.category
related='product_id.uom_id.category_id'
args: 'uom.category'
product_uom_id
Many2one → uom.uom
domain="[('category_id', '=', product_uom_category_id)]"
string='Unit of Measure'
args: 'uom.uom'
quantity
Float
default=<expr>
digits='Product Unit of Measure'
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
string='Quantity'
recompute_tax_line
Boolean
help='Technical field used to know on which lines the taxes must be recomputed.'
readonly=True
store=False
reconcile_model_id
Many2one → account.reconcile.model
check_company=True
copy=False
readonly=True
string='Reconciliation Model'
args: 'account.reconcile.model'
reconciled
Boolean
compute='_compute_amount_residual'
store=True
ref
Char
copy=False
index=True
readonly=True
related='move_id.ref'
store=True
sequence
Integer
default=10
statement_id
Many2one
copy=False
help='The bank statement used for bank reconciliation'
index=True
related='statement_line_id.statement_id'
store=True
statement_line_id
Many2one → account.bank.statement.line
help='The statement line that created this entry'
index=True
related='move_id.statement_line_id'
store=True
string='Originator Statement Line'
args: 'account.bank.statement.line'
tax_audit
Char
compute='_compute_tax_audit'
help='Computed field, listing the tax grids impacted by this line, and the amount it applies to each of them.'
store=True
string='Tax Audit String'
tax_base_amount
Monetary
currency_field='company_currency_id'
readonly=True
store=True
string='Base Amount'
tax_exigible
Boolean
default=True
help='Technical field used to mark a tax line as exigible in the vat report or not (only exigible journal items are displayed). By default all new journal items are directly exigible, but with the feature cash_basis on taxes, some will become exigible only when the payment is recorded.'
readonly=True
string='Appears in VAT report'
tax_fiscal_country_id
Many2one → res.country
comodel_name='res.country'
related='move_id.company_id.account_tax_fiscal_country_id'
tax_group_id
Many2one
help='technical field for widget tax-group-custom-field'
readonly=True
related='tax_line_id.tax_group_id'
store=True
string='Originator tax group'
tax_ids
Many2many → account.tax
check_company=True
comodel_name='account.tax'
context={'active_test': False}
help='Taxes that apply on the base amount'
string='Taxes'
tax_line_id
Many2one → account.tax
compute='_compute_tax_line_id'
help='Indicates that this journal item is a tax line'
ondelete='restrict'
store=True
string='Originator Tax'
args: 'account.tax'
tax_repartition_line_id
Many2one → account.tax.repartition.line
check_company=True
comodel_name='account.tax.repartition.line'
help='Tax distribution line that caused the creation of this move line, if any'
ondelete='restrict'
readonly=True
string='Originator Tax Distribution Line'
tax_tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
context={'active_test': False}
help='Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.'
ondelete='restrict'
string='Tags'
tracking=True
action_automatic_entry(self)
copy_data(self, default=None)
create(self, vals_list)
create_analytic_lines(self)
default_get(self, default_fields)
fields_get(self, allfields=None, attributes=None)
init(self)
invalidate_cache(self, fnames=None, ids=None)
name_get(self)
open_reconcile_view(self)
reconcile(self)
remove_move_reconcile(self)
search_read(self, domain=None, fields=None, offset=0, limit=None, order=None)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company'
country_code
Char
related='company_id.country_id.code'
currency_id
Many2one → res.currency
compute='_compute_from_moves'
args: 'res.currency'
date
Date
default=fields.Date.context_today
string='Reversal date'
date_mode
Selection
default='custom'
required=True
selection=[('custom', 'Specific'), ('entry', 'Journal Entry Date')]
journal_id
Many2one → account.journal
check_company=True
help='If empty, uses the journal of the journal entry to be reversed.'
string='Use Specific Journal'
args: 'account.journal'
move_ids
Many2many → account.move
domain=[('state', '=', 'posted')]
args: 'account.move', 'account_move_reversal_move', 'reversal_id', 'move_id'
move_type
Char
compute='_compute_from_moves'
new_move_ids
Many2many → account.move
reason
Char
string='Reason'
refund_method
Selection
help='Choose how you want to credit this invoice. You cannot "modify" nor "cancel" if the invoice is already reconciled.'
required=True
selection=[('refund', 'Partial Refund'), ('cancel', 'Full Refund'), ('modify', 'Full refund and new draft invoice')]
string='Credit Method'
residual
Monetary
compute='_compute_from_moves'
default_get(self, fields)
reverse_moves(self)
amount
Monetary
currency_field='company_currency_id'
help='Always positive amount concerned by this matching expressed in the company currency.'
company_currency_id
Many2one → res.currency
comodel_name='res.currency'
help='Utility field to express amount currency'
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
readonly=False
related='debit_move_id.company_id'
store=True
string='Company'
credit_amount_currency
Monetary
currency_field='credit_currency_id'
help='Always positive amount concerned by this matching expressed in the credit line foreign currency.'
credit_currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_credit_currency_id'
store=True
string='Currency of the credit journal item.'
credit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
debit_amount_currency
Monetary
currency_field='debit_currency_id'
help='Always positive amount concerned by this matching expressed in the debit line foreign currency.'
debit_currency_id
Many2one → res.currency
comodel_name='res.currency'
compute='_compute_debit_currency_id'
store=True
string='Currency of the debit journal item.'
debit_move_id
Many2one → account.move.line
comodel_name='account.move.line'
index=True
required=True
full_reconcile_id
Many2one → account.full.reconcile
comodel_name='account.full.reconcile'
copy=False
string='Full Reconcile'
max_date
Date
compute='_compute_max_date'
help='Technical field used to determine at which date this reconciliation needs to be shown on the aged receivable/payable reports.'
store=True
string='Max Date of Matched Lines'
unlink(self)
amount
Monetary
currency_field='currency_id'
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_ids
Many2many → account.payment.method
compute='_compute_payment_method_fields'
args: 'account.payment.method'
country_code
Char
related='company_id.country_id.code'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
help="The payment's currency."
readonly=False
store=True
string='Currency'
args: 'res.currency'
destination_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
compute='_compute_destination_account_id'
domain="[('user_type_id.type', 'in', ('receivable', 'payable')), ('company_id', '=', company_id)]"
readonly=False
store=True
string='Destination Account'
hide_payment_method
Boolean
compute='_compute_payment_method_fields'
help="Technical field used to hide the payment method if the selected journal has only one available which is 'manual'"
is_internal_transfer
Boolean
compute='_compute_is_internal_transfer'
readonly=False
store=True
string='Is Internal Transfer'
is_matched
Boolean
compute='_compute_reconciliation_status'
help='Technical field indicating if the payment has been matched with a statement line.'
store=True
string='Is Matched With a Bank Statement'
is_reconciled
Boolean
compute='_compute_reconciliation_status'
help='Technical field indicating if the payment is already reconciled.'
store=True
string='Is Reconciled'
move_id
Many2one → account.move
check_company=True
comodel_name='account.move'
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
partner_bank_id
Many2one → res.partner.bank
check_company=True
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
readonly=False
store=True
string='Recipient Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
check_company=True
comodel_name='res.partner'
compute='_compute_partner_id'
domain="['|', ('parent_id','=', False), ('is_company','=', True)]"
ondelete='restrict'
readonly=False
store=True
string='Customer/Vendor'
partner_type
Selection
default='customer'
required=True
tracking=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_method_code
Char
help='Technical field used to adapt the interface to the payment type selected.'
related='payment_method_id.code'
payment_method_id
Many2one → account.payment.method
compute='_compute_payment_method_id'
domain="[('id', 'in', available_payment_method_ids)]"
help='Manual: Get paid by cash, check or any other method outside of Odoo.\nElectronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\nCheck: Pay bill by check and print it from Odoo.\nBatch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo, you are suggested to reconcile the transaction with the batch deposit.To enable batch deposit, module account_batch_payment must be installed.\nSEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. To enable sepa credit transfer, module account_sepa must be installed '
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method'
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
string='Payment Reference'
payment_type
Selection
default='inbound'
required=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
qr_code
Char
compute='_compute_qr_code'
help='QR-code report URL to use to generate the QR-code to scan with a banking app to perform this payment.'
string='QR Code'
reconciled_bill_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
string='Reconciled Bills'
args: 'account.move'
reconciled_bills_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Bills'
reconciled_invoice_ids
Many2many → account.move
compute='_compute_stat_buttons_from_reconciliation'
help='Invoices whose journal items have been reconciled with these payments.'
string='Reconciled Invoices'
args: 'account.move'
reconciled_invoices_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Invoices'
reconciled_statement_ids
Many2many → account.bank.statement
compute='_compute_stat_buttons_from_reconciliation'
help='Statements matched to this payment'
string='Reconciled Statements'
args: 'account.bank.statement'
reconciled_statements_count
Integer
compute='_compute_stat_buttons_from_reconciliation'
string='# Reconciled Statements'
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
help='Technical field used to know whether the field `partner_bank_id` needs to be required or not in the payments form views'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
help='Technical field used to know whether the field `partner_bank_id` needs to be displayed or not in the payments form views'
action_cancel(self)
action_draft(self)
action_post(self)
button_open_bills(self)
button_open_invoices(self)
button_open_statements(self)
create(self, vals_list)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
mark_as_sent(self)
name_get(self)
unlink(self)
unmark_as_sent(self)
write(self, vals)
code
Char
required=True
name
Char
required=True
translate=True
payment_type
Selection
required=True
args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
sequence
Integer
default=10
help='Used to order Methods in the form view'
No public methods.
amount
Monetary
compute='_compute_amount'
currency_field='currency_id'
readonly=False
store=True
available_partner_bank_ids
Many2many → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_available_partner_bank_ids'
available_payment_method_ids
Many2many → account.payment.method
compute='_compute_payment_method_fields'
args: 'account.payment.method'
can_edit_wizard
Boolean
compute='_compute_from_lines'
copy=False
help='Technical field used to indicate the user can edit the wizard content such as the amount.'
store=True
can_group_payments
Boolean
compute='_compute_from_lines'
copy=False
help="Technical field used to indicate the user can see the 'group_payments' box."
store=True
communication
Char
compute='_compute_communication'
readonly=False
store=True
string='Memo'
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
compute='_compute_from_lines'
copy=False
store=True
args: 'res.company'
country_code
Char
readonly=True
related='company_id.country_id.code'
currency_id
Many2one → res.currency
compute='_compute_currency_id'
help="The payment's currency."
readonly=False
store=True
string='Currency'
args: 'res.currency'
group_payment
Boolean
compute='_compute_group_payment'
help='Only one payment will be created by partner (bank)/ currency.'
readonly=False
store=True
string='Group Payments'
hide_payment_method
Boolean
compute='_compute_payment_method_fields'
help="Technical field used to hide the payment method if the selected journal has only one available which is 'manual'"
journal_id
Many2one → account.journal
compute='_compute_journal_id'
domain="[('company_id', '=', company_id), ('type', 'in', ('bank', 'cash'))]"
readonly=False
store=True
args: 'account.journal'
line_ids
Many2many → account.move.line
copy=False
readonly=True
string='Journal items'
args: 'account.move.line', 'account_payment_register_move_line_rel', 'wizard_id', 'line_id'
partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
compute='_compute_partner_bank_id'
domain="[('id', 'in', available_partner_bank_ids)]"
readonly=False
store=True
string='Recipient Bank Account'
partner_id
Many2one → res.partner
compute='_compute_from_lines'
copy=False
ondelete='restrict'
store=True
string='Customer/Vendor'
args: 'res.partner'
partner_type
Selection
compute='_compute_from_lines'
copy=False
store=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_date
Date
default=fields.Date.context_today
required=True
string='Payment Date'
payment_difference
Monetary
compute='_compute_payment_difference'
payment_difference_handling
Selection
default='open'
string='Payment Difference Handling'
args: [('open', 'Keep open'), ('reconcile', 'Mark as fully paid')]
payment_method_id
Many2one → account.payment.method
compute='_compute_payment_method_id'
domain="[('id', 'in', available_payment_method_ids)]"
help='Manual: Get paid by cash, check or any other method outside of Odoo.\nElectronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\nCheck: Pay bill by check and print it from Odoo.\nBatch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo, you are suggested to reconcile the transaction with the batch deposit.To enable batch deposit, module account_batch_payment must be installed.\nSEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. To enable sepa credit transfer, module account_sepa must be installed '
readonly=False
store=True
string='Payment Method'
args: 'account.payment.method'
payment_type
Selection
compute='_compute_from_lines'
copy=False
store=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
require_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
help='Technical field used to know whether the field `partner_bank_id` needs to be required or not in the payments form views'
show_partner_bank_account
Boolean
compute='_compute_show_require_partner_bank'
help='Technical field used to know whether the field `partner_bank_id` needs to be displayed or not in the payments form views'
source_amount
Monetary
compute='_compute_from_lines'
copy=False
currency_field='company_currency_id'
store=True
string='Amount to Pay (company currency)'
source_amount_currency
Monetary
compute='_compute_from_lines'
copy=False
currency_field='source_currency_id'
store=True
string='Amount to Pay (foreign currency)'
source_currency_id
Many2one → res.currency
compute='_compute_from_lines'
copy=False
help="The payment's currency."
store=True
string='Source Currency'
args: 'res.currency'
writeoff_account_id
Many2one → account.account
copy=False
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
string='Difference Account'
args: 'account.account'
writeoff_label
Char
default='Write-Off'
help='Change label of the counterpart that will hold the payment difference'
string='Journal Item Label'
action_create_payments(self)
default_get(self, fields_list)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment terms without removing it.'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Terms'
translate=True
note
Text
string='Description on the Invoice'
translate=True
sequence
Integer
default=10
required=True
compute(self, value, date_ref=False, currency=None)
unlink(self)
day_of_the_month
Integer
help='Day of the month on which the invoice must come to its term. If zero or negative, this value will be ignored, and no specific day will be set. If greater than the last day of a month, this number will instead select the last day of this month.'
string='Day of the month'
days
Integer
default=0
required=True
string='Number of Days'
option
Selection
default='day_after_invoice_date'
required=True
string='Options'
args: [('day_after_invoice_date', 'days after the invoice date'), ('after_invoice_month', 'days after the end of the invoice month'), ('day_following_month', 'of the following month'), ('day_current_month', 'of the current month')]
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Terms'
args: 'account.payment.term'
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of payment terms lines.'
value
Selection
default='balance'
help='Select here the kind of valuation related to this payment terms line.'
required=True
string='Type'
args: [('balance', 'Balance'), ('percent', 'Percent'), ('fixed', 'Fixed Amount')]
value_amount
Float
digits='Payment Terms'
help='For percent enter a ratio between 0-100.'
string='Value'
No public methods.
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
sort_selection
Selection
default='move_name'
required=True
args: [('date', 'Date'), ('move_name', 'Journal Entry Number')], 'Entries Sorted by'
No public methods.
active
Boolean
default=True
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
string='Company'
decimal_separator
Char
default=<expr>
help='Every character that is nor a digit nor this separator will be removed from the matching string'
line_ids
One2many → account.reconcile.model.line
copy=True
args: 'account.reconcile.model.line', 'model_id'
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount'
match_amount_max
Float
string='Amount Max Parameter'
match_amount_min
Float
string='Amount Min Parameter'
match_journal_ids
Many2many → account.journal
check_company=True
domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id)]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
match_label_param
Char
string='Label Parameter'
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Amount Received'), ('amount_paid', 'Amount Paid'), ('both', 'Amount Paid/Received')]
string='Amount Nature'
match_note
Selection
help='The reconciliation model will only be applied when the note:\n * Contains: The proposition note must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Note'
match_note_param
Char
string='Note Parameter'
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner Is Set'
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Restrict Partner Categories to'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Restrict Partners to'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency Matching'
match_text_location_label
Boolean
default=True
help="Search in the Statement's Label to find the Invoice/Payment's reference"
match_text_location_note
Boolean
default=False
help="Search in the Statement's Note to find the Invoice/Payment's reference"
match_text_location_reference
Boolean
default=False
help="Search in the Statement's Reference to find the Invoice/Payment's reference"
match_total_amount
Boolean
default=True
help='The sum of total residual amount propositions matches the statement line amount.'
string='Amount Matching'
match_total_amount_param
Float
default=100
help='The sum of total residual amount propositions matches the statement line amount under this percentage.'
string='Amount Matching %'
match_transaction_type
Selection
help='The reconciliation model will only be applied when the transaction type:\n * Contains: The proposition transaction type must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Transaction Type'
match_transaction_type_param
Char
string='Transaction Type Parameter'
matching_order
Selection
default='old_first'
required=True
selection=[('old_first', 'Oldest first'), ('new_first', 'Newest first')]
name
Char
required=True
string='Name'
number_entries
Integer
compute='_compute_number_entries'
string='Number of entries related to this model'
partner_mapping_line_ids
One2many → account.reconcile.model.partner.mapping
comodel_name='account.reconcile.model.partner.mapping'
help='The mapping uses regular expressions.\n- To Match the text at the beginning of the line (in label or notes), simply fill in your text.\n- To Match the text anywhere (in label or notes), put your text between .*\n e.g: .*N°48748 abc123.*'
inverse_name='model_id'
string='Partner Mapping Lines'
past_months_limit
Integer
default=18
help='Number of months in the past to consider entries from when applying this model.'
string='Past Months Limit'
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', 'Manually create a write-off on clicked button'), ('writeoff_suggestion', 'Suggest counterpart values'), ('invoice_matching', 'Match existing invoices/bills')]
string='Type'
sequence
Integer
default=10
required=True
show_decimal_separator
Boolean
compute='_compute_show_decimal_separator'
help='Technical field to decide if we should show the decimal separator for the regex matching field.'
to_check
Boolean
default=False
help='This matching rule is used when the user is not certain of all the information of the counterpart.'
string='To Check'
action_reconcile_stat(self)
account_id
Many2one → account.account
check_company=True
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('is_off_balance', '=', False)]"
ondelete='cascade'
required=True
string='Account'
args: 'account.account'
amount
Float
compute='_compute_float_amount'
help='Technical shortcut to parse the amount to a float'
store=True
string='Float Amount'
amount_string
Char
default='100'
help='Value for the amount of the writeoff line\n * Percentage: Percentage of the balance, between 0 and 100.\n * Fixed: The fixed value of the writeoff. The amount will count as a debit if it is negative, as a credit if it is positive.\n * From Label: There is no need for regex delimiter, only the regex is needed. For instance if you want to extract the amount from\nR:9672938 10/07 AX 9415126318 T:5L:NA BRT: 3358,07 C:\nYou could enter\nBRT: ([\\d,]+)'
required=True
string='Amount'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('regex', 'From label')]
analytic_account_id
Many2one → account.analytic.account
check_company=True
ondelete='set null'
string='Analytic Account'
args: 'account.analytic.account'
analytic_tag_ids
Many2many → account.analytic.tag
check_company=True
relation='account_reconcile_model_analytic_tag_rel'
string='Analytic Tags'
args: 'account.analytic.tag'
company_id
Many2one
default=<expr>
related='model_id.company_id'
store=True
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
journal_id
Many2one → account.journal
check_company=True
domain="[('type', '=', 'general'), ('company_id', '=', company_id)]"
help='This field is ignored in a bank statement reconciliation.'
ondelete='cascade'
string='Journal'
args: 'account.journal'
label
Char
string='Journal Item Label'
match_total_amount
Boolean
related='model_id.match_total_amount'
match_total_amount_param
Float
related='model_id.match_total_amount_param'
model_id
Many2one → account.reconcile.model
ondelete='cascade'
readonly=True
args: 'account.reconcile.model'
rule_type
Selection
related='model_id.rule_type'
sequence
Integer
default=10
required=True
show_force_tax_included
Boolean
compute='_compute_show_force_tax_included'
help='Technical field used to show the force tax included button'
tax_ids
Many2many → account.tax
check_company=True
ondelete='restrict'
string='Taxes'
args: 'account.tax'
No public methods.
account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Account'
args: 'account.account.template'
amount_string
Char
string='Amount'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('regex', 'From label')]
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
label
Char
string='Journal Item Label'
model_id
Many2one → account.reconcile.model.template
sequence
Integer
default=10
required=True
tax_ids
Many2many → account.tax.template
ondelete='restrict'
string='Taxes'
args: 'account.tax.template'
No public methods.
model_id
Many2one → account.reconcile.model
comodel_name='account.reconcile.model'
ondelete='cascade'
readonly=True
required=True
narration_regex
Char
string='Find Text in Notes'
partner_id
Many2one → res.partner
comodel_name='res.partner'
ondelete='cascade'
required=True
string='Partner'
payment_ref_regex
Char
string='Find Text in Label'
validate_regex(self)
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
decimal_separator
Char
help='Every character that is nor a digit nor this separator will be removed from the matching string'
line_ids
One2many → account.reconcile.model.line.template
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount'
match_amount_max
Float
string='Amount Max Parameter'
match_amount_min
Float
string='Amount Min Parameter'
match_journal_ids
Many2many → account.journal
domain="[('type', 'in', ('bank', 'cash'))]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
match_label_param
Char
string='Label Parameter'
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Amount Received'), ('amount_paid', 'Amount Paid'), ('both', 'Amount Paid/Received')]
string='Amount Nature'
match_note
Selection
help='The reconciliation model will only be applied when the note:\n * Contains: The proposition note must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Note'
match_note_param
Char
string='Note Parameter'
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner Is Set'
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Restrict Partner Categories to'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Restrict Partners to'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency Matching'
match_text_location_label
Boolean
default=True
help="Search in the Statement's Label to find the Invoice/Payment's reference"
match_text_location_note
Boolean
default=False
help="Search in the Statement's Note to find the Invoice/Payment's reference"
match_text_location_reference
Boolean
default=False
help="Search in the Statement's Reference to find the Invoice/Payment's reference"
match_total_amount
Boolean
default=True
help='The sum of total residual amount propositions matches the statement line amount.'
string='Amount Matching'
match_total_amount_param
Float
default=100
help='The sum of total residual amount propositions matches the statement line amount under this percentage.'
string='Amount Matching %'
match_transaction_type
Selection
help='The reconciliation model will only be applied when the transaction type:\n * Contains: The proposition transaction type must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Transaction Type'
match_transaction_type_param
Char
string='Transaction Type Parameter'
matching_order
Selection
selection=[('old_first', 'Oldest first'), ('new_first', 'Newest first')]
name
Char
required=True
string='Button Label'
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', 'Manually create a write-off on clicked button'), ('writeoff_suggestion', 'Suggest a write-off'), ('invoice_matching', 'Match existing invoices/bills')]
string='Type'
sequence
Integer
default=10
required=True
to_check
Boolean
default=False
help='This matching rule is used when the user is not certain of all the information of the counterpart.'
string='To Check'
No public methods.
end_date
Date
help='Date (inclusive) to which the numbers are resequenced. If not set, all Journal Entries up to the end of the period are resequenced.'
first_date
Date
help='Date (inclusive) from which the numbers are resequenced.'
first_name
Char
compute='_compute_first_name'
readonly=False
required=True
store=True
string='First New Sequence'
move_ids
Many2many → account.move
new_values
Text
compute='_compute_new_values'
ordering
Selection
default='keep'
required=True
args: [('keep', 'Keep current order'), ('date', 'Reorder by accounting date')]
preview_moves
Text
compute='_compute_preview_moves'
sequence_number_reset
Char
compute='_compute_sequence_number_reset'
default_get(self, fields_list)
resequence(self)
company_id
Many2one → res.company
name
Char
parent_id
Many2one → account.root
init(self)
bank_bic
Char
readonly=False
related='bank_id.bic'
string='Bic'
linked_journal_id
Many2one → account.journal
check_company=True
comodel_name='account.journal'
compute='_compute_linked_journal_id'
domain="[('type','=','bank'), ('bank_account_id', '=', False), ('company_id', '=', company_id)]"
inverse='set_linked_journal_id'
string='Journal'
new_journal_name
Char
default=<expr>
help='Will be used to name the Journal related to this bank account'
inverse='set_linked_journal_id'
required=True
num_journals_without_account
Integer
default=<expr>
res_partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
ondelete='cascade'
required=True
create(self, vals)
default_linked_journal_id(self)
set_linked_journal_id(self)
validate(self)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
default=0.0
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
help='\n - Group of Taxes: The tax is a set of sub taxes.\n - Fixed: The tax amount stays the same whatever the price.\n - Percentage of Price: The tax amount is a % of the price:\n e.g 100 * (1 + 10%) = 110 (not price included)\n e.g 110 / (1 + 10%) = 100 (price included)\n - Percentage of Price Tax Included: The tax amount is a division of the price:\n e.g 180 / (1 - 10%) = 200 (not price included)\n e.g 200 * (1 - 10%) = 180 (price included)\n '
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Include in Analytic Cost'
cash_basis_transition_account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
children_tax_ids
Many2many → account.tax
check_company=True
string='Children Taxes'
args: 'account.tax', 'account_tax_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_code
Char
readonly=True
related='company_id.country_id.code'
description
Char
string='Label on Invoices'
hide_tax_exigibility
Boolean
readonly=True
related='company_id.tax_exigibility'
string='Hide Use Cash Basis Option'
include_base_amount
Boolean
default=False
help='If set, taxes which are computed after this one will be computed based on the price tax included.'
string='Affect Base of Subsequent Taxes'
invoice_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
help='Distribution when the tax is used on an invoice'
inverse_name='invoice_tax_id'
string='Distribution for Invoices'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
help='Distribution when the tax is used on a refund'
inverse_name='refund_tax_id'
string='Distribution for Refund Invoices'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Due'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_fiscal_country_id
Many2one → res.country
comodel_name='res.country'
help='Technical field used to restrict the domain of account tags for tax repartition lines created for this tax.'
related='company_id.account_tax_fiscal_country_id'
string='Fiscal Country'
tax_group_id
Many2one → account.tax.group
default=_default_tax_group
required=True
string='Tax Group'
args: 'account.tax.group'
tax_scope
Selection
help='Restrict the use of taxes to a type of product.'
string='Tax Scope'
args: [('service', 'Services'), ('consu', 'Goods')]
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment."
required=True
string='Tax Type'
args: TYPE_TAX_USE
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True)
copy(self, default=None)
default_get(self, fields_list)
flatten_taxes_hierarchy(self, create_map=False)
get_tax_tags(self, is_refund, repartition_type)
json_friendly_compute_all(self, price_unit, currency_id=None, quantity=1.0, product_id=None, partner_id=None, is_refund=False)
name_get(self)
onchange_amount(self)
onchange_amount_type(self)
onchange_price_include(self)
name
Char
required=True
translate=True
property_advance_tax_payment_account_id
Many2one → account.account
company_dependent=True
string='Advance Tax payment account'
args: 'account.account'
property_tax_payable_account_id
Many2one → account.account
company_dependent=True
string='Tax current account (payable)'
args: 'account.account'
property_tax_receivable_account_id
Many2one → account.account
company_dependent=True
string='Tax current account (receivable)'
args: 'account.account'
sequence
Integer
default=10
No public methods.
account_id
Many2one → account.account
check_company=True
comodel_name='account.account'
domain="[('deprecated', '=', False), ('company_id', '=', company_id), ('internal_type', 'not in', ('receivable', 'payable'))]"
help='Account on which to post the tax amount'
string='Account'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company'
help='The company this distribution line belongs to.'
store=True
string='Company'
factor
Float
compute='_compute_factor'
help='Factor to apply on the account move lines generated from this distribution line'
string='Factor Ratio'
factor_percent
Float
help='Factor to apply on the account move lines generated from this distribution line, in percents'
required=True
string='%'
invoice_tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
help='The tax set to apply this distribution on invoices. Mutually exclusive with refund_tax_id'
ondelete='cascade'
refund_tax_id
Many2one → account.tax
check_company=True
comodel_name='account.tax'
help='The tax set to apply this distribution on refund invoices. Mutually exclusive with invoice_tax_id'
ondelete='cascade'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
sequence
Integer
default=1
help='The order in which distribution lines are displayed and matched. For refunds to work properly, invoice distribution lines should be arranged in the same order as the credit note distribution lines they correspond to.'
string='Sequence'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
domain=[('applicability', '=', 'taxes')]
string='Tax Grids'
tax_fiscal_country_id
Many2one → res.country
comodel_name='res.country'
help='Technical field used to restrict tags domain in form view.'
related='company_id.account_tax_fiscal_country_id'
string='Fiscal Country'
tax_id
Many2one → account.tax
comodel_name='account.tax'
compute='_compute_tax_id'
use_in_tax_closing
Boolean
string='Tax Closing Entry'
validate_tax_template_link(self)
account_id
Many2one → account.account.template
comodel_name='account.account.template'
help='Account on which to post the tax amount'
string='Account'
factor_percent
Float
help='Factor to apply on the account move lines generated from this distribution line, in percents'
required=True
string='%'
invoice_tax_id
Many2one → account.tax.template
comodel_name='account.tax.template'
help='The tax set to apply this distribution on invoices. Mutually exclusive with refund_tax_id'
minus_report_line_ids
Many2many → account.tax.report.line
comodel_name='account.tax.report.line'
copy=True
help="Tax report lines whose '-' tag will be assigned to move lines by this repartition line"
relation='account_tax_repartition_minus_report_line'
string='Minus Report Lines'
plus_report_line_ids
Many2many → account.tax.report.line
comodel_name='account.tax.report.line'
copy=True
help="Tax report lines whose '+' tag will be assigned to move lines by this repartition line"
relation='account_tax_repartition_plus_report_line'
string='Plus Tax Report Lines'
refund_tax_id
Many2one → account.tax.template
comodel_name='account.tax.template'
help='The tax set to apply this distribution on refund invoices. Mutually exclusive with invoice_tax_id'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
help='Additional tags that will be assigned by this repartition line for use in financial reports'
relation='account_tax_repartition_financial_tags'
string='Financial Tags'
use_in_tax_closing
Boolean
string='Tax Closing Entry'
create(self, vals)
get_repartition_line_create_vals(self, company)
validate_tags(self)
validate_tax_template_link(self)
country_id
Many2one → res.country
comodel_name='res.country'
default=<expr>
help='Country for which this report is available.'
required=True
string='Country'
line_ids
One2many → account.tax.report.line
comodel_name='account.tax.report.line'
help='Content of this tax report'
inverse_name='report_id'
string='Report Lines'
name
Char
help='Name of this tax report'
required=True
string='Name'
root_line_ids
One2many → account.tax.report.line
comodel_name='account.tax.report.line'
domain=[('parent_id', '=', None)]
help='Subset of line_ids, containing the lines at the root of the report.'
inverse_name='report_id'
string='Root Report Lines'
copy(self, default=None)
get_checks_to_perform(self, d)
get_lines_in_hierarchy(self)
validate_country_id(self)
write(self, vals)
children_line_ids
One2many → account.tax.report.line
comodel_name='account.tax.report.line'
help='Lines that should be rendered as children of this one'
inverse_name='parent_id'
string='Children Lines'
code
Char
help='Optional unique code to refer to this line in total formulas'
string='Code'
formula
Char
help='Python expression used to compute the value of a total line. This field is mutually exclusive with tag_name, setting it turns the line to a total line. Tax report line codes can be used as variables in this expression to refer to the balance of the corresponding lines in the report. A formula cannot refer to another line using a formula.'
string='Formula'
name
Char
help='Complete name for this report line, to be used in report.'
required=True
string='Name'
parent_id
Many2one → account.tax.report.line
comodel_name='account.tax.report.line'
string='Parent Line'
parent_path
Char
index=True
report_action_id
Many2one → ir.actions.act_window
comodel_name='ir.actions.act_window'
help='The optional action to call when clicking on this line in accounting reports.'
string='Report Action'
report_id
Many2one → account.tax.report
comodel_name='account.tax.report'
help='The parent tax report of this line'
ondelete='cascade'
required=True
string='Tax Report'
sequence
Integer
help='Sequence determining the order of the lines in the report (smaller ones come first). This order is applied locally per section (so, children of the same line are always rendered one after the other).'
required=True
string='Sequence'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
help='Tax tags populating this line'
relation='account_tax_report_line_tags_rel'
string='Tags'
tag_name
Char
help='Short name for the tax grid corresponding to this report line. Leave empty if this report line should not correspond to any such grid.'
string='Tag Name'
create(self, vals)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
default=0
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Analytic Cost'
cash_basis_transition_account_id
Many2one → account.account.template
comodel_name='account.account.template'
domain=[('deprecated', '=', False)]
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
children_tax_ids
Many2many → account.tax.template
string='Children Taxes'
args: 'account.tax.template', 'account_tax_template_filiation_rel', 'parent_tax', 'child_tax'
description
Char
string='Display on Invoices'
include_base_amount
Boolean
default=False
help='If set, taxes which are computed after this one will be computed based on the price tax included.'
string='Affect Subsequent Taxes'
invoice_repartition_line_ids
One2many → account.tax.repartition.line.template
comodel_name='account.tax.repartition.line.template'
copy=True
help='Repartition when the tax is used on an invoice'
inverse_name='invoice_tax_id'
string='Repartition for Invoices'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_repartition_line_ids
One2many → account.tax.repartition.line.template
comodel_name='account.tax.repartition.line.template'
copy=True
help='Repartition when the tax is used on a refund'
inverse_name='refund_tax_id'
string='Repartition for Refund Invoices'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Due'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
string='Tax Group'
args: 'account.tax.group'
tax_scope
Selection
help='Restrict the use of taxes to a type of product.'
args: [('service', 'Service'), ('consu', 'Consumable')]
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group."
required=True
string='Tax Type'
args: TYPE_TAX_USE
name_get(self)
composer_id
Many2one → mail.compose.message
ondelete='cascade'
required=True
string='Composer'
args: 'mail.compose.message'
sample_bill_preview
Binary
compute='_compute_sample_bill_image'
readonly=True
selection
Selection
default='sample'
selection=<expr>
apply(self)
email_alias
Char
readonly=True
apply(self)
No new fields.
Public methods (1)trans_unrec(self)
No new fields.
Public methods (1)document_layout_save(self)
kpi_account_total_revenue
Boolean
kpi_account_total_revenue_value
Monetary
compute='_compute_kpi_account_total_revenue_value'
No public methods.
No new fields.
Public methods (1)retrieve_attachment(self, record)
No new fields.
Public methods (0)No public methods.
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.'
string='Expense Account'
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='This account will be used when validating a customer invoice.'
string='Income Account'
args: 'account.account'
No public methods.
No new fields.
Public methods (0)No public methods.
property_account_expense_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category. If anglo-saxon accounting with automated valuation method is configured, the expense account on the product category will be used.'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain=ACCOUNT_DOMAIN
help='Keep this field empty to use the default value from the product category.'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'purchase')]
help='Default taxes used when buying the product.'
string='Vendor Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'sale')]
help='Default taxes used when selling the product.'
string='Customer Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
get_product_accounts(self, fiscal_pos=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)lines(self, target_move, journal_ids, sort_selection, data)
account_cash_basis_base_account_id
Many2one → account.account
comodel_name='account.account'
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
account_dashboard_onboarding_state
Selection
default='not_done'
string='State of the account dashboard onboarding panel'
args: DASHBOARD_ONBOARDING_STATES
account_default_pos_receivable_account_id
Many2one → account.account
string='Default PoS Receivable Account'
args: 'account.account'
account_invoice_onboarding_state
Selection
default='not_done'
string='State of the account invoice onboarding panel'
args: DASHBOARD_ONBOARDING_STATES
account_journal_suspense_account_id
Many2one → account.account
string='Journal Suspense Account'
args: 'account.account'
account_onboarding_create_invoice_state
Selection
default='not_done'
string='State of the onboarding create invoice step'
args: ONBOARDING_STEP_STATES
account_onboarding_invoice_layout_state
Selection
default='not_done'
string='State of the onboarding invoice layout step'
args: ONBOARDING_STEP_STATES
account_onboarding_sale_tax_state
Selection
default='not_done'
string='State of the onboarding sale tax step'
args: ONBOARDING_STEP_STATES
account_opening_date
Date
default=<expr>
help='That is the date of the opening entry.'
required=True
string='Opening Entry'
account_opening_journal_id
Many2one → account.journal
comodel_name='account.journal'
help="Journal where the opening entry of this company's accounting has been posted."
readonly=False
related='account_opening_move_id.journal_id'
string='Opening Journal'
account_opening_move_id
Many2one → account.move
comodel_name='account.move'
help="The journal entry containing the initial balance of all this company's accounts."
string='Opening Journal Entry'
account_purchase_tax_id
Many2one → account.tax
string='Default Purchase Tax'
args: 'account.tax'
account_sale_tax_id
Many2one → account.tax
string='Default Sale Tax'
args: 'account.tax'
account_setup_bank_data_state
Selection
default='not_done'
string='State of the onboarding bank data step'
args: ONBOARDING_STEP_STATES
account_setup_bill_state
Selection
default='not_done'
string='State of the onboarding bill step'
args: ONBOARDING_STEP_STATES
account_setup_coa_state
Selection
default='not_done'
string='State of the onboarding charts of account step'
args: ONBOARDING_STEP_STATES
account_setup_fy_data_state
Selection
default='not_done'
string='State of the onboarding fiscal year step'
args: ONBOARDING_STEP_STATES
account_tax_fiscal_country_id
Many2one → res.country
compute='compute_account_tax_fiscal_country'
help='The country to use the tax reports from for this company'
readonly=False
store=True
string='Fiscal Country'
args: 'res.country'
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
automatic_entry_default_journal_id
Many2one → account.journal
domain="[('type', '=', 'general')]"
help='Journal used by default for moving the period of an entry'
args: 'account.journal'
bank_account_code_prefix
Char
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template_id
Many2one → account.chart.template
help='The chart template for the company (if any)'
args: 'account.chart.template'
country_code
Char
related='country_id.code'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
default_cash_difference_expense_account_id
Many2one → account.account
string='Cash Difference Expense Account'
args: 'account.account'
default_cash_difference_income_account_id
Many2one → account.account
string='Cash Difference Income Account'
args: 'account.account'
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_accrual_account_id
Many2one → account.account
domain="[('internal_group', '=', 'liability'), ('internal_type', 'not in', ('receivable', 'payable')), ('company_id', '=', id)]"
help='Account used to move the period of an expense'
args: 'account.account'
expense_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
string='Loss Exchange Rate Account'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default='12'
required=True
args: MONTH_SELECTION
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
string='Lock Date'
income_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
string='Gain Exchange Rate Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_email
Boolean
default=True
args: 'Email by default'
invoice_is_print
Boolean
default=True
args: 'Print by default'
invoice_terms
Text
string='Default Terms and Conditions'
translate=True
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
string='Lock Date for Non-Advisers'
property_stock_account_input_categ_id
Many2one → account.account
string='Input Account for Stock Valuation'
args: 'account.account'
property_stock_account_output_categ_id
Many2one → account.account
string='Output Account for Stock Valuation'
args: 'account.account'
property_stock_valuation_account_id
Many2one → account.account
string='Account Template for Stock Valuation'
args: 'account.account'
qr_code
Boolean
string='Display QR-code on invoices'
revenue_accrual_account_id
Many2one → account.account
domain="[('internal_group', '=', 'asset'), ('internal_type', 'not in', ('receivable', 'payable')), ('company_id', '=', id)]"
help='Account used to move the period of a revenue'
args: 'account.account'
tax_calculation_rounding_method
Selection
default='round_per_line'
string='Tax Calculation Rounding Method'
args: [('round_per_line', 'Round per Line'), ('round_globally', 'Round Globally')]
tax_cash_basis_journal_id
Many2one → account.journal
comodel_name='account.journal'
string='Cash Basis Journal'
tax_exigibility
Boolean
string='Use Cash Basis'
tax_lock_date
Date
help='No users can edit journal entries related to a tax prior and inclusive of this date.'
args: 'Tax Lock Date'
transfer_account_code_prefix
Char
string='Prefix of the transfer accounts'
transfer_account_id
Many2one → account.account
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
action_close_account_dashboard_onboarding(self)
action_close_account_invoice_onboarding(self)
action_open_account_onboarding_create_invoice(self)
action_open_account_onboarding_sale_tax(self)
action_save_onboarding_invoice_layout(self)
action_save_onboarding_sale_tax(self)
compute_account_tax_fiscal_country(self)
compute_fiscalyear_dates(self, current_date)
create_op_move_if_non_existant(self)
get_account_dashboard_onboarding_steps_states_names(self)
get_account_invoice_onboarding_steps_states_names(self)
get_and_update_account_dashboard_onboarding_state(self)
get_and_update_account_invoice_onboarding_state(self)
get_chart_of_accounts_or_fail(self)
get_new_account_code(self, current_code, old_prefix, new_prefix)
get_opening_move_differences(self, opening_move_lines)
get_unaffected_earnings_account(self)
opening_move_posted(self)
reflect_code_prefix_change(self, old_code, new_code)
setting_chart_of_accounts_action(self)
setting_init_bank_account_action(self)
setting_init_fiscal_year_action(self)
write(self, values)
account_cash_basis_base_account_id
Many2one → account.account
comodel_name='account.account'
domain=[('deprecated', '=', False)]
readonly=False
related='company_id.account_cash_basis_base_account_id'
string='Base Tax Received Account'
chart_template_id
Many2one → account.chart.template
default=<expr>
domain="[('visible','=', True)]"
string='Template'
args: 'account.chart.template'
country_code
Char
readonly=True
related='company_id.country_id.code'
currency_exchange_journal_id
Many2one → account.journal
comodel_name='account.journal'
domain="[('company_id', '=', company_id), ('type', '=', 'general')]"
help='The accounting journal where automatic exchange differences will be registered'
readonly=False
related='company_id.currency_exchange_journal_id'
string='Currency Exchange Journal'
currency_id
Many2one → res.currency
help='Main currency of the company.'
readonly=False
related='company_id.currency_id'
required=True
string='Currency'
args: 'res.currency'
expense_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
readonly=False
related='company_id.expense_currency_exchange_account_id'
string='Loss Account'
group_analytic_accounting
Boolean
implied_group='analytic.group_analytic_accounting'
string='Analytic Accounting'
group_analytic_tags
Boolean
implied_group='analytic.group_analytic_tags'
string='Analytic Tags'
group_cash_rounding
Boolean
implied_group='account.group_cash_rounding'
string='Cash Rounding'
group_show_line_subtotals_tax_excluded
Boolean
group='base.group_portal,base.group_user,base.group_public'
implied_group='account.group_show_line_subtotals_tax_excluded'
args: 'Show line subtotals without taxes (B2B)'
group_show_line_subtotals_tax_included
Boolean
group='base.group_portal,base.group_user,base.group_public'
implied_group='account.group_show_line_subtotals_tax_included'
args: 'Show line subtotals with taxes (B2C)'
group_show_purchase_receipts
Boolean
implied_group='account.group_purchase_receipts'
string='Purchase Receipt'
group_show_sale_receipts
Boolean
implied_group='account.group_sale_receipts'
string='Sale Receipt'
group_warning_account
Boolean
implied_group='account.group_warning_account'
string='Warnings in Invoices'
has_accounting_entries
Boolean
compute='_compute_has_chart_of_accounts'
has_chart_of_accounts
Boolean
compute='_compute_has_chart_of_accounts'
string='Company has a chart of accounts'
income_currency_exchange_account_id
Many2one → account.account
comodel_name='account.account'
domain=<expr>
readonly=False
related='company_id.income_currency_exchange_account_id'
string='Gain Account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
readonly=False
related='company_id.incoterm_id'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_email
Boolean
readonly=False
related='company_id.invoice_is_email'
string='Send Email'
invoice_is_print
Boolean
readonly=False
related='company_id.invoice_is_print'
string='Print'
invoice_terms
Text
readonly=False
related='company_id.invoice_terms'
string='Terms & Conditions'
module_account_accountant
Boolean
string='Accounting'
module_account_bank_statement_import_camt
Boolean
module_account_bank_statement_import_csv
Boolean
module_account_bank_statement_import_ofx
Boolean
module_account_bank_statement_import_qif
Boolean
module_account_batch_payment
Boolean
help='This allows you grouping payments into a single batch and eases the reconciliation process.\n-This installs the account_batch_payment module.'
string='Use batch payments'
module_account_budget
Boolean
string='Budget Management'
module_account_check_printing
Boolean
module_account_intrastat
Boolean
string='Intrastat'
module_account_invoice_extract
Boolean
string='Bill Digitalization'
module_account_payment
Boolean
string='Invoice Online Payment'
module_account_plaid
Boolean
string='Plaid Connector'
module_account_reports
Boolean
module_account_sepa
Boolean
string='SEPA Credit Transfer (SCT)'
module_account_sepa_direct_debit
Boolean
string='Use SEPA Direct Debit'
module_account_taxcloud
Boolean
string='Account TaxCloud'
module_account_yodlee
Boolean
module_currency_rate_live
Boolean
string='Automatic Currency Rates'
module_l10n_eu_service
Boolean
string='EU Intra-community Distance Selling'
module_product_margin
Boolean
string='Allow Product Margin'
module_snailmail_account
Boolean
string='Snailmail'
purchase_tax_id
Many2one → account.tax
readonly=False
related='company_id.account_purchase_tax_id'
string='Default Purchase Tax'
args: 'account.tax'
qr_code
Boolean
readonly=False
related='company_id.qr_code'
string='Display SEPA QR-code'
sale_tax_id
Many2one → account.tax
readonly=False
related='company_id.account_sale_tax_id'
string='Default Sale Tax'
args: 'account.tax'
show_line_subtotals_tax_selection
Selection
config_parameter='account.show_line_subtotals_tax_selection'
default='tax_excluded'
required=True
string='Line Subtotals Tax Display'
args: [('tax_excluded', 'Tax-Excluded'), ('tax_included', 'Tax-Included')]
tax_calculation_rounding_method
Selection
readonly=False
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
tax_cash_basis_journal_id
Many2one → account.journal
readonly=False
related='company_id.tax_cash_basis_journal_id'
string='Tax Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
readonly=False
related='company_id.tax_exigibility'
string='Cash Basis'
use_invoice_terms
Boolean
config_parameter='account.use_invoice_terms'
string='Default Terms & Conditions'
onchange_account_yodlee(self)
onchange_analytic_accounting(self)
onchange_module_account_budget(self)
set_values(self)
display_rounding_warning
Boolean
compute='_compute_display_rounding_warning'
help="Technical field. Used to tell whether or not to display the rounding warning. The warning informs a rounding factor change might be dangerous on res.currency's form view."
string='Display Rounding Warning'
write(self, vals)
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Partner Contracts'
args: 'account.analytic.account', 'partner_id'
credit
Monetary
compute='_credit_debit_get'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
currency_id
Many2one → res.currency
compute='_get_company_currency'
help='Utility field to express amount currency'
readonly=True
string='Currency'
args: 'res.currency'
customer_rank
Integer
copy=False
default=0
debit
Monetary
compute='_credit_debit_get'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
debit_limit
Monetary
has_unreconciled_entries
Boolean
compute='_compute_has_unreconciled_entries'
help='The partner has at least one unreconciled debit and credit since last time the invoices & payments matching was performed.'
invoice_ids
One2many → account.move
copy=False
readonly=True
string='Invoices'
args: 'account.move', 'partner_id'
invoice_warn
Selection
default='no-message'
help=WARNING_HELP
args: WARNING_MESSAGE, 'Invoice'
invoice_warn_msg
Text
journal_item_count
Integer
compute='_compute_journal_item_count'
string='Journal Items'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed for this partner. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit or if you click the "Done" button.'
readonly=True
string='Latest Invoices & Payments Matching Date'
property_account_payable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'payable'), ('deprecated', '=', False), ('company_id', '=', current_company_id)]"
help='This account will be used instead of the default one as the payable account for the current partner'
required=True
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
company_dependent=True
domain="[('company_id', '=', current_company_id)]"
help='The fiscal position determines the taxes/accounts used for this contact.'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'receivable'), ('deprecated', '=', False), ('company_id', '=', current_company_id)]"
help='This account will be used instead of the default one as the receivable account for the current partner'
required=True
string='Account Receivable'
args: 'account.account'
property_payment_term_id
Many2one → account.payment.term
company_dependent=True
domain="[('company_id', 'in', [current_company_id, False])]"
help='This payment term will be used instead of the default one for sales orders and customer invoices'
string='Customer Payment Terms'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
company_dependent=True
domain="[('company_id', 'in', [current_company_id, False])]"
help='This payment term will be used instead of the default one for purchase orders and vendor bills'
string='Vendor Payment Terms'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
supplier_rank
Integer
copy=False
default=0
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice,account.group_account_readonly'
string='Total Invoiced'
trust
Selection
company_dependent=True
default='normal'
string='Degree of trust you have in this debtor'
args: [('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')]
action_view_partner_invoices(self)
can_edit_vat(self)
create(self, vals_list)
mark_as_reconciled(self)
unlink(self)
No new fields.
Public methods (3)build_qr_code_base64(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
build_qr_code_url(self, amount, free_communication, structured_communication, currency, debtor_partner, qr_method=None, silent_errors=True)
get_available_qr_methods_in_sequence(self)
journal_id
One2many → account.journal
domain=[('type', '=', 'bank')]
help='The accounting journal corresponding to this bank account.'
readonly=True
string='Account Journal'
args: 'account.journal', 'bank_account_id'
default_get(self, fields_list)
No new fields.
Public methods (0)No public methods.
sequence_number
Integer
compute='_compute_split_sequence'
store=True
sequence_prefix
Char
compute='_compute_split_sequence'
store=True
init(self)
adjustment_type
Selection
required=True
string='Adjustment Type'
args: [('debit', 'Applied on debit journal item'), ('credit', 'Applied on credit journal item')]
amount
Monetary
currency_field='company_currency_id'
required=True
company_currency_id
Many2one → res.currency
default=<expr>
readonly=True
args: 'res.currency'
credit_account_id
Many2one → account.account
domain="[('deprecated', '=', False), ('is_off_balance', '=', False)]"
required=True
string='Credit account'
args: 'account.account'
date
Date
default=fields.Date.context_today
required=True
debit_account_id
Many2one → account.account
domain="[('deprecated', '=', False), ('is_off_balance', '=', False)]"
required=True
string='Debit account'
args: 'account.account'
journal_id
Many2one → account.journal
default=_get_default_journal
domain=[('type', '=', 'general')]
required=True
string='Journal'
args: 'account.journal'
reason
Char
required=True
string='Justification'
report_id
Many2one
related='tax_report_line_id.report_id'
string='Report'
tax_report_line_id
Many2one → account.tax.report.line
comodel_name='account.tax.report.line'
domain=_domain_tax_report
help='The report line to make an adjustment for.'
required=True
string='Report Line'
create_move(self)
force_post
Boolean
help='Entries in the future are set to be auto-posted by default. Check this checkbox to post them now.'
string='Force'
validate_move(self)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
_assets_primary_variables |
_assets_primary_variables | ir.ui.view | qweb | Inherits web._assets_primary_variables |
account_accrual_accounting_wizard_form_view |
account.accrual.accounting.wizard.form | account.accrual.accounting.wizard | form | New |
account_bank_journal_view_kanban |
account.bank.journal.kanban | account.journal | kanban | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_common_report_view |
Common Report | account.common.report | form | New |
account_dashboard_onboarding_panel |
account.dashboard.onboarding.panel | ir.ui.view | qweb | New |
account_incoterms_form |
account.incoterms.form | account.incoterms | form | New |
account_incoterms_view_search |
account.incoterms.search | account.incoterms | search | New |
account_invoice_onboarding_panel |
account.invoice.onboarding.panel | ir.ui.view | qweb | New |
account_invoice_onboarding_sale_tax_form |
account.invoice.layout.onboarding.form | res.company | form | New |
account_invoice_send_wizard_form |
account.invoice.send.form | account.invoice.send | form | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_journal_dashboard_kanban_view_js |
account.journal.dashboard.kanban.js | account.journal | xpath | Inherits account.account_journal_dashboard_kanban_view |
account_journal_view_kanban |
account.journal.kanban | account.journal | kanban | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_view_kanban |
account.move.line.kanban | account.move.line | kanban | New |
account_tag_view_form |
Tags | account.account.tag | form | New |
account_tag_view_search |
account.tag.view.search | account.account.tag | search | New |
account_tag_view_tree |
Tags | account.account.tag | tree | New |
account_tax_report_line_form |
account.tax.report.line.form | account.tax.report.line | form | New |
account_tax_report_line_search |
account.tax.report.line.search | account.tax.report.line | search | New |
account_tax_report_line_tree |
account.tax.report.line.tree | account.tax.report.line | tree | New |
account_tax_view_search |
account.tax.search.filters | account.tax | search | New |
account_tax_view_tree |
account.invoice.line.tax.search | account.tax | tree | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
action_account_fiscal_year_form |
account.fiscal.year.form | account.fiscal.year | form | New |
action_account_fiscal_year_search |
account.fiscal.year.search | account.fiscal.year | search | New |
action_account_fiscal_year_tree |
account.fiscal.year.tree | account.fiscal.year | tree | New |
assets_backend |
account assets | ir.ui.view | qweb | Inherits web.assets_backend |
assets_frontend |
account assets | ir.ui.view | qweb | Inherits web.assets_frontend |
assets_tests |
Account Assets Tests | ir.ui.view | qweb | Inherits web.assets_tests |
cash_box_out_form |
cash_box_out | cash.box.out | form | New |
dashboard_onboarding_company_step |
dashboard_onboarding_company_step | ir.ui.view | qweb | Inherits base.onboarding_company_step |
digest_digest_view_form |
digest.digest.view.form.inherit.account.account | digest.digest | xpath | Inherits digest.digest_digest_view_form |
email_compose_onboarding_sample_invoice |
mail.compose.message.form.account_invoice_onboarding_sample_invoice | mail.compose.message | xpath | Inherits mail.email_compose_message_wizard_form |
init_accounts_tree |
account.setup.opening.move.line.tree | account.account | tree | New |
onboarding_bank_account_step |
onboarding_bank_account_step | ir.ui.view | qweb | New |
onboarding_chart_of_account_step |
onboarding_chart_of_account_step | ir.ui.view | qweb | New |
onboarding_fiscal_year_step |
onboarding_fiscal_year_step | ir.ui.view | qweb | New |
onboarding_invoice_layout_step |
onboarding_invoice_layout_step | ir.ui.view | qweb | New |
onboarding_sale_tax_step |
onboarding_sale_tax_step | ir.ui.view | qweb | New |
onboarding_sample_invoice_step |
onboarding_sample_invoice_step | ir.ui.view | qweb | New |
partner_view_buttons |
partner.view.buttons | res.partner | div | Inherits base.view_partner_form |
partner_view_short_extra |
partner.short.view.account | res.partner | field | Inherits base.view_partner_short_form |
portal_invoice_error |
Invoice error/warning display | ir.ui.view | qweb | New |
portal_invoice_page |
Invoice Portal Template | ir.ui.view | qweb | Inherits portal.portal_sidebar |
portal_invoice_success |
Invoice success display | ir.ui.view | qweb | New |
portal_my_home_invoice |
Portal My Home : invoice entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_invoice |
Portal layout : invoice menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_invoices |
My Invoices and Payments | ir.ui.view | qweb | New |
product_template_form_view |
product.template.form.inherit | product.template | xpath | Inherits product.product_template_form_view |
product_template_view_tree |
product.template.tree | product.template | tree | New |
qunit_suite |
account tests | ir.ui.view | qweb | Inherits web.qunit_suite |
report_agedpartnerbalance |
report_agedpartnerbalance | ir.ui.view | qweb | New |
report_hash_integrity |
report_hash_integrity | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_invoice_document_with_payments |
report_invoice_document_with_payments | ir.ui.view | qweb | Inherits account.report_invoice_document |
report_invoice_with_payments |
report_invoice_with_payments | ir.ui.view | qweb | New |
report_journal |
report_journal | ir.ui.view | qweb | New |
report_original_vendor_bill |
report_original_vendor_bill | ir.ui.view | qweb | New |
report_payment_receipt |
report_payment_receipt | ir.ui.view | qweb | New |
report_payment_receipt_document |
report_payment_receipt_document | ir.ui.view | qweb | New |
report_statement |
report_statement | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.account | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_partner_view_search |
res.partner.search.inherit | res.partner | xpath | Inherits base.view_res_partner_filter |
rounding_form_view |
account.cash.rounding.form | account.cash.rounding | form | New |
rounding_search_view |
account.cash.rounding.search | account.cash.rounding | search | New |
rounding_tree_view |
account.cash.rounding.tree | account.cash.rounding | tree | New |
setup_bank_account_wizard |
account.online.sync.res.partner.bank.setup.form | account.setup.bank.manual.config | form | New |
setup_financial_year_opening_form |
account.financial.year.op.setup.wizard.form | account.financial.year.op | form | New |
tax_adjustments_wizard |
tax.adjustments.wizard.form | tax.adjustments.wizard | form | New |
tax_repartition_line_tree |
account.tax.repartition.line.tree | account.tax.repartition.line | tree | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_account_kanban |
account.account.kanban | account.account | kanban | New |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.tree.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_bank_journal_form |
account.bank.journal.form | account.journal | form | New |
view_account_bank_journal_tree |
account.bank.journal.tree | account.journal | tree | New |
view_account_bnk_stmt_cashbox |
account.bnk_stmt_cashbox.form | account.bank.statement.cashbox | form | New |
view_account_bnk_stmt_cashbox_footer |
account.bnk_stmt_cashbox.form | account.bank.statement.cashbox | xpath | Inherits view_account_bnk_stmt_cashbox |
view_account_bnk_stmt_check |
account.bnk_stmt_check.form | account.bank.statement.closebalance | form | New |
view_account_chart_template_form |
account.chart.template.form | account.chart.template | form | New |
view_account_chart_template_seacrh |
account.chart.template.search | account.chart.template | search | New |
view_account_chart_template_tree |
account.chart.template.tree | account.chart.template | tree | New |
view_account_form |
account.account.form | account.account | form | New |
view_account_group_form |
account.group.form | account.group | form | New |
view_account_group_search |
account.group.search | account.group | search | New |
view_account_group_tree |
account.group.tree | account.group | tree | New |
view_account_invoice_filter |
account.invoice.select | account.move | search | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_invoice_report_search_analytic_accounting |
account.invoice.report.search_analytic_accounting | account.invoice.report | filter | Inherits account.view_account_invoice_report_search |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_group_form |
account.journal.group.form | account.journal.group | form | New |
view_account_journal_group_tree |
account.journal.group.tree | account.journal.group | tree | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_kanban |
account.move.kanban | account.move | kanban | New |
view_account_move_line_filter |
account.move.line.search | account.move.line | search | New |
view_account_move_line_filter_with_root_selection |
account.move.line.search | account.move.line | xpath | Inherits account.view_account_move_line_filter |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_form_multi |
account.payment.form.multi | account.payment.register | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_invoice_form |
account.payment.invoice.form | account.payment | xpath | Inherits view_account_payment_form |
view_account_payment_kanban |
account.payment.kanban | account.payment | kanban | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_term_kanban |
account.payment.term.kanban | account.payment.term | kanban | New |
view_account_payment_tree |
account.payment.tree | account.payment | tree | New |
view_account_position_filter |
account.fiscal.position.filter | account.fiscal.position | search | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_reconcile_model_form |
account.reconcile.model.form | account.reconcile.model | form | New |
view_account_reconcile_model_search |
account.reconcile.model.search | account.reconcile.model | search | New |
view_account_reconcile_model_tree |
account.reconcile.model.tree | account.reconcile.model | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_supplier_payment_tree |
account.supplier.payment.tree | account.payment | field | Inherits account.view_account_payment_tree |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_template_form |
account.account.template.form | account.account.template | form | New |
view_account_template_search |
account.account.template.search | account.account.template | search | New |
view_account_template_tree |
account.account.template.tree | account.account.template | tree | New |
view_account_type_form |
account.account.type.form | account.account.type | form | New |
view_account_type_search |
account.account.type.search | account.account.type | search | New |
view_account_type_tree |
account.account.type.tree | account.account.type | tree | New |
view_bank_statement_form |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_line_form |
bank.statement.line.form | account.bank.statement.line | form | New |
view_bank_statement_line_search |
account.bank.statement.line.search | account.bank.statement.line | search | New |
view_bank_statement_line_tree |
account.bank.statement.line.tree | account.bank.statement.line | tree | New |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_company_partner_bank_form |
company.res.partner.bank.form | res.partner.bank | xpath | Inherits base.view_partner_bank_form |
view_full_reconcile_form |
account.full.reconcile.form | account.full.reconcile | form | New |
view_incoterms_tree |
account.incoterms.tree | account.incoterms | tree | New |
view_invoice_tree |
account.invoice.tree | account.move | tree | New |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_pivot |
account.move.line.pivot | account.move.line | pivot | New |
view_move_line_tax_audit_tree |
account.move.line.tax.audit.tree | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_line_tree_grouped |
account.move.line.tree.grouped | account.move.line | tree | New |
view_move_line_tree_grouped_bank_cash |
account.move.line.tree.grouped.bank.cash | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_general |
account.move.line.tree.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_misc |
account.move.line.tree.grouped.misc | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_partner |
account.move.line.tree.grouped.partner | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_line_tree_grouped_sales_purchases |
account.move.line.tree.grouped.sales.purchase | account.move.line | field | Inherits account.view_move_line_tree_grouped |
view_move_tree |
account.move.tree | account.move | tree | New |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | page | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_line_form |
account.payment.term.line.form | account.payment.term.line | form | New |
view_payment_term_line_tree |
account.payment.term.line.tree | account.payment.term.line | tree | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_payment_term_tree |
account.payment.term.tree | account.payment.term | tree | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_group_tree |
account.tax.group.tree | account.tax.group | tree | New |
view_tax_kanban |
account.tax.kanban | account.tax | kanban | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
code
Char
index=True
required=True
size=64
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this account currency.'
string='Account Currency'
args: 'res.currency'
deprecated
Boolean
default=False
index=True
group_id
Many2one → account.group
internal_group
Selection
readonly=True
related='user_type_id.internal_group'
store=True
string='Internal Group'
internal_type
Selection
readonly=True
related='user_type_id.type'
store=True
string='Internal Type'
name
Char
index=True
required=True
note
Text
opening_credit
Monetary
compute='_compute_opening_debit_credit'
help='Opening credit value for this account.'
inverse='_set_opening_credit'
string='Opening credit'
opening_debit
Monetary
compute='_compute_opening_debit_credit'
help='Opening debit value for this account.'
inverse='_set_opening_debit'
string='Opening debit'
reconcile
Boolean
default=False
help='Check this box if this account allows invoices & payments matching of journal items.'
string='Allow Reconciliation'
root_id
Many2one → account.root
compute='_compute_account_root'
store=True
args: 'account.root'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Tags'
args: 'account.account.tag', 'account_account_account_tag'
tax_ids
Many2many → account.tax
context={'append_type_to_tax_name': True}
string='Default Taxes'
args: 'account.tax', 'account_account_tax_default_rel', 'account_id', 'tax_id'
used
Boolean
compute='_compute_used'
search='_search_used'
user_type_id
Many2one → account.account.type
help='Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.'
required=True
string='Type'
args: 'account.account.type'
action_duplicate_accounts(self)
action_open_reconcile(self)
action_read_account(self)
copy(self, default=None)
default_get(self, default_fields)
load(self, fields, data)
name_get(self)
onchange_code(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the Account Tag without removing it.'
applicability
Selection
default='accounts'
required=True
args: [('accounts', 'Accounts'), ('taxes', 'Taxes')]
color
Integer
country_id
Many2one → res.country
comodel_name='res.country'
help='Country for which this tag is available, when applied on taxes.'
string='Country'
name
Char
required=True
args: 'Tag Name'
tax_negate
Boolean
help='Check this box to negate the absolute value of the balance of the lines associated with this tag in tax report computation.'
string='Negate Tax Balance'
tax_report_line_ids
Many2many → account.tax.report.line
comodel_name='account.tax.report.line'
help='The tax report lines using this tag'
relation='account_tax_report_line_tags_rel'
string='Tax Report Lines'
No public methods.
chart_template_id
Many2one → account.chart.template
help="This optional field allow you to link an account template to a specific chart template that may differ from the one its root parent belongs to. This allow you to define chart templates that extend another and complete it with few new accounts (You don't need to define the whole structure that is common to both several times)."
string='Chart Template'
args: 'account.chart.template'
code
Char
index=True
required=True
size=64
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
group_id
Many2one → account.group
name
Char
index=True
required=True
nocreate
Boolean
default=False
help='If checked, the new chart of accounts will not contain this by default.'
string='Optional Create'
note
Text
reconcile
Boolean
default=False
help='Check this option if you want the user to reconcile entries in this account.'
string='Allow Invoices & payments Matching'
root_id
Many2one → account.root
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag', 'account_account_template_account_tag'
tax_ids
Many2many → account.tax.template
string='Default Taxes'
args: 'account.tax.template', 'account_account_template_tax_rel', 'account_id', 'tax_id'
user_type_id
Many2one → account.account.type
help='These types are defined according to your country. The type contains more information about the account and its specificities.'
required=True
string='Type'
args: 'account.account.type'
name_get(self)
include_initial_balance
Boolean
help='Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set.'
string='Bring Accounts Balance Forward'
internal_group
Selection
help="The 'Internal Group' is used to filter accounts based on the internal group set on the account type."
required=True
string='Internal Group'
args: [('equity', 'Equity'), ('asset', 'Asset'), ('liability', 'Liability'), ('income', 'Income'), ('expense', 'Expense'), ('off_balance', 'Off Balance')]
name
Char
required=True
string='Account Type'
translate=True
note
Text
string='Description'
type
Selection
default='other'
help="The 'Internal Type' is used for features available on different types of accounts: liquidity type is for cash or bank accounts, payable/receivable is for vendor/customer accounts."
required=True
args: [('other', 'Regular'), ('receivable', 'Receivable'), ('payable', 'Payable'), ('liquidity', 'Liquidity')]
No public methods.
account_type
Selection
active_move_line_ids
Many2many → account.move.line
company_currency_id
Many2one → res.currency
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
required=True
args: 'res.company'
date
Date
required=True
expense_accrual_account
Many2one → account.account
domain="[('company_id', '=', company_id), ('internal_type', 'not in', ('receivable', 'payable')), ('internal_group', '=', 'liability'), ('reconcile', '=', True)]"
readonly=False
related='company_id.expense_accrual_account_id'
args: 'account.account'
journal_id
Many2one → account.journal
domain="[('company_id', '=', company_id), ('type', '=', 'general')]"
readonly=False
related='company_id.accrual_default_journal_id'
required=True
args: 'account.journal'
percentage
Float
default=100.0
args: 'Percentage'
revenue_accrual_account
Many2one → account.account
domain="[('company_id', '=', company_id), ('internal_type', 'not in', ('receivable', 'payable')), ('internal_group', '=', 'asset'), ('reconcile', '=', True)]"
readonly=False
related='company_id.revenue_accrual_account_id'
args: 'account.account'
total_amount
Monetary
compute='_compute_total_amount'
currency_field='company_currency_id'
amend_entries(self)
default_get(self, fields)
No new fields.
Public methods (0)No public methods.
code
Char
size=8
general_account_id
Many2one → account.account
compute_sudo=True
domain=[('deprecated', '=', False)]
ondelete='restrict'
readonly=True
related='move_id.account_id'
store=True
string='Financial Account'
args: 'account.account'
move_id
Many2one → account.move.line
index=True
ondelete='cascade'
string='Journal Item'
args: 'account.move.line'
product_id
Many2one → product.product
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Product'
args: 'product.product'
ref
Char
string='Ref.'
on_change_unit_amount(self)
view_header_get(self, view_id, view_type)
No new fields.
Public methods (0)No public methods.
accounting_date
Date
help='If set, the accounting entries created during the bank statement reconciliation process will be created at this date.\nThis is useful if the accounting period in which the entries should normally be booked is already closed.'
readonly=True
states={'open': [('readonly', False)]}
string='Accounting Date'
all_lines_reconciled
Boolean
compute='_check_lines_reconciled'
balance_end
Monetary
compute='_end_balance'
help='Balance as calculated based on Opening Balance and transaction lines'
store=True
args: 'Computed Balance'
balance_end_real
Monetary
states={'confirm': [('readonly', True)]}
tracking=True
args: 'Ending Balance'
balance_start
Monetary
default=_default_opening_balance
states={'confirm': [('readonly', True)]}
string='Starting Balance'
tracking=True
cashbox_end_id
Many2one → account.bank.statement.cashbox
string='Ending Cashbox'
args: 'account.bank.statement.cashbox'
cashbox_start_id
Many2one → account.bank.statement.cashbox
string='Starting Cashbox'
args: 'account.bank.statement.cashbox'
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)]}
date_done
Datetime
string='Closed On'
difference
Monetary
compute='_end_balance'
help='Difference between the computed ending balance and the specified ending balance.'
store=True
is_difference_zero
Boolean
compute='_is_difference_zero'
help='Check if difference is zero.'
string='Is zero'
journal_id
Many2one → account.journal
default=_default_journal
required=True
states={'confirm': [('readonly', True)]}
string='Journal'
args: 'account.journal'
journal_type
Selection
help='Technical field used for usability purposes'
related='journal_id.type'
line_ids
One2many → account.bank.statement.line
copy=True
states={'confirm': [('readonly', True)]}
string='Statement lines'
args: 'account.bank.statement.line', 'statement_id'
move_line_count
Integer
compute='_get_move_line_count'
move_line_ids
One2many → account.move.line
states={'confirm': [('readonly', True)]}
string='Entry lines'
args: 'account.move.line', 'statement_id'
name
Char
copy=False
readonly=True
states={'open': [('readonly', False)]}
string='Reference'
reference
Char
copy=False
help='Used to hold the reference of the external mean that created this statement (name of imported file, reference of online synchronization...)'
readonly=True
states={'open': [('readonly', False)]}
string='External Reference'
state
Selection
copy=False
default='open'
readonly=True
required=True
string='Status'
tracking=True
args: [('open', 'New'), ('confirm', 'Validated')]
total_entry_encoding
Monetary
compute='_end_balance'
help='Total of transaction lines.'
store=True
args: 'Transactions Subtotal'
user_id
Many2one → res.users
default=<expr>
required=False
string='Responsible'
args: 'res.users'
action_bank_reconcile_bank_statements(self)
button_confirm_bank(self)
button_journal_entries(self)
button_open(self)
button_reopen(self)
check_confirm_bank(self)
onchange_journal_id(self)
open_cashbox_id(self)
unlink(self)
cashbox_lines_ids
One2many → account.cashbox.line
string='Cashbox Lines'
args: 'account.cashbox.line', 'cashbox_id'
currency_id
Many2one → res.currency
compute='_compute_currency'
args: 'res.currency'
end_bank_stmt_ids
One2many → account.bank.statement
start_bank_stmt_ids
One2many → account.bank.statement
total
Float
compute='_compute_total'
create(self, vals)
default_get(self, fields)
name_get(self)
write(self, vals)
No new fields.
Public methods (1)validate(self)
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='This technical field can be used at the statement line creation/import time in order to avoid the reconciliation process on it later on. The statement line will simply create a counterpart on this account'
string='Counterpart Account'
args: 'account.account'
account_number
Char
help="Technical field used to store the bank account number before its creation, upon the line's processing"
string='Bank Account Number'
amount
Monetary
currency_field='journal_currency_id'
amount_currency
Monetary
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
bank_account_id
Many2one → res.partner.bank
help='Bank account that was used in this transaction.'
string='Bank Account'
args: 'res.partner.bank'
company_id
Many2one → res.company
readonly=True
related='statement_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='The optional other currency if it is a multi-currency entry.'
string='Currency'
args: 'res.currency'
date
Date
default=<expr>
required=True
journal_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='statement_id.currency_id'
string="Journal's Currency"
args: 'res.currency'
journal_entry_ids
One2many → account.move.line
copy=False
readonly=True
args: 'account.move.line', 'statement_line_id', 'Journal Items'
journal_id
Many2one → account.journal
readonly=True
related='statement_id.journal_id'
store=True
string='Journal'
args: 'account.journal'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the journal entry, automatically set when the statement line is reconciled then stored to set the same number again if the line is cancelled, set to draft and re-processed again.'
readonly=True
string='Journal Entry Name'
name
Char
required=True
string='Label'
note
Text
string='Notes'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
partner_name
Char
help="This field is used to record the third party name when importing bank statement in electronic format, when the partner doesn't exist yet in the database (or cannot be found)."
ref
Char
string='Reference'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of bank statement lines.'
index=True
state
Selection
readonly=True
related='statement_id.state'
string='Status'
statement_id
Many2one → account.bank.statement
index=True
ondelete='cascade'
required=True
string='Statement'
args: 'account.bank.statement'
transaction_type
Char
string='Transaction Type'
button_cancel_reconciliation(self)
button_confirm_bank(self)
create(self, vals)
fast_counterpart_creation(self)
process_reconciliation(self, counterpart_aml_dicts=None, payment_aml_rec=None, new_aml_dicts=None)
unlink(self)
account_id
Many2one → account.account
string='Account'
args: 'account.account'
company_id
Many2one → res.company
related='account_id.company_id'
args: 'res.company'
name
Char
required=True
string='Name'
translate=True
rounding
Float
default=0.01
help='Represent the non-zero value smallest coinage (for example, 0.05).'
required=True
string='Rounding Precision'
rounding_method
Selection
default='HALF-UP'
help='The tie-breaking rule used for float rounding operations'
required=True
selection=[('UP', 'UP'), ('DOWN', 'DOWN'), ('HALF-UP', 'HALF-UP')]
string='Rounding Method'
strategy
Selection
default='add_invoice_line'
help='Specify which way will be used to round the invoice amount to the rounding precision'
required=True
string='Rounding Strategy'
args: [('biggest_tax', 'Modify tax amount'), ('add_invoice_line', 'Add a rounding line')]
compute_difference(self, currency, amount)
round(self, amount)
validate_rounding(self)
cashbox_id
Many2one → account.bank.statement.cashbox
string='Cashbox'
args: 'account.bank.statement.cashbox'
coin_value
Float
digits=0
required=True
string='Coin/Bill Value'
currency_id
Many2one → res.currency
related='cashbox_id.currency_id'
args: 'res.currency'
number
Integer
help='Opening Unit Numbers'
string='#Coins/Bills'
subtotal
Float
compute='_sub_total'
digits=0
readonly=True
string='Subtotal'
No public methods.
account_ids
One2many → account.account.template
string='Associated Account Templates'
args: 'account.account.template', 'chart_template_id'
bank_account_code_prefix
Char
required=True
string='Prefix of the bank accounts'
cash_account_code_prefix
Char
required=True
string='Prefix of the main cash accounts'
code_digits
Integer
default=6
help='No. of Digits to use for account code'
required=True
string='# of Digits'
complete_tax_set
Boolean
default=True
help='This boolean helps you to choose if you want to propose to the user to encode the sale and purchase rates or choose from list of taxes. This last choice assumes that the set of tax defined on this template is complete'
string='Complete Set of Taxes'
currency_id
Many2one → res.currency
required=True
string='Currency'
args: 'res.currency'
default_cash_difference_expense_account_id
Many2one → account.account.template
string='Cash Difference Expense Account'
args: 'account.account.template'
default_cash_difference_income_account_id
Many2one → account.account.template
string='Cash Difference Income Account'
args: 'account.account.template'
default_pos_receivable_account_id
Many2one → account.account.template
string='PoS receivable account'
args: 'account.account.template'
expense_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Loss Exchange Rate Account'
args: 'account.account.template'
income_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Gain Exchange Rate Account'
args: 'account.account.template'
name
Char
required=True
parent_id
Many2one → account.chart.template
string='Parent Chart Template'
args: 'account.chart.template'
property_account_expense_categ_id
Many2one → account.account.template
string='Category of Expense Account'
args: 'account.account.template'
property_account_expense_id
Many2one → account.account.template
string='Expense Account on Product Template'
args: 'account.account.template'
property_account_income_categ_id
Many2one → account.account.template
string='Category of Income Account'
args: 'account.account.template'
property_account_income_id
Many2one → account.account.template
string='Income Account on Product Template'
args: 'account.account.template'
property_account_payable_id
Many2one → account.account.template
string='Payable Account'
args: 'account.account.template'
property_account_receivable_id
Many2one → account.account.template
string='Receivable Account'
args: 'account.account.template'
property_advance_tax_payment_account_id
Many2one → account.account.template
string='Advance tax payment account'
args: 'account.account.template'
property_stock_account_input_categ_id
Many2one → account.account.template
string='Input Account for Stock Valuation'
args: 'account.account.template'
property_stock_account_output_categ_id
Many2one → account.account.template
string='Output Account for Stock Valuation'
args: 'account.account.template'
property_stock_valuation_account_id
Many2one → account.account.template
string='Account Template for Stock Valuation'
args: 'account.account.template'
property_tax_payable_account_id
Many2one → account.account.template
string='Tax current account (payable)'
args: 'account.account.template'
property_tax_receivable_account_id
Many2one → account.account.template
string='Tax current account (receivable)'
args: 'account.account.template'
tax_template_ids
One2many → account.tax.template
help='List of all the taxes that have to be installed by the wizard'
string='Tax Template List'
args: 'account.tax.template', 'chart_template_id'
transfer_account_code_prefix
Char
required=True
string='Prefix of the main transfer accounts'
use_anglo_saxon
Boolean
default=False
string='Use Anglo-Saxon accounting'
visible
Boolean
default=True
help="Set this to False if you don't want this template to be used actively in the wizard that generate Chart of Accounts from templates, this is useful when you want to generate accounts of this template only when loading its child template."
string='Can be Visible?'
create_record_with_xmlid(self, company, template, model, vals)
existing_accounting(self, company_id)
generate_account(self, tax_template_ref, acc_template_ref, code_digits, company)
generate_account_reconcile_model(self, tax_template_ref, acc_template_ref, company)
generate_fiscal_position(self, tax_template_ref, acc_template_ref, company)
generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company)
get_countries_posting_at_bank_rec(self)
open_select_template_wizard(self)
try_loading(self, company=False)
amount_currency
Boolean
help='Print Report with the currency column if the currency differs from the company currency.'
args: 'With Currency'
pre_print_report(self, data)
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date_from
Date
string='Start Date'
date_to
Date
string='End Date'
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
target_move
Selection
default='posted'
required=True
string='Target Moves'
args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
check_report(self)
company_id
Many2one → res.company
comodel_name='res.company'
required=True
fiscalyear_last_day
Integer
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_day'
required=True
fiscalyear_last_month
Selection
help="The last day of the month will be used if the chosen day doesn't exist."
readonly=False
related='company_id.fiscalyear_last_month'
required=True
selection=[(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')]
opening_date
Date
help='Date from which the accounting is managed in Odoo. It is the date of the opening entry.'
readonly=False
related='company_id.account_opening_date'
required=True
string='Opening Date'
opening_move_posted
Boolean
compute='_compute_opening_move_posted'
string='Opening Move Posted'
action_save_onboarding_fiscal_year(self)
write(self, vals)
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery or invoicing country match the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery or invoicing country match.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position'
note
Text
help='Legal mentions that have to be printed on the invoices.'
translate=True
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
One2many → account.fiscal.position.tax
copy=True
string='Tax Mapping'
args: 'account.fiscal.position.tax', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
create(self, vals)
get_fiscal_position(self, partner_id, delivery_id=None)
map_account(self, account)
map_accounts(self, accounts)
map_tax(self, taxes, product=None, partner=None)
write(self, vals)
account_dest_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Account on Product'
args: 'account.account'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
account_dest_id
Many2one → account.account.template
required=True
string='Account Destination'
args: 'account.account.template'
account_src_id
Many2one → account.account.template
required=True
string='Account Source'
args: 'account.account.template'
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Mapping'
args: 'account.fiscal.position.template'
No public methods.
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
tax_dest_id
Many2one → account.tax
string='Tax to Apply'
args: 'account.tax'
tax_src_id
Many2one → account.tax
required=True
string='Tax on Product'
args: 'account.tax'
No public methods.
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position.template'
tax_dest_id
Many2one → account.tax.template
string='Replacement Tax'
args: 'account.tax.template'
tax_src_id
Many2one → account.tax.template
required=True
string='Tax Source'
args: 'account.tax.template'
No public methods.
account_ids
One2many → account.fiscal.position.account.template
string='Account Mapping'
args: 'account.fiscal.position.account.template', 'position_id'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
country_group_id
Many2one → res.country.group
help='Apply only if delivery or invoicing country match the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery or invoicing country match.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position Template'
note
Text
string='Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
tax_ids
One2many → account.fiscal.position.tax.template
string='Tax Mapping'
args: 'account.fiscal.position.tax.template', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Char
string='Zip Range From'
zip_to
Char
string='Zip Range To'
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date_from
Date
help='Start Date, included in the fiscal year.'
required=True
string='Start Date'
date_to
Date
help='Ending Date, included in the fiscal year.'
required=True
string='End Date'
name
Char
required=True
string='Name'
No public methods.
exchange_move_id
Many2one → account.move
name
Char
copy=False
default=<expr>
required=True
string='Number'
partial_reconcile_ids
One2many → account.partial.reconcile
string='Reconciliation Parts'
args: 'account.partial.reconcile', 'full_reconcile_id'
reconciled_line_ids
One2many → account.move.line
string='Matched Journal Items'
args: 'account.move.line', 'full_reconcile_id'
unlink(self)
code_prefix
Char
name
Char
required=True
parent_id
Many2one → account.group
index=True
ondelete='cascade'
args: 'account.group'
parent_path
Char
index=True
name_get(self)
active
Boolean
default=True
help='By unchecking the active field, you may hide an INCOTERM you will not use.'
args: 'Active'
code
Char
help='Incoterm Standard Code'
required=True
size=3
args: 'Code'
name
Char
help='Incoterms are series of sales terms. They are used to divide transaction costs and responsibilities between buyer and seller and reflect state-of-the-art transportation practices.'
required=True
translate=True
args: 'Name'
No public methods.
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Revenue/Expense Account'
args: 'account.account'
amount_total
Float
readonly=True
string='Total'
analytic_account_id
Many2one → account.analytic.account
groups='analytic.group_analytic_accounting'
string='Analytic Account'
args: 'account.analytic.account'
commercial_partner_id
Many2one → res.partner
help='Commercial Entity'
string='Partner Company'
args: 'res.partner'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
fiscal_position_id
Many2one → account.fiscal.position
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
invoice_date
Date
readonly=True
string='Invoice Date'
invoice_date_due
Date
readonly=True
string='Due Date'
invoice_partner_bank_id
Many2one → res.partner.bank
readonly=True
string='Bank Account'
args: 'res.partner.bank'
invoice_payment_state
Selection
readonly=True
selection=[('not_paid', 'Not Paid'), ('in_payment', 'In Payment'), ('paid', 'paid')]
string='Payment Status'
invoice_payment_term_id
Many2one → account.payment.term
readonly=True
string='Payment Terms'
args: 'account.payment.term'
invoice_user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
readonly=True
args: 'account.move'
name
Char
readonly=True
args: 'Invoice #'
nbr_lines
Integer
readonly=True
string='Line Count'
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
price_average
Float
group_operator='avg'
readonly=True
string='Average Price'
price_subtotal
Float
readonly=True
string='Untaxed Total'
product_categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_uom_id
Many2one → uom.uom
readonly=True
string='Unit of Measure'
args: 'uom.uom'
quantity
Float
readonly=True
string='Product Quantity'
residual
Float
readonly=True
string='Due Amount'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('posted', 'Open'), ('cancel', 'Cancelled')]
type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
init(self)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
composer_id
Many2one → mail.compose.message
ondelete='cascade'
required=True
string='Composer'
args: 'mail.compose.message'
invoice_ids
Many2many → account.move
string='Invoices'
args: 'account.move', 'account_move_account_invoice_send_rel'
invoice_without_email
Text
compute='_compute_invoice_without_email'
string='invoice(s) that will not be sent'
is_email
Boolean
default=<expr>
args: 'Email'
is_print
Boolean
default=<expr>
args: 'Print'
printed
Boolean
default=False
args: 'Is Printed'
template_id
Many2one → mail.template
domain="[('model', '=', 'account.move')]"
index=True
args: 'mail.template', 'Use template'
default_get(self, fields)
onchange_is_email(self)
onchange_template_id(self)
save_as_template(self)
send_and_print_action(self)
account_control_ids
Many2many → account.account
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
string='Accounts Allowed'
args: 'account.account', 'account_account_type_rel', 'journal_id', 'account_id'
active
Boolean
default=True
help='Set active to false to hide the Journal without removing it.'
alias_domain
Char
compute='_compute_alias_domain'
default=<expr>
args: 'Alias domain'
alias_id
Many2one → mail.alias
copy=False
string='Alias'
args: 'mail.alias'
alias_name
Char
compute='_compute_alias_name'
help='It creates draft invoices and bills by sending an email.'
inverse='_inverse_alias_name'
readonly=False
args: 'Alias Name'
at_least_one_inbound
Boolean
compute='_methods_compute'
store=True
at_least_one_outbound
Boolean
compute='_methods_compute'
store=True
bank_acc_number
Char
readonly=False
related='bank_account_id.acc_number'
bank_account_id
Many2one → res.partner.bank
copy=False
domain="[('partner_id','=', company_partner_id), '|', ('company_id', '=', False), ('company_id', '=', company_id)]"
ondelete='restrict'
string='Bank Account'
args: 'res.partner.bank'
bank_id
Many2one → res.bank
readonly=False
related='bank_account_id.bank_id'
args: 'res.bank'
bank_statements_source
Selection
default='undefined'
help='Defines how the bank statements will be registered'
selection=_get_bank_statements_available_sources
string='Bank Feeds'
code
Char
help='The journal entries of this journal will be named using this prefix.'
required=True
size=5
string='Short Code'
company_id
Many2one → res.company
default=<expr>
help='Company related to this journal'
index=True
required=True
string='Company'
args: 'res.company'
company_partner_id
Many2one → res.partner
readonly=True
related='company_id.partner_id'
store=False
string='Account Holder'
args: 'res.partner'
currency_id
Many2one → res.currency
help='The currency used to enter statement'
string='Currency'
args: 'res.currency'
default_credit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='It acts as a default account for credit amount'
ondelete='restrict'
string='Default Credit Account'
args: 'account.account'
default_debit_account_id
Many2one → account.account
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
help='It acts as a default account for debit amount'
ondelete='restrict'
string='Default Debit Account'
args: 'account.account'
inbound_payment_method_ids
Many2many → account.payment.method
default=<expr>
domain=[('payment_type', '=', 'inbound')]
help='Manual: Get paid by cash, check or any other method outside of Odoo.\nElectronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\nBatch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo,you are suggested to reconcile the transaction with the batch deposit. Enable this option from the settings.'
string='For Incoming Payments'
args: 'account.payment.method', 'account_journal_inbound_payment_method_rel', 'journal_id', 'inbound_payment_method'
invoice_reference_model
Selection
default='odoo'
help='You can choose different models for each type of reference. The default one is the Odoo reference.'
required=True
selection=[('odoo', 'Odoo'), ('euro', 'European')]
string='Communication Standard'
invoice_reference_type
Selection
default='invoice'
help='You can set here the default communication that will appear on customer invoices, once validated, to help the customer to refer to that particular invoice when making the payment.'
required=True
selection=[('none', 'Free'), ('partner', 'Based on Customer'), ('invoice', 'Based on Invoice')]
string='Communication Type'
journal_group_ids
Many2many → account.journal.group
domain="[('company_id', '=', company_id)]"
string='Journal Groups'
args: 'account.journal.group'
loss_account_id
Many2one → account.account
domain="[('company_id', '=', company_id)]"
help='Used to register a loss when the ending balance of a cash register differs from what the system computes'
string='Loss Account'
args: 'account.account'
name
Char
required=True
string='Journal Name'
outbound_payment_method_ids
Many2many → account.payment.method
default=<expr>
domain=[('payment_type', '=', 'outbound')]
help='Manual:Pay bill by cash or any other method outside of Odoo.\nCheck:Pay bill by check and print it from Odoo.\nSEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. Enable this option from the settings.'
string='For Outgoing Payments'
args: 'account.payment.method', 'account_journal_outbound_payment_method_rel', 'journal_id', 'outbound_payment_method'
post_at
Selection
default='pay_val'
string='Post At'
args: [('pay_val', 'Payment Validation'), ('bank_rec', 'Bank Reconciliation')]
profit_account_id
Many2one → account.account
domain="[('company_id', '=', company_id)]"
help='Used to register a profit when the ending balance of a cash register differs from what the system computes'
string='Profit Account'
args: 'account.account'
refund_sequence
Boolean
default=False
help="Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal"
string='Dedicated Credit Note Sequence'
refund_sequence_id
Many2one → ir.sequence
copy=False
help='This field contains the information related to the numbering of the credit note entries of this journal.'
string='Credit Note Entry Sequence'
args: 'ir.sequence'
refund_sequence_number_next
Integer
compute='_compute_refund_seq_number_next'
help='The next sequence number will be used for the next credit note.'
inverse='_inverse_refund_seq_number_next'
string='Credit Notes Next Number'
restrict_mode_hash_table
Boolean
help='If ticked, the accounting entry or invoice receives a hash as soon as it is posted and cannot be modified anymore.'
string='Lock Posted Entries with Hash'
secure_sequence_id
Many2one → ir.sequence
copy=False
help='Sequence to use to ensure the securisation of data'
readonly=True
args: 'ir.sequence'
sequence
Integer
default=10
help='Used to order Journals in the dashboard view'
sequence_id
Many2one → ir.sequence
copy=False
help='This field contains the information related to the numbering of the journal entries of this journal.'
required=True
string='Entry Sequence'
args: 'ir.sequence'
sequence_number_next
Integer
compute='_compute_seq_number_next'
help='The next sequence number will be used for the next invoice.'
inverse='_inverse_seq_number_next'
string='Next Number'
type
Selection
help="Select 'Sale' for customer invoices journals.\nSelect 'Purchase' for vendor bills journals.\nSelect 'Cash' or 'Bank' for journals that are used in customer or vendor payments.\nSelect 'General' for miscellaneous operations journals."
inverse='_inverse_type'
required=True
args: [('sale', 'Sales'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('bank', 'Bank'), ('general', 'Miscellaneous')]
type_control_ids
Many2many → account.account.type
string='Account Types Allowed'
args: 'account.account.type', 'account_journal_type_rel', 'journal_id', 'type_id'
action_configure_bank_journal(self)
copy(self, default=None)
create(self, vals)
create_invoice_from_attachment(self, attachment_ids=[])
get_next_bank_cash_default_code(self, journal_type, company_id)
name_get(self)
onchange_credit_account_id(self)
onchange_debit_account_id(self)
set_bank_account(self, acc_number, bank_id=None)
unlink(self)
write(self, vals)
color
Integer
default=0
args: 'Color Index'
json_activity_data
Text
compute='_get_json_activity_data'
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
action_open_reconcile(self)
action_open_to_check(self)
create_bank_statement(self)
create_cash_statement(self)
create_customer_payment(self)
create_internal_transfer(self)
create_supplier_payment(self)
get_bar_graph_datas(self)
get_journal_dashboard_datas(self)
get_line_graph_datas(self)
mark_bank_setup_as_done_action(self)
open_action(self)
open_action_with_context(self)
open_collect_money(self)
open_payments_action(self, payment_type, mode='tree')
open_spend_money(self)
open_transfer_money(self)
to_check_ids(self)
unmark_bank_setup_as_done_action(self)
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
excluded_journal_ids
Many2many → account.journal
domain="[('company_id', '=', company_id)]"
string='Excluded Journals'
args: 'account.journal'
name
Char
required=True
translate=True
args: 'Journal Group'
sequence
Integer
default=10
No public methods.
amount_by_group
Binary
compute='_compute_invoice_taxes_by_group'
string='Tax amount by group'
amount_residual
Monetary
compute='_compute_amount'
store=True
string='Amount Due'
amount_residual_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
store=True
string='Amount Due Signed'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_tax_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Tax Signed'
amount_total
Monetary
compute='_compute_amount'
inverse='_inverse_amount_total'
readonly=True
store=True
string='Total'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Total Signed'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
tracking=True
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount Signed'
auto_post
Boolean
default=False
help='If this checkbox is ticked, this entry will be automatically posted at its date.'
string='Post Automatically'
bank_partner_id
Many2one → res.partner
compute='_compute_bank_partner_id'
help='Technical field to get the domain on the bank'
args: 'res.partner'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner_id'
ondelete='restrict'
readonly=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one
readonly=True
related='company_id.currency_id'
string='Company Currency'
company_id
Many2one → res.company
comodel_name='res.company'
compute='_compute_company_id'
readonly=True
store=True
string='Company'
currency_id
Many2one → res.currency
default=_get_default_currency
readonly=True
required=True
states={'draft': [('readonly', False)]}
store=True
string='Currency'
tracking=True
args: 'res.currency'
date
Date
default=fields.Date.context_today
index=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date'
fiscal_position_id
Many2one → account.fiscal.position
domain="[('company_id', '=', company_id)]"
help='Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. The default value comes from the customer.'
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Fiscal Position'
args: 'account.fiscal.position'
has_reconciled_entries
Boolean
compute='_compute_has_reconciled_entries'
inalterable_hash
Char
copy=False
readonly=True
string='Inalterability Hash'
invoice_cash_rounding_id
Many2one → account.cash.rounding
help='Defines the smallest coinage of the currency that can be used to pay by cash.'
readonly=True
states={'draft': [('readonly', False)]}
string='Cash Rounding Method'
args: 'account.cash.rounding'
invoice_date
Date
copy=False
default=_get_default_invoice_date
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice/Bill Date'
invoice_date_due
Date
copy=False
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Due Date'
invoice_filter_type_domain
Char
compute='_compute_invoice_filter_type_domain'
help='Technical field used to have a dynamic domain on journal / taxes in the form view.'
invoice_has_matching_suspense_amount
Boolean
compute='_compute_has_matching_suspense_amount'
groups='account.group_account_invoice'
help='Technical field used to display an alert on invoices if there is at least a matching amount in any supsense account.'
invoice_has_outstanding
Boolean
compute='_compute_payments_widget_to_reconcile_info'
groups='account.group_account_invoice'
invoice_incoterm_id
Many2one → account.incoterms
default=_get_default_invoice_incoterm
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Incoterm'
args: 'account.incoterms'
invoice_line_ids
One2many → account.move.line
copy=False
domain=[('exclude_from_invoice_tab', '=', False)]
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice lines'
args: 'account.move.line', 'move_id'
invoice_origin
Char
help='The document(s) that generated the invoice.'
readonly=True
string='Origin'
tracking=True
invoice_outstanding_credits_debits_widget
Text
compute='_compute_payments_widget_to_reconcile_info'
groups='account.group_account_invoice'
invoice_partner_bank_id
Many2one → res.partner.bank
compute='_compute_invoice_partner_bank_id'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.'
readonly=False
store=True
string='Bank Account'
args: 'res.partner.bank'
invoice_partner_display_name
Char
compute='_compute_invoice_partner_display_info'
store=True
invoice_partner_icon
Char
compute='_compute_invoice_partner_display_info'
compute_sudo=True
store=False
invoice_payment_ref
Char
copy=False
help='The payment reference to set on journal items.'
index=True
string='Payment Reference'
invoice_payment_state
Selection
compute='_compute_amount'
copy=False
readonly=True
selection=[('not_paid', 'Not Paid'), ('in_payment', 'In Payment'), ('paid', 'Paid')]
store=True
string='Payment'
tracking=True
invoice_payment_term_id
Many2one → account.payment.term
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=True
states={'draft': [('readonly', False)]}
string='Payment Terms'
args: 'account.payment.term'
invoice_payments_widget
Text
compute='_compute_payments_widget_reconciled_info'
groups='account.group_account_invoice'
invoice_sent
Boolean
copy=False
default=False
help='It indicates that the invoice has been sent.'
readonly=True
invoice_sequence_number_next
Char
compute='_compute_invoice_sequence_number_next'
inverse='_inverse_invoice_sequence_number_next'
string='Next Number'
invoice_sequence_number_next_prefix
Char
compute='_compute_invoice_sequence_number_next'
string='Next Number Prefix'
invoice_source_email
Char
string='Source Email'
tracking=True
invoice_user_id
Many2one → res.users
copy=False
default=<expr>
string='Salesperson'
tracking=True
args: 'res.users'
invoice_vendor_bill_id
Many2one → account.move
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Auto-complete from a past bill.'
store=False
string='Vendor Bill'
args: 'account.move'
journal_id
Many2one → account.journal
default=_get_default_journal
domain="[('company_id', '=', company_id)]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
line_ids
One2many → account.move.line
copy=True
readonly=True
states={'draft': [('readonly', False)]}
string='Journal Items'
args: 'account.move.line', 'move_id'
name
Char
copy=False
default='/'
readonly=True
required=True
string='Number'
narration
Text
string='Terms and Conditions'
partner_id
Many2one → res.partner
change_default=True
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Partner'
tracking=True
args: 'res.partner'
ref
Char
copy=False
string='Reference'
restrict_mode_hash_table
Boolean
related='journal_id.restrict_mode_hash_table'
reversal_move_id
One2many → account.move
reversed_entry_id
Many2one → account.move
copy=False
readonly=True
string='Reversal of'
args: 'account.move'
secure_sequence_number
Integer
copy=False
readonly=True
string='Inalteralbility No Gap Sequence #'
state
Selection
copy=False
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('posted', 'Posted'), ('cancel', 'Cancelled')]
string='Status'
tracking=True
string_to_hash
Char
compute='_compute_string_to_hash'
readonly=True
tax_cash_basis_rec_id
Many2one → account.partial.reconcile
help='Technical field used to keep track of the tax cash basis reconciliation. This is needed when cancelling the source: it will post the inverse journal entry to cancel that part too.'
string='Tax Cash Basis Entry of'
args: 'account.partial.reconcile'
tax_lock_date_message
Char
compute='_compute_tax_lock_date_message'
help="Technical field used to display a message when the invoice's accounting date is prior of the tax lock date."
to_check
Boolean
default=False
help='If this checkbox is ticked, it means that the user was not sure of all the related informations at the time of the creation of the move and that the move needs to be checked again.'
string='To Check'
type
Selection
change_default=True
default='entry'
index=True
readonly=True
required=True
selection=[('entry', 'Journal Entry'), ('out_invoice', 'Customer Invoice'), ('out_refund', 'Customer Credit Note'), ('in_invoice', 'Vendor Bill'), ('in_refund', 'Vendor Credit Note'), ('out_receipt', 'Sales Receipt'), ('in_receipt', 'Purchase Receipt')]
store=True
string='Type'
tracking=True
type_name
Char
compute='_compute_type_name'
args: 'Type Name'
user_id
Many2one
related='invoice_user_id'
string='User'
user_id
Many2one
help='Technical field used to fit the generic behavior in mail templates.'
related='invoice_user_id'
string='User'
action_duplicate(self)
action_invoice_paid(self)
action_invoice_print(self)
action_invoice_register_payment(self)
action_invoice_sent(self)
action_open_matching_suspense_moves(self)
action_post(self)
action_reverse(self)
action_switch_invoice_into_refund_credit_note(self)
action_view_reverse_entry(self)
button_cancel(self)
button_draft(self)
copy(self, default=None)
create(self, vals_list)
get_inbound_types(self, include_receipts=True)
get_invoice_types(self, include_receipts=False)
get_outbound_types(self, include_receipts=True)
get_purchase_types(self, include_receipts=False)
get_sale_types(self, include_receipts=False)
is_inbound(self, include_receipts=True)
is_invoice(self, include_receipts=False)
is_outbound(self, include_receipts=True)
is_purchase_document(self, include_receipts=False)
is_sale_document(self, include_receipts=False)
js_assign_outstanding_line(self, line_id)
message_new(self, msg_dict, custom_values=None)
name_get(self)
onchange(self, values, field_name, field_onchange)
open_reconcile_view(self)
post(self)
preview_invoice(self)
unlink(self)
update_lines_tax_exigibility(self)
write(self, vals)
account_id
Many2one → account.account
check_company=True
domain=[('deprecated', '=', False)]
index=True
ondelete='restrict'
string='Account'
args: 'account.account'
account_internal_type
Selection
readonly=True
related='account_id.user_type_id.type'
store=True
string='Internal Type'
account_root_id
Many2one
readonly=True
related='account_id.root_id'
store=True
string='Account Root'
always_set_currency_id
Many2one → res.currency
compute='_compute_always_set_currency_id'
help='Technical field used to compute the monetary field. As currency_id is not a required field, we need to use either the foreign currency, either the company one.'
string='Foreign Currency'
args: 'res.currency'
amount_currency
Monetary
copy=True
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
store=True
string='Amount in Currency'
amount_residual
Monetary
compute='_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
compute='_amount_residual'
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_account_id
Many2one → account.analytic.account
index=True
string='Analytic Account'
args: 'account.analytic.account'
analytic_line_ids
One2many → account.analytic.line
string='Analytic lines'
args: 'account.analytic.line', 'move_id'
analytic_tag_ids
Many2many → account.analytic.tag
string='Analytic Tags'
args: 'account.analytic.tag'
balance
Monetary
compute='_compute_balance'
currency_field='company_currency_id'
help='Technical field holding the debit - credit in order to open meaningful graph views from reports'
store=True
string='Balance'
blocked
Boolean
default=False
help='You can check this box to mark this journal item as a litigation with the associated partner'
string='No Follow-up'
company_currency_id
Many2one
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
company_id
Many2one
readonly=True
related='move_id.company_id'
store=True
country_id
Many2one → res.country
comodel_name='res.country'
related='move_id.company_id.country_id'
credit
Monetary
currency_field='company_currency_id'
default=0.0
string='Credit'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
date
Date
copy=False
group_operator='min'
index=True
readonly=True
related='move_id.date'
store=True
date_maturity
Date
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
string='Due Date'
debit
Monetary
currency_field='company_currency_id'
default=0.0
string='Debit'
discount
Float
default=0.0
digits='Discount'
string='Discount (%)'
display_type
Selection
default=False
help='Technical field for UX purpose.'
args: [('line_section', 'Section'), ('line_note', 'Note')]
exclude_from_invoice_tab
Boolean
help='Technical field used to exclude some lines from the invoice_line_ids tab in the form view.'
full_reconcile_id
Many2one → account.full.reconcile
copy=False
index=True
readonly=True
string='Matching #'
args: 'account.full.reconcile'
is_rounding_line
Boolean
help='Technical field used to retrieve the cash rounding line.'
journal_id
Many2one
copy=False
index=True
related='move_id.journal_id'
store=True
matched_credit_ids
One2many → account.partial.reconcile
help='Credit journal items that are matched with this journal item.'
readonly=True
string='Matched Credits'
args: 'account.partial.reconcile', 'debit_move_id'
matched_debit_ids
One2many → account.partial.reconcile
help='Debit journal items that are matched with this journal item.'
readonly=True
string='Matched Debits'
args: 'account.partial.reconcile', 'credit_move_id'
move_id
Many2one → account.move
auto_join=True
help='The move of this entry line.'
index=True
ondelete='cascade'
readonly=True
required=True
string='Journal Entry'
args: 'account.move'
move_name
Char
index=True
related='move_id.name'
store=True
string='Number'
name
Char
string='Label'
parent_state
Selection
readonly=True
related='move_id.state'
store=True
partner_id
Many2one → res.partner
ondelete='restrict'
string='Partner'
args: 'res.partner'
payment_id
Many2one → account.payment
copy=False
help='Payment that created this entry'
string='Originator Payment'
args: 'account.payment'
price_subtotal
Monetary
currency_field='always_set_currency_id'
readonly=True
store=True
string='Subtotal'
price_total
Monetary
currency_field='always_set_currency_id'
readonly=True
store=True
string='Total'
price_unit
Float
digits='Product Price'
string='Unit Price'
product_id
Many2one → product.product
ondelete='restrict'
string='Product'
args: 'product.product'
product_uom_id
Many2one → uom.uom
string='Unit of Measure'
args: 'uom.uom'
quantity
Float
default=1.0
digits='Product Unit of Measure'
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
string='Quantity'
recompute_tax_line
Boolean
help='Technical field used to know on which lines the taxes must be recomputed.'
readonly=True
store=False
reconcile_model_id
Many2one → account.reconcile.model
copy=False
readonly=True
string='Reconciliation Model'
args: 'account.reconcile.model'
reconciled
Boolean
compute='_amount_residual'
store=True
ref
Char
copy=False
index=True
readonly=True
related='move_id.ref'
store=True
sequence
Integer
default=10
statement_id
Many2one
copy=False
help='The bank statement used for bank reconciliation'
index=True
related='statement_line_id.statement_id'
store=True
statement_line_id
Many2one → account.bank.statement.line
copy=False
index=True
readonly=True
string='Bank statement line reconciled with this entry'
args: 'account.bank.statement.line'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
help='Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.'
ondelete='restrict'
string='Tags'
tax_audit
Char
compute='_compute_tax_audit'
help='Computed field, listing the tax grids impacted by this line, and the amount it applies to each of them.'
store=True
string='Tax Audit String'
tax_base_amount
Monetary
currency_field='company_currency_id'
readonly=True
store=True
string='Base Amount'
tax_exigible
Boolean
default=True
help='Technical field used to mark a tax line as exigible in the vat report or not (only exigible journal items are displayed). By default all new journal items are directly exigible, but with the feature cash_basis on taxes, some will become exigible only when the payment is recorded.'
readonly=True
string='Appears in VAT report'
tax_group_id
Many2one
help='technical field for widget tax-group-custom-field'
readonly=True
related='tax_line_id.tax_group_id'
store=True
string='Originator tax group'
tax_ids
Many2many → account.tax
comodel_name='account.tax'
context={'active_test': False}
help='Taxes that apply on the base amount'
string='Taxes'
tax_line_id
Many2one → account.tax
compute='_compute_tax_line_id'
help='Indicates that this journal item is a tax line'
ondelete='restrict'
store=True
string='Originator Tax'
args: 'account.tax'
tax_repartition_line_id
Many2one → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
help='Tax repartition line that caused the creation of this move line, if any'
ondelete='restrict'
readonly=True
string='Originator Tax Repartition Line'
action_accrual_entry(self)
auto_reconcile_lines(self)
check_full_reconcile(self)
copy_data(self, default=None)
create(self, vals_list)
create_analytic_lines(self)
default_get(self, default_fields)
init(self)
invalidate_cache(self, fnames=None, ids=None)
name_get(self)
open_reconcile_view(self)
reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False)
remove_move_reconcile(self)
unlink(self)
write(self, vals)
country_code
Char
related='move_id.company_id.country_id.code'
currency_id
Many2one → res.currency
compute='_compute_from_moves'
args: 'res.currency'
date
Date
default=fields.Date.context_today
required=True
string='Reversal date'
journal_id
Many2one → account.journal
help='If empty, uses the journal of the journal entry to be reversed.'
string='Use Specific Journal'
args: 'account.journal'
move_id
Many2one → account.move
domain=[('state', '=', 'posted'), ('type', 'not in', ('out_refund', 'in_refund'))]
string='Journal Entry'
args: 'account.move'
move_type
Char
compute='_compute_from_moves'
reason
Char
string='Reason'
refund_method
Selection
help='Choose how you want to credit this invoice. You cannot "modify" nor "cancel" if the invoice is already reconciled.'
required=True
selection=[('refund', 'Partial Refund'), ('cancel', 'Full Refund'), ('modify', 'Full refund and new draft invoice')]
string='Credit Method'
residual
Monetary
compute='_compute_from_moves'
default_get(self, fields)
reverse_moves(self)
amount
Monetary
currency_field='company_currency_id'
help='Amount concerned by this matching. Assumed to be always positive'
amount_currency
Monetary
string='Amount in Currency'
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
readonly=False
related='debit_move_id.company_id'
store=True
string='Company'
args: 'res.company'
credit_move_id
Many2one → account.move.line
index=True
required=True
args: 'account.move.line'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
debit_move_id
Many2one → account.move.line
index=True
required=True
args: 'account.move.line'
full_reconcile_id
Many2one → account.full.reconcile
copy=False
string='Full Reconcile'
args: 'account.full.reconcile'
max_date
Date
compute='_compute_max_date'
copy=False
help='Technical field used to determine at which date this reconciliation needs to be shown on the aged receivable/payable reports.'
readonly=True
store=True
string='Max Date of Matched Lines'
create_exchange_rate_entry(self, aml_to_fix, move)
create_tax_cash_basis_entry(self, percentage_before_rec)
unlink(self)
amount
Monetary
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Amount'
tracking=True
communication
Char
readonly=True
states={'draft': [('readonly', False)]}
string='Memo'
company_id
Many2one → res.company
readonly=True
related='journal_id.company_id'
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Currency'
args: 'res.currency'
destination_account_id
Many2one → account.account
compute='_compute_destination_account_id'
readonly=True
args: 'account.account'
destination_journal_id
Many2one → account.journal
domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id)]"
readonly=True
states={'draft': [('readonly', False)]}
string='Transfer To'
args: 'account.journal'
has_invoices
Boolean
compute='_compute_reconciled_invoice_ids'
help='Technical field used for usability purposes'
hide_payment_method
Boolean
compute='_compute_hide_payment_method'
help="Technical field used to hide the payment method if the selected journal has only one available which is 'manual'"
invoice_ids
Many2many → account.move
copy=False
help='Technical field containing the invoice for which the payment has been generated.\n This does not especially correspond to the invoices reconciled with the payment,\n as it can have been generated first, and reconciled later'
readonly=True
string='Invoices'
args: 'account.move', 'account_invoice_payment_rel', 'payment_id', 'invoice_id'
journal_id
Many2one → account.journal
domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id)]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
tracking=True
args: 'account.journal'
move_line_ids
One2many → account.move.line
copy=False
ondelete='restrict'
readonly=True
args: 'account.move.line', 'payment_id'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the journal entry, automatically set when the statement line is reconciled then stored to set the same number again if the line is cancelled, set to draft and re-processed again.'
readonly=True
string='Journal Entry Name'
move_reconciled
Boolean
compute='_get_move_reconciled'
readonly=True
name
Char
copy=False
readonly=True
partner_bank_account_id
Many2one → res.partner.bank
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=True
states={'draft': [('readonly', False)]}
string='Recipient Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=True
states={'draft': [('readonly', False)]}
string='Partner'
tracking=True
args: 'res.partner'
partner_type
Selection
readonly=True
states={'draft': [('readonly', False)]}
tracking=True
args: [('customer', 'Customer'), ('supplier', 'Vendor')]
payment_date
Date
copy=False
default=fields.Date.context_today
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date'
tracking=True
payment_difference
Monetary
compute='_compute_payment_difference'
readonly=True
payment_difference_handling
Selection
copy=False
default='open'
string='Payment Difference Handling'
args: [('open', 'Keep open'), ('reconcile', 'Mark invoice as fully paid')]
payment_method_code
Char
help='Technical field used to adapt the interface to the payment type selected.'
readonly=True
related='payment_method_id.code'
payment_method_id
Many2one → account.payment.method
help='Manual: Get paid by cash, check or any other method outside of Odoo.\nElectronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\nCheck: Pay bill by check and print it from Odoo.\nBatch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo, you are suggested to reconcile the transaction with the batch deposit.To enable batch deposit, module account_batch_payment must be installed.\nSEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. To enable sepa credit transfer, module account_sepa must be installed '
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Payment Method'
args: 'account.payment.method'
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
readonly=True
payment_type
Selection
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money'), ('transfer', 'Internal Transfer')]
reconciled_invoice_ids
Many2many → account.move
compute='_compute_reconciled_invoice_ids'
help='Invoices whose journal items have been reconciled with these payments.'
string='Reconciled Invoices'
args: 'account.move'
reconciled_invoices_count
Integer
compute='_compute_reconciled_invoice_ids'
require_partner_bank_account
Boolean
compute='_compute_show_partner_bank'
help='Technical field used to know whether the field `partner_bank_account_id` needs to be required or not in the payments form views'
show_partner_bank_account
Boolean
compute='_compute_show_partner_bank'
help='Technical field used to know whether the field `partner_bank_account_id` needs to be displayed or not in the payments form views'
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
args: [('draft', 'Draft'), ('posted', 'Validated'), ('sent', 'Sent'), ('reconciled', 'Reconciled'), ('cancelled', 'Cancelled')]
writeoff_account_id
Many2one → account.account
copy=False
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
string='Difference Account'
args: 'account.account'
writeoff_label
Char
default='Write-Off'
help='Change label of the counterpart that will hold the payment difference'
string='Journal Item Label'
action_draft(self)
action_register_payment(self)
button_invoices(self)
button_journal_entries(self)
cancel(self)
default_get(self, default_fields)
name_get(self)
open_payment_matching_screen(self)
post(self)
unlink(self)
unreconcile(self)
code
Char
required=True
name
Char
required=True
translate=True
payment_type
Selection
required=True
args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
No public methods.
group_payment
Boolean
help='Only one payment will be created by partner (bank)/ currency.'
invoice_ids
Many2many → account.move
copy=False
readonly=True
string='Invoices'
args: 'account.move', 'account_invoice_payment_rel_transient', 'payment_id', 'invoice_id'
journal_id
Many2one → account.journal
domain=[('type', 'in', ('bank', 'cash'))]
required=True
args: 'account.journal'
payment_date
Date
default=fields.Date.context_today
required=True
payment_method_id
Many2one → account.payment.method
help='Manual: Get paid by cash, check or any other method outside of Odoo.\nElectronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\nCheck: Pay bill by check and print it from Odoo.\nBatch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo, you are suggested to reconcile the transaction with the batch deposit.To enable batch deposit, module account_batch_payment must be installed.\nSEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. To enable sepa credit transfer, module account_sepa must be installed '
required=True
string='Payment Method Type'
args: 'account.payment.method'
create_payments(self)
default_get(self, fields)
get_payments_vals(self)
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment terms without removing it.'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Terms'
translate=True
note
Text
string='Description on the Invoice'
translate=True
sequence
Integer
default=10
required=True
compute(self, value, date_ref=False, currency=None)
unlink(self)
day_of_the_month
Integer
help='Day of the month on which the invoice must come to its term. If zero or negative, this value will be ignored, and no specific day will be set. If greater than the last day of a month, this number will instead select the last day of this month.'
string='Day of the month'
days
Integer
default=0
required=True
string='Number of Days'
option
Selection
default='day_after_invoice_date'
required=True
string='Options'
args: [('day_after_invoice_date', 'days after the invoice date'), ('after_invoice_month', 'days after the end of the invoice month'), ('day_following_month', 'of the following month'), ('day_current_month', 'of the current month')]
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Terms'
args: 'account.payment.term'
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of payment terms lines.'
value
Selection
default='balance'
help='Select here the kind of valuation related to this payment terms line.'
required=True
string='Type'
args: [('balance', 'Balance'), ('percent', 'Percent'), ('fixed', 'Fixed Amount')]
value_amount
Float
digits='Payment Terms'
help='For percent enter a ratio between 0-100.'
string='Value'
No public methods.
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
sort_selection
Selection
default='move_name'
required=True
args: [('date', 'Date'), ('move_name', 'Journal Entry Number')], 'Entries Sorted by'
No public methods.
account_id
Many2one → account.account
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
ondelete='cascade'
string='Account'
args: 'account.account'
amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Write-off Amount'
amount_from_label_regex
Char
default='([\\d\\.,]+)'
help='There is no need for regex delimiter, only the regex is needed. For instance if you want to extract the amount from\nR:9672938 10/07 AX 9415126318 T:5L:NA BRT: 3358,07 C:\nYou could enter\nBRT: ([\\d,]+)'
string='Amount from Label (regex)'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('regex', 'From label')]
analytic_account_id
Many2one → account.analytic.account
ondelete='set null'
string='Analytic Account'
args: 'account.analytic.account'
analytic_tag_ids
Many2many → account.analytic.tag
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
relation='account_reconcile_model_analytic_tag_rel'
string='Analytic Tags'
args: 'account.analytic.tag'
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
decimal_separator
Char
default=<expr>
help='Every character that is nor a digit nor this separator will be removed from the matching string'
force_second_tax_included
Boolean
help='Force the second tax to be managed as a price included tax.'
string='Second Tax Included in Price'
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
has_second_line
Boolean
default=False
string='Add a second line'
journal_id
Many2one → account.journal
domain="[('company_id', '=', company_id)]"
help='This field is ignored in a bank statement reconciliation.'
ondelete='cascade'
string='Journal'
args: 'account.journal'
label
Char
string='Journal Item Label'
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount'
match_amount_max
Float
string='Amount Max Parameter'
match_amount_min
Float
string='Amount Min Parameter'
match_journal_ids
Many2many → account.journal
domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id)]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
match_label_param
Char
string='Label Parameter'
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Amount Received'), ('amount_paid', 'Amount Paid'), ('both', 'Amount Paid/Received')]
string='Amount Nature'
match_note
Selection
help='The reconciliation model will only be applied when the note:\n * Contains: The proposition note must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Note'
match_note_param
Char
string='Note Parameter'
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner Is Set'
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Restrict Partner Categories to'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Restrict Partners to'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency Matching'
match_total_amount
Boolean
default=True
help='The sum of total residual amount propositions matches the statement line amount.'
string='Amount Matching'
match_total_amount_param
Float
default=100
help='The sum of total residual amount propositions matches the statement line amount under this percentage.'
string='Amount Matching %'
match_transaction_type
Selection
help='The reconciliation model will only be applied when the transaction type:\n * Contains: The proposition transaction type must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Transaction Type'
match_transaction_type_param
Char
string='Transaction Type Parameter'
name
Char
required=True
string='Name'
number_entries
Integer
compute='_compute_number_entries'
string='Number of entries related to this model'
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', 'Manually create a write-off on clicked button.'), ('writeoff_suggestion', 'Suggest counterpart values.'), ('invoice_matching', 'Match existing invoices/bills.')]
string='Type'
second_account_id
Many2one → account.account
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
ondelete='cascade'
string='Second Account'
args: 'account.account'
second_amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Second Write-off Amount'
second_amount_from_label_regex
Char
default='([\\d\\.,]+)'
string='Second Amount from Label (regex)'
second_amount_type
Selection
default='percentage'
required=True
string='Second Amount type'
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('regex', 'From label')]
second_analytic_account_id
Many2one → account.analytic.account
ondelete='set null'
string='Second Analytic Account'
args: 'account.analytic.account'
second_analytic_tag_ids
Many2many → account.analytic.tag
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
relation='account_reconcile_model_second_analytic_tag_rel'
string='Second Analytic Tags'
args: 'account.analytic.tag'
second_journal_id
Many2one → account.journal
domain="[('company_id', '=', company_id)]"
help='This field is ignored in a bank statement reconciliation.'
ondelete='cascade'
string='Second Journal'
args: 'account.journal'
second_label
Char
string='Second Journal Item Label'
second_tax_ids
Many2many → account.tax
ondelete='restrict'
relation='account_reconcile_model_account_tax_bis_rel'
string='Second Taxes'
args: 'account.tax'
sequence
Integer
default=10
required=True
show_force_tax_included
Boolean
compute='_compute_show_force_tax_included'
help='Technical field used to show the force tax included button'
show_second_force_tax_included
Boolean
compute='_compute_show_second_force_tax_included'
help='Technical field used to show the force tax included button'
tax_ids
Many2many → account.tax
ondelete='restrict'
string='Taxes'
args: 'account.tax'
to_check
Boolean
default=False
help='This matching rule is used when the user is not certain of all the informations of the counterpart.'
string='To Check'
action_reconcile_stat(self)
account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Account'
args: 'account.account.template'
amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Write-off Amount'
amount_from_label_regex
Char
default='([\\d\\.,]+)'
string='Amount from Label (regex)'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance'), ('regex', 'From label')]
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
decimal_separator
Char
help='Every character that is nor a digit nor this separator will be removed from the matching string'
force_second_tax_included
Boolean
help='Force the second tax to be managed as a price included tax.'
string='Second Tax Included in Price'
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
has_second_line
Boolean
default=False
string='Add a second line'
label
Char
string='Journal Item Label'
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount'
match_amount_max
Float
string='Amount Max Parameter'
match_amount_min
Float
string='Amount Min Parameter'
match_journal_ids
Many2many → account.journal
domain="[('type', 'in', ('bank', 'cash'))]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
match_label_param
Char
string='Label Parameter'
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Amount Received'), ('amount_paid', 'Amount Paid'), ('both', 'Amount Paid/Received')]
string='Amount Nature'
match_note
Selection
help='The reconciliation model will only be applied when the note:\n * Contains: The proposition note must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Note'
match_note_param
Char
string='Note Parameter'
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner Is Set'
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Restrict Partner Categories to'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Restrict Partners to'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency Matching'
match_total_amount
Boolean
default=True
help='The sum of total residual amount propositions matches the statement line amount.'
string='Amount Matching'
match_total_amount_param
Float
default=100
help='The sum of total residual amount propositions matches the statement line amount under this percentage.'
string='Amount Matching %'
match_transaction_type
Selection
help='The reconciliation model will only be applied when the transaction type:\n * Contains: The proposition transaction type must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Transaction Type'
match_transaction_type_param
Char
string='Transaction Type Parameter'
name
Char
required=True
string='Button Label'
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', 'Manually create a write-off on clicked button.'), ('writeoff_suggestion', 'Suggest a write-off.'), ('invoice_matching', 'Match existing invoices/bills.')]
string='Type'
second_account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Second Account'
args: 'account.account.template'
second_amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Second Write-off Amount'
second_amount_from_label_regex
Char
default='([\\d\\.,]+)'
string='Second Amount from Label (regex)'
second_amount_type
Selection
default='percentage'
required=True
string='Second Amount type'
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of amount'), ('regex', 'From label')]
second_label
Char
string='Second Journal Item Label'
second_tax_ids
Many2many → account.tax.template
ondelete='restrict'
relation='account_reconcile_model_tmpl_account_tax_bis_rel'
string='Second Taxes'
args: 'account.tax.template'
sequence
Integer
default=10
required=True
tax_ids
Many2many → account.tax.template
ondelete='restrict'
string='Taxes'
args: 'account.tax.template'
to_check
Boolean
default=False
help='This matching rule is used when the user is not certain of all the informations of the counterpart.'
string='To Check'
No public methods.
No new fields.
Public methods (8)get_all_data_for_manual_reconciliation(self, partner_ids, account_ids)
get_bank_statement_data(self, bank_statement_line_ids, srch_domain=[])
get_bank_statement_line_data(self, st_line_ids, excluded_ids=None)
get_data_for_manual_reconciliation(self, res_type, res_ids=None, account_type=None)
get_move_lines_for_bank_statement_line(self, st_line_id, partner_id=None, excluded_ids=None, search_str=False, offset=0, limit=None, mode=None)
get_move_lines_for_manual_reconciliation(self, account_id, partner_id=False, excluded_ids=None, search_str=False, offset=0, limit=None, target_currency_id=False)
process_bank_statement_line(self, st_line_ids, data)
process_move_lines(self, data)
company_id
Many2one → res.company
name
Char
parent_id
Many2one → account.root
init(self)
linked_journal_id
Many2one → account.journal
comodel_name='account.journal'
compute='_compute_linked_journal_id'
inverse='set_linked_journal_id'
string='Journal'
new_journal_code
Char
default=<expr>
required=True
string='Code'
new_journal_name
Char
default=<expr>
help='Will be used to name the Journal related to this bank account'
inverse='set_linked_journal_id'
required=True
num_journals_without_account
Integer
default=<expr>
related_acc_type
Selection
compute='_compute_related_acc_type'
selection=<expr>
string='Account Type'
res_partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
ondelete='cascade'
required=True
create(self, vals)
default_linked_journal_id(self)
set_linked_journal_id(self)
validate(self)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
help='\n - Group of Taxes: The tax is a set of sub taxes.\n - Fixed: The tax amount stays the same whatever the price.\n - Percentage of Price: The tax amount is a % of the price:\n e.g 100 * 10% = 110 (not price included)\n e.g 110 / (1 + 10%) = 100 (price included)\n - Percentage of Price Tax Included: The tax amount is a division of the price:\n e.g 180 / (1 - 10%) = 200 (not price included)\n e.g 200 * (1 - 10%) = 180 (price included)\n '
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Include in Analytic Cost'
cash_basis_base_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
args: 'account.account'
cash_basis_transition_account_id
Many2one → account.account
comodel_name='account.account'
domain=[('deprecated', '=', False)]
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
children_tax_ids
Many2many → account.tax
string='Children Taxes'
args: 'account.tax', 'account_tax_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
comodel_name='res.country'
help='Technical field used to restrict the domain of account tags for tax repartition lines created for this tax.'
related='company_id.country_id'
string='Country'
description
Char
string='Label on Invoices'
hide_tax_exigibility
Boolean
readonly=True
related='company_id.tax_exigibility'
string='Hide Use Cash Basis Option'
include_base_amount
Boolean
default=False
help='If set, taxes which are computed after this one will be computed based on the price tax included.'
string='Affect Base of Subsequent Taxes'
invoice_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
help='Repartition when the tax is used on an invoice'
inverse_name='invoice_tax_id'
string='Repartition for Invoices'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_repartition_line_ids
One2many → account.tax.repartition.line
comodel_name='account.tax.repartition.line'
copy=True
help='Repartition when the tax is used on a refund'
inverse_name='refund_tax_id'
string='Repartition for Refund Invoices'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Due'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
default=_default_tax_group
required=True
string='Tax Group'
args: 'account.tax.group'
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment."
required=True
string='Tax Scope'
args: TYPE_TAX_USE
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True)
copy(self, default=None)
default_get(self, vals)
flatten_taxes_hierarchy(self, create_map=False)
get_tax_tags(self, is_refund, repartition_type)
json_friendly_compute_all(self, price_unit, currency_id=None, quantity=1.0, product_id=None, partner_id=None, is_refund=False)
name_get(self)
onchange_amount(self)
onchange_amount_type(self)
onchange_price_include(self)
name
Char
required=True
translate=True
property_advance_tax_payment_account_id
Many2one → account.account
company_dependent=True
string='Advance Tax payment account'
args: 'account.account'
property_tax_payable_account_id
Many2one → account.account
company_dependent=True
string='Tax current account (payable)'
args: 'account.account'
property_tax_receivable_account_id
Many2one → account.account
company_dependent=True
string='Tax current account (receivable)'
args: 'account.account'
sequence
Integer
default=10
No public methods.
account_id
Many2one → account.account
comodel_name='account.account'
help='Account on which to post the tax amount'
string='Account'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
help='The company this repartition line belongs to.'
required=True
string='Company'
country_id
Many2one → res.country
comodel_name='res.country'
help='Technical field used to restrict tags domain in form view.'
related='company_id.country_id'
string='Country'
factor
Float
compute='_compute_factor'
help='Factor to apply on the account move lines generated from this repartition line'
string='Factor Ratio'
factor_percent
Float
help='Factor to apply on the account move lines generated from this repartition line, in percents'
required=True
string='%'
invoice_tax_id
Many2one → account.tax
comodel_name='account.tax'
help='The tax set to apply this repartition on invoices. Mutually exclusive with refund_tax_id'
ondelete='cascade'
refund_tax_id
Many2one → account.tax
comodel_name='account.tax'
help='The tax set to apply this repartition on refund invoices. Mutually exclusive with invoice_tax_id'
ondelete='cascade'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
sequence
Integer
default=1
help='The order in which display and match repartition lines. For refunds to work properly, invoice repartition lines should be arranged in the same order as the credit note repartition lines they correspond to.'
string='Sequence'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
domain=[('applicability', '=', 'taxes')]
string='Tax Grids'
tax_id
Many2one → account.tax
comodel_name='account.tax'
compute='_compute_tax_id'
validate_tax_template_link(self)
account_id
Many2one → account.account.template
comodel_name='account.account.template'
help='Account on which to post the tax amount'
string='Account'
factor_percent
Float
help='Factor to apply on the account move lines generated from this repartition line, in percents'
required=True
string='%'
invoice_tax_id
Many2one → account.tax.template
comodel_name='account.tax.template'
help='The tax set to apply this repartition on invoices. Mutually exclusive with refund_tax_id'
minus_report_line_ids
Many2many → account.tax.report.line
comodel_name='account.tax.report.line'
copy=True
help="Tax report lines whose '-' tag will be assigned to move lines by this repartition line"
relation='account_tax_repartition_minus_report_line'
string='Minus Report Lines'
plus_report_line_ids
Many2many → account.tax.report.line
comodel_name='account.tax.report.line'
copy=True
help="Tax report lines whose '+' tag will be assigned to move lines by this repartition line"
relation='account_tax_repartition_plus_report_line'
string='Plus Tax Report Lines'
refund_tax_id
Many2one → account.tax.template
comodel_name='account.tax.template'
help='The tax set to apply this repartition on refund invoices. Mutually exclusive with invoice_tax_id'
repartition_type
Selection
default='tax'
help='Base on which the factor will be applied.'
required=True
selection=[('base', 'Base'), ('tax', 'of tax')]
string='Based On'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
copy=True
help='Additional tags that will be assigned by this repartition line for use in financial reports'
relation='account_tax_repartition_financial_tags'
string='Financial Tags'
create(self, vals)
get_repartition_line_create_vals(self, company)
validate_tags(self)
validate_tax_template_link(self)
children_line_ids
One2many → account.tax.report.line
comodel_name='account.tax.report.line'
help='Lines that should be rendered as children of this one'
inverse_name='parent_id'
string='Children Lines'
code
Char
help='Optional unique code to refer to this line in total formulas'
string='Code'
country_id
Many2one → res.country
comodel_name='res.country'
default=<expr>
help='Country for which this line is available.'
required=True
string='Country'
formula
Char
help='Python expression used to compute the value of a total line. This field is mutually exclusive with tag_name, setting it turns the line to a total line. Tax report line codes can be used as variables in this expression to refer to the balance of the corresponding lines in the report. A formula cannot refer to another line using a formula.'
string='Formula'
name
Char
help='Complete name for this report line, to be used in report.'
required=True
string='Name'
parent_id
Many2one → account.tax.report.line
comodel_name='account.tax.report.line'
string='Parent Line'
parent_path
Char
index=True
report_action_id
Many2one → ir.actions.act_window
comodel_name='ir.actions.act_window'
help='The optional action to call when clicking on this line in accounting reports.'
string='Report Action'
sequence
Integer
help='Sequence determining the order of the lines in the report (smaller ones come first). This order is applied locally per section (so, children of the same line are always rendered one after the other).'
required=True
string='Sequence'
tag_ids
Many2many → account.account.tag
comodel_name='account.account.tag'
help='Tax tags populating this line'
relation='account_tax_report_line_tags_rel'
string='Tags'
tag_name
Char
help='Short name for the tax grid corresponding to this report line. Leave empty if this report line should not correspond to any such grid.'
string='Tag Name'
create(self, vals)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
default=0
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Analytic Cost'
cash_basis_base_account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
args: 'account.account.template'
cash_basis_transition_account_id
Many2one → account.account.template
comodel_name='account.account.template'
domain=[('deprecated', '=', False)]
help='Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.'
string='Cash Basis Transition Account'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
children_tax_ids
Many2many → account.tax.template
string='Children Taxes'
args: 'account.tax.template', 'account_tax_template_filiation_rel', 'parent_tax', 'child_tax'
description
Char
string='Display on Invoices'
include_base_amount
Boolean
default=False
help='If set, taxes which are computed after this one will be computed based on the price tax included.'
string='Affect Subsequent Taxes'
invoice_repartition_line_ids
One2many → account.tax.repartition.line.template
comodel_name='account.tax.repartition.line.template'
copy=True
help='Repartition when the tax is used on an invoice'
inverse_name='invoice_tax_id'
string='Repartition for Invoices'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_repartition_line_ids
One2many → account.tax.repartition.line.template
comodel_name='account.tax.repartition.line.template'
copy=True
help='Repartition when the tax is used on a refund'
inverse_name='refund_tax_id'
string='Repartition for Refund Invoices'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
string='Tax Due'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
string='Tax Group'
args: 'account.tax.group'
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group."
required=True
string='Tax Scope'
args: TYPE_TAX_USE
name_get(self)
No new fields.
Public methods (1)trans_unrec(self)
No new fields.
Public methods (1)document_layout_save(self)
kpi_account_total_revenue
Boolean
kpi_account_total_revenue_value
Monetary
compute='_compute_kpi_account_total_revenue_value'
compute_kpis_actions(self, company, user)
No new fields.
Public methods (3)postprocess_pdf_report(self, record, buffer)
render_qweb_pdf(self, res_ids=None, data=None)
retrieve_attachment(self, record)
No new fields.
Public methods (0)No public methods.
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain="['&', ('deprecated', '=', False), ('company_id', '=', current_company_id)]"
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.'
string='Expense Account'
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain="['&', ('deprecated', '=', False), ('company_id', '=', current_company_id)]"
help='This account will be used when validating a customer invoice.'
string='Income Account'
args: 'account.account'
No public methods.
No new fields.
Public methods (0)No public methods.
property_account_expense_id
Many2one → account.account
company_dependent=True
domain="['&', ('deprecated', '=', False), ('company_id', '=', current_company_id)]"
help='Keep this field empty to use the default value from the product category. If anglo-saxon accounting with automated valuation method is configured, the expense account on the product category will be used.'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain="['&', ('deprecated', '=', False), ('company_id', '=', current_company_id)]"
help='Keep this field empty to use the default value from the product category.'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'purchase')]
help='Default taxes used when buying the product.'
string='Vendor Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'sale')]
help='Default taxes used when selling the product.'
string='Customer Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
get_product_accounts(self, fiscal_pos=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)lines(self, target_move, journal_ids, sort_selection, data)
account_bank_reconciliation_start
Date
help="The bank reconciliation widget won't ask to reconcile payments older than this date.\n This is useful if you install accounting after having used invoicing for some time and\n don't want to reconcile all the past payments with bank statements."
string='Bank Reconciliation Threshold'
account_dashboard_onboarding_state
Selection
default='not_done'
string='State of the account dashboard onboarding panel'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done'), ('closed', 'Closed')]
account_default_pos_receivable_account_id
Many2one → account.account
string='Default PoS Receivable Account'
args: 'account.account'
account_invoice_onboarding_state
Selection
default='not_done'
string='State of the account invoice onboarding panel'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done'), ('closed', 'Closed')]
account_onboarding_invoice_layout_state
Selection
default='not_done'
string='State of the onboarding invoice layout step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
account_onboarding_sale_tax_state
Selection
default='not_done'
string='State of the onboarding sale tax step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
account_onboarding_sample_invoice_state
Selection
default='not_done'
string='State of the onboarding sample invoice step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
account_opening_date
Date
help="Date at which the opening entry of this company's accounting has been posted."
readonly=False
related='account_opening_move_id.date'
string='Opening Date'
account_opening_journal_id
Many2one → account.journal
comodel_name='account.journal'
help="Journal where the opening entry of this company's accounting has been posted."
readonly=False
related='account_opening_move_id.journal_id'
string='Opening Journal'
account_opening_move_id
Many2one → account.move
comodel_name='account.move'
help="The journal entry containing the initial balance of all this company's accounts."
string='Opening Journal Entry'
account_purchase_tax_id
Many2one → account.tax
string='Default Purchase Tax'
args: 'account.tax'
account_sale_tax_id
Many2one → account.tax
string='Default Sale Tax'
args: 'account.tax'
account_setup_bank_data_state
Selection
default='not_done'
string='State of the onboarding bank data step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
account_setup_coa_state
Selection
default='not_done'
string='State of the onboarding charts of account step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
account_setup_fy_data_state
Selection
default='not_done'
string='State of the onboarding fiscal year step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
accrual_default_journal_id
Many2one → account.journal
domain="[('type', '=', 'general')]"
help='Journal used by default for moving the period of an entry'
args: 'account.journal'
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
bank_account_code_prefix
Char
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template_id
Many2one → account.chart.template
help='The chart template for the company (if any)'
args: 'account.chart.template'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
default_cash_difference_expense_account_id
Many2one → account.account
string='Cash Difference Expense Account'
args: 'account.account'
default_cash_difference_income_account_id
Many2one → account.account
string='Cash Difference Income Account'
args: 'account.account'
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_accrual_account_id
Many2one → account.account
domain="[('internal_group', '=', 'liability'), ('internal_type', 'not in', ('receivable', 'payable')), ('reconcile', '=', True), ('company_id', '=', id)]"
help='Account used to move the period of an expense'
args: 'account.account'
expense_currency_exchange_account_id
Many2one → account.account
domain="[('internal_type', '=', 'other'), ('deprecated', '=', False), ('company_id', '=', id)]"
readonly=False
related='currency_exchange_journal_id.default_debit_account_id'
string='Loss Exchange Rate Account'
args: 'account.account'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default='12'
required=True
args: MONTH_SELECTION
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
string='Lock Date'
income_currency_exchange_account_id
Many2one → account.account
domain="[('internal_type', '=', 'other'), ('deprecated', '=', False), ('company_id', '=', id)]"
readonly=False
related='currency_exchange_journal_id.default_credit_account_id'
string='Gain Exchange Rate Account'
args: 'account.account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_email
Boolean
default=True
args: 'Email by default'
invoice_is_print
Boolean
default=True
args: 'Print by default'
invoice_terms
Text
string='Default Terms and Conditions'
translate=True
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
string='Lock Date for Non-Advisers'
property_stock_account_input_categ_id
Many2one → account.account
string='Input Account for Stock Valuation'
args: 'account.account'
property_stock_account_output_categ_id
Many2one → account.account
string='Output Account for Stock Valuation'
args: 'account.account'
property_stock_valuation_account_id
Many2one → account.account
string='Account Template for Stock Valuation'
args: 'account.account'
qr_code
Boolean
string='Display SEPA QR code'
revenue_accrual_account_id
Many2one → account.account
domain="[('internal_group', '=', 'asset'), ('internal_type', 'not in', ('receivable', 'payable')), ('reconcile', '=', True), ('company_id', '=', id)]"
help='Account used to move the period of a revenue'
args: 'account.account'
tax_calculation_rounding_method
Selection
default='round_per_line'
string='Tax Calculation Rounding Method'
args: [('round_per_line', 'Round per Line'), ('round_globally', 'Round Globally')]
tax_cash_basis_journal_id
Many2one → account.journal
string='Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
string='Use Cash Basis'
tax_lock_date
Date
help='No users can edit journal entries related to a tax prior and inclusive of this date.'
args: 'Tax Lock Date'
transfer_account_code_prefix
Char
string='Prefix of the transfer accounts'
transfer_account_id
Many2one → account.account
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
action_close_account_dashboard_onboarding(self)
action_close_account_invoice_onboarding(self)
action_open_account_onboarding_sale_tax(self)
action_open_account_onboarding_sample_invoice(self)
action_save_onboarding_invoice_layout(self)
action_save_onboarding_sale_tax(self)
compute_fiscalyear_dates(self, current_date)
create_op_move_if_non_existant(self)
get_account_dashboard_onboarding_steps_states_names(self)
get_account_invoice_onboarding_steps_states_names(self)
get_and_update_account_dashboard_onboarding_state(self)
get_and_update_account_invoice_onboarding_state(self)
get_chart_of_accounts_or_fail(self)
get_fiscal_country(self)
get_new_account_code(self, current_code, old_prefix, new_prefix)
get_opening_move_differences(self, opening_move_lines)
get_unaffected_earnings_account(self)
opening_move_posted(self)
reflect_code_prefix_change(self, old_code, new_code)
setting_chart_of_accounts_action(self)
setting_init_bank_account_action(self)
setting_init_fiscal_year_action(self)
write(self, values)
account_bank_reconciliation_start
Date
help="The bank reconciliation widget won't ask to reconcile payments older than this date.\n This is useful if you install accounting after having used invoicing for some time and\n don't want to reconcile all the past payments with bank statements."
readonly=False
related='company_id.account_bank_reconciliation_start'
string='Bank Reconciliation Threshold'
chart_template_id
Many2one → account.chart.template
default=<expr>
domain="[('visible','=', True)]"
string='Template'
args: 'account.chart.template'
currency_exchange_journal_id
Many2one → account.journal
domain="[('company_id', '=', company_id), ('type', '=', 'general')]"
help='The accounting journal where automatic exchange differences will be registered'
readonly=False
related='company_id.currency_exchange_journal_id'
string='Exchange Gain or Loss Journal'
args: 'account.journal'
currency_id
Many2one → res.currency
help='Main currency of the company.'
readonly=False
related='company_id.currency_id'
required=True
string='Currency'
args: 'res.currency'
group_analytic_accounting
Boolean
implied_group='analytic.group_analytic_accounting'
string='Analytic Accounting'
group_analytic_tags
Boolean
implied_group='analytic.group_analytic_tags'
string='Analytic Tags'
group_cash_rounding
Boolean
implied_group='account.group_cash_rounding'
string='Cash Rounding'
group_fiscal_year
Boolean
implied_group='account.group_fiscal_year'
string='Fiscal Years'
group_show_line_subtotals_tax_excluded
Boolean
group='base.group_portal,base.group_user,base.group_public'
implied_group='account.group_show_line_subtotals_tax_excluded'
args: 'Show line subtotals without taxes (B2B)'
group_show_line_subtotals_tax_included
Boolean
group='base.group_portal,base.group_user,base.group_public'
implied_group='account.group_show_line_subtotals_tax_included'
args: 'Show line subtotals with taxes (B2C)'
group_warning_account
Boolean
implied_group='account.group_warning_account'
string='Warnings in Invoices'
has_accounting_entries
Boolean
compute='_compute_has_chart_of_accounts'
has_chart_of_accounts
Boolean
compute='_compute_has_chart_of_accounts'
string='Company has a chart of accounts'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
readonly=False
related='company_id.incoterm_id'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_email
Boolean
readonly=False
related='company_id.invoice_is_email'
string='Send Email'
invoice_is_print
Boolean
readonly=False
related='company_id.invoice_is_print'
string='Print'
invoice_terms
Text
readonly=False
related='company_id.invoice_terms'
string='Terms & Conditions'
module_account_accountant
Boolean
string='Accounting'
module_account_bank_statement_import_camt
Boolean
module_account_bank_statement_import_csv
Boolean
module_account_bank_statement_import_ofx
Boolean
module_account_bank_statement_import_qif
Boolean
module_account_batch_payment
Boolean
help='This allows you grouping payments into a single batch and eases the reconciliation process.\n-This installs the account_batch_payment module.'
string='Use batch payments'
module_account_budget
Boolean
string='Budget Management'
module_account_check_printing
Boolean
module_account_intrastat
Boolean
string='Intrastat'
module_account_invoice_extract
Boolean
string='Bill Digitalization'
module_account_payment
Boolean
string='Invoice Online Payment'
module_account_plaid
Boolean
string='Plaid Connector'
module_account_reports
Boolean
module_account_sepa
Boolean
string='SEPA Credit Transfer (SCT)'
module_account_sepa_direct_debit
Boolean
string='Use SEPA Direct Debit'
module_account_taxcloud
Boolean
string='Account TaxCloud'
module_account_yodlee
Boolean
module_currency_rate_live
Boolean
string='Automatic Currency Rates'
module_l10n_eu_service
Boolean
string='EU Intra-community Distance Selling'
module_product_margin
Boolean
string='Allow Product Margin'
module_snailmail_account
Boolean
string='Snailmail'
purchase_tax_id
Many2one → account.tax
readonly=False
related='company_id.account_purchase_tax_id'
string='Default Purchase Tax'
args: 'account.tax'
qr_code
Boolean
readonly=False
related='company_id.qr_code'
string='Display SEPA QR code'
sale_tax_id
Many2one → account.tax
readonly=False
related='company_id.account_sale_tax_id'
string='Default Sale Tax'
args: 'account.tax'
show_line_subtotals_tax_selection
Selection
config_parameter='account.show_line_subtotals_tax_selection'
default='tax_excluded'
required=True
string='Line Subtotals Tax Display'
args: [('tax_excluded', 'Tax-Excluded'), ('tax_included', 'Tax-Included')]
tax_calculation_rounding_method
Selection
readonly=False
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
args: [('round_per_line', 'Round calculation of taxes per line'), ('round_globally', 'Round globally calculation of taxes ')]
tax_cash_basis_journal_id
Many2one → account.journal
readonly=False
related='company_id.tax_cash_basis_journal_id'
string='Tax Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
readonly=False
related='company_id.tax_exigibility'
string='Cash Basis'
use_invoice_terms
Boolean
config_parameter='account.use_invoice_terms'
string='Default Terms & Conditions'
create(self, values)
onchange_account_yodlee(self)
onchange_analytic_accounting(self)
onchange_module_account_budget(self)
set_values(self)
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Partner Contracts'
args: 'account.analytic.account', 'partner_id'
credit
Monetary
compute='_credit_debit_get'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
currency_id
Many2one → res.currency
compute='_get_company_currency'
help='Utility field to express amount currency'
readonly=True
string='Currency'
args: 'res.currency'
customer_rank
Integer
copy=False
default=0
debit
Monetary
compute='_credit_debit_get'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
debit_limit
Monetary
has_unreconciled_entries
Boolean
compute='_compute_has_unreconciled_entries'
help='The partner has at least one unreconciled debit and credit since last time the invoices & payments matching was performed.'
invoice_ids
One2many → account.move
copy=False
readonly=True
string='Invoices'
args: 'account.move', 'partner_id'
invoice_warn
Selection
default='no-message'
help=WARNING_HELP
args: WARNING_MESSAGE, 'Invoice'
invoice_warn_msg
Text
journal_item_count
Integer
compute='_compute_journal_item_count'
string='Journal Items'
type='integer'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed for this partner. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit or if you click the "Done" button.'
readonly=True
string='Latest Invoices & Payments Matching Date'
property_account_payable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'payable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the payable account for the current partner'
required=True
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
company_dependent=True
help='The fiscal position determines the taxes/accounts used for this contact.'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'receivable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the receivable account for the current partner'
required=True
string='Account Receivable'
args: 'account.account'
property_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for sales orders and customer invoices'
string='Customer Payment Terms'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for purchase orders and vendor bills'
string='Vendor Payment Terms'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
supplier_rank
Integer
copy=False
default=0
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice'
string='Total Invoiced'
trust
Selection
company_dependent=True
default='normal'
string='Degree of trust you have in this debtor'
args: [('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')]
action_view_partner_invoices(self)
can_edit_vat(self)
create(self, vals_list)
mark_as_reconciled(self)
unlink(self)
journal_id
One2many → account.journal
domain=[('type', '=', 'bank')]
help='The accounting journal corresponding to this bank account.'
readonly=True
string='Account Journal'
args: 'account.journal', 'bank_account_id'
No public methods.
No new fields.
Public methods (0)No public methods.
adjustment_type
Selection
required=True
string='Adjustment Type'
args: [('debit', 'Applied on debit journal item'), ('credit', 'Applied on credit journal item')]
amount
Monetary
currency_field='company_currency_id'
required=True
company_currency_id
Many2one → res.currency
default=<expr>
readonly=True
args: 'res.currency'
country_id
Many2one → res.country
comodel_name='res.country'
default=<expr>
readonly=True
string='Country'
credit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Credit account'
args: 'account.account'
date
Date
default=fields.Date.context_today
required=True
debit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Debit account'
args: 'account.account'
journal_id
Many2one → account.journal
default=_get_default_journal
domain=[('type', '=', 'general')]
required=True
string='Journal'
args: 'account.journal'
reason
Char
required=True
string='Justification'
tax_report_line_id
Many2one → account.tax.report.line
comodel_name='account.tax.report.line'
help='The report line to make an adjustment for.'
required=True
string='Report Line'
create_move(self)
No new fields.
Public methods (1)validate_move(self)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
_assets_backend_helpers |
_assets_backend_helpers | ir.ui.view | qweb | Inherits web._assets_backend_helpers |
account_bank_journal_view_kanban |
account.bank.journal.kanban | account.journal | kanban | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_common_report_view |
Common Report | account.common.report | form | New |
account_dashboard_onboarding_panel |
account.dashboard.onboarding.panel | ir.ui.view | qweb | New |
account_incoterms_form |
account.incoterms.form | account.incoterms | form | New |
account_incoterms_view_search |
account.incoterms.search | account.incoterms | search | New |
account_invoice_confirm_view |
account.invoice.confirm.form | account.invoice.confirm | form | New |
account_invoice_import_wizard_form_view |
account.invoice.import.wizard.form | account.invoice.import.wizard | form | New |
account_invoice_onboarding_invoice_layout_form |
account.invoice.layout.onboarding.form | res.company | xpath | Inherits base.view_company_document_template_form |
account_invoice_onboarding_panel |
account.invoice.onboarding.panel | ir.ui.view | qweb | New |
account_invoice_onboarding_sale_tax_form |
account.invoice.layout.onboarding.form | res.company | form | New |
account_invoice_send_wizard_form |
account.invoice.send.form | account.invoice.send | form | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_journal_dashboard_kanban_view_js |
account.journal.dashboard.kanban.js | account.journal | xpath | Inherits account.account_journal_dashboard_kanban_view |
account_journal_view_kanban |
account.journal.kanban | account.journal | kanban | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_graph_date_cash_basis |
account.move.line.graph | account.move.line | graph | New |
account_move_line_view_kanban |
account.move.line.kanban | account.move.line | kanban | New |
account_tag_view_form |
Tags | account.account.tag | form | New |
account_tax_view_search |
account.tax.search.filters | account.tax | search | New |
account_tax_view_tree |
account.invoice.line.tax.search | account.tax | tree | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
action_account_fiscal_year_form |
account.fiscal.year.form | account.fiscal.year | form | New |
action_account_fiscal_year_search |
account.fiscal.year.search | account.fiscal.year | search | New |
action_account_fiscal_year_tree |
account.fiscal.year.tree | account.fiscal.year | tree | New |
assets_backend |
account assets | ir.ui.view | qweb | Inherits web.assets_backend |
assets_frontend |
account assets | ir.ui.view | qweb | Inherits web.assets_frontend |
cash_box_in_form |
cash_box_in | cash.box.in | form | New |
cash_box_out_form |
cash_box_out | cash.box.out | form | New |
dashboard_onboarding_company_step |
dashboard_onboarding_company_step | ir.ui.view | qweb | Inherits base.onboarding_company_step |
digest_digest_view_form |
digest.digest.view.form.inherit.account.account | digest.digest | xpath | Inherits digest.digest_digest_view_form |
email_compose_onboarding_sample_invoice |
mail.compose.message.form.account_invoice_onboarding_sample_invoice | mail.compose.message | xpath | Inherits mail.email_compose_message_wizard_form |
init_accounts_tree |
account.setup.opening.move.line.tree | account.account | tree | New |
invoice_form |
account.invoice.form | account.invoice | form | New |
invoice_kanban |
account.invoice.kanban | account.invoice | kanban | New |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | form | New |
invoice_supplier_tree |
account.invoice.supplier.tree | account.invoice | tree | New |
invoice_tree |
account.invoice.tree | account.invoice | tree | New |
invoice_tree_with_onboarding |
account.invoice.tree.with.onboarding | account.invoice | xpath | Inherits invoice_tree |
onboarding_bank_account_step |
onboarding_bank_account_step | ir.ui.view | qweb | New |
onboarding_chart_of_account_step |
onboarding_chart_of_account_step | ir.ui.view | qweb | New |
onboarding_fiscal_year_step |
onboarding_fiscal_year_step | ir.ui.view | qweb | New |
onboarding_invoice_layout_step |
onboarding_invoice_layout_step | ir.ui.view | qweb | New |
onboarding_sale_tax_step |
onboarding_sale_tax_step | ir.ui.view | qweb | New |
onboarding_sample_invoice_step |
onboarding_sample_invoice_step | ir.ui.view | qweb | New |
partner_view_button_contracts_count |
partner.view.button.contracts_count | res.partner | button | Inherits base.view_partner_form |
partner_view_buttons |
partner.view.buttons | res.partner | button | Inherits base.view_partner_form |
partner_view_short_extra |
partner.short.view.account | res.partner | field | Inherits base.view_partner_short_form |
portal_invoice_chatter |
Allow Comments & History | ir.ui.view | qweb | Inherits account.portal_invoice_page |
portal_invoice_error |
Invoice error/warning display | ir.ui.view | qweb | New |
portal_invoice_page |
Invoice Portal Template | ir.ui.view | qweb | Inherits portal.portal_sidebar |
portal_invoice_success |
Invoice success display | ir.ui.view | qweb | New |
portal_my_home_invoice |
Portal My Home : invoice entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_invoice |
Portal layout : invoice menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_invoices |
My Invoices and Payments | ir.ui.view | qweb | New |
product_product_view_tree |
product.product.tree | product.product | tree | New |
product_template_form_view |
product.template.form.inherit | product.template | xpath | Inherits product.product_template_form_view |
qunit_suite |
account tests | ir.ui.view | qweb | Inherits web.qunit_suite |
report_agedpartnerbalance |
report_agedpartnerbalance | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_invoice_document_with_payments |
report_invoice_document_with_payments | ir.ui.view | qweb | Inherits account.report_invoice_document |
report_invoice_with_payments |
report_invoice_with_payments | ir.ui.view | qweb | New |
report_journal |
report_journal | ir.ui.view | qweb | New |
report_payment_receipt |
report_payment_receipt | ir.ui.view | qweb | New |
report_payment_receipt_document |
report_payment_receipt_document | ir.ui.view | qweb | New |
res_company_form_view_inherit_account_intrastat |
res.company.form.inherit.account.intrastat | res.company | xpath | Inherits base.view_company_form |
res_config_settings_view_form |
res.config.settings.view.form.inherit.account | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
rounding_form_view |
account.cash.rounding.form | account.cash.rounding | form | New |
rounding_search_view |
account.cash.rounding.search | account.cash.rounding | search | New |
rounding_tree_view |
account.cash.rounding.tree | account.cash.rounding | tree | New |
setup_bank_account_wizard |
account.online.sync.res.partner.bank.setup.form | account.setup.bank.manual.config | form | New |
setup_financial_year_opening_form |
account.financial.year.op.setup.wizard.form | account.financial.year.op | form | New |
tax_adjustments_wizard |
tax.adjustments.wizard.form | tax.adjustments.wizard | form | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_account_kanban |
account.account.kanban | account.account | kanban | New |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.tree.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_bank_journal_form |
account.bank.journal.form | account.journal | form | New |
view_account_bank_journal_tree |
account.bank.journal.tree | account.journal | tree | New |
view_account_bnk_stmt_cashbox |
account.bnk_stmt_cashbox.form | account.bank.statement.cashbox | form | New |
view_account_bnk_stmt_check |
account.bnk_stmt_check.form | account.bank.statement.closebalance | form | New |
view_account_chart_template_form |
account.chart.template.form | account.chart.template | form | New |
view_account_chart_template_seacrh |
account.chart.template.search | account.chart.template | search | New |
view_account_chart_template_tree |
account.chart.template.tree | account.chart.template | tree | New |
view_account_form |
account.account.form | account.account | form | New |
view_account_group_form |
account.group.form | account.group | form | New |
view_account_group_search |
account.group.search | account.group | search | New |
view_account_group_tree |
account.group.tree | account.group | tree | New |
view_account_invoice_filter |
account.invoice.select | account.invoice | search | New |
view_account_invoice_refund |
account.invoice.refund.form | account.invoice.refund | form | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_kanban |
account.move.kanban | account.move | kanban | New |
view_account_move_line_filter |
Journal Items | account.move.line | search | New |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_from_invoices |
account.register.payments.wizard | account.register.payments | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_invoice_form |
account.payment.invoice.form | account.payment | form | New |
view_account_payment_kanban |
account.payment.kanban | account.payment | kanban | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_term_kanban |
account.payment.term.kanban | account.payment.term | kanban | New |
view_account_payment_tree |
account.payment.tree | account.payment | tree | New |
view_account_position_filter |
account.fiscal.position.filter | account.fiscal.position | search | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_reconcile_model_form |
account.reconcile.model.form | account.reconcile.model | form | New |
view_account_reconcile_model_search |
account.reconcile.model.search | account.reconcile.model | search | New |
view_account_reconcile_model_tree |
account.reconcile.model.tree | account.reconcile.model | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_supplier_payment_tree |
account.supplier.payment.tree | account.payment | tree | New |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_template_form |
account.account.template.form | account.account.template | form | New |
view_account_template_search |
account.account.template.search | account.account.template | search | New |
view_account_template_tree |
account.account.template.tree | account.account.template | tree | New |
view_account_type_form |
account.account.type.form | account.account.type | form | New |
view_account_type_search |
account.account.type.search | account.account.type | search | New |
view_account_type_tree |
account.account.type.tree | account.account.type | tree | New |
view_bank_statement_form |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_line_form |
bank.statement.line.form | account.bank.statement.line | form | New |
view_bank_statement_line_search |
account.bank.statement.line.search | account.bank.statement.line | search | New |
view_bank_statement_line_tree |
account.bank.statement.line.tree | account.bank.statement.line | tree | New |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_company_partner_bank_form |
company.res.partner.bank.form | res.partner.bank | xpath | Inherits base.view_partner_bank_form |
view_full_reconcile_form |
account.full.reconcile.form | account.full.reconcile | form | New |
view_incoterms_tree |
account.incoterms.tree | account.incoterms | tree | New |
view_invoice_graph |
account.invoice.graph | account.invoice | graph | New |
view_invoice_line_calendar |
account.invoice.calendar | account.invoice | calendar | New |
view_invoice_line_form |
account.invoice.line.form | account.invoice.line | form | New |
view_invoice_line_tree |
account.invoice.line.tree | account.invoice.line | tree | New |
view_invoice_pivot |
account.invoice.pivot | account.invoice | pivot | New |
view_invoice_tax_form |
account.invoice.tax.form | account.invoice.tax | form | New |
view_invoice_tax_tree |
account.invoice.tax.tree | account.invoice.tax | tree | New |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_pivot |
account.move.line.pivot | account.move.line | pivot | New |
view_move_line_tax_audit_tree |
account.move.line.tax.audit.tree | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_tree |
account.move.tree | account.move | tree | New |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | page | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_line_form |
account.payment.term.line.form | account.payment.term.line | form | New |
view_payment_term_line_tree |
account.payment.term.line.tree | account.payment.term.line | tree | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_payment_term_tree |
account.payment.term.tree | account.payment.term | tree | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_kanban |
account.tax.kanban | account.tax | kanban | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
amount
Monetary
required=True
string='Payment Amount'
communication
Char
string='Memo'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
hide_payment_method
Boolean
compute='_compute_hide_payment_method'
help="Technical field used to hide the payment method if the selected journal has only one available which is 'manual'"
invoice_ids
Many2many → account.invoice
copy=False
string='Invoices'
args: 'account.invoice'
journal_id
Many2one → account.journal
domain=[('type', 'in', ('bank', 'cash'))]
required=True
string='Payment Journal'
args: 'account.journal'
multi
Boolean
help='Technical field indicating if the registering payment will generate multiple payments or not.'
string='Multi'
partner_bank_account_id
Many2one → res.partner.bank
string='Recipient Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
partner_type
Selection
payment_date
Date
copy=False
default=fields.Date.context_today
required=True
string='Payment Date'
payment_difference
Monetary
compute='_compute_payment_difference'
readonly=True
payment_difference_handling
Selection
copy=False
default='open'
string='Payment Difference Handling'
args: [('open', 'Keep open'), ('reconcile', 'Mark invoice as fully paid')]
payment_method_code
Char
help='Technical field used to adapt the interface to the payment type selected.'
readonly=True
related='payment_method_id.code'
payment_method_id
Many2one → account.payment.method
help='Manual: Get paid by cash, check or any other method outside of Odoo.\nElectronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\nCheck: Pay bill by check and print it from Odoo.\nBatch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo, you are suggested to reconcile the transaction with the batch deposit.To enable batch deposit, module account_batch_payment must be installed.\nSEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. To enable sepa credit transfer, module account_sepa must be installed '
oldname='payment_method'
required=True
string='Payment Method Type'
args: 'account.payment.method'
payment_type
Selection
required=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
show_partner_bank_account
Boolean
compute='_compute_show_partner_bank'
help='Technical field used to know whether the field `partner_bank_account_id` needs to be displayed or not in the payments form views'
writeoff_account_id
Many2one → account.account
copy=False
domain=[('deprecated', '=', False)]
string='Difference Account'
args: 'account.account'
writeoff_label
Char
default='Write-Off'
help='Change label of the counterpart that will hold the payment difference'
string='Journal Item Label'
default_get(self, fields)
is_multi(self, invoices)
code
Char
index=True
required=True
size=64
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this account currency.'
string='Account Currency'
args: 'res.currency'
deprecated
Boolean
default=False
index=True
group_id
Many2one → account.group
internal_group
Selection
readonly=True
related='user_type_id.internal_group'
store=True
string='Internal Group'
internal_type
Selection
readonly=True
related='user_type_id.type'
store=True
string='Internal Type'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed on this account. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit Or if you click the "Done" button.'
readonly=True
string='Latest Invoices & Payments Matching Date'
name
Char
index=True
required=True
note
Text
opening_credit
Monetary
compute='_compute_opening_debit_credit'
help='Opening credit value for this account.'
inverse='_set_opening_credit'
string='Opening credit'
opening_debit
Monetary
compute='_compute_opening_debit_credit'
help='Opening debit value for this account.'
inverse='_set_opening_debit'
string='Opening debit'
reconcile
Boolean
default=False
help='Check this box if this account allows invoices & payments matching of journal items.'
string='Allow Reconciliation'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Tags'
args: 'account.account.tag', 'account_account_account_tag'
tax_ids
Many2many → account.tax
string='Default Taxes'
args: 'account.tax', 'account_account_tax_default_rel', 'account_id', 'tax_id'
user_type_id
Many2one → account.account.type
help='Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.'
oldname='user_type'
required=True
string='Type'
args: 'account.account.type'
action_open_reconcile(self)
copy(self, default=None)
default_get(self, default_fields)
load(self, fields, data)
mark_as_reconciled(self)
name_get(self)
onchange_code(self)
onchange_internal_type(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the Account Tag without removing it.'
applicability
Selection
default='accounts'
required=True
args: [('accounts', 'Accounts'), ('taxes', 'Taxes')]
color
Integer
name
Char
required=True
No public methods.
chart_template_id
Many2one → account.chart.template
help="This optional field allow you to link an account template to a specific chart template that may differ from the one its root parent belongs to. This allow you to define chart templates that extend another and complete it with few new accounts (You don't need to define the whole structure that is common to both several times)."
string='Chart Template'
args: 'account.chart.template'
code
Char
index=True
required=True
size=64
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
group_id
Many2one → account.group
name
Char
index=True
required=True
nocreate
Boolean
default=False
help='If checked, the new chart of accounts will not contain this by default.'
string='Optional Create'
note
Text
reconcile
Boolean
default=False
help='Check this option if you want the user to reconcile entries in this account.'
string='Allow Invoices & payments Matching'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag', 'account_account_template_account_tag'
tax_ids
Many2many → account.tax.template
string='Default Taxes'
args: 'account.tax.template', 'account_account_template_tax_rel', 'account_id', 'tax_id'
user_type_id
Many2one → account.account.type
help='These types are defined according to your country. The type contains more information about the account and its specificities.'
oldname='user_type'
required=True
string='Type'
args: 'account.account.type'
name_get(self)
include_initial_balance
Boolean
help='Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set.'
string='Bring Accounts Balance Forward'
internal_group
Selection
help="The 'Internal Group' is used to filter accounts based on the internal group set on the account type."
string='Internal Group'
args: [('equity', 'Equity'), ('asset', 'Asset'), ('liability', 'Liability'), ('income', 'Income'), ('expense', 'Expense')]
name
Char
required=True
string='Account Type'
translate=True
note
Text
string='Description'
type
Selection
default='other'
help="The 'Internal Type' is used for features available on different types of accounts: liquidity type is for cash or bank accounts, payable/receivable is for vendor/customer accounts."
required=True
args: [('other', 'Regular'), ('receivable', 'Receivable'), ('payable', 'Payable'), ('liquidity', 'Liquidity')]
No public methods.
code
Char
size=8
general_account_id
Many2one → account.account
compute_sudo=True
domain=[('deprecated', '=', False)]
ondelete='restrict'
readonly=True
related='move_id.account_id'
store=True
string='Financial Account'
args: 'account.account'
move_id
Many2one → account.move.line
index=True
ondelete='cascade'
string='Journal Item'
args: 'account.move.line'
product_id
Many2one → product.product
string='Product'
args: 'product.product'
ref
Char
string='Ref.'
on_change_unit_amount(self)
view_header_get(self, view_id, view_type)
accounting_date
Date
help='If set, the accounting entries created during the bank statement reconciliation process will be created at this date.\nThis is useful if the accounting period in which the entries should normally be booked is already closed.'
readonly=True
states={'open': [('readonly', False)]}
string='Accounting Date'
all_lines_reconciled
Boolean
compute='_check_lines_reconciled'
balance_end
Monetary
compute='_end_balance'
help='Balance as calculated based on Opening Balance and transaction lines'
store=True
args: 'Computed Balance'
balance_end_real
Monetary
states={'confirm': [('readonly', True)]}
args: 'Ending Balance'
balance_start
Monetary
default=_default_opening_balance
states={'confirm': [('readonly', True)]}
string='Starting Balance'
cashbox_end_id
Many2one → account.bank.statement.cashbox
string='Ending Cashbox'
args: 'account.bank.statement.cashbox'
cashbox_start_id
Many2one → account.bank.statement.cashbox
string='Starting Cashbox'
args: 'account.bank.statement.cashbox'
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'
oldname='currency'
string='Currency'
args: 'res.currency'
date
Date
copy=False
default=fields.Date.context_today
index=True
required=True
states={'confirm': [('readonly', True)]}
date_done
Datetime
string='Closed On'
difference
Monetary
compute='_end_balance'
help='Difference between the computed ending balance and the specified ending balance.'
store=True
is_difference_zero
Boolean
compute='_is_difference_zero'
help='Check if difference is zero.'
string='Is zero'
journal_id
Many2one → account.journal
default=_default_journal
required=True
states={'confirm': [('readonly', True)]}
string='Journal'
args: 'account.journal'
journal_type
Selection
help='Technical field used for usability purposes'
readonly=False
related='journal_id.type'
line_ids
One2many → account.bank.statement.line
copy=True
states={'confirm': [('readonly', True)]}
string='Statement lines'
args: 'account.bank.statement.line', 'statement_id'
move_line_count
Integer
compute='_get_move_line_count'
move_line_ids
One2many → account.move.line
states={'confirm': [('readonly', True)]}
string='Entry lines'
args: 'account.move.line', 'statement_id'
name
Char
copy=False
readonly=True
states={'open': [('readonly', False)]}
string='Reference'
reference
Char
copy=False
help='Used to hold the reference of the external mean that created this statement (name of imported file, reference of online synchronization...)'
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')]
total_entry_encoding
Monetary
compute='_end_balance'
help='Total of transaction lines.'
store=True
args: 'Transactions Subtotal'
user_id
Many2one → res.users
default=<expr>
required=False
string='Responsible'
args: 'res.users'
button_confirm_bank(self)
button_journal_entries(self)
button_open(self)
check_confirm_bank(self)
onchange_journal_id(self)
open_cashbox_id(self)
unlink(self)
cashbox_lines_ids
One2many → account.cashbox.line
string='Cashbox Lines'
args: 'account.cashbox.line', 'cashbox_id'
validate(self)
No new fields.
Public methods (1)validate(self)
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='This technical field can be used at the statement line creation/import time in order to avoid the reconciliation process on it later on. The statement line will simply create a counterpart on this account'
string='Counterpart Account'
args: 'account.account'
account_number
Char
help="Technical field used to store the bank account number before its creation, upon the line's processing"
string='Bank Account Number'
amount
Monetary
currency_field='journal_currency_id'
digits=0
amount_currency
Monetary
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
bank_account_id
Many2one → res.partner.bank
help='Bank account that was used in this transaction.'
string='Bank Account'
args: 'res.partner.bank'
company_id
Many2one → res.company
readonly=True
related='statement_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='The optional other currency if it is a multi-currency entry.'
string='Currency'
args: 'res.currency'
date
Date
default=<expr>
required=True
journal_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='statement_id.currency_id'
string="Journal's Currency"
args: 'res.currency'
journal_entry_ids
One2many → account.move.line
copy=False
readonly=True
args: 'account.move.line', 'statement_line_id', 'Journal Items'
journal_id
Many2one → account.journal
readonly=True
related='statement_id.journal_id'
store=True
string='Journal'
args: 'account.journal'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the journal entry, automatically set when the statement line is reconciled then stored to set the same number again if the line is cancelled, set to draft and re-processed again.'
readonly=True
string='Journal Entry Name'
name
Char
required=True
string='Label'
note
Text
string='Notes'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
partner_name
Char
help="This field is used to record the third party name when importing bank statement in electronic format, when the partner doesn't exist yet in the database (or cannot be found)."
ref
Char
string='Reference'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of bank statement lines.'
index=True
state
Selection
readonly=True
related='statement_id.state'
string='Status'
statement_id
Many2one → account.bank.statement
index=True
ondelete='cascade'
required=True
string='Statement'
args: 'account.bank.statement'
button_cancel_reconciliation(self)
create(self, vals)
fast_counterpart_creation(self)
process_reconciliation(self, counterpart_aml_dicts=None, payment_aml_rec=None, new_aml_dicts=None)
unlink(self)
account_id
Many2one → account.account
string='Account'
args: 'account.account'
name
Char
required=True
string='Name'
translate=True
rounding
Float
default=0.01
help='Represent the non-zero value smallest coinage (for example, 0.05).'
required=True
string='Rounding Precision'
rounding_method
Selection
default='HALF-UP'
help='The tie-breaking rule used for float rounding operations'
required=True
selection=[('UP', 'UP'), ('DOWN', 'DOWN'), ('HALF-UP', 'HALF-UP')]
string='Rounding Method'
strategy
Selection
default='add_invoice_line'
help='Specify which way will be used to round the invoice amount to the rounding precision'
required=True
string='Rounding Strategy'
args: [('biggest_tax', 'Modify tax amount'), ('add_invoice_line', 'Add a rounding line')]
compute_difference(self, currency, amount)
round(self, amount)
validate_rounding(self)
cashbox_id
Many2one → account.bank.statement.cashbox
string='Cashbox'
args: 'account.bank.statement.cashbox'
coin_value
Float
digits=0
required=True
string='Coin/Bill Value'
number
Integer
help='Opening Unit Numbers'
string='Number of Coins/Bills'
subtotal
Float
compute='_sub_total'
digits=0
readonly=True
string='Subtotal'
No public methods.
account_ids
One2many → account.account.template
string='Associated Account Templates'
args: 'account.account.template', 'chart_template_id'
bank_account_code_prefix
Char
oldname='bank_account_code_char'
required=True
string='Prefix of the bank accounts'
cash_account_code_prefix
Char
required=True
string='Prefix of the main cash accounts'
code_digits
Integer
default=6
help='No. of Digits to use for account code'
required=True
string='# of Digits'
complete_tax_set
Boolean
default=True
help='This boolean helps you to choose if you want to propose to the user to encode the sale and purchase rates or choose from list of taxes. This last choice assumes that the set of tax defined on this template is complete'
string='Complete Set of Taxes'
currency_id
Many2one → res.currency
required=True
string='Currency'
args: 'res.currency'
expense_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Loss Exchange Rate Account'
args: 'account.account.template'
income_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Gain Exchange Rate Account'
args: 'account.account.template'
name
Char
required=True
parent_id
Many2one → account.chart.template
string='Parent Chart Template'
args: 'account.chart.template'
property_account_expense_categ_id
Many2one → account.account.template
oldname='property_account_expense_categ'
string='Category of Expense Account'
args: 'account.account.template'
property_account_expense_id
Many2one → account.account.template
oldname='property_account_expense'
string='Expense Account on Product Template'
args: 'account.account.template'
property_account_income_categ_id
Many2one → account.account.template
oldname='property_account_income_categ'
string='Category of Income Account'
args: 'account.account.template'
property_account_income_id
Many2one → account.account.template
oldname='property_account_income'
string='Income Account on Product Template'
args: 'account.account.template'
property_account_payable_id
Many2one → account.account.template
oldname='property_account_payable'
string='Payable Account'
args: 'account.account.template'
property_account_receivable_id
Many2one → account.account.template
oldname='property_account_receivable'
string='Receivable Account'
args: 'account.account.template'
property_stock_account_input_categ_id
Many2one → account.account.template
oldname='property_stock_account_input_categ'
string='Input Account for Stock Valuation'
args: 'account.account.template'
property_stock_account_output_categ_id
Many2one → account.account.template
oldname='property_stock_account_output_categ'
string='Output Account for Stock Valuation'
args: 'account.account.template'
property_stock_valuation_account_id
Many2one → account.account.template
string='Account Template for Stock Valuation'
args: 'account.account.template'
tax_template_ids
One2many → account.tax.template
help='List of all the taxes that have to be installed by the wizard'
string='Tax Template List'
args: 'account.tax.template', 'chart_template_id'
transfer_account_code_prefix
Char
required=True
string='Prefix of the main transfer accounts'
use_anglo_saxon
Boolean
default=False
string='Use Anglo-Saxon accounting'
visible
Boolean
default=True
help="Set this to False if you don't want this template to be used actively in the wizard that generate Chart of Accounts from templates, this is useful when you want to generate accounts of this template only when loading its child template."
string='Can be Visible?'
create_record_with_xmlid(self, company, template, model, vals)
existing_accounting(self, company_id)
generate_account(self, tax_template_ref, acc_template_ref, code_digits, company)
generate_account_reconcile_model(self, tax_template_ref, acc_template_ref, company)
generate_fiscal_position(self, tax_template_ref, acc_template_ref, company)
generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company)
get_countries_posting_at_bank_rec(self)
load_for_current_company(self, sale_tax_rate, purchase_tax_rate)
open_select_template_wizard(self)
try_loading_for_current_company(self)
amount_currency
Boolean
help='Print Report with the currency column if the currency differs from the company currency.'
args: 'With Currency'
pre_print_report(self, data)
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date_from
Date
string='Start Date'
date_to
Date
string='End Date'
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
target_move
Selection
default='posted'
required=True
string='Target Moves'
args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
check_report(self)
company_id
Many2one → res.company
comodel_name='res.company'
required=True
fiscalyear_last_day
Integer
help='Fiscal year last day.'
readonly=False
related='company_id.fiscalyear_last_day'
required=True
fiscalyear_last_month
Selection
help='Fiscal year last month.'
readonly=False
related='company_id.fiscalyear_last_month'
required=True
selection=[(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')]
opening_date
Date
help='Date from which the accounting is managed in Odoo. It is the date of the opening entry.'
readonly=False
related='company_id.account_opening_date'
required=True
string='Opening Date'
opening_move_posted
Boolean
compute='_compute_opening_move_posted'
string='Opening Move Posted'
action_save_onboarding_fiscal_year(self)
write(self, vals)
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery or invoicing country match the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery or invoicing country match.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position'
note
Text
help='Legal mentions that have to be printed on the invoices.'
translate=True
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
One2many → account.fiscal.position.tax
copy=True
string='Tax Mapping'
args: 'account.fiscal.position.tax', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Integer
default=0
string='Zip Range From'
zip_to
Integer
default=0
string='Zip Range To'
get_fiscal_position(self, partner_id, delivery_id=None)
map_account(self, account)
map_accounts(self, accounts)
map_tax(self, taxes, product=None, partner=None)
account_dest_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Account on Product'
args: 'account.account'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
account_dest_id
Many2one → account.account.template
required=True
string='Account Destination'
args: 'account.account.template'
account_src_id
Many2one → account.account.template
required=True
string='Account Source'
args: 'account.account.template'
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Mapping'
args: 'account.fiscal.position.template'
No public methods.
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
tax_dest_id
Many2one → account.tax
string='Tax to Apply'
args: 'account.tax'
tax_src_id
Many2one → account.tax
required=True
string='Tax on Product'
args: 'account.tax'
No public methods.
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position.template'
tax_dest_id
Many2one → account.tax.template
string='Replacement Tax'
args: 'account.tax.template'
tax_src_id
Many2one → account.tax.template
required=True
string='Tax Source'
args: 'account.tax.template'
No public methods.
account_ids
One2many → account.fiscal.position.account.template
string='Account Mapping'
args: 'account.fiscal.position.account.template', 'position_id'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
country_group_id
Many2one → res.country.group
help='Apply only if delivery or invoicing country match the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery or invoicing country match.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position Template'
note
Text
string='Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
tax_ids
One2many → account.fiscal.position.tax.template
string='Tax Mapping'
args: 'account.fiscal.position.tax.template', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Integer
default=0
string='Zip Range From'
zip_to
Integer
default=0
string='Zip Range To'
No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
date_from
Date
help='Start Date, included in the fiscal year.'
required=True
string='Start Date'
date_to
Date
help='Ending Date, included in the fiscal year.'
required=True
string='End Date'
name
Char
required=True
string='Name'
No public methods.
exchange_move_id
Many2one → account.move
name
Char
copy=False
default=<expr>
required=True
string='Number'
partial_reconcile_ids
One2many → account.partial.reconcile
string='Reconciliation Parts'
args: 'account.partial.reconcile', 'full_reconcile_id'
reconciled_line_ids
One2many → account.move.line
string='Matched Journal Items'
args: 'account.move.line', 'full_reconcile_id'
unlink(self)
code_prefix
Char
name
Char
required=True
parent_id
Many2one → account.group
index=True
ondelete='cascade'
args: 'account.group'
parent_path
Char
index=True
name_get(self)
active
Boolean
default=True
help='By unchecking the active field, you may hide an INCOTERM you will not use.'
args: 'Active'
code
Char
help='Incoterm Standard Code'
required=True
size=3
args: 'Code'
name
Char
help='Incoterms are series of sales terms. They are used to divide transaction costs and responsibilities between buyer and seller and reflect state-of-the-art transportation practices.'
required=True
translate=True
args: 'Name'
No public methods.
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='The partner account used for this invoice.'
readonly=True
states={'draft': [('readonly', False)]}
string='Account'
args: 'account.account'
amount_by_group
Binary
compute='_amount_by_group'
help='type: [(name, amount, base, formated amount, formated base)]'
string='Tax amount by group'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_tax_signed
Monetary
compute='_compute_sign_taxes'
currency_field='currency_id'
readonly=True
string='Tax in Invoice Currency'
amount_total
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Total'
amount_total_company_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
help='Total amount in the currency of the company, negative for credit notes.'
readonly=True
store=True
string='Total in Company Currency'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
help='Total amount in the currency of the invoice, negative for credit notes.'
readonly=True
store=True
string='Total in Invoice Currency'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
track_visibility='always'
amount_untaxed_invoice_signed
Monetary
compute='_compute_sign_taxes'
currency_field='currency_id'
readonly=True
string='Untaxed Amount in Invoice Currency'
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount in Company Currency'
cash_rounding_id
Many2one → account.cash.rounding
help='Defines the smallest coinage of the currency that can be used to pay by cash.'
readonly=True
states={'draft': [('readonly', False)]}
string='Cash Rounding Method'
args: 'account.cash.rounding'
comment
Text
readonly=True
states={'draft': [('readonly', False)]}
args: 'Additional Information'
commercial_partner_id
Many2one → res.partner
compute_sudo=True
help='The commercial entity that will be used on Journal Entries for this invoice'
readonly=True
related='partner_id.commercial_partner_id'
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
default=_default_currency
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Currency'
track_visibility='always'
args: 'res.currency'
date
Date
copy=False
help='Keep empty to use the invoice date.'
readonly=True
states={'draft': [('readonly', False)]}
string='Accounting Date'
date_due
Date
copy=False
help='If you use payment terms, the due date will be computed automatically at the generation of accounting entries. The Payment terms may compute several due dates, for example 50% now and 50% in one month, but if you want to force a due date, make sure that the payment term is not set on the invoice. If you keep the Payment terms and the due date empty, it means direct payment.'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Due Date'
date_invoice
Date
copy=False
help='Keep empty to use the current date'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice Date'
fiscal_position_id
Many2one → account.fiscal.position
oldname='fiscal_position'
readonly=True
states={'draft': [('readonly', False)]}
string='Fiscal Position'
args: 'account.fiscal.position'
has_outstanding
Boolean
compute='_get_outstanding_info_JSON'
groups='account.group_account_invoice'
incoterm_id
Many2one → account.incoterms
default=_get_default_incoterm
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Incoterm'
args: 'account.incoterms'
invoice_icon
Char
compute='_get_vendor_display_info'
store=False
invoice_line_ids
One2many → account.invoice.line
copy=True
oldname='invoice_line'
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice Lines'
args: 'account.invoice.line', 'invoice_id'
journal_id
Many2one → account.journal
default=_default_journal
domain="[('type', 'in', {'out_invoice': ['sale'], 'out_refund': ['sale'], 'in_refund': ['purchase'], 'in_invoice': ['purchase']}.get(type, [])), ('company_id', '=', company_id)]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
copy=False
help='Link to the automatically generated Journal Items.'
index=True
ondelete='restrict'
readonly=True
string='Journal Entry'
args: 'account.move'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the invoice, automatically set when the invoice is validated then stored to set the same number again if the invoice is cancelled, set to draft and re-validated.'
readonly=False
string='Journal Entry Name'
name
Char
copy=False
help='The name that will be used on account move lines'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Reference/Description'
number
Char
copy=False
readonly=True
related='move_id.name'
store=True
origin
Char
help='Reference of the document that produced this invoice.'
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
outstanding_credits_debits_widget
Text
compute='_get_outstanding_info_JSON'
groups='account.group_account_invoice'
partner_bank_id
Many2one → res.partner.bank
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.'
readonly=True
states={'draft': [('readonly', False)]}
string='Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
change_default=True
help='You can find a contact by its Name, TIN, Email or Internal Reference.'
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Partner'
track_visibility='always'
args: 'res.partner'
payment_ids
Many2many → account.payment
copy=False
readonly=True
string='Payments'
args: 'account.payment', 'account_invoice_payment_rel', 'invoice_id', 'payment_id'
payment_move_line_ids
Many2many → account.move.line
compute='_compute_payments'
store=True
string='Payment Move Lines'
args: 'account.move.line'
payment_term_id
Many2one → account.payment.term
help='If you use payment terms, the due date will be computed automatically at the generation of accounting entries. If you keep the payment terms and the due date empty, it means direct payment. The payment terms may compute several due dates, for example 50% now, 50% in one month.'
oldname='payment_term'
readonly=True
states={'draft': [('readonly', False)]}
string='Payment Terms'
args: 'account.payment.term'
payments_widget
Text
compute='_get_payment_info_JSON'
groups='account.group_account_invoice'
reconciled
Boolean
compute='_compute_residual'
help='It indicates that the invoice has been paid and the journal entry of the invoice has been reconciled with one or several journal entries of payment.'
readonly=True
store=True
string='Paid/Reconciled'
reference
Char
copy=False
help='The payment communication that will be automatically populated once the invoice validation. You can also write a free communication.'
readonly=True
states={'draft': [('readonly', False)]}
string='Payment Ref.'
refund_invoice_id
Many2one → account.invoice
string='Invoice for which this invoice is the credit note'
args: 'account.invoice'
refund_invoice_ids
One2many → account.invoice
readonly=True
string='Refund Invoices'
args: 'account.invoice', 'refund_invoice_id'
residual
Monetary
compute='_compute_residual'
help='Remaining amount due.'
store=True
string='Amount Due'
residual_company_signed
Monetary
compute='_compute_residual'
currency_field='company_currency_id'
help='Remaining amount due in the currency of the company.'
store=True
string='Amount Due in Company Currency'
residual_signed
Monetary
compute='_compute_residual'
currency_field='currency_id'
help='Remaining amount due in the currency of the invoice.'
store=True
string='Amount Due in Invoice Currency'
sent
Boolean
copy=False
default=False
help='It indicates that the invoice has been sent.'
readonly=True
sequence_number_next
Char
compute='_get_sequence_number_next'
inverse='_set_sequence_next'
string='Next Number'
sequence_number_next_prefix
Char
compute='_get_sequence_prefix'
string='Next Number Prefix'
source_email
Char
string='Source Email'
track_visibility='onchange'
state
Selection
copy=False
default='draft'
help=" * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n * The 'Open' status is used when user creates invoice, an invoice number is generated. It stays in the open status till the user pays the invoice.\n * The 'In Payment' status is used when payments have been registered for the entirety of the invoice in a journal configured to post entries at bank reconciliation only, and some of them haven't been reconciled with a bank statement line yet.\n * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n * The 'Cancelled' status is used when user cancel invoice."
index=True
readonly=True
string='Status'
track_visibility='onchange'
args: [('draft', 'Draft'), ('open', 'Open'), ('in_payment', 'In Payment'), ('paid', 'Paid'), ('cancel', 'Cancelled')]
tax_line_ids
One2many → account.invoice.tax
copy=True
oldname='tax_line'
readonly=True
states={'draft': [('readonly', False)]}
string='Tax Lines'
args: 'account.invoice.tax', 'invoice_id'
type
Selection
change_default=True
default=<expr>
index=True
readonly=True
states={'draft': [('readonly', False)]}
track_visibility='always'
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
user_id
Many2one → res.users
copy=False
default=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Salesperson'
track_visibility='onchange'
args: 'res.users'
vendor_bill_id
Many2one → account.invoice
help='Auto-complete from a past bill.'
string='Vendor Bill'
args: 'account.invoice'
vendor_display_name
Char
compute='_get_vendor_display_info'
store=True
action_cancel(self)
action_date_assign(self)
action_invoice_cancel(self)
action_invoice_draft(self)
action_invoice_open(self)
action_invoice_paid(self)
action_invoice_re_open(self)
action_invoice_sent(self)
action_move_create(self)
assign_outstanding_credit(self, credit_aml_id)
complete_empty_list_help(self)
compute_invoice_totals(self, company_currency, invoice_move_lines)
compute_taxes(self)
create(self, vals)
default_get(self, default_fields)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
finalize_invoice_move_lines(self, move_lines)
get_delivery_partner_id(self)
get_formview_id(self, access_uid=None)
get_taxes_values(self)
group_lines(self, iml, line)
inv_line_characteristic_hashcode(self, invoice_line)
invoice_line_move_line_get(self)
invoice_print(self)
invoice_validate(self)
line_get_convert(self, line, part)
message_new(self, msg_dict, custom_values=None)
message_post(self, **kwargs)
name_get(self)
pay_and_reconcile(self, pay_journal, pay_amount=None, date=None, writeoff_acc=None)
preview_invoice(self)
refund(self, date_invoice=None, date=None, description=None, journal_id=None)
register_payment(self, payment_line, writeoff_acc_id=False, writeoff_journal_id=False)
tax_line_move_line_get(self)
unlink(self)
validate_partner_bank_id(self)
No new fields.
Public methods (1)invoice_confirm(self)
attachment_ids
Many2many → ir.attachment
string='Files'
args: 'ir.attachment'
journal_id
Many2one → account.journal
comodel_name='account.journal'
default=_get_default_journal_id
domain="[('type', '=', 'purchase')]"
help='Journal where to generate the bills'
required=True
string='Journal'
create_invoices(self)
account_analytic_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
account_id
Many2one → account.account
default=_default_account
domain=[('deprecated', '=', False)]
help='The income or expense account related to the selected product.'
string='Account'
args: 'account.account'
analytic_tag_ids
Many2many → account.analytic.tag
string='Analytic Tags'
args: 'account.analytic.tag'
company_currency_id
Many2one → res.currency
readonly=True
related='invoice_id.company_currency_id'
related_sudo=False
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
related='invoice_id.company_id'
related_sudo=False
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
readonly=False
related='invoice_id.currency_id'
related_sudo=False
store=True
args: 'res.currency'
discount
Float
default=0.0
digits=dp.get_precision('Discount')
string='Discount (%)'
display_type
Selection
default=False
help='Technical field for UX purpose.'
args: [('line_section', 'Section'), ('line_note', 'Note')]
invoice_id
Many2one → account.invoice
index=True
ondelete='cascade'
string='Invoice Reference'
args: 'account.invoice'
invoice_line_tax_ids
Many2many → account.tax
domain=[('type_tax_use', '!=', 'none'), '|', ('active', '=', False), ('active', '=', True)]
oldname='invoice_line_tax_id'
string='Taxes'
args: 'account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id'
invoice_type
Selection
readonly=True
related='invoice_id.type'
is_rounding_line
Boolean
help='Is a rounding line in case of cash rounding.'
string='Rounding Line'
name
Text
required=True
string='Description'
origin
Char
help='Reference of the document that produced this invoice.'
string='Source Document'
partner_id
Many2one → res.partner
readonly=True
related='invoice_id.partner_id'
related_sudo=False
store=True
string='Partner'
args: 'res.partner'
price_subtotal
Monetary
compute='_compute_price'
help='Total amount without taxes'
readonly=True
store=True
string='Amount (without Taxes)'
price_subtotal_signed
Monetary
compute='_compute_price'
currency_field='company_currency_id'
help='Total amount in the currency of the company, negative for credit note.'
readonly=True
store=True
string='Amount Signed'
price_tax
Monetary
compute='_get_price_tax'
store=False
string='Tax Amount'
price_total
Monetary
compute='_compute_price'
help='Total amount with taxes'
readonly=True
store=True
string='Amount (with Taxes)'
price_unit
Float
digits=dp.get_precision('Product Price')
required=True
string='Unit Price'
product_id
Many2one → product.product
index=True
ondelete='restrict'
string='Product'
args: 'product.product'
product_image
Binary
readonly=True
related='product_id.image'
store=False
args: 'Product Image'
quantity
Float
default=1
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity'
sequence
Integer
default=10
help='Gives the sequence of this line when displaying the invoice.'
uom_id
Many2one → uom.uom
index=True
oldname='uos_id'
ondelete='set null'
string='Unit of Measure'
args: 'uom.uom'
create(self, vals_list)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_invoice_line_account(self, type, product, fpos, company)
unlink(self)
write(self, values)
date
Date
string='Accounting Date'
date_invoice
Date
default=fields.Date.context_today
required=True
string='Credit Note Date'
description
Char
default=_get_reason
required=True
string='Reason'
filter_refund
Selection
default='refund'
help='Choose how you want to credit this invoice. You cannot Modify and Cancel if the invoice is already reconciled'
required=True
string='Credit Method'
args: [('refund', 'Create a draft credit note'), ('cancel', 'Cancel: create credit note and reconcile'), ('modify', 'Modify: create credit note, reconcile and create a new draft invoice')]
refund_only
Boolean
compute='_get_refund_only'
string='Technical field to hide filter_refund in case invoice is partially paid'
compute_refund(self, mode='refund')
invoice_refund(self)
account_analytic_id
Many2one → account.analytic.account
groups='analytic.group_analytic_accounting'
string='Analytic Account'
args: 'account.analytic.account'
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Receivable/Payable Account'
args: 'account.account'
account_line_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Revenue/Expense Account'
args: 'account.account'
amount_total
Float
readonly=True
string='Total'
categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
commercial_partner_id
Many2one → res.partner
help='Commercial Entity'
string='Partner Company'
args: 'res.partner'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string="Partner Company's Country"
args: 'res.country'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
currency_rate
Float
group_operator='avg'
groups='base.group_multi_currency'
readonly=True
string='Currency Rate'
date
Date
readonly=True
string='Invoice Date'
date_due
Date
readonly=True
string='Due Date'
fiscal_position_id
Many2one → account.fiscal.position
oldname='fiscal_position'
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
invoice_id
Many2one → account.invoice
readonly=True
args: 'account.invoice'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
nbr
Integer
readonly=True
string='Line Count'
number
Char
readonly=True
args: 'Invoice #'
partner_bank_id
Many2one → res.partner.bank
readonly=True
string='Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
payment_term_id
Many2one → account.payment.term
oldname='payment_term'
readonly=True
string='Payment Terms'
args: 'account.payment.term'
price_average
Float
group_operator='avg'
readonly=True
string='Average Price'
price_total
Float
readonly=True
string='Untaxed Total'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_qty
Float
readonly=True
string='Product Quantity'
residual
Float
readonly=True
string='Due Amount'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('open', 'Open'), ('paid', 'Paid'), ('cancel', 'Cancelled')]
type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
uom_name
Char
readonly=True
string='Reference Unit of Measure'
user_currency_price_average
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Average Price in Currency'
user_currency_price_total
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Total Without Tax in Currency'
user_currency_residual
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Total Residual'
user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
init(self)
composer_id
Many2one → mail.compose.message
ondelete='cascade'
required=True
string='Composer'
args: 'mail.compose.message'
invoice_ids
Many2many → account.invoice
string='Invoices'
args: 'account.invoice', 'account_invoice_account_invoice_send_rel'
invoice_without_email
Text
compute='_compute_invoice_without_email'
string='invoice(s) that will not be sent'
is_email
Boolean
default=<expr>
args: 'Email'
is_print
Boolean
default=<expr>
args: 'Print'
printed
Boolean
default=False
args: 'Is Printed'
template_id
Many2one → mail.template
domain="[('model', '=', 'account.invoice')]"
index=True
args: 'mail.template', 'Use template'
default_get(self, fields)
onchange_template_id(self)
save_as_template(self)
send_and_print_action(self)
account_analytic_id
Many2one → account.analytic.account
string='Analytic account'
args: 'account.analytic.account'
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Tax Account'
args: 'account.account'
amount
Monetary
amount_rounding
Monetary
amount_total
Monetary
compute='_compute_amount_total'
string='Amount Total'
analytic_tag_ids
Many2many → account.analytic.tag
string='Analytic Tags'
args: 'account.analytic.tag'
base
Monetary
compute='_compute_base_amount'
store=True
string='Base'
company_id
Many2one → res.company
readonly=True
related='account_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
readonly=True
related='invoice_id.currency_id'
store=True
args: 'res.currency'
invoice_id
Many2one → account.invoice
index=True
ondelete='cascade'
string='Invoice'
args: 'account.invoice'
manual
Boolean
default=True
name
Char
required=True
string='Tax Description'
sequence
Integer
help='Gives the sequence order when displaying a list of invoice tax.'
tax_id
Many2one → account.tax
ondelete='restrict'
string='Tax'
args: 'account.tax'
No public methods.
account_control_ids
Many2many → account.account
domain=[('deprecated', '=', False)]
string='Accounts Allowed'
args: 'account.account', 'account_account_type_rel', 'journal_id', 'account_id'
active
Boolean
default=True
help='Set active to false to hide the Journal without removing it.'
alias_domain
Char
compute='_compute_alias_domain'
default=<expr>
args: 'Alias domain'
alias_id
Many2one → mail.alias
copy=False
string='Alias'
args: 'mail.alias'
alias_name
Char
help='It creates draft vendor bill by sending an email.'
readonly=False
related='alias_id.alias_name'
args: 'Alias Name for Vendor Bills'
at_least_one_inbound
Boolean
compute='_methods_compute'
store=True
at_least_one_outbound
Boolean
compute='_methods_compute'
store=True
bank_acc_number
Char
readonly=False
related='bank_account_id.acc_number'
bank_account_id
Many2one → res.partner.bank
copy=False
domain="[('partner_id','=', company_partner_id)]"
ondelete='restrict'
string='Bank Account'
args: 'res.partner.bank'
bank_id
Many2one → res.bank
readonly=False
related='bank_account_id.bank_id'
args: 'res.bank'
bank_statements_source
Selection
default='undefined'
help='Defines how the bank statements will be registered'
selection=_get_bank_statements_available_sources
string='Bank Feeds'
belongs_to_company
Boolean
compute='_belong_to_company'
search='_search_company_journals'
args: "Belong to the user's current company"
code
Char
help='The journal entries of this journal will be named using this prefix.'
required=True
size=5
string='Short Code'
company_id
Many2one → res.company
default=<expr>
help='Company related to this journal'
index=True
required=True
string='Company'
args: 'res.company'
company_partner_id
Many2one → res.partner
readonly=True
related='company_id.partner_id'
store=False
string='Account Holder'
args: 'res.partner'
currency_id
Many2one → res.currency
help='The currency used to enter statement'
oldname='currency'
string='Currency'
args: 'res.currency'
default_credit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='It acts as a default account for credit amount'
string='Default Credit Account'
args: 'account.account'
default_debit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='It acts as a default account for debit amount'
string='Default Debit Account'
args: 'account.account'
group_invoice_lines
Boolean
help='If this box is checked, the system will try to group the accounting lines when generating them from invoices.'
string='Group Invoice Lines'
inbound_payment_method_ids
Many2many → account.payment.method
default=<expr>
domain=[('payment_type', '=', 'inbound')]
help='Manual: Get paid by cash, check or any other method outside of Odoo.\nElectronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\nBatch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo,you are suggested to reconcile the transaction with the batch deposit. Enable this option from the settings.'
string='For Incoming Payments'
args: 'account.payment.method', 'account_journal_inbound_payment_method_rel', 'journal_id', 'inbound_payment_method'
loss_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Used to register a loss when the ending balance of a cash register differs from what the system computes'
string='Loss Account'
args: 'account.account'
name
Char
required=True
string='Journal Name'
outbound_payment_method_ids
Many2many → account.payment.method
default=<expr>
domain=[('payment_type', '=', 'outbound')]
help='Manual:Pay bill by cash or any other method outside of Odoo.\nCheck:Pay bill by check and print it from Odoo.\nSEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. Enable this option from the settings.'
string='For Outgoing Payments'
args: 'account.payment.method', 'account_journal_outbound_payment_method_rel', 'journal_id', 'outbound_payment_method'
post_at_bank_rec
Boolean
help='Whether or not the payments made in this journal should be generated in draft state, so that the related journal entries are only posted when performing bank reconciliation.'
string='Post At Bank Reconciliation'
profit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Used to register a profit when the ending balance of a cash register differs from what the system computes'
string='Profit Account'
args: 'account.account'
refund_sequence
Boolean
default=False
help="Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal"
string='Dedicated Credit Note Sequence'
refund_sequence_id
Many2one → ir.sequence
copy=False
help='This field contains the information related to the numbering of the credit note entries of this journal.'
string='Credit Note Entry Sequence'
args: 'ir.sequence'
refund_sequence_number_next
Integer
compute='_compute_refund_seq_number_next'
help='The next sequence number will be used for the next credit note.'
inverse='_inverse_refund_seq_number_next'
string='Credit Notes: Next Number'
sequence
Integer
default=10
help='Used to order Journals in the dashboard view'
sequence_id
Many2one → ir.sequence
copy=False
help='This field contains the information related to the numbering of the journal entries of this journal.'
required=True
string='Entry Sequence'
args: 'ir.sequence'
sequence_number_next
Integer
compute='_compute_seq_number_next'
help='The next sequence number will be used for the next invoice.'
inverse='_inverse_seq_number_next'
string='Next Number'
type
Selection
help="Select 'Sale' for customer invoices journals.\nSelect 'Purchase' for vendor bills journals.\nSelect 'Cash' or 'Bank' for journals that are used in customer or vendor payments.\nSelect 'General' for miscellaneous operations journals."
required=True
args: [('sale', 'Sale'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('bank', 'Bank'), ('general', 'Miscellaneous')]
type_control_ids
Many2many → account.account.type
string='Account Types Allowed'
args: 'account.account.type', 'account_journal_type_rel', 'journal_id', 'type_id'
update_posted
Boolean
help='Check this box if you want to allow the cancellation the entries related to this journal or of the invoice related to this journal'
string='Allow Cancelling Entries'
action_configure_bank_journal(self)
copy(self, default=None)
create(self, vals)
get_next_bank_cash_default_code(self, journal_type, company_id)
name_get(self)
onchange_credit_account_id(self)
onchange_debit_account_id(self)
set_bank_account(self, acc_number, bank_id=None)
unlink(self)
write(self, vals)
color
Integer
default=0
args: 'Color Index'
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
action_open_reconcile(self)
create_bank_statement(self)
create_cash_statement(self)
create_customer_payment(self)
create_internal_transfer(self)
create_supplier_payment(self)
get_bar_graph_datas(self)
get_journal_dashboard_datas(self)
get_line_graph_datas(self)
mark_bank_setup_as_done_action(self)
open_action(self)
open_action_with_context(self)
open_collect_money(self)
open_payments_action(self, payment_type, mode='tree')
open_spend_money(self)
open_transfer_money(self)
unmark_bank_setup_as_done_action(self)
amount
Monetary
compute='_amount_compute'
store=True
auto_reverse
Boolean
default=False
help='If this checkbox is ticked, this entry will be automatically reversed at the reversal date you defined.'
string='Reverse Automatically'
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'
store=True
string='Currency'
args: 'res.currency'
date
Date
default=fields.Date.context_today
index=True
required=True
states={'posted': [('readonly', True)]}
dummy_account_id
Many2one → account.account
readonly=True
related='line_ids.account_id'
store=False
string='Account'
args: 'account.account'
journal_id
Many2one → account.journal
default=_get_default_journal
required=True
states={'posted': [('readonly', True)]}
string='Journal'
args: 'account.journal'
line_ids
One2many → account.move.line
copy=True
states={'posted': [('readonly', True)]}
string='Journal Items'
args: 'account.move.line', 'move_id'
matched_percentage
Float
compute='_compute_matched_percentage'
digits=0
help='Technical field used in cash basis method'
readonly=True
store=True
args: 'Percentage Matched'
name
Char
copy=False
default='/'
required=True
string='Number'
narration
Text
string='Internal Note'
partner_id
Many2one → res.partner
compute='_compute_partner_id'
readonly=True
store=True
string='Partner'
args: 'res.partner'
ref
Char
copy=False
string='Reference'
reverse_date
Date
help='Date of the reverse accounting entry.'
string='Reversal Date'
reverse_entry_id
Many2one → account.move
String='Reverse entry'
copy=False
readonly=True
store=True
args: 'account.move'
state
Selection
copy=False
default='draft'
help="All manually created new journal entries are usually in the status 'Unposted', but you can set the option to skip that status on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in 'Posted' status."
readonly=True
required=True
string='Status'
args: [('draft', 'Unposted'), ('posted', 'Posted')]
tax_cash_basis_rec_id
Many2one → account.partial.reconcile
help='Technical field used to keep track of the tax cash basis reconciliation. This is needed when cancelling the source: it will post the inverse journal entry to cancel that part too.'
string='Tax Cash Basis Entry of'
args: 'account.partial.reconcile'
tax_type_domain
Char
help='Technical field used to have a dynamic taxes domain on the form view.'
store=False
action_duplicate(self)
action_post(self)
action_view_reverse_entry(self)
assert_balanced(self)
button_cancel(self)
create(self, vals)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
name_get(self)
open_reconcile_view(self)
post(self, invoice=False)
reverse_moves(self, date=None, journal_id=None, auto=False)
unlink(self)
update_lines_tax_exigibility(self)
write(self, vals)
account_id
Many2one → account.account
auto_join=True
default=<expr>
domain=[('deprecated', '=', False)]
index=True
ondelete='restrict'
required=True
string='Account'
args: 'account.account'
amount_currency
Monetary
default=0.0
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
amount_residual
Monetary
compute='_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
compute='_amount_residual'
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_account_id
Many2one → account.analytic.account
index=True
string='Analytic Account'
args: 'account.analytic.account'
analytic_line_ids
One2many → account.analytic.line
oldname='analytic_lines'
string='Analytic lines'
args: 'account.analytic.line', 'move_id'
analytic_tag_ids
Many2many → account.analytic.tag
string='Analytic Tags'
args: 'account.analytic.tag'
balance
Monetary
compute='_store_balance'
currency_field='company_currency_id'
help='Technical field holding the debit - credit in order to open meaningful graph views from reports'
store=True
balance_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
help='Technical field holding the debit_cash_basis - credit_cash_basis in order to open meaningful graph views from reports'
store=True
blocked
Boolean
default=False
help='You can check this box to mark this journal item as a litigation with the associated partner'
string='No Follow-up'
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
related='account_id.company_id'
store=True
string='Company'
args: 'res.company'
counterpart
Char
compute='_get_counterpart'
help='Compute the counter part accounts of this journal item for this journal entry. This can be needed in reports.'
args: 'Counterpart'
credit
Monetary
currency_field='company_currency_id'
default=0.0
credit_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
store=True
currency_id
Many2one → res.currency
default=_get_currency
help='The optional other currency if it is a multi-currency entry.'
string='Currency'
args: 'res.currency'
date
Date
copy=False
index=True
readonly=False
related='move_id.date'
store=True
string='Date'
date_maturity
Date
copy=False
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
required=True
string='Due date'
debit
Monetary
currency_field='company_currency_id'
default=0.0
debit_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
store=True
full_reconcile_id
Many2one → account.full.reconcile
copy=False
string='Matching Number'
args: 'account.full.reconcile'
invoice_id
Many2one → account.invoice
copy=False
oldname='invoice'
args: 'account.invoice'
journal_id
Many2one → account.journal
copy=False
index=True
readonly=False
related='move_id.journal_id'
store=True
string='Journal'
args: 'account.journal'
matched_credit_ids
One2many → account.partial.reconcile
String='Matched Credits'
help='Credit journal items that are matched with this journal item.'
args: 'account.partial.reconcile', 'debit_move_id'
matched_debit_ids
One2many → account.partial.reconcile
String='Matched Debits'
help='Debit journal items that are matched with this journal item.'
args: 'account.partial.reconcile', 'credit_move_id'
move_id
Many2one → account.move
auto_join=True
help='The move of this entry line.'
index=True
ondelete='cascade'
required=True
string='Journal Entry'
args: 'account.move'
name
Char
string='Label'
narration
Text
readonly=False
related='move_id.narration'
string='Narration'
parent_state
Char
compute='_compute_parent_state'
help='State of the parent account.move'
partner_id
Many2one → res.partner
ondelete='restrict'
string='Partner'
args: 'res.partner'
payment_id
Many2one → account.payment
copy=False
help='Payment that created this entry'
string='Originator Payment'
args: 'account.payment'
product_id
Many2one → product.product
string='Product'
args: 'product.product'
product_uom_id
Many2one → uom.uom
string='Unit of Measure'
args: 'uom.uom'
quantity
Float
digits=dp.get_precision('Product Unit of Measure')
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
recompute_tax_line
Boolean
help='Technical field used to know if the tax_ids field has been modified in the UI.'
store=False
reconciled
Boolean
compute='_amount_residual'
store=True
ref
Char
copy=False
index=True
readonly=False
related='move_id.ref'
store=True
string='Reference'
statement_id
Many2one → account.bank.statement
copy=False
help='The bank statement used for bank reconciliation'
index=True
related='statement_line_id.statement_id'
store=True
string='Statement'
args: 'account.bank.statement'
statement_line_id
Many2one → account.bank.statement.line
copy=False
index=True
readonly=True
string='Bank statement line reconciled with this entry'
args: 'account.bank.statement.line'
tax_base_amount
Monetary
compute='_compute_tax_base_amount'
currency_field='company_currency_id'
store=True
string='Base Amount'
tax_exigible
Boolean
default=True
help='Technical field used to mark a tax line as exigible in the vat report or not (only exigible journal items are displayed). By default all new journal items are directly exigible, but with the feature cash_basis on taxes, some will become exigible only when the payment is recorded.'
string='Appears in VAT report'
tax_ids
Many2many → account.tax
domain=['|', ('active', '=', False), ('active', '=', True)]
help='Taxes that apply on the base amount'
string='Taxes Applied'
args: 'account.tax'
tax_line_grouping_key
Char
help='Technical field used to store the old values of fields used to compute tax lines (in account.move form view) between the moment the user changed it and the moment the ORM reflects that change in its one2many'
store=False
string='Old Taxes'
tax_line_id
Many2one → account.tax
help='Indicates that this journal item is a tax line'
ondelete='restrict'
string='Originator tax'
args: 'account.tax'
user_type_id
Many2one → account.account.type
index=True
oldname='user_type'
readonly=True
related='account_id.user_type_id'
store=True
args: 'account.account.type'
auto_reconcile_lines(self)
check_full_reconcile(self)
create(self, vals_list)
create_analytic_lines(self)
default_get(self, fields)
init(self)
name_get(self)
onchange_tax_ids_create_aml(self)
open_reconcile_view(self)
reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False)
remove_move_reconcile(self)
unlink(self)
write(self, vals)
date
Date
default=fields.Date.context_today
required=True
string='Reversal date'
journal_id
Many2one → account.journal
help='If empty, uses the journal of the journal entry to be reversed.'
string='Use Specific Journal'
args: 'account.journal'
reverse_moves(self)
amount
Monetary
currency_field='company_currency_id'
help='Amount concerned by this matching. Assumed to be always positive'
amount_currency
Monetary
string='Amount in Currency'
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
readonly=False
related='debit_move_id.company_id'
store=True
string='Company'
args: 'res.company'
credit_move_id
Many2one → account.move.line
index=True
required=True
args: 'account.move.line'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
debit_move_id
Many2one → account.move.line
index=True
required=True
args: 'account.move.line'
full_reconcile_id
Many2one → account.full.reconcile
copy=False
string='Full Reconcile'
args: 'account.full.reconcile'
max_date
Date
compute='_compute_max_date'
copy=False
help='Technical field used to determine at which date this reconciliation needs to be shown on the aged receivable/payable reports.'
readonly=True
store=True
string='Max Date of Matched Lines'
create_exchange_rate_entry(self, aml_to_fix, move)
create_tax_cash_basis_entry(self, percentage_before_rec)
unlink(self)
company_id
Many2one → res.company
readonly=True
related='journal_id.company_id'
string='Company'
args: 'res.company'
destination_account_id
Many2one → account.account
compute='_compute_destination_account_id'
readonly=True
args: 'account.account'
destination_journal_id
Many2one → account.journal
domain=[('type', 'in', ('bank', 'cash'))]
string='Transfer To'
args: 'account.journal'
has_invoices
Boolean
compute='_compute_reconciled_invoice_ids'
help='Technical field used for usability purposes'
invoice_ids
Many2many → account.invoice
copy=False
help='Technical field containing the invoices for which the payment has been generated.\n This does not especially correspond to the invoices reconciled with the payment,\n as it can have been generated first, and reconciled later'
readonly=True
string='Invoices'
args: 'account.invoice', 'account_invoice_payment_rel', 'payment_id', 'invoice_id'
move_line_ids
One2many → account.move.line
copy=False
ondelete='restrict'
readonly=True
args: 'account.move.line', 'payment_id'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the journal entry, automatically set when the statement line is reconciled then stored to set the same number again if the line is cancelled, set to draft and re-processed again.'
readonly=True
string='Journal Entry Name'
move_reconciled
Boolean
compute='_get_move_reconciled'
readonly=True
name
Char
copy=False
readonly=True
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
readonly=True
payment_type
Selection
selection_add=[('transfer', 'Internal Transfer')]
reconciled_invoice_ids
Many2many → account.invoice
compute='_compute_reconciled_invoice_ids'
help="Invoices whose journal items have been reconciled with this payment's."
string='Reconciled Invoices'
args: 'account.invoice'
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
args: [('draft', 'Draft'), ('posted', 'Posted'), ('sent', 'Sent'), ('reconciled', 'Reconciled'), ('cancelled', 'Cancelled')]
action_draft(self)
action_validate_invoice_payment(self)
button_dummy(self)
button_invoices(self)
button_journal_entries(self)
cancel(self)
create(self, vals)
default_get(self, fields)
open_payment_matching_screen(self)
post(self)
unlink(self)
unreconcile(self)
code
Char
required=True
name
Char
required=True
translate=True
payment_type
Selection
required=True
args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
No public methods.
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment terms without removing it.'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Terms'
translate=True
note
Text
string='Description on the Invoice'
translate=True
sequence
Integer
default=10
required=True
compute(self, value, date_ref=False)
unlink(self)
day_of_the_month
Integer
help='Day of the month on which the invoice must come to its term. If zero or negative, this value will be ignored, and no specific day will be set. If greater than the last day of a month, this number will instead select the last day of this month.'
string='Day of the month'
days
Integer
default=0
required=True
string='Number of Days'
option
Selection
default='day_after_invoice_date'
required=True
string='Options'
args: [('day_after_invoice_date', 'day(s) after the invoice date'), ('after_invoice_month', 'day(s) after the end of the invoice month'), ('day_following_month', 'of the following month'), ('day_current_month', 'of the current month')]
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Terms'
args: 'account.payment.term'
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of payment terms lines.'
value
Selection
default='balance'
help='Select here the kind of valuation related to this payment terms line.'
required=True
string='Type'
args: [('balance', 'Balance'), ('percent', 'Percent'), ('fixed', 'Fixed Amount')]
value_amount
Float
digits=dp.get_precision('Payment Terms')
help='For percent enter a ratio between 0-100.'
string='Value'
No public methods.
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
sort_selection
Selection
default='move_name'
required=True
args: [('date', 'Date'), ('move_name', 'Journal Entry Number')], 'Entries Sorted by'
No public methods.
account_id
Many2one → account.account
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
ondelete='cascade'
string='Account'
args: 'account.account'
amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Write-off Amount'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance')]
analytic_account_id
Many2one → account.analytic.account
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='set null'
string='Analytic Account'
args: 'account.analytic.account'
analytic_tag_ids
Many2many → account.analytic.tag
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
string='Analytic Tags'
args: 'account.analytic.tag'
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
force_second_tax_included
Boolean
help='Force the second tax to be managed as a price included tax.'
string='Second Tax Included in Price'
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
has_second_line
Boolean
default=False
string='Add a second line'
is_second_tax_price_included
Boolean
help='Technical field used inside the view to make the force_second_tax_included field readonly if the tax is already price included.'
related='second_tax_id.price_include'
string='Is Second Tax Included in Price'
is_tax_price_included
Boolean
help='Technical field used inside the view to make the force_tax_included field readonly if the tax is already price included.'
related='tax_id.price_include'
string='Is Tax Included in Price'
journal_id
Many2one → account.journal
domain="[('company_id', '=', company_id)]"
help='This field is ignored in a bank statement reconciliation.'
ondelete='cascade'
string='Journal'
args: 'account.journal'
label
Char
string='Journal Item Label'
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount'
match_amount_max
Float
string='Amount Max Parameter'
match_amount_min
Float
string='Amount Min Parameter'
match_journal_ids
Many2many → account.journal
domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id)]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
match_label_param
Char
string='Label Parameter'
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Amount Received'), ('amount_paid', 'Amount Paid'), ('both', 'Amount Paid/Received')]
string='Amount Nature'
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner Is Set'
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Restrict Partner Categories to'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Restrict Partners to'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency Matching'
match_total_amount
Boolean
default=True
help='The sum of total residual amount propositions matches the statement line amount.'
string='Amount Matching'
match_total_amount_param
Float
default=100
help='The sum of total residual amount propositions matches the statement line amount under this percentage.'
string='Amount Matching %'
name
Char
required=True
string='Name'
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', _('Manually create a write-off on clicked button.')), ('writeoff_suggestion', _('Suggest counterpart values.')), ('invoice_matching', _('Match existing invoices/bills.'))]
string='Type'
second_account_id
Many2one → account.account
domain="[('deprecated', '=', False), ('company_id', '=', company_id)]"
ondelete='cascade'
string='Second Account'
args: 'account.account'
second_amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Second Write-off Amount'
second_amount_type
Selection
default='percentage'
required=True
string='Second Amount type'
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of amount')]
second_analytic_account_id
Many2one → account.analytic.account
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
ondelete='set null'
string='Second Analytic Account'
args: 'account.analytic.account'
second_analytic_tag_ids
Many2many → account.analytic.tag
domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"
string='Second Analytic Tags'
args: 'account.analytic.tag'
second_journal_id
Many2one → account.journal
domain="[('company_id', '=', company_id)]"
help='This field is ignored in a bank statement reconciliation.'
ondelete='cascade'
string='Second Journal'
args: 'account.journal'
second_label
Char
string='Second Journal Item Label'
second_tax_amount_type
Selection
help='Technical field used inside the view to make the force_second_tax_included field invisible if the tax is a group.'
related='second_tax_id.amount_type'
string='Second Tax Amount Type'
second_tax_id
Many2one → account.tax
domain="[('type_tax_use', '=', 'purchase'), ('company_id', '=', company_id)]"
ondelete='restrict'
string='Second Tax'
args: 'account.tax'
sequence
Integer
default=10
required=True
tax_amount_type
Selection
help='Technical field used inside the view to make the force_tax_included field invisible if the tax is a group.'
related='tax_id.amount_type'
string='Tax Amount Type'
tax_id
Many2one → account.tax
domain="[('company_id', '=', company_id)]"
ondelete='restrict'
string='Tax'
args: 'account.tax'
onchange_name(self)
account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Account'
args: 'account.account.template'
amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Write-off Amount'
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance')]
auto_reconcile
Boolean
help='Validate the statement line automatically (reconciliation based on your rule).'
string='Auto-validate'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
force_second_tax_included
Boolean
help='Force the second tax to be managed as a price included tax.'
string='Second Tax Included in Price'
force_tax_included
Boolean
help='Force the tax to be managed as a price included tax.'
string='Tax Included in Price'
has_second_line
Boolean
default=False
string='Add a second line'
label
Char
string='Journal Item Label'
match_amount
Selection
help='The reconciliation model will only be applied when the amount being lower than, greater than or between specified amount(s).'
selection=[('lower', 'Is Lower Than'), ('greater', 'Is Greater Than'), ('between', 'Is Between')]
string='Amount'
match_amount_max
Float
string='Amount Max Parameter'
match_amount_min
Float
string='Amount Min Parameter'
match_journal_ids
Many2many → account.journal
domain="[('type', 'in', ('bank', 'cash'))]"
help='The reconciliation model will only be available from the selected journals.'
string='Journals'
args: 'account.journal'
match_label
Selection
help='The reconciliation model will only be applied when the label:\n * Contains: The proposition label must contains this string (case insensitive).\n * Not Contains: Negation of "Contains".\n * Match Regex: Define your own regular expression.'
selection=[('contains', 'Contains'), ('not_contains', 'Not Contains'), ('match_regex', 'Match Regex')]
string='Label'
match_label_param
Char
string='Label Parameter'
match_nature
Selection
default='both'
help='The reconciliation model will only be applied to the selected transaction type:\n * Amount Received: Only applied when receiving an amount.\n * Amount Paid: Only applied when paying an amount.\n * Amount Paid/Received: Applied in both cases.'
required=True
selection=[('amount_received', 'Amount Received'), ('amount_paid', 'Amount Paid'), ('both', 'Amount Paid/Received')]
string='Amount Nature'
match_partner
Boolean
help='The reconciliation model will only be applied when a customer/vendor is set.'
string='Partner Is Set'
match_partner_category_ids
Many2many → res.partner.category
help='The reconciliation model will only be applied to the selected customer/vendor categories.'
string='Restrict Partner Categories to'
args: 'res.partner.category'
match_partner_ids
Many2many → res.partner
help='The reconciliation model will only be applied to the selected customers/vendors.'
string='Restrict Partners to'
args: 'res.partner'
match_same_currency
Boolean
default=True
help='Restrict to propositions having the same currency as the statement line.'
string='Same Currency Matching'
match_total_amount
Boolean
default=True
help='The sum of total residual amount propositions matches the statement line amount.'
string='Amount Matching'
match_total_amount_param
Float
default=100
help='The sum of total residual amount propositions matches the statement line amount under this percentage.'
string='Amount Matching %'
name
Char
required=True
string='Button Label'
rule_type
Selection
default='writeoff_button'
required=True
selection=[('writeoff_button', _('Manually create a write-off on clicked button.')), ('writeoff_suggestion', _('Suggest a write-off.')), ('invoice_matching', _('Match existing invoices/bills.'))]
string='Type'
second_account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Second Account'
args: 'account.account.template'
second_amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Second Write-off Amount'
second_amount_type
Selection
default='percentage'
required=True
string='Second Amount type'
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of amount')]
second_label
Char
string='Second Journal Item Label'
second_tax_id
Many2one → account.tax.template
domain=[('type_tax_use', '=', 'purchase')]
ondelete='restrict'
string='Second Tax'
args: 'account.tax.template'
sequence
Integer
default=10
required=True
tax_id
Many2one → account.tax.template
domain=[('type_tax_use', '=', 'purchase')]
ondelete='restrict'
string='Tax'
args: 'account.tax.template'
No public methods.
No new fields.
Public methods (8)get_all_data_for_manual_reconciliation(self, partner_ids, account_ids)
get_bank_statement_data(self, bank_statement_ids)
get_bank_statement_line_data(self, st_line_ids, excluded_ids=None)
get_data_for_manual_reconciliation(self, res_type, res_ids=None, account_type=None)
get_move_lines_for_bank_statement_line(self, st_line_id, partner_id=None, excluded_ids=None, search_str=False, offset=0, limit=None)
get_move_lines_for_manual_reconciliation(self, account_id, partner_id=False, excluded_ids=None, search_str=False, offset=0, limit=None, target_currency_id=False)
process_bank_statement_line(self, st_line_ids, data)
process_move_lines(self, data)
group_invoices
Boolean
help='If enabled, groups invoices by commercial partner, invoice account,\n type and recipient bank account in the generated payments. If disabled,\n a distinct payment will be generated for each invoice.'
string='Group Invoices'
show_communication_field
Boolean
compute='_compute_show_communication_field'
create_payments(self)
default_get(self, fields)
get_payments_vals(self)
create_or_link_option
Selection
default='new'
selection=[('new', 'Create new journal'), ('link', 'Link to an existing journal')]
linked_journal_id
Many2one → account.journal
comodel_name='account.journal'
compute='compute_linked_journal_id'
inverse='set_linked_journal_id'
string='Journal'
new_journal_code
Char
default=<expr>
required=True
string='Code'
new_journal_name
Char
compute='compute_new_journal_related_data'
help='Will be used to name the Journal related to this bank account'
inverse='set_linked_journal_id'
required=True
related_acc_type
Selection
compute='_compute_related_acc_type'
selection=<expr>
string='Account Type'
res_partner_bank_id
Many2one → res.partner.bank
comodel_name='res.partner.bank'
ondelete='cascade'
required=True
compute_linked_journal_id(self)
compute_new_journal_related_data(self)
create(self, vals)
set_linked_journal_id(self)
validate(self)
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Account that will be set on invoice tax lines for invoices. Leave empty to use the expense account.'
oldname='account_collected_id'
ondelete='restrict'
string='Tax Account'
args: 'account.account'
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
oldname='type'
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Include in Analytic Cost'
cash_basis_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Account used as counterpart for the journal entry, for taxes eligible based on payments.'
oldname='cash_basis_account'
string='Tax Received Account'
args: 'account.account'
cash_basis_base_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
args: 'account.account'
children_tax_ids
Many2many → account.tax
string='Children Taxes'
args: 'account.tax', 'account_tax_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
description
Char
string='Label on Invoices'
hide_tax_exigibility
Boolean
readonly=True
related='company_id.tax_exigibility'
string='Hide Use Cash Basis Option'
include_base_amount
Boolean
default=False
help='If set, taxes which are computed after this one will be computed based on the price tax included.'
string='Affect Base of Subsequent Taxes'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Account that will be set on invoice tax lines for credit notes. Leave empty to use the expense account.'
oldname='account_paid_id'
ondelete='restrict'
string='Tax Account on Credit Notes'
args: 'account.account'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Tags'
args: 'account.account.tag', 'account_tax_account_tag'
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
oldname='use_cash_basis'
string='Tax Due'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
default=_default_tax_group
required=True
string='Tax Group'
args: 'account.tax.group'
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment."
required=True
string='Tax Scope'
args: [('sale', 'Sales'), ('purchase', 'Purchases'), ('none', 'None'), ('adjustment', 'Adjustment')]
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None)
copy(self, default=None)
get_grouping_key(self, invoice_tax_val)
json_friendly_compute_all(self, price_unit, currency_id=None, quantity=1.0, product_id=None, partner_id=None)
name_get(self)
onchange_account_id(self)
onchange_amount(self)
onchange_amount_type(self)
onchange_price_include(self)
name
Char
required=True
translate=True
sequence
Integer
default=10
No public methods.
account_id
Many2one → account.account.template
help='Account that will be set on invoice tax lines for invoices. Leave empty to use the expense account.'
oldname='account_collected_id'
ondelete='restrict'
string='Tax Account'
args: 'account.account.template'
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Analytic Cost'
cash_basis_account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
help='Account used as counterpart for the journal entry, for taxes eligible based on payments.'
oldname='cash_basis_account'
string='Tax Received Account'
args: 'account.account.template'
cash_basis_base_account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
help='Account that will be set on lines created in cash basis journal entry and used to keep track of the tax base amount.'
string='Base Tax Received Account'
args: 'account.account.template'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
children_tax_ids
Many2many → account.tax.template
string='Children Taxes'
args: 'account.tax.template', 'account_tax_template_filiation_rel', 'parent_tax', 'child_tax'
description
Char
string='Display on Invoices'
include_base_amount
Boolean
default=False
help='If set, taxes which are computed after this one will be computed based on the price tax included.'
string='Affect Subsequent Taxes'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_account_id
Many2one → account.account.template
help='Account that will be set on invoice tax lines for refunds. Leave empty to use the expense account.'
oldname='account_paid_id'
ondelete='restrict'
string='Tax Account on Refunds'
args: 'account.account.template'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag'
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
oldname='use_cash_basis'
string='Tax Due'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
string='Tax Group'
args: 'account.tax.group'
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment."
required=True
string='Tax Scope'
args: [('sale', 'Sales'), ('purchase', 'Purchases'), ('none', 'None'), ('adjustment', 'Adjustment')]
name_get(self)
No new fields.
Public methods (1)trans_unrec(self)
kpi_account_total_revenue
Boolean
kpi_account_total_revenue_value
Monetary
compute='_compute_kpi_account_total_revenue_value'
compute_kpis_actions(self, company, user)
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.'
oldname='property_account_expense_categ'
string='Expense Account'
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='This account will be used when validating a customer invoice.'
oldname='property_account_income_categ'
string='Income Account'
args: 'account.account'
No public methods.
No new fields.
Public methods (0)No public methods.
property_account_expense_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='Keep this field empty to use the default value from the product category. If anglo-saxon accounting with automated valuation method is configured, the expense account on the product category will be used.'
oldname='property_account_expense'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='Keep this field empty to use the default value from the product category.'
oldname='property_account_income'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'purchase')]
help='Default taxes used when buying the product.'
string='Vendor Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
taxes_id
Many2many → account.tax
default=<expr>
domain=[('type_tax_use', '=', 'sale')]
help='Default taxes used when selling the product.'
string='Customer Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
get_product_accounts(self, fiscal_pos=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)lines(self, target_move, journal_ids, sort_selection, data)
account_bank_reconciliation_start
Date
help="The bank reconciliation widget won't ask to reconcile payments older than this date.\n This is useful if you install accounting after having used invoicing for some time and\n don't want to reconcile all the past payments with bank statements."
string='Bank Reconciliation Threshold'
account_dashboard_onboarding_state
Selection
default='not_done'
string='State of the account dashboard onboarding panel'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done'), ('closed', 'Closed')]
account_invoice_onboarding_state
Selection
default='not_done'
string='State of the account invoice onboarding panel'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done'), ('closed', 'Closed')]
account_onboarding_invoice_layout_state
Selection
default='not_done'
string='State of the onboarding invoice layout step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
account_onboarding_sale_tax_state
Selection
default='not_done'
string='State of the onboarding sale tax step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
account_onboarding_sample_invoice_state
Selection
default='not_done'
string='State of the onboarding sample invoice step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
account_opening_date
Date
help="Date at which the opening entry of this company's accounting has been posted."
readonly=False
related='account_opening_move_id.date'
string='Opening Date'
account_opening_journal_id
Many2one → account.journal
comodel_name='account.journal'
help="Journal where the opening entry of this company's accounting has been posted."
readonly=False
related='account_opening_move_id.journal_id'
string='Opening Journal'
account_opening_move_id
Many2one → account.move
comodel_name='account.move'
help="The journal entry containing the initial balance of all this company's accounts."
string='Opening Journal Entry'
account_purchase_tax_id
Many2one → account.tax
string='Default Purchase Tax'
args: 'account.tax'
account_sale_tax_id
Many2one → account.tax
string='Default Sale Tax'
args: 'account.tax'
account_setup_bank_data_state
Selection
default='not_done'
string='State of the onboarding bank data step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
account_setup_coa_state
Selection
default='not_done'
string='State of the onboarding charts of account step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
account_setup_fy_data_state
Selection
default='not_done'
string='State of the onboarding fiscal year step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
bank_account_code_prefix
Char
oldname='bank_account_code_char'
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template_id
Many2one → account.chart.template
help='The chart template for the company (if any)'
args: 'account.chart.template'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_currency_exchange_account_id
Many2one → account.account
domain="[('internal_type', '=', 'other'), ('deprecated', '=', False), ('company_id', '=', id)]"
readonly=False
related='currency_exchange_journal_id.default_debit_account_id'
string='Loss Exchange Rate Account'
args: 'account.account'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default=12
required=True
args: [(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')]
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
string='Lock Date'
income_currency_exchange_account_id
Many2one → account.account
domain="[('internal_type', '=', 'other'), ('deprecated', '=', False), ('company_id', '=', id)]"
readonly=False
related='currency_exchange_journal_id.default_credit_account_id'
string='Gain Exchange Rate Account'
args: 'account.account'
incoterm_id
Many2one → account.incoterms
help='International Commercial Terms are a series of predefined commercial terms used in international transactions.'
string='Default incoterm'
args: 'account.incoterms'
invoice_is_email
Boolean
default=True
args: 'Email by default'
invoice_is_print
Boolean
default=True
args: 'Print by default'
invoice_reference_type
Selection
default='invoice_number'
help='You can set here the default communication that will appear on customer invoices, once validated, to help the customer to refer to that particular invoice when making the payment.'
selection='_get_invoice_reference_types'
string='Default Communication Type'
overdue_msg
Text
default=<expr>
string='Overdue Payments Message'
translate=True
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
string='Lock Date for Non-Advisers'
property_stock_account_input_categ_id
Many2one → account.account
oldname='property_stock_account_input_categ'
string='Input Account for Stock Valuation'
args: 'account.account'
property_stock_account_output_categ_id
Many2one → account.account
oldname='property_stock_account_output_categ'
string='Output Account for Stock Valuation'
args: 'account.account'
property_stock_valuation_account_id
Many2one → account.account
string='Account Template for Stock Valuation'
args: 'account.account'
qr_code
Boolean
string='Display SEPA QR code'
tax_calculation_rounding_method
Selection
default='round_per_line'
string='Tax Calculation Rounding Method'
args: [('round_per_line', 'Round per Line'), ('round_globally', 'Round Globally')]
tax_cash_basis_journal_id
Many2one → account.journal
string='Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
string='Use Cash Basis'
transfer_account_code_prefix
Char
string='Prefix of the transfer accounts'
transfer_account_id
Many2one → account.account
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
action_close_account_dashboard_onboarding(self)
action_close_account_invoice_onboarding(self)
action_open_account_onboarding_invoice_layout(self)
action_open_account_onboarding_sale_tax(self)
action_open_account_onboarding_sample_invoice(self)
action_save_onboarding_invoice_layout(self)
action_save_onboarding_sale_tax(self)
compute_fiscalyear_dates(self, current_date)
create_op_move_if_non_existant(self)
get_account_invoice_onboarding_steps_states_names(self)
get_and_update_account_dashboard_onboarding_state(self)
get_and_update_account_invoice_onboarding_state(self)
get_chart_of_accounts_or_fail(self)
get_new_account_code(self, current_code, old_prefix, new_prefix)
get_opening_move_differences(self, opening_move_lines)
get_unaffected_earnings_account(self)
opening_move_posted(self)
reflect_code_prefix_change(self, old_code, new_code)
setting_chart_of_accounts_action(self)
setting_init_bank_account_action(self)
setting_init_fiscal_year_action(self)
write(self, values)
account_bank_reconciliation_start
Date
help="The bank reconciliation widget won't ask to reconcile payments older than this date.\n This is useful if you install accounting after having used invoicing for some time and\n don't want to reconcile all the past payments with bank statements."
readonly=False
related='company_id.account_bank_reconciliation_start'
string='Bank Reconciliation Threshold'
chart_template_id
Many2one → account.chart.template
domain="[('visible','=', True)]"
string='Template'
args: 'account.chart.template'
currency_exchange_journal_id
Many2one → account.journal
domain="[('company_id', '=', company_id), ('type', '=', 'general')]"
help='The accounting journal where automatic exchange differences will be registered'
readonly=False
related='company_id.currency_exchange_journal_id'
string='Exchange Gain or Loss Journal'
args: 'account.journal'
currency_id
Many2one → res.currency
help='Main currency of the company.'
readonly=False
related='company_id.currency_id'
required=True
string='Currency'
args: 'res.currency'
group_analytic_accounting
Boolean
implied_group='analytic.group_analytic_accounting'
string='Analytic Accounting'
group_analytic_tags
Boolean
implied_group='analytic.group_analytic_tags'
string='Analytic Tags'
group_cash_rounding
Boolean
implied_group='account.group_cash_rounding'
string='Cash Rounding'
group_fiscal_year
Boolean
implied_group='account.group_fiscal_year'
string='Fiscal Years'
group_products_in_bills
Boolean
group='base.group_user'
help='Disable this option to use a simplified versions of vendor bills, where products are hidden.'
implied_group='account.group_products_in_bills'
string='Use products in vendor bills'
group_show_line_subtotals_tax_excluded
Boolean
group='base.group_portal,base.group_user,base.group_public'
implied_group='account.group_show_line_subtotals_tax_excluded'
args: 'Show line subtotals without taxes (B2B)'
group_show_line_subtotals_tax_included
Boolean
group='base.group_portal,base.group_user,base.group_public'
implied_group='account.group_show_line_subtotals_tax_included'
args: 'Show line subtotals with taxes (B2C)'
group_warning_account
Boolean
implied_group='account.group_warning_account'
string='Warnings in Invoices'
has_accounting_entries
Boolean
compute='_compute_has_chart_of_accounts'
has_chart_of_accounts
Boolean
compute='_compute_has_chart_of_accounts'
string='Company has a chart of accounts'
invoice_is_email
Boolean
readonly=False
related='company_id.invoice_is_email'
string='Send Email'
invoice_is_print
Boolean
readonly=False
related='company_id.invoice_is_print'
string='Print'
invoice_reference_type
Selection
help='Default Reference Type on Invoices.'
readonly=False
related='company_id.invoice_reference_type'
string='Communication'
module_account_accountant
Boolean
string='Accounting'
module_account_asset
Boolean
string='Assets Management'
module_account_bank_statement_import_camt
Boolean
module_account_bank_statement_import_csv
Boolean
module_account_bank_statement_import_ofx
Boolean
module_account_bank_statement_import_qif
Boolean
module_account_batch_payment
Boolean
help='This allows you grouping payments into a single batch and eases the reconciliation process.\n-This installs the account_batch_payment module.'
string='Use batch payments'
module_account_budget
Boolean
string='Budget Management'
module_account_check_printing
Boolean
module_account_deferred_revenue
Boolean
string='Revenue Recognition'
module_account_intrastat
Boolean
string='Intrastat'
module_account_invoice_extract
Boolean
string='Automate Bill Processing'
module_account_payment
Boolean
string='Invoice Online Payment'
module_account_plaid
Boolean
string='Plaid Connector'
module_account_reports
Boolean
module_account_reports_followup
Boolean
module_account_sepa
Boolean
string='SEPA Credit Transfer (SCT)'
module_account_sepa_direct_debit
Boolean
string='Use SEPA Direct Debit'
module_account_taxcloud
Boolean
string='Account TaxCloud'
module_account_yodlee
Boolean
module_currency_rate_live
Boolean
string='Automatic Currency Rates'
module_l10n_eu_service
Boolean
string='EU Digital Goods VAT'
module_product_margin
Boolean
string='Allow Product Margin'
purchase_tax_id
Many2one → account.tax
readonly=False
related='company_id.account_purchase_tax_id'
string='Default Purchase Tax'
args: 'account.tax'
qr_code
Boolean
readonly=False
related='company_id.qr_code'
string='Display SEPA QR code'
sale_tax_id
Many2one → account.tax
readonly=False
related='company_id.account_sale_tax_id'
string='Default Sale Tax'
args: 'account.tax'
show_line_subtotals_tax_selection
Selection
config_parameter='account.show_line_subtotals_tax_selection'
default='tax_excluded'
required=True
string='Line Subtotals Tax Display'
args: [('tax_excluded', 'Tax-Excluded'), ('tax_included', 'Tax-Included')]
tax_calculation_rounding_method
Selection
readonly=False
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
args: [('round_per_line', 'Round calculation of taxes per line'), ('round_globally', 'Round globally calculation of taxes ')]
tax_cash_basis_journal_id
Many2one → account.journal
readonly=False
related='company_id.tax_cash_basis_journal_id'
string='Tax Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
readonly=False
related='company_id.tax_exigibility'
string='Cash Basis'
create(self, values)
onchange_account_yodlee(self)
onchange_analytic_accounting(self)
onchange_module_account_budget(self)
set_values(self)
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Partner Contracts'
args: 'account.analytic.account', 'partner_id'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contracts Count'
type='integer'
credit
Monetary
compute='_credit_debit_get'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
currency_id
Many2one → res.currency
compute='_get_company_currency'
help='Utility field to express amount currency'
readonly=True
string='Currency'
args: 'res.currency'
debit
Monetary
compute='_credit_debit_get'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
debit_limit
Monetary
has_unreconciled_entries
Boolean
compute='_compute_has_unreconciled_entries'
help='The partner has at least one unreconciled debit and credit since last time the invoices & payments matching was performed.'
invoice_ids
One2many → account.invoice
copy=False
readonly=True
string='Invoices'
args: 'account.invoice', 'partner_id'
invoice_warn
Selection
default='no-message'
help=WARNING_HELP
args: WARNING_MESSAGE, 'Invoice'
invoice_warn_msg
Text
journal_item_count
Integer
compute='_compute_journal_item_count'
string='Journal Items'
type='integer'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed for this partner. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit or if you click the "Done" button.'
oldname='last_reconciliation_date'
readonly=True
string='Latest Invoices & Payments Matching Date'
property_account_payable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'payable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the payable account for the current partner'
oldname='property_account_payable'
required=True
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
company_dependent=True
help='The fiscal position determines the taxes/accounts used for this contact.'
oldname='property_account_position'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'receivable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the receivable account for the current partner'
oldname='property_account_receivable'
required=True
string='Account Receivable'
args: 'account.account'
property_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for sales orders and customer invoices'
oldname='property_payment_term'
string='Customer Payment Terms'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for purchase orders and vendor bills'
oldname='property_supplier_payment_term'
string='Vendor Payment Terms'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
oldname='ref_companies'
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice'
string='Total Invoiced'
trust
Selection
company_dependent=True
default='normal'
string='Degree of trust you have in this debtor'
args: [('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')]
action_view_partner_invoices(self)
can_edit_vat(self)
get_followup_lines_domain(self, date, overdue_only=False, only_unblocked=False)
mark_as_reconciled(self)
journal_id
One2many → account.journal
domain=[('type', '=', 'bank')]
help='The accounting journal corresponding to this bank account.'
readonly=True
string='Account Journal'
args: 'account.journal', 'bank_account_id'
No public methods.
No new fields.
Public methods (0)No public methods.
adjustment_type
Selection
required=True
store=False
string='Adjustment Type'
args: [('debit', 'Applied on debit journal item'), ('credit', 'Applied on credit journal item')]
amount
Monetary
currency_field='company_currency_id'
required=True
company_currency_id
Many2one → res.currency
default=<expr>
readonly=True
args: 'res.currency'
credit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Credit account'
args: 'account.account'
date
Date
default=fields.Date.context_today
required=True
debit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Debit account'
args: 'account.account'
journal_id
Many2one → account.journal
default=_get_default_journal
domain=[('type', '=', 'general')]
required=True
string='Journal'
args: 'account.journal'
reason
Char
required=True
string='Justification'
tax_id
Many2one → account.tax
domain=[('type_tax_use', '=', 'adjustment')]
ondelete='restrict'
required=True
string='Adjustment Tax'
args: 'account.tax'
create_move(self)
create_move_credit(self)
create_move_debit(self)
No new fields.
Public methods (1)validate_move(self)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account.report_overdue_document |
account.report_overdue_document | ir.ui.view | qweb | New |
account_aged_balance_view |
Aged Partner Balance | account.aged.trial.balance | form | New |
account_bank_journal_view_kanban |
account.bank.journal.kanban | account.journal | kanban | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_common_report_view |
Common Report | account.common.report | form | New |
account_invoice_confirm_view |
account.invoice.confirm.form | account.invoice.confirm | form | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_journal_dashboard_kanban_view_js |
account.journal.dashboard.kanban.js | account.journal | xpath | Inherits account.account_journal_dashboard_kanban_view |
account_journal_view_kanban |
account.journal.kanban | account.journal | kanban | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_graph_date_cash_basis |
account.move.line.graph | account.move.line | graph | New |
account_move_line_reconcile_writeoff |
account.move.line.reconcile.writeoff.form | account.move.line.reconcile.writeoff | form | New |
account_planner |
account_planner | ir.ui.view | qweb | New |
account_report_balance_view |
Trial Balance | account.balance.report | data | Inherits account_common_report_view |
account_report_general_ledger_view |
General Ledger | account.report.general.ledger | data | Inherits account_common_report_view |
account_report_partner_ledger_view |
Partner Ledger | account.report.partner.ledger | data | Inherits account.account_common_report_view |
account_report_print_journal_view |
Journals Audit | account.print.journal | data | Inherits account.account_common_report_view |
account_tag_view_form |
Tags | account.account.tag | form | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
accounting_report_view |
Accounting Report | accounting.report | field | Inherits account.account_common_report_view |
accounting_tax_report_view |
Tax Reports | account.tax.report | data | Inherits account.account_common_report_view |
assets_backend |
account assets | ir.ui.view | qweb | Inherits web.assets_backend |
cash_box_in_form |
cash_box_in | cash.box.in | form | New |
cash_box_out_form |
cash_box_out | cash.box.out | form | New |
init_accounts_tree |
account.setup.opening.move.line.tree | account.account | tree | New |
invoice_form |
account.invoice.form | account.invoice | form | New |
invoice_kanban |
account.invoice.kanban | account.invoice | kanban | New |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | form | New |
invoice_supplier_tree |
account.invoice.supplier.tree | account.invoice | tree | New |
invoice_tree |
account.invoice.tree | account.invoice | tree | New |
partner_view_button_contracts_count |
partner.view.button.contracts_count | res.partner | button | Inherits base.view_partner_form |
partner_view_buttons |
partner.view.buttons | res.partner | div | Inherits base.view_partner_form |
partner_view_short_extra |
partner.short.view.account | res.partner | field | Inherits base.view_partner_short_form |
portal_invoice_error |
Invoice error/warning display | ir.ui.view | qweb | New |
portal_invoice_page |
Invoice Portal Template | ir.ui.view | qweb | New |
portal_invoice_report |
Invoice Portal Report | ir.ui.view | qweb | New |
portal_invoice_success |
Invoice success display | ir.ui.view | qweb | New |
portal_my_home_invoice |
Portal My Home : invoice entries | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_invoice |
Portal layout : invoice menu entries | ir.ui.view | qweb | Inherits portal.portal_layout |
portal_my_invoices |
My Invoices and Payments | ir.ui.view | qweb | New |
product_product_view_tree |
product.product.tree | product.product | tree | New |
product_template_form_view |
product.template.form.inherit | product.template | page | Inherits product.product_template_form_view |
qunit_suite |
account_reconciliation tests | ir.ui.view | qweb | Inherits web.qunit_suite |
report_agedpartnerbalance |
report_agedpartnerbalance | ir.ui.view | qweb | New |
report_financial |
report_financial | ir.ui.view | qweb | New |
report_generalledger |
report_generalledger | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_invoice_document_with_payments |
report_invoice_document_with_payments | ir.ui.view | qweb | Inherits account.report_invoice_document |
report_invoice_with_payments |
report_invoice_with_payments | ir.ui.view | qweb | New |
report_journal |
report_journal | ir.ui.view | qweb | New |
report_overdue |
report_overdue | ir.ui.view | qweb | New |
report_partnerledger |
report_partnerledger | ir.ui.view | qweb | New |
report_payment_receipt |
report_payment_receipt | ir.ui.view | qweb | New |
report_tax |
report_tax | ir.ui.view | qweb | New |
report_trialbalance |
report_trialbalance | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.account | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
rounding_form_view |
account.cash.rounding.form | account.cash.rounding | form | New |
rounding_search_view |
account.cash.rounding.search | account.cash.rounding | search | New |
rounding_tree_view |
account.cash.rounding.tree | account.cash.rounding | tree | New |
setup_bank_journal_form |
account.setup.bank.journal.form | account.journal | xpath | Inherits account.view_account_bank_journal_form |
setup_financial_year_opening_form |
account.financial.year.op.setup.wizard.form | account.financial.year.op | form | New |
setup_opening_move_lines_tree |
account.setup.opening.move.lines.tree | account.move.line | tree | New |
setup_opening_move_wizard_form |
account.setup.opening.move.wizard.form | account.opening | form | New |
setup_posted_move_form |
account.setup.posted.move.form | account.move | xpath | Inherits account.view_move_form |
setup_view_company_form |
account.setup.company.form | res.company | xpath | Inherits base.view_company_form |
tax_adjustments_wizard |
tax.adjustments.wizard.form | tax.adjustments.wizard | form | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_account_kanban |
account.account.kanban | account.account | kanban | New |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.tree.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_bank_journal_form |
account.bank.journal.form | account.journal | form | New |
view_account_bank_journal_tree |
account.bank.journal.tree | account.journal | tree | New |
view_account_bnk_stmt_cashbox |
account.bnk_stmt_cashbox.form | account.bank.statement.cashbox | form | New |
view_account_bnk_stmt_check |
account.bnk_stmt_check.form | account.bank.statement.closebalance | form | New |
view_account_chart_template_form |
account.chart.template.form | account.chart.template | form | New |
view_account_chart_template_seacrh |
account.chart.template.search | account.chart.template | search | New |
view_account_chart_template_tree |
account.chart.template.tree | account.chart.template | tree | New |
view_account_financial_report_form |
account.financial.report.form | account.financial.report | form | New |
view_account_financial_report_search |
account.financial.report.search | account.financial.report | search | New |
view_account_financial_report_tree |
account.financial.report.tree | account.financial.report | tree | New |
view_account_form |
account.account.form | account.account | form | New |
view_account_group_form |
account.group.form | account.group | form | New |
view_account_group_search |
account.group.search | account.group | search | New |
view_account_group_tree |
account.group.tree | account.group | tree | New |
view_account_invoice_filter |
account.invoice.select | account.invoice | search | New |
view_account_invoice_filter_inherit_credit_notes |
account.invoice.select.credit.notes | account.invoice | data | Inherits view_account_invoice_filter |
view_account_invoice_filter_inherit_invoices |
account.invoice.select.invoices | account.invoice | data | Inherits view_account_invoice_filter |
view_account_invoice_refund |
account.invoice.refund.form | account.invoice.refund | form | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_kanban |
account.move.kanban | account.move | kanban | New |
view_account_move_line_filter |
Journal Items | account.move.line | search | New |
view_account_move_line_reconcile_full |
account.move.line.reconcile.full.form | account.move.line.reconcile | form | New |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_from_invoices |
account.register.payments.wizard | account.register.payments | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_invoice_form |
account.payment.invoice.form | account.payment | form | New |
view_account_payment_kanban |
account.payment.kanban | account.payment | kanban | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_term_kanban |
account.payment.term.kanban | account.payment.term | kanban | New |
view_account_payment_tree |
account.payment.tree | account.payment | tree | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_reconcile_model_form |
account.reconcile.model.form | account.reconcile.model | form | New |
view_account_reconcile_model_search |
account.reconcile.model.search | account.reconcile.model | search | New |
view_account_reconcile_model_tree |
account.reconcile.model.tree | account.reconcile.model | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_supplier_payment_tree |
account.supplier.payment.tree | account.payment | tree | New |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_template_form |
account.account.template.form | account.account.template | form | New |
view_account_template_search |
account.account.template.search | account.account.template | search | New |
view_account_template_tree |
account.account.template.tree | account.account.template | tree | New |
view_account_type_form |
account.account.type.form | account.account.type | form | New |
view_account_type_search |
account.account.type.search | account.account.type | search | New |
view_account_type_tree |
account.account.type.tree | account.account.type | tree | New |
view_bank_statement_form |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_line_form |
bank.statement.line.form | account.bank.statement.line | form | New |
view_bank_statement_line_search |
account.bank.statement.line.search | account.bank.statement.line | search | New |
view_bank_statement_line_tree |
account.bank.statement.line.tree | account.bank.statement.line | tree | New |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_full_reconcile_form |
account.full.reconcile.form | account.full.reconcile | form | New |
view_invoice_graph |
account.invoice.graph | account.invoice | graph | New |
view_invoice_line_calendar |
account.invoice.calendar | account.invoice | calendar | New |
view_invoice_line_form |
account.invoice.line.form | account.invoice.line | form | New |
view_invoice_line_tree |
account.invoice.line.tree | account.invoice.line | tree | New |
view_invoice_pivot |
account.invoice.pivot | account.invoice | pivot | New |
view_invoice_tax_form |
account.invoice.tax.form | account.invoice.tax | form | New |
view_invoice_tax_tree |
account.invoice.tax.tree | account.invoice.tax | tree | New |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_pivot |
account.move.line.pivot | account.move.line | pivot | New |
view_move_line_tax_audit_tree |
account.move.line.tax.audit.tree | account.move.line | field | Inherits account.view_move_line_tree |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_tree |
account.move.tree | account.move | tree | New |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | page | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_line_form |
account.payment.term.line.form | account.payment.term.line | form | New |
view_payment_term_line_tree |
account.payment.term.line.tree | account.payment.term.line | tree | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_payment_term_tree |
account.payment.term.tree | account.payment.term | tree | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_kanban |
account.tax.kanban | account.tax | kanban | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
view_wizard_multi_chart |
Choose Accounting Template | wizard.multi.charts.accounts | form | Inherits base.res_config_view_base |
amount
Monetary
required=True
string='Payment Amount'
communication
Char
string='Memo'
company_id
Many2one → res.company
readonly=True
related='journal_id.company_id'
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
hide_payment_method
Boolean
compute='_compute_hide_payment_method'
help="Technical field used to hide the payment method if the selected journal has only one available which is 'manual'"
journal_id
Many2one → account.journal
domain=[('type', 'in', ('bank', 'cash'))]
required=True
string='Payment Journal'
args: 'account.journal'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
partner_type
Selection
payment_date
Date
copy=False
default=fields.Date.context_today
required=True
string='Payment Date'
payment_method_code
Char
help='Technical field used to adapt the interface to the payment type selected.'
readonly=True
related='payment_method_id.code'
payment_method_id
Many2one → account.payment.method
help='Manual: Get paid by cash, check or any other method outside of Odoo.\nElectronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\nCheck: Pay bill by check and print it from Odoo.\nBatch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo, you are suggested to reconcile the transaction with the batch deposit.To enable batch deposit,module account_batch_deposit must be installed.\nSEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. To enable sepa credit transfer, module account_sepa must be installed '
oldname='payment_method'
required=True
string='Payment Method Type'
args: 'account.payment.method'
payment_type
Selection
required=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
No public methods.
code
Char
index=True
required=True
size=64
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this account currency.'
string='Account Currency'
args: 'res.currency'
deprecated
Boolean
default=False
index=True
group_id
Many2one → account.group
internal_type
Selection
readonly=True
related='user_type_id.type'
store=True
string='Internal Type'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed on this account. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit Or if you click the "Done" button.'
readonly=True
string='Latest Invoices & Payments Matching Date'
name
Char
index=True
required=True
note
Text
opening_credit
Monetary
compute='_compute_opening_debit_credit'
help='Opening credit value for this account.'
inverse='_set_opening_credit'
string='Opening credit'
opening_debit
Monetary
compute='_compute_opening_debit_credit'
help='Opening debit value for this account.'
inverse='_set_opening_debit'
string='Opening debit'
reconcile
Boolean
default=False
help='Check this box if this account allows invoices & payments matching of journal items.'
string='Allow Reconciliation'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Tags'
args: 'account.account.tag', 'account_account_account_tag'
tax_ids
Many2many → account.tax
string='Default Taxes'
args: 'account.tax', 'account_account_tax_default_rel', 'account_id', 'tax_id'
user_type_id
Many2one → account.account.type
help='Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.'
oldname='user_type'
required=True
string='Type'
args: 'account.account.type'
action_open_reconcile(self)
copy(self, default=None)
default_get(self, default_fields)
load(self, fields, data)
mark_as_reconciled(self)
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
onchange_code(self)
onchange_internal_type(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='Set active to false to hide the Account Tag without removing it.'
applicability
Selection
default='accounts'
required=True
args: [('accounts', 'Accounts'), ('taxes', 'Taxes')]
color
Integer
default=10
args: 'Color Index'
name
Char
required=True
No public methods.
chart_template_id
Many2one → account.chart.template
help="This optional field allow you to link an account template to a specific chart template that may differ from the one its root parent belongs to. This allow you to define chart templates that extend another and complete it with few new accounts (You don't need to define the whole structure that is common to both several times)."
string='Chart Template'
args: 'account.chart.template'
code
Char
index=True
required=True
size=64
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
group_id
Many2one → account.group
name
Char
index=True
required=True
nocreate
Boolean
default=False
help='If checked, the new chart of accounts will not contain this by default.'
string='Optional Create'
note
Text
reconcile
Boolean
default=False
help='Check this option if you want the user to reconcile entries in this account.'
string='Allow Invoices & payments Matching'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag', 'account_account_template_account_tag'
tax_ids
Many2many → account.tax.template
string='Default Taxes'
args: 'account.tax.template', 'account_account_template_tax_rel', 'account_id', 'tax_id'
user_type_id
Many2one → account.account.type
help='These types are defined according to your country. The type contains more information about the account and its specificities.'
oldname='user_type'
required=True
string='Type'
args: 'account.account.type'
name_get(self)
include_initial_balance
Boolean
help='Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set.'
string='Bring Accounts Balance Forward'
name
Char
required=True
string='Account Type'
translate=True
note
Text
string='Description'
type
Selection
default='other'
help="The 'Internal Type' is used for features available on different types of accounts: liquidity type is for cash or bank accounts, payable/receivable is for vendor/customer accounts."
required=True
args: [('other', 'Regular'), ('receivable', 'Receivable'), ('payable', 'Payable'), ('liquidity', 'Liquidity')]
No public methods.
date_from
Date
default=<expr>
journal_ids
Many2many → account.journal
required=True
string='Journals'
args: 'account.journal'
period_length
Integer
default=30
required=True
string='Period Length (days)'
No public methods.
amount
Monetary
currency_field='company_currency_id'
amount_currency
Monetary
help='The amount expressed in the related account currency if not equal to the company one.'
readonly=True
related='move_id.amount_currency'
store=True
analytic_amount_currency
Monetary
compute='_get_analytic_amount_currency'
help='The amount expressed in the related account currency if not equal to the company one.'
readonly=True
string='Amount Currency'
code
Char
size=8
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
args: 'res.currency'
currency_id
Many2one → res.currency
help='The related account currency if not equal to the company one.'
readonly=True
related='move_id.currency_id'
store=True
string='Account Currency'
args: 'res.currency'
general_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
ondelete='restrict'
readonly=True
related='move_id.account_id'
store=True
string='Financial Account'
args: 'account.account'
move_id
Many2one → account.move.line
index=True
ondelete='cascade'
string='Move Line'
args: 'account.move.line'
partner_id
Many2one → res.partner
readonly=True
related='account_id.partner_id'
store=True
string='Partner'
args: 'res.partner'
product_id
Many2one → product.product
string='Product'
args: 'product.product'
product_uom_id
Many2one → product.uom
string='Unit of Measure'
args: 'product.uom'
ref
Char
string='Ref.'
on_change_unit_amount(self)
view_header_get(self, view_id, view_type)
journal_ids
Many2many → account.journal
default=[]
required=True
string='Journals'
args: 'account.journal', 'account_balance_report_journal_rel', 'account_id', 'journal_id'
No public methods.
acc_name
Char
required=True
string='Account Name.'
account_type
Selection
bank_account_id
Many2one → wizard.multi.charts.accounts
ondelete='cascade'
required=True
string='Bank Account'
args: 'wizard.multi.charts.accounts'
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
No public methods.
all_lines_reconciled
Boolean
compute='_check_lines_reconciled'
balance_end
Monetary
compute='_end_balance'
help='Balance as calculated based on Opening Balance and transaction lines'
store=True
args: 'Computed Balance'
balance_end_real
Monetary
states={'confirm': [('readonly', True)]}
args: 'Ending Balance'
balance_start
Monetary
default=_default_opening_balance
states={'confirm': [('readonly', True)]}
string='Starting Balance'
cashbox_end_id
Many2one → account.bank.statement.cashbox
string='Ending Cashbox'
args: 'account.bank.statement.cashbox'
cashbox_start_id
Many2one → account.bank.statement.cashbox
string='Starting Cashbox'
args: 'account.bank.statement.cashbox'
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'
oldname='currency'
string='Currency'
args: 'res.currency'
date
Date
copy=False
default=fields.Date.context_today
index=True
required=True
states={'confirm': [('readonly', True)]}
date_done
Datetime
string='Closed On'
difference
Monetary
compute='_end_balance'
help='Difference between the computed ending balance and the specified ending balance.'
store=True
is_difference_zero
Boolean
compute='_is_difference_zero'
help='Check if difference is zero.'
string='Is zero'
journal_id
Many2one → account.journal
default=_default_journal
required=True
states={'confirm': [('readonly', True)]}
string='Journal'
args: 'account.journal'
journal_type
Selection
help='Technical field used for usability purposes'
related='journal_id.type'
line_ids
One2many → account.bank.statement.line
copy=True
states={'confirm': [('readonly', True)]}
string='Statement lines'
args: 'account.bank.statement.line', 'statement_id'
move_line_count
Integer
compute='_get_move_line_count'
move_line_ids
One2many → account.move.line
states={'confirm': [('readonly', True)]}
string='Entry lines'
args: 'account.move.line', 'statement_id'
name
Char
copy=False
readonly=True
states={'open': [('readonly', False)]}
string='Reference'
reference
Char
copy=False
help='Used to hold the reference of the external mean that created this statement (name of imported file, reference of online synchronization...)'
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')]
total_entry_encoding
Monetary
compute='_end_balance'
help='Total of transaction lines.'
store=True
args: 'Transactions Subtotal'
user_id
Many2one → res.users
default=<expr>
required=False
string='Responsible'
args: 'res.users'
button_confirm_bank(self)
button_journal_entries(self)
button_open(self)
check_confirm_bank(self)
link_bank_to_partner(self)
onchange_journal_id(self)
open_cashbox_id(self)
reconciliation_widget_preprocess(self)
unlink(self)
cashbox_lines_ids
One2many → account.cashbox.line
string='Cashbox Lines'
args: 'account.cashbox.line', 'cashbox_id'
validate(self)
No new fields.
Public methods (1)validate(self)
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='This technical field can be used at the statement line creation/import time in order to avoid the reconciliation process on it later on. The statement line will simply create a counterpart on this account'
string='Counterpart Account'
args: 'account.account'
amount
Monetary
currency_field='journal_currency_id'
digits=0
amount_currency
Monetary
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
bank_account_id
Many2one → res.partner.bank
string='Bank Account'
args: 'res.partner.bank'
company_id
Many2one → res.company
readonly=True
related='statement_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='The optional other currency if it is a multi-currency entry.'
string='Currency'
args: 'res.currency'
date
Date
default=<expr>
required=True
journal_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='statement_id.currency_id'
args: 'res.currency'
journal_entry_ids
One2many → account.move.line
copy=False
readonly=True
args: 'account.move.line', 'statement_line_id', 'Journal Items'
journal_id
Many2one → account.journal
readonly=True
related='statement_id.journal_id'
store=True
string='Journal'
args: 'account.journal'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the journal entry, automatically set when the statement line is reconciled then stored to set the same number again if the line is cancelled, set to draft and re-processed again.'
readonly=True
string='Journal Entry Name'
name
Char
required=True
string='Label'
note
Text
string='Notes'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
partner_name
Char
help="This field is used to record the third party name when importing bank statement in electronic format, when the partner doesn't exist yet in the database (or cannot be found)."
ref
Char
string='Reference'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of bank statement lines.'
index=True
state
Selection
readonly=True
related='statement_id.state'
string='Status'
statement_id
Many2one → account.bank.statement
index=True
ondelete='cascade'
required=True
string='Statement'
args: 'account.bank.statement'
auto_reconcile(self)
button_cancel_reconciliation(self)
create(self, vals)
fast_counterpart_creation(self)
get_data_for_reconciliation_widget(self, excluded_ids=None)
get_move_lines_for_reconciliation(self, partner_id=None, excluded_ids=None, str=False, offset=0, limit=None, additional_domain=None, overlook_partner=False)
get_move_lines_for_reconciliation_widget(self, partner_id=None, excluded_ids=None, str=False, offset=0, limit=None)
get_reconciliation_proposition(self, excluded_ids=None)
get_statement_line_for_reconciliation_widget(self)
process_reconciliation(self, counterpart_aml_dicts=None, payment_aml_rec=None, new_aml_dicts=None)
process_reconciliations(self, data)
reconciliation_widget_auto_reconcile(self, num_already_reconciled_lines)
unlink(self)
account_id
Many2one → account.account
string='Account'
args: 'account.account'
name
Char
required=True
string='Name'
translate=True
rounding
Float
help='Represent the non-zero value smallest coinage (for example, 0.05).'
required=True
string='Rounding Precision'
rounding_method
Selection
default='HALF-UP'
help='The tie-breaking rule used for float rounding operations'
required=True
selection=[('UP', 'UP'), ('DOWN', 'DOWN'), ('HALF-UP', 'HALF-UP')]
string='Rounding Method'
strategy
Selection
default='add_invoice_line'
help='Specify which way will be used to round the invoice amount to the rounding precision'
required=True
string='Rounding Strategy'
args: [('biggest_tax', 'Modify tax amount'), ('add_invoice_line', 'Add a rounding line')]
compute_difference(self, currency, amount)
round(self, amount)
validate_rounding(self)
cashbox_id
Many2one → account.bank.statement.cashbox
string='Cashbox'
args: 'account.bank.statement.cashbox'
coin_value
Float
digits=0
required=True
string='Coin/Bill Value'
number
Integer
help='Opening Unit Numbers'
string='Number of Coins/Bills'
subtotal
Float
compute='_sub_total'
digits=0
readonly=True
string='Subtotal'
No public methods.
account_ids
One2many → account.account.template
string='Associated Account Templates'
args: 'account.account.template', 'chart_template_id'
bank_account_code_prefix
Char
oldname='bank_account_code_char'
string='Prefix of the bank accounts'
cash_account_code_prefix
Char
string='Prefix of the main cash accounts'
code_digits
Integer
default=6
help='No. of Digits to use for account code'
required=True
string='# of Digits'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
complete_tax_set
Boolean
default=True
help='This boolean helps you to choose if you want to propose to the user to encode the sale and purchase rates or choose from list of taxes. This last choice assumes that the set of tax defined on this template is complete'
string='Complete Set of Taxes'
currency_id
Many2one → res.currency
required=True
string='Currency'
args: 'res.currency'
expense_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Loss Exchange Rate Account'
args: 'account.account.template'
income_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Gain Exchange Rate Account'
args: 'account.account.template'
name
Char
required=True
parent_id
Many2one → account.chart.template
string='Parent Chart Template'
args: 'account.chart.template'
property_account_expense_categ_id
Many2one → account.account.template
oldname='property_account_expense_categ'
string='Category of Expense Account'
args: 'account.account.template'
property_account_expense_id
Many2one → account.account.template
oldname='property_account_expense'
string='Expense Account on Product Template'
args: 'account.account.template'
property_account_income_categ_id
Many2one → account.account.template
oldname='property_account_income_categ'
string='Category of Income Account'
args: 'account.account.template'
property_account_income_id
Many2one → account.account.template
oldname='property_account_income'
string='Income Account on Product Template'
args: 'account.account.template'
property_account_payable_id
Many2one → account.account.template
oldname='property_account_payable'
string='Payable Account'
args: 'account.account.template'
property_account_receivable_id
Many2one → account.account.template
oldname='property_account_receivable'
string='Receivable Account'
args: 'account.account.template'
property_stock_account_input_categ_id
Many2one → account.account.template
oldname='property_stock_account_input_categ'
string='Input Account for Stock Valuation'
args: 'account.account.template'
property_stock_account_output_categ_id
Many2one → account.account.template
oldname='property_stock_account_output_categ'
string='Output Account for Stock Valuation'
args: 'account.account.template'
property_stock_valuation_account_id
Many2one → account.account.template
string='Account Template for Stock Valuation'
args: 'account.account.template'
tax_template_ids
One2many → account.tax.template
help='List of all the taxes that have to be installed by the wizard'
string='Tax Template List'
args: 'account.tax.template', 'chart_template_id'
transfer_account_id
Many2one → account.account.template
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
required=True
string='Transfer Account'
args: 'account.account.template'
use_anglo_saxon
Boolean
default=False
string='Use Anglo-Saxon accounting'
visible
Boolean
default=True
help="Set this to False if you don't want this template to be used actively in the wizard that generate Chart of Accounts from templates, this is useful when you want to generate accounts of this template only when loading its child template."
string='Can be Visible?'
create_record_with_xmlid(self, company, template, model, vals)
generate_account(self, tax_template_ref, acc_template_ref, code_digits, company)
generate_account_reconcile_model(self, tax_template_ref, acc_template_ref, company)
generate_fiscal_position(self, tax_template_ref, acc_template_ref, company)
generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company)
open_select_template_wizard(self)
try_loading_for_current_company(self)
display_account
Selection
default='movement'
required=True
string='Display Accounts'
args: [('all', 'All'), ('movement', 'With movements'), ('not_zero', 'With balance is not equal to 0')]
pre_print_report(self, data)
amount_currency
Boolean
help='Print Report with the currency column if the currency differs from the company currency.'
args: 'With Currency'
pre_print_report(self, data)
result_selection
Selection
default='customer'
required=True
string="Partner's"
args: [('customer', 'Receivable Accounts'), ('supplier', 'Payable Accounts'), ('customer_supplier', 'Receivable and Payable Accounts')]
pre_print_report(self, data)
company_id
Many2one → res.company
default=<expr>
readonly=True
string='Company'
args: 'res.company'
date_from
Date
string='Start Date'
date_to
Date
string='End Date'
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
target_move
Selection
default='posted'
required=True
string='Target Moves'
args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
check_report(self)
account_ids
Many2many → account.account
account_report_id
Many2one → account.financial.report
account_type_ids
Many2many → account.account.type
children_ids
One2many → account.financial.report
display_detail
Selection
default='detail_flat'
args: [('no_detail', 'No detail'), ('detail_flat', 'Display children flat'), ('detail_with_hierarchy', 'Display children with hierarchy')], 'Display details'
level
Integer
compute='_get_level'
store=True
string='Level'
name
Char
required=True
translate=True
args: 'Report Name'
parent_id
Many2one → account.financial.report
sequence
Integer
sign
Selection
default=1
help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'
required=True
args: [(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports'
style_overwrite
Selection
default=0
help="You can set up here the format you want this record to be displayed. If you leave the automatic formatting, it will be computed based on the financial reports hierarchy (auto-computed field 'level')."
args: [(0, 'Automatic formatting'), (1, 'Main Title 1 (bold, underlined)'), (2, 'Title 2 (bold)'), (3, 'Title 3 (bold, smaller)'), (4, 'Normal Text'), (5, 'Italic Text (smaller)'), (6, 'Smallest Text')], 'Financial Report Style'
type
Selection
default='sum'
args: [('sum', 'View'), ('accounts', 'Accounts'), ('account_type', 'Account Type'), ('account_report', 'Report Value')], 'Type'
No public methods.
account_setup_fy_data_done
Boolean
compute='_compute_setup_marked_done'
string='Financial year setup marked as done'
company_id
Many2one → res.company
comodel_name='res.company'
required=True
fiscalyear_last_day
Integer
help="The last day of the month will be taken if the chosen day doesn't exist."
related='company_id.fiscalyear_last_day'
required=True
fiscalyear_last_month
Selection
help="The last day of the month will be taken if the chosen day doesn't exist."
related='company_id.fiscalyear_last_month'
required=True
selection=[(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')]
opening_date
Date
help='Date from which the accounting is managed in Odoo. It is the date of the opening entry.'
related='company_id.account_opening_date'
required=True
string='Opening Date'
opening_move_posted
Boolean
compute='_compute_opening_move_posted'
string='Opening Move Posted'
mark_as_done(self)
unmark_as_done(self)
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery or invocing country match the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery or invoicing country match.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position'
note
Text
help='Legal mentions that have to be printed on the invoices.'
translate=True
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
One2many → account.fiscal.position.tax
copy=True
string='Tax Mapping'
args: 'account.fiscal.position.tax', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Integer
default=0
string='Zip Range From'
zip_to
Integer
default=0
string='Zip Range To'
get_fiscal_position(self, partner_id, delivery_id=None)
map_account(self, account)
map_accounts(self, accounts)
map_tax(self, taxes, product=None, partner=None)
account_dest_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Account on Product'
args: 'account.account'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
account_dest_id
Many2one → account.account.template
required=True
string='Account Destination'
args: 'account.account.template'
account_src_id
Many2one → account.account.template
required=True
string='Account Source'
args: 'account.account.template'
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Mapping'
args: 'account.fiscal.position.template'
No public methods.
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
tax_dest_id
Many2one → account.tax
string='Tax to Apply'
args: 'account.tax'
tax_src_id
Many2one → account.tax
required=True
string='Tax on Product'
args: 'account.tax'
No public methods.
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position.template'
tax_dest_id
Many2one → account.tax.template
string='Replacement Tax'
args: 'account.tax.template'
tax_src_id
Many2one → account.tax.template
required=True
string='Tax Source'
args: 'account.tax.template'
No public methods.
account_ids
One2many → account.fiscal.position.account.template
string='Account Mapping'
args: 'account.fiscal.position.account.template', 'position_id'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
country_group_id
Many2one → res.country.group
help='Apply only if delivery or invoicing country match the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery or invoicing country match.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position Template'
note
Text
string='Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
tax_ids
One2many → account.fiscal.position.tax.template
string='Tax Mapping'
args: 'account.fiscal.position.tax.template', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Integer
default=0
string='Zip Range From'
zip_to
Integer
default=0
string='Zip Range To'
No public methods.
exchange_move_id
Many2one → account.move
name
Char
copy=False
default=<expr>
required=True
string='Number'
partial_reconcile_ids
One2many → account.partial.reconcile
string='Reconciliation Parts'
args: 'account.partial.reconcile', 'full_reconcile_id'
reconciled_line_ids
One2many → account.move.line
string='Matched Journal Items'
args: 'account.move.line', 'full_reconcile_id'
unlink(self)
code_prefix
Char
name
Char
required=True
parent_id
Many2one → account.group
index=True
ondelete='cascade'
args: 'account.group'
parent_left
Integer
index=True
args: 'Left Parent'
parent_right
Integer
index=True
args: 'Right Parent'
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=100)
access_token
Char
copy=False
default=_get_default_access_token
args: 'Security Token'
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='The partner account used for this invoice.'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Account'
args: 'account.account'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_total
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Total'
amount_total_company_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
help='Total amount in the currency of the company, negative for credit notes.'
readonly=True
store=True
string='Total in Company Currency'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
help='Total amount in the currency of the invoice, negative for credit notes.'
readonly=True
store=True
string='Total in Invoice Currency'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
track_visibility='always'
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount in Company Currency'
cash_rounding_id
Many2one → account.cash.rounding
help='Defines the smallest coinage of the currency that can be used to pay by cash.'
readonly=True
states={'draft': [('readonly', False)]}
string='Cash Rounding Method'
args: 'account.cash.rounding'
comment
Text
readonly=True
states={'draft': [('readonly', False)]}
args: 'Additional Information'
commercial_partner_id
Many2one → res.partner
compute_sudo=True
help='The commercial entity that will be used on Journal Entries for this invoice'
readonly=True
related='partner_id.commercial_partner_id'
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
default=_default_currency
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Currency'
track_visibility='always'
args: 'res.currency'
date
Date
copy=False
help='Keep empty to use the invoice date.'
readonly=True
states={'draft': [('readonly', False)]}
string='Accounting Date'
date_due
Date
copy=False
help='If you use payment terms, the due date will be computed automatically at the generation of accounting entries. The Payment terms may compute several due dates, for example 50% now and 50% in one month, but if you want to force a due date, make sure that the payment term is not set on the invoice. If you keep the Payment terms and the due date empty, it means direct payment.'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Due Date'
date_invoice
Date
copy=False
help='Keep empty to use the current date'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice Date'
fiscal_position_id
Many2one → account.fiscal.position
oldname='fiscal_position'
readonly=True
states={'draft': [('readonly', False)]}
string='Fiscal Position'
args: 'account.fiscal.position'
has_outstanding
Boolean
compute='_get_outstanding_info_JSON'
groups='account.group_account_invoice'
invoice_line_ids
One2many → account.invoice.line
copy=True
oldname='invoice_line'
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice Lines'
args: 'account.invoice.line', 'invoice_id'
journal_id
Many2one → account.journal
default=_default_journal
domain="[('type', 'in', {'out_invoice': ['sale'], 'out_refund': ['sale'], 'in_refund': ['purchase'], 'in_invoice': ['purchase']}.get(type, [])), ('company_id', '=', company_id)]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
copy=False
help='Link to the automatically generated Journal Items.'
index=True
ondelete='restrict'
readonly=True
string='Journal Entry'
args: 'account.move'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the invoice, automatically set when the invoice is validated then stored to set the same number again if the invoice is cancelled, set to draft and re-validated.'
readonly=False
string='Journal Entry Name'
name
Char
copy=False
help='The name that will be used on account move lines'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Reference/Description'
number
Char
copy=False
readonly=True
related='move_id.name'
store=True
origin
Char
help='Reference of the document that produced this invoice.'
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
outstanding_credits_debits_widget
Text
compute='_get_outstanding_info_JSON'
groups='account.group_account_invoice'
partner_bank_id
Many2one → res.partner.bank
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.'
readonly=True
states={'draft': [('readonly', False)]}
string='Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
change_default=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Partner'
track_visibility='always'
args: 'res.partner'
payment_ids
Many2many → account.payment
copy=False
readonly=True
string='Payments'
args: 'account.payment', 'account_invoice_payment_rel', 'invoice_id', 'payment_id'
payment_move_line_ids
Many2many → account.move.line
compute='_compute_payments'
store=True
string='Payment Move Lines'
args: 'account.move.line'
payment_term_id
Many2one → account.payment.term
help='If you use payment terms, the due date will be computed automatically at the generation of accounting entries. If you keep the payment terms and the due date empty, it means direct payment. The payment terms may compute several due dates, for example 50% now, 50% in one month.'
oldname='payment_term'
readonly=True
states={'draft': [('readonly', False)]}
string='Payment Terms'
args: 'account.payment.term'
payments_widget
Text
compute='_get_payment_info_JSON'
groups='account.group_account_invoice'
reconciled
Boolean
compute='_compute_residual'
help='It indicates that the invoice has been paid and the journal entry of the invoice has been reconciled with one or several journal entries of payment.'
readonly=True
store=True
string='Paid/Reconciled'
reference
Char
copy=False
help='The partner reference of this invoice.'
readonly=True
states={'draft': [('readonly', False)]}
string='Vendor Reference'
reference_type
Selection
default='none'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Payment Reference'
args: '_get_reference_type'
refund_invoice_id
Many2one → account.invoice
string='Invoice for which this invoice is the credit note'
args: 'account.invoice'
refund_invoice_ids
One2many → account.invoice
readonly=True
string='Refund Invoices'
args: 'account.invoice', 'refund_invoice_id'
residual
Monetary
compute='_compute_residual'
help='Remaining amount due.'
store=True
string='Amount Due'
residual_company_signed
Monetary
compute='_compute_residual'
currency_field='company_currency_id'
help='Remaining amount due in the currency of the company.'
store=True
string='Amount Due in Company Currency'
residual_signed
Monetary
compute='_compute_residual'
currency_field='currency_id'
help='Remaining amount due in the currency of the invoice.'
store=True
string='Amount Due in Invoice Currency'
sent
Boolean
copy=False
default=False
help='It indicates that the invoice has been sent.'
readonly=True
sequence_number_next
Char
compute='_get_sequence_number_next'
inverse='_set_sequence_next'
string='Next Number'
sequence_number_next_prefix
Char
compute='_get_sequence_prefix'
string='Next Number'
state
Selection
copy=False
default='draft'
help=" * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n * The 'Open' status is used when user creates invoice, an invoice number is generated. It stays in the open status till the user pays the invoice.\n * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n * The 'Cancelled' status is used when user cancel invoice."
index=True
readonly=True
string='Status'
track_visibility='onchange'
args: [('draft', 'Draft'), ('open', 'Open'), ('paid', 'Paid'), ('cancel', 'Cancelled')]
tax_line_ids
One2many → account.invoice.tax
copy=True
oldname='tax_line'
readonly=True
states={'draft': [('readonly', False)]}
string='Tax Lines'
args: 'account.invoice.tax', 'invoice_id'
type
Selection
change_default=True
default=<expr>
index=True
readonly=True
track_visibility='always'
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
user_id
Many2one → res.users
copy=False
default=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Salesperson'
track_visibility='onchange'
args: 'res.users'
action_cancel(self)
action_date_assign(self)
action_invoice_cancel(self)
action_invoice_draft(self)
action_invoice_open(self)
action_invoice_paid(self)
action_invoice_re_open(self)
action_invoice_sent(self)
action_move_create(self)
assign_outstanding_credit(self, credit_aml_id)
compute_invoice_totals(self, company_currency, invoice_move_lines)
compute_taxes(self)
create(self, vals)
default_get(self, default_fields)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
finalize_invoice_move_lines(self, move_lines)
get_access_action(self, access_uid=None)
get_delivery_partner_id(self)
get_formview_id(self, access_uid=None)
get_mail_url(self)
get_taxes_values(self)
group_lines(self, iml, line)
inv_line_characteristic_hashcode(self, invoice_line)
invoice_line_move_line_get(self)
invoice_print(self)
invoice_validate(self)
line_get_convert(self, line, part)
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
pay_and_reconcile(self, pay_journal, pay_amount=None, date=None, writeoff_acc=None)
refund(self, date_invoice=None, date=None, description=None, journal_id=None)
register_payment(self, payment_line, writeoff_acc_id=False, writeoff_journal_id=False)
tax_line_move_line_get(self)
unlink(self)
No new fields.
Public methods (1)invoice_confirm(self)
account_analytic_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
account_id
Many2one → account.account
default=_default_account
domain=[('deprecated', '=', False)]
help='The income or expense account related to the selected product.'
required=True
string='Account'
args: 'account.account'
analytic_tag_ids
Many2many → account.analytic.tag
string='Analytic Tags'
args: 'account.analytic.tag'
company_currency_id
Many2one → res.currency
readonly=True
related='invoice_id.company_currency_id'
related_sudo=False
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
related='invoice_id.company_id'
related_sudo=False
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
related='invoice_id.currency_id'
related_sudo=False
store=True
args: 'res.currency'
discount
Float
default=0.0
digits=dp.get_precision('Discount')
string='Discount (%)'
invoice_id
Many2one → account.invoice
index=True
ondelete='cascade'
string='Invoice Reference'
args: 'account.invoice'
invoice_line_tax_ids
Many2many → account.tax
domain=[('type_tax_use', '!=', 'none'), '|', ('active', '=', False), ('active', '=', True)]
oldname='invoice_line_tax_id'
string='Taxes'
args: 'account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id'
invoice_type
Selection
readonly=True
related='invoice_id.type'
is_rounding_line
Boolean
help='Is a rounding line in case of cash rounding.'
string='Rounding Line'
name
Text
required=True
string='Description'
origin
Char
help='Reference of the document that produced this invoice.'
string='Source Document'
partner_id
Many2one → res.partner
readonly=True
related='invoice_id.partner_id'
related_sudo=False
store=True
string='Partner'
args: 'res.partner'
price_subtotal
Monetary
compute='_compute_price'
help='Total amount without taxes'
readonly=True
store=True
string='Amount'
price_subtotal_signed
Monetary
compute='_compute_price'
currency_field='company_currency_id'
help='Total amount in the currency of the company, negative for credit note.'
readonly=True
store=True
string='Amount Signed'
price_total
Monetary
compute='_compute_price'
help='Total amount with taxes'
readonly=True
store=True
string='Amount'
price_unit
Float
digits=dp.get_precision('Product Price')
required=True
string='Unit Price'
product_id
Many2one → product.product
index=True
ondelete='restrict'
string='Product'
args: 'product.product'
product_image
Binary
readonly=True
related='product_id.image'
store=False
args: 'Product Image'
quantity
Float
default=1
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity'
sequence
Integer
default=10
help='Gives the sequence of this line when displaying the invoice.'
uom_id
Many2one → product.uom
index=True
oldname='uos_id'
ondelete='set null'
string='Unit of Measure'
args: 'product.uom'
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_invoice_line_account(self, type, product, fpos, company)
unlink(self)
date
Date
string='Accounting Date'
date_invoice
Date
default=fields.Date.context_today
required=True
string='Credit Note Date'
description
Char
default=_get_reason
required=True
string='Reason'
filter_refund
Selection
default='refund'
help='Refund base on this type. You can not Modify and Cancel if the invoice is already reconciled'
required=True
string='Refund Method'
args: [('refund', 'Create a draft credit note'), ('cancel', 'Cancel: create credit note and reconcile'), ('modify', 'Modify: create credit note, reconcile and create a new draft invoice')]
refund_only
Boolean
compute='_get_refund_only'
string='Technical field to hide filter_refund in case invoice is partially paid'
compute_refund(self, mode='refund')
invoice_refund(self)
account_analytic_id
Many2one → account.analytic.account
groups='analytic.group_analytic_accounting'
string='Analytic Account'
args: 'account.analytic.account'
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Account'
args: 'account.account'
account_line_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Account Line'
args: 'account.account'
categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
commercial_partner_id
Many2one → res.partner
help='Commercial Entity'
string='Partner Company'
args: 'res.partner'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country of the Partner Company'
args: 'res.country'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
currency_rate
Float
group_operator='avg'
groups='base.group_multi_currency'
readonly=True
string='Currency Rate'
date
Date
readonly=True
date_due
Date
readonly=True
string='Due Date'
fiscal_position_id
Many2one → account.fiscal.position
oldname='fiscal_position'
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
nbr
Integer
readonly=True
string='# of Lines'
partner_bank_id
Many2one → res.partner.bank
readonly=True
string='Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
payment_term_id
Many2one → account.payment.term
oldname='payment_term'
readonly=True
string='Payment Terms'
args: 'account.payment.term'
price_average
Float
group_operator='avg'
readonly=True
string='Average Price'
price_total
Float
readonly=True
string='Total Without Tax'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_qty
Float
readonly=True
string='Product Quantity'
residual
Float
readonly=True
string='Due Amount'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('open', 'Open'), ('paid', 'Paid'), ('cancel', 'Cancelled')]
type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Credit Note'), ('in_refund', 'Vendor Credit Note')]
uom_name
Char
readonly=True
string='Reference Unit of Measure'
user_currency_price_average
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Average Price'
user_currency_price_total
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Total Without Tax'
user_currency_residual
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Total Residual'
user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
init(self)
account_analytic_id
Many2one → account.analytic.account
string='Analytic account'
args: 'account.analytic.account'
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Tax Account'
args: 'account.account'
amount
Monetary
amount_rounding
Monetary
amount_total
Monetary
compute='_compute_amount_total'
string='Amount'
base
Monetary
compute='_compute_base_amount'
store=True
string='Base'
company_id
Many2one → res.company
readonly=True
related='account_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
readonly=True
related='invoice_id.currency_id'
store=True
args: 'res.currency'
invoice_id
Many2one → account.invoice
index=True
ondelete='cascade'
string='Invoice'
args: 'account.invoice'
manual
Boolean
default=True
name
Char
required=True
string='Tax Description'
sequence
Integer
help='Gives the sequence order when displaying a list of invoice tax.'
tax_id
Many2one → account.tax
ondelete='restrict'
string='Tax'
args: 'account.tax'
No public methods.
account_control_ids
Many2many → account.account
domain=[('deprecated', '=', False)]
string='Accounts Allowed'
args: 'account.account', 'account_account_type_rel', 'journal_id', 'account_id'
active
Boolean
default=True
help='Set active to false to hide the Journal without removing it.'
at_least_one_inbound
Boolean
compute='_methods_compute'
store=True
at_least_one_outbound
Boolean
compute='_methods_compute'
store=True
bank_acc_number
Char
related='bank_account_id.acc_number'
bank_account_id
Many2one → res.partner.bank
copy=False
ondelete='restrict'
string='Bank Account'
args: 'res.partner.bank'
bank_id
Many2one → res.bank
related='bank_account_id.bank_id'
args: 'res.bank'
bank_statements_source
Selection
default='undefined'
string='Bank Feeds'
args: [('undefined', 'Undefined Yet'), ('manual', 'Record Manually')]
belongs_to_company
Boolean
compute='_belong_to_company'
search='_search_company_journals'
args: "Belong to the user's current company"
code
Char
help='The journal entries of this journal will be named using this prefix.'
required=True
size=5
string='Short Code'
company_id
Many2one → res.company
default=<expr>
help='Company related to this journal'
index=True
required=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='The currency used to enter statement'
oldname='currency'
string='Currency'
args: 'res.currency'
default_credit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='It acts as a default account for credit amount'
string='Default Credit Account'
args: 'account.account'
default_debit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='It acts as a default account for debit amount'
string='Default Debit Account'
args: 'account.account'
group_invoice_lines
Boolean
help='If this box is checked, the system will try to group the accounting lines when generating them from invoices.'
string='Group Invoice Lines'
inbound_payment_method_ids
Many2many → account.payment.method
default=<expr>
domain=[('payment_type', '=', 'inbound')]
help='Manual: Get paid by cash, check or any other method outside of Odoo.\nElectronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\nBatch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo,you are suggested to reconcile the transaction with the batch deposit. Enable this option from the settings.'
string='Debit Methods'
args: 'account.payment.method', 'account_journal_inbound_payment_method_rel', 'journal_id', 'inbound_payment_method'
loss_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Used to register a loss when the ending balance of a cash register differs from what the system computes'
string='Loss Account'
args: 'account.account'
name
Char
required=True
string='Journal Name'
outbound_payment_method_ids
Many2many → account.payment.method
default=<expr>
domain=[('payment_type', '=', 'outbound')]
help='Manual:Pay bill by cash or any other method outside of Odoo.\nCheck:Pay bill by check and print it from Odoo.\nSEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. Enable this option from the settings.'
string='Payment Methods'
args: 'account.payment.method', 'account_journal_outbound_payment_method_rel', 'journal_id', 'outbound_payment_method'
profit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Used to register a profit when the ending balance of a cash register differs from what the system computes'
string='Profit Account'
args: 'account.account'
refund_sequence
Boolean
default=False
help="Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal"
string='Dedicated Credit Note Sequence'
refund_sequence_id
Many2one → ir.sequence
copy=False
help='This field contains the information related to the numbering of the credit note entries of this journal.'
string='Credit Note Entry Sequence'
args: 'ir.sequence'
refund_sequence_number_next
Integer
compute='_compute_refund_seq_number_next'
help='The next sequence number will be used for the next credit note.'
inverse='_inverse_refund_seq_number_next'
string='Credit Notes: Next Number'
sequence
Integer
default=10
help='Used to order Journals in the dashboard view'
sequence_id
Many2one → ir.sequence
copy=False
help='This field contains the information related to the numbering of the journal entries of this journal.'
required=True
string='Entry Sequence'
args: 'ir.sequence'
sequence_number_next
Integer
compute='_compute_seq_number_next'
help='The next sequence number will be used for the next invoice.'
inverse='_inverse_seq_number_next'
string='Next Number'
type
Selection
help="Select 'Sale' for customer invoices journals.\nSelect 'Purchase' for vendor bills journals.\nSelect 'Cash' or 'Bank' for journals that are used in customer or vendor payments.\nSelect 'General' for miscellaneous operations journals."
required=True
args: [('sale', 'Sale'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('bank', 'Bank'), ('general', 'Miscellaneous')]
type_control_ids
Many2many → account.account.type
string='Account Types Allowed'
args: 'account.account.type', 'account_journal_type_rel', 'journal_id', 'type_id'
update_posted
Boolean
help='Check this box if you want to allow the cancellation the entries related to this journal or of the invoice related to this journal'
string='Allow Cancelling Entries'
copy(self, default=None)
create(self, vals)
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=100)
onchange_credit_account_id(self)
onchange_debit_account_id(self)
set_bank_account(self, acc_number, bank_id=None)
setup_save_journal_and_create_more(self)
unlink(self)
write(self, vals)
account_setup_bank_data_done
Boolean
help='Technical field used in the special view for the setup bar step.'
related='company_id.account_setup_bank_data_done'
string='Bank setup marked as done'
color
Integer
default=0
args: 'Color Index'
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
action_open_reconcile(self)
create_bank_statement(self)
create_cash_statement(self)
get_bar_graph_datas(self)
get_journal_dashboard_datas(self)
get_line_graph_datas(self)
mark_bank_setup_as_done_action(self)
open_action(self)
open_action_with_context(self)
open_collect_money(self)
open_payments_action(self, payment_type)
open_spend_money(self)
open_transfer_money(self)
retrieve_account_dashboard_setup_bar(self)
unmark_bank_setup_as_done_action(self)
amount
Monetary
compute='_amount_compute'
store=True
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'
store=True
string='Currency'
args: 'res.currency'
date
Date
default=fields.Date.context_today
index=True
required=True
states={'posted': [('readonly', True)]}
dummy_account_id
Many2one → account.account
readonly=True
related='line_ids.account_id'
store=False
string='Account'
args: 'account.account'
journal_id
Many2one → account.journal
default=_get_default_journal
required=True
states={'posted': [('readonly', True)]}
string='Journal'
args: 'account.journal'
line_ids
One2many → account.move.line
copy=True
states={'posted': [('readonly', True)]}
string='Journal Items'
args: 'account.move.line', 'move_id'
matched_percentage
Float
compute='_compute_matched_percentage'
digits=0
help='Technical field used in cash basis method'
readonly=True
store=True
args: 'Percentage Matched'
name
Char
copy=False
default='/'
required=True
string='Number'
narration
Text
string='Internal Note'
partner_id
Many2one → res.partner
compute='_compute_partner_id'
readonly=True
store=True
string='Partner'
args: 'res.partner'
ref
Char
copy=False
string='Reference'
state
Selection
copy=False
default='draft'
help="All manually created new journal entries are usually in the status 'Unposted', but you can set the option to skip that status on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in 'Posted' status."
readonly=True
required=True
string='Status'
args: [('draft', 'Unposted'), ('posted', 'Posted')]
tax_cash_basis_rec_id
Many2one → account.partial.reconcile
help='Technical field used to keep track of the tax cash basis reconciliation. This is needed when cancelling the source: it will post the inverse journal entry to cancel that part too.'
string='Tax Cash Basis Entry of'
args: 'account.partial.reconcile'
action_duplicate(self)
assert_balanced(self)
button_cancel(self)
create(self, vals)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
name_get(self)
open_reconcile_view(self)
post(self)
reverse_moves(self, date=None, journal_id=None)
unlink(self)
update_lines_tax_exigibility(self)
write(self, vals)
account_id
Many2one → account.account
default=<expr>
domain=[('deprecated', '=', False)]
index=True
ondelete='cascade'
required=True
string='Account'
args: 'account.account'
amount_currency
Monetary
default=0.0
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
amount_residual
Monetary
compute='_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
compute='_amount_residual'
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_account_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
analytic_line_ids
One2many → account.analytic.line
oldname='analytic_lines'
string='Analytic lines'
args: 'account.analytic.line', 'move_id'
analytic_tag_ids
Many2many → account.analytic.tag
string='Analytic tags'
args: 'account.analytic.tag'
balance
Monetary
compute='_store_balance'
currency_field='company_currency_id'
help='Technical field holding the debit - credit in order to open meaningful graph views from reports'
store=True
balance_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
help='Technical field holding the debit_cash_basis - credit_cash_basis in order to open meaningful graph views from reports'
store=True
blocked
Boolean
default=False
help='You can check this box to mark this journal item as a litigation with the associated partner'
string='No Follow-up'
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
related='account_id.company_id'
store=True
string='Company'
args: 'res.company'
counterpart
Char
compute='_get_counterpart'
help='Compute the counter part accounts of this journal item for this journal entry. This can be needed in reports.'
args: 'Counterpart'
credit
Monetary
currency_field='company_currency_id'
default=0.0
credit_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
store=True
currency_id
Many2one → res.currency
default=_get_currency
help='The optional other currency if it is a multi-currency entry.'
string='Currency'
args: 'res.currency'
date
Date
copy=False
index=True
related='move_id.date'
store=True
string='Date'
date_maturity
Date
copy=False
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
required=True
string='Due date'
debit
Monetary
currency_field='company_currency_id'
default=0.0
debit_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
store=True
full_reconcile_id
Many2one → account.full.reconcile
copy=False
string='Matching Number'
args: 'account.full.reconcile'
invoice_id
Many2one → account.invoice
copy=False
oldname='invoice'
args: 'account.invoice'
is_unaffected_earnings_line
Boolean
compute='_compute_is_unaffected_earnings_line'
help='Tells whether or not this line belongs to an unaffected earnings account'
string='Is Unaffected Earnings Line'
journal_id
Many2one → account.journal
copy=False
index=True
related='move_id.journal_id'
store=True
string='Journal'
args: 'account.journal'
matched_credit_ids
One2many → account.partial.reconcile
String='Matched Credits'
help='Credit journal items that are matched with this journal item.'
args: 'account.partial.reconcile', 'debit_move_id'
matched_debit_ids
One2many → account.partial.reconcile
String='Matched Debits'
help='Debit journal items that are matched with this journal item.'
args: 'account.partial.reconcile', 'credit_move_id'
move_id
Many2one → account.move
auto_join=True
help='The move of this entry line.'
index=True
ondelete='cascade'
required=True
string='Journal Entry'
args: 'account.move'
name
Char
string='Label'
narration
Text
related='move_id.narration'
string='Narration'
parent_state
Char
compute='_compute_parent_state'
help='State of the parent account.move'
partner_id
Many2one → res.partner
ondelete='restrict'
string='Partner'
args: 'res.partner'
payment_id
Many2one → account.payment
copy=False
help='Payment that created this entry'
string='Originator Payment'
args: 'account.payment'
product_id
Many2one → product.product
string='Product'
args: 'product.product'
product_uom_id
Many2one → product.uom
string='Unit of Measure'
args: 'product.uom'
quantity
Float
digits=dp.get_precision('Product Unit of Measure')
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
reconciled
Boolean
compute='_amount_residual'
store=True
ref
Char
copy=False
index=True
related='move_id.ref'
store=True
string='Reference'
statement_id
Many2one → account.bank.statement
copy=False
help='The bank statement used for bank reconciliation'
index=True
related='statement_line_id.statement_id'
store=True
string='Statement'
args: 'account.bank.statement'
statement_line_id
Many2one → account.bank.statement.line
copy=False
index=True
readonly=True
string='Bank statement line reconciled with this entry'
args: 'account.bank.statement.line'
tax_base_amount
Monetary
compute='_compute_tax_base_amount'
currency_field='company_currency_id'
store=True
string='Base Amount'
tax_exigible
Boolean
default=True
help='Technical field used to mark a tax line as exigible in the vat report or not (only exigible journal items are displayed). By default all new journal items are directly exigible, but with the feature cash_basis on taxes, some will become exigible only when the payment is recorded.'
string='Appears in VAT report'
tax_ids
Many2many → account.tax
domain=['|', ('active', '=', False), ('active', '=', True)]
string='Taxes'
args: 'account.tax'
tax_line_id
Many2one → account.tax
ondelete='restrict'
string='Originator tax'
args: 'account.tax'
user_type_id
Many2one → account.account.type
index=True
oldname='user_type'
readonly=True
related='account_id.user_type_id'
store=True
args: 'account.account.type'
auto_reconcile_lines(self)
compute_amount_fields(self, amount, src_currency, company_currency, invoice_currency=False)
create(self, vals)
create_analytic_lines(self)
default_get(self, fields)
domain_move_lines_for_reconciliation(self, str)
force_full_reconcile(self)
get_data_for_manual_reconciliation(self, res_type, res_ids=None, account_type=None)
get_data_for_manual_reconciliation_widget(self, partner_ids, account_ids)
get_move_lines_for_manual_reconciliation(self, account_id, partner_id=False, excluded_ids=None, str=False, offset=0, limit=None, target_currency_id=False)
get_reconciliation_proposition(self, account_id, partner_id=False)
init(self)
name_get(self)
open_reconcile_view(self)
prepare_move_lines_for_reconciliation_widget(self, target_currency=False, target_date=False)
process_reconciliation(self, new_mv_line_dicts)
process_reconciliations(self, data)
reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False)
remove_move_reconcile(self)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
credit
Float
digits=0
readonly=True
string='Credit amount'
debit
Float
digits=0
readonly=True
string='Debit amount'
trans_nbr
Integer
readonly=True
string='# of Transaction'
writeoff
Float
digits=0
readonly=True
string='Write-Off amount'
default_get(self, fields)
trans_rec_addendum_writeoff(self)
trans_rec_get(self)
trans_rec_reconcile_full(self)
trans_rec_reconcile_partial_reconcile(self)
analytic_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
comment
Char
default='Write-off'
required=True
date_p
Date
default=fields.Date.context_today
string='Date'
journal_id
Many2one → account.journal
required=True
string='Write-Off Journal'
args: 'account.journal'
writeoff_acc_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Write-Off account'
args: 'account.account'
trans_rec_addendum(self)
trans_rec_reconcile(self)
trans_rec_reconcile_partial(self)
date
Date
default=fields.Date.context_today
required=True
string='Reversal date'
journal_id
Many2one → account.journal
help='If empty, uses the journal of the journal entry to be reversed.'
string='Use Specific Journal'
args: 'account.journal'
reverse_moves(self)
company_id
Many2one → res.company
comodel_name='res.company'
required=True
currency_id
Many2one → res.currency
comodel_name='res.currency'
related='opening_move_id.currency_id'
date
Date
related='opening_move_id.date'
required=True
string='Opening Date'
journal_id
Many2one → account.journal
comodel_name='account.journal'
related='opening_move_id.journal_id'
required=True
string='Journal'
opening_move_id
Many2one → account.move
comodel_name='account.move'
related='company_id.account_opening_move_id'
string='Opening Journal Entry'
opening_move_line_ids
One2many
related='opening_move_id.line_ids'
string='Opening Journal Items'
opening_move_line_ids_changed(self)
validate(self)
amount
Monetary
currency_field='company_currency_id'
help='Amount concerned by this matching. Assumed to be always positive'
amount_currency
Monetary
string='Amount in Currency'
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
related='debit_move_id.company_id'
store=True
string='Currency'
args: 'res.company'
credit_move_id
Many2one → account.move.line
index=True
required=True
args: 'account.move.line'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
debit_move_id
Many2one → account.move.line
index=True
required=True
args: 'account.move.line'
full_reconcile_id
Many2one → account.full.reconcile
copy=False
string='Full Reconcile'
args: 'account.full.reconcile'
max_date
Date
compute='_compute_max_date'
copy=False
help='Technical field used to determine at which date this reconciliation needs to be shown on the aged receivable/payable reports.'
readonly=True
store=True
string='Max Date of Matched Lines'
create(self, vals)
create_exchange_rate_entry(self, aml_to_fix, amount_diff, diff_in_currency, currency, move)
create_tax_cash_basis_entry(self, percentage_before_rec)
unlink(self)
company_id
Many2one
store=True
destination_account_id
Many2one → account.account
compute='_compute_destination_account_id'
readonly=True
args: 'account.account'
destination_journal_id
Many2one → account.journal
domain=[('type', 'in', ('bank', 'cash'))]
string='Transfer To'
args: 'account.journal'
has_invoices
Boolean
compute='_get_has_invoices'
help='Technical field used for usability purposes'
invoice_ids
Many2many → account.invoice
copy=False
readonly=True
string='Invoices'
args: 'account.invoice', 'account_invoice_payment_rel', 'payment_id', 'invoice_id'
move_line_ids
One2many → account.move.line
copy=False
ondelete='restrict'
readonly=True
args: 'account.move.line', 'payment_id'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the journal entry, automatically set when the statement line is reconciled then stored to set the same number again if the line is cancelled, set to draft and re-processed again.'
readonly=True
string='Journal Entry Name'
move_reconciled
Boolean
compute='_get_move_reconciled'
readonly=True
name
Char
copy=False
readonly=True
payment_difference
Monetary
compute='_compute_payment_difference'
readonly=True
payment_difference_handling
Selection
copy=False
default='open'
string='Payment Difference'
args: [('open', 'Keep open'), ('reconcile', 'Mark invoice as fully paid')]
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
readonly=True
payment_type
Selection
selection_add=[('transfer', 'Internal Transfer')]
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
args: [('draft', 'Draft'), ('posted', 'Posted'), ('sent', 'Sent'), ('reconciled', 'Reconciled'), ('cancelled', 'Cancelled')]
writeoff_account_id
Many2one → account.account
copy=False
domain=[('deprecated', '=', False)]
string='Difference Account'
args: 'account.account'
writeoff_label
Char
default='Write-Off'
help='Change label of the counterpart that will hold the payment difference'
string='Journal Item Label'
action_draft(self)
action_validate_invoice_payment(self)
button_dummy(self)
button_invoices(self)
button_journal_entries(self)
cancel(self)
default_get(self, fields)
open_payment_matching_screen(self)
post(self)
unlink(self)
unreconcile(self)
code
Char
required=True
name
Char
required=True
translate=True
payment_type
Selection
required=True
args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
No public methods.
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment terms without removing it.'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Terms'
translate=True
note
Text
string='Description on the Invoice'
translate=True
sequence
Integer
default=10
required=True
compute(self, value, date_ref=False)
unlink(self)
days
Integer
default=0
required=True
string='Number of Days'
option
Selection
default='day_after_invoice_date'
required=True
string='Options'
args: [('day_after_invoice_date', 'Day(s) after the invoice date'), ('fix_day_following_month', 'Day(s) after the end of the invoice month (Net EOM)'), ('last_day_following_month', 'Last day of following month'), ('last_day_current_month', 'Last day of current month')]
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Terms'
args: 'account.payment.term'
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of payment terms lines.'
value
Selection
default='balance'
help='Select here the kind of valuation related to this payment terms line.'
required=True
string='Type'
args: [('balance', 'Balance'), ('percent', 'Percent'), ('fixed', 'Fixed Amount')]
value_amount
Float
digits=dp.get_precision('Payment Terms')
help='For percent enter a ratio between 0-100.'
string='Value'
No public methods.
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
sort_selection
Selection
default='move_name'
required=True
args: [('date', 'Date'), ('move_name', 'Journal Entry Number')], 'Entries Sorted by'
No public methods.
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Account'
args: 'account.account'
amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance')]
analytic_account_id
Many2one → account.analytic.account
ondelete='set null'
string='Analytic Account'
args: 'account.analytic.account'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
has_second_line
Boolean
default=False
string='Add a second line'
journal_id
Many2one → account.journal
help='This field is ignored in a bank statement reconciliation.'
ondelete='cascade'
string='Journal'
args: 'account.journal'
label
Char
string='Journal Item Label'
name
Char
required=True
string='Button Label'
second_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Second Account'
args: 'account.account'
second_amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Second Amount'
second_amount_type
Selection
default='percentage'
required=True
string='Second Amount type'
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of amount')]
second_analytic_account_id
Many2one → account.analytic.account
ondelete='set null'
string='Second Analytic Account'
args: 'account.analytic.account'
second_journal_id
Many2one → account.journal
help='This field is ignored in a bank statement reconciliation.'
ondelete='cascade'
string='Second Journal'
args: 'account.journal'
second_label
Char
string='Second Journal Item Label'
second_tax_id
Many2one → account.tax
domain=[('type_tax_use', '=', 'purchase')]
ondelete='restrict'
string='Second Tax'
args: 'account.tax'
sequence
Integer
default=10
required=True
tax_id
Many2one → account.tax
ondelete='restrict'
string='Tax'
args: 'account.tax'
onchange_name(self)
account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Account'
args: 'account.account.template'
amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance')]
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
has_second_line
Boolean
default=False
string='Add a second line'
label
Char
string='Journal Item Label'
name
Char
required=True
string='Button Label'
second_account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Second Account'
args: 'account.account.template'
second_amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Second Amount'
second_amount_type
Selection
default='percentage'
required=True
string='Second Amount type'
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of amount')]
second_label
Char
string='Second Journal Item Label'
second_tax_id
Many2one → account.tax.template
domain=[('type_tax_use', '=', 'purchase')]
ondelete='restrict'
string='Second Tax'
args: 'account.tax.template'
sequence
Integer
default=10
required=True
tax_id
Many2one → account.tax.template
domain=[('type_tax_use', '=', 'purchase')]
ondelete='restrict'
string='Tax'
args: 'account.tax.template'
No public methods.
invoice_ids
Many2many → account.invoice
copy=False
string='Invoices'
args: 'account.invoice'
multi
Boolean
help='Technical field indicating if the user selected invoices from multiple partners or from different types.'
string='Multi'
create_payments(self)
default_get(self, fields)
get_payments_vals(self)
initial_balance
Boolean
help="If you selected date, this field allow you to add a row to display the amount of debit/credit/balance that precedes the filter you've set."
string='Include Initial Balances'
journal_ids
Many2many → account.journal
required=True
string='Journals'
args: 'account.journal', 'account_report_general_ledger_journal_rel', 'account_id', 'journal_id'
sortby
Selection
default='sort_date'
required=True
string='Sort by'
args: [('sort_date', 'Date'), ('sort_journal_partner', 'Journal & Partner')]
No public methods.
amount_currency
Boolean
help='It adds the currency column on report if the currency differs from the company currency.'
args: 'With Currency'
reconciled
Boolean
No public methods.
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Account that will be set on invoice tax lines for invoices. Leave empty to use the expense account.'
oldname='account_collected_id'
ondelete='restrict'
string='Tax Account'
args: 'account.account'
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
oldname='type'
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Include in Analytic Cost'
cash_basis_account
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Account used as counterpart for the journal entry, for taxes eligible based on payments.'
string='Tax Received Account'
args: 'account.account'
children_tax_ids
Many2many → account.tax
string='Children Taxes'
args: 'account.tax', 'account_tax_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
description
Char
string='Label on Invoices'
translate=True
hide_tax_exigibility
Boolean
readonly=True
related='company_id.tax_exigibility'
string='Hide Use Cash Basis Option'
include_base_amount
Boolean
default=False
help='If set, taxes which are computed after this one will be computed based on the price tax included.'
string='Affect Base of Subsequent Taxes'
name
Char
required=True
string='Tax Name'
translate=True
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='Account that will be set on invoice tax lines for credit notes. Leave empty to use the expense account.'
oldname='account_paid_id'
ondelete='restrict'
string='Tax Account on Credit Notes'
args: 'account.account'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Tags'
args: 'account.account.tag', 'account_tax_account_tag'
tax_adjustment
Boolean
help='Set this field to true if this tax can be used in the tax adjustment wizard, used to manually fill some data in the tax declaration'
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
oldname='use_cash_basis'
string='Tax Due'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
default=_default_tax_group
required=True
string='Tax Group'
args: 'account.tax.group'
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group."
required=True
string='Tax Scope'
args: [('sale', 'Sales'), ('purchase', 'Purchases'), ('none', 'None')]
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None)
copy(self, default=None)
get_grouping_key(self, invoice_tax_val)
json_friendly_compute_all(self, price_unit, currency_id=None, quantity=1.0, product_id=None, partner_id=None)
name_search(self, name, args=None, operator='ilike', limit=80)
onchange_account_id(self)
onchange_amount(self)
onchange_amount_type(self)
onchange_price_include(self)
search(self, args, offset=0, limit=None, order=None, count=False)
unlink(self)
name
Char
required=True
translate=True
sequence
Integer
default=10
No public methods.
No new fields.
Public methods (0)No public methods.
account_id
Many2one → account.account.template
help='Account that will be set on invoice tax lines for invoices. Leave empty to use the expense account.'
oldname='account_collected_id'
ondelete='restrict'
string='Tax Account'
args: 'account.account.template'
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Analytic Cost'
cash_basis_account
Many2one → account.account.template
domain=[('deprecated', '=', False)]
help='Account used as counterpart for the journal entry, for taxes eligible based on payments.'
string='Tax Received Account'
args: 'account.account.template'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
children_tax_ids
Many2many → account.tax.template
string='Children Taxes'
args: 'account.tax.template', 'account_tax_template_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
description
Char
string='Display on Invoices'
include_base_amount
Boolean
default=False
help='If set, taxes which are computed after this one will be computed based on the price tax included.'
string='Affect Subsequent Taxes'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_account_id
Many2one → account.account.template
help='Account that will be set on invoice tax lines for refunds. Leave empty to use the expense account.'
oldname='account_paid_id'
ondelete='restrict'
string='Tax Account on Refunds'
args: 'account.account.template'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag'
tax_adjustment
Boolean
default=False
tax_exigibility
Selection
default='on_invoice'
help='Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.'
oldname='use_cash_basis'
string='Tax Due'
args: [('on_invoice', 'Based on Invoice'), ('on_payment', 'Based on Payment')]
tax_group_id
Many2one → account.tax.group
string='Tax Group'
args: 'account.tax.group'
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group."
required=True
string='Tax Scope'
args: [('sale', 'Sales'), ('purchase', 'Purchases'), ('none', 'None')]
name_get(self)
No new fields.
Public methods (1)trans_unrec(self)
account_report_id
Many2one → account.financial.report
default=_get_account_report
required=True
string='Account Reports'
args: 'account.financial.report'
date_from_cmp
Date
string='Start Date'
date_to_cmp
Date
string='End Date'
debit_credit
Boolean
help='This option allows you to get more details about the way your balances are computed. Because it is space consuming, we do not allow to use it while doing a comparison.'
string='Display Debit/Credit Columns'
enable_filter
Boolean
string='Enable Comparison'
filter_cmp
Selection
default='filter_no'
required=True
string='Filter by'
args: [('filter_no', 'No Filters'), ('filter_date', 'Date')]
label_filter
Char
help='This label will be displayed on report to show the balance computed for the given comparison filter.'
string='Column Label'
check_report(self)
No new fields.
Public methods (1)send_mail(self, auto_commit=False)
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.'
oldname='property_account_expense_categ'
string='Expense Account'
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='This account will be used when validating a customer invoice.'
oldname='property_account_income_categ'
string='Income Account'
args: 'account.account'
No public methods.
No new fields.
Public methods (0)No public methods.
property_account_expense_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation. If the field is empty, it uses the one defined in the product category.'
oldname='property_account_expense'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='Keep this field empty to use the default value from the product category.'
oldname='property_account_income'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
domain=[('type_tax_use', '=', 'purchase')]
string='Vendor Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
taxes_id
Many2many → account.tax
domain=[('type_tax_use', '=', 'sale')]
string='Customer Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
get_product_accounts(self, fiscal_pos=None)
No new fields.
Public methods (1)get_report_values(self, docids, data=None)
No new fields.
Public methods (2)get_account_lines(self, data)
get_report_values(self, docids, data=None)
No new fields.
Public methods (1)get_report_values(self, docids, data=None)
No new fields.
Public methods (2)get_report_values(self, docids, data=None)
lines(self, target_move, journal_ids, sort_selection, data)
No new fields.
Public methods (1)get_report_values(self, docids, data=None)
No new fields.
Public methods (1)get_report_values(self, docids, data=None)
No new fields.
Public methods (2)get_lines(self, options)
get_report_values(self, docids, data=None)
No new fields.
Public methods (1)get_report_values(self, docids, data=None)
account_opening_date
Date
help="Date at which the opening entry of this company's accounting has been posted."
related='account_opening_move_id.date'
string='Opening Date'
account_opening_journal_id
Many2one → account.journal
comodel_name='account.journal'
help="Journal where the opening entry of this company's accounting has been posted."
related='account_opening_move_id.journal_id'
string='Opening Journal'
account_opening_move_id
Many2one → account.move
comodel_name='account.move'
help="The journal entry containing the initial balance of all this company's accounts."
string='Opening Journal Entry'
account_setup_bank_data_done
Boolean
help='Technical field holding the status of the bank setup step.'
args: 'Bank Setup Marked As Done'
account_setup_bar_closed
Boolean
help='Technical field set to True when setup bar has been closed by the user.'
string='Setup Bar Closed'
account_setup_coa_done
Boolean
help='Technical field holding the status of the chart of account setup step.'
string='Chart of Account Checked'
account_setup_company_data_done
Boolean
help='Technical field holding the status of the company setup step.'
string='Company Setup Marked As Done'
account_setup_fy_data_done
Boolean
help='Technical field holding the status of the financial year setup step.'
args: 'Financial Year Setup Marked As Done'
accounts_code_digits
Integer
string='Number of digits in an account code'
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
bank_account_code_prefix
Char
oldname='bank_account_code_char'
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template_id
Many2one → account.chart.template
help='The chart template for the company (if any)'
args: 'account.chart.template'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_currency_exchange_account_id
Many2one → account.account
domain="[('internal_type', '=', 'other'), ('deprecated', '=', False), ('company_id', '=', id)]"
related='currency_exchange_journal_id.default_debit_account_id'
string='Loss Exchange Rate Account'
args: 'account.account'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default=12
required=True
args: [(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')]
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
string='Lock Date'
income_currency_exchange_account_id
Many2one → account.account
domain="[('internal_type', '=', 'other'), ('deprecated', '=', False), ('company_id', '=', id)]"
related='currency_exchange_journal_id.default_credit_account_id'
string='Gain Exchange Rate Account'
args: 'account.account'
overdue_msg
Text
default=<expr>
string='Overdue Payments Message'
translate=True
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
string='Lock Date for Non-Advisers'
property_stock_account_input_categ_id
Many2one → account.account
oldname='property_stock_account_input_categ'
string='Input Account for Stock Valuation'
args: 'account.account'
property_stock_account_output_categ_id
Many2one → account.account
oldname='property_stock_account_output_categ'
string='Output Account for Stock Valuation'
args: 'account.account'
property_stock_valuation_account_id
Many2one → account.account
string='Account Template for Stock Valuation'
args: 'account.account'
tax_calculation_rounding_method
Selection
default='round_per_line'
string='Tax Calculation Rounding Method'
args: [('round_per_line', 'Round per Line'), ('round_globally', 'Round Globally')]
tax_cash_basis_journal_id
Many2one → account.journal
string='Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
string='Use Cash Basis'
transfer_account_id
Many2one → account.account
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
compute_fiscalyear_dates(self, date)
create_op_move_if_non_existant(self)
get_new_account_code(self, current_code, old_prefix, new_prefix, digits)
get_opening_move_differences(self, opening_move_lines)
get_unaffected_earnings_account(self)
mark_company_setup_as_done_action(self)
opening_move_posted(self)
reflect_code_digits_change(self, digits)
reflect_code_prefix_change(self, old_code, new_code, digits)
setting_chart_of_accounts_action(self)
setting_hide_setup_bar(self)
setting_init_bank_account_action(self)
setting_init_company_action(self)
setting_init_fiscal_year_action(self)
setting_opening_move_action(self)
unmark_company_setup_as_done_action(self)
write(self, values)
account_hide_setup_bar
Boolean
help='Tick if you wish to hide the setup bar on the dashboard'
related='company_id.account_setup_bar_closed'
string='Hide Setup Bar'
chart_template_id
Many2one → account.chart.template
domain="[('visible','=', True)]"
string='Template'
args: 'account.chart.template'
code_digits
Integer
help='No. of digits to use for account code'
related='company_id.accounts_code_digits'
string='# of Digits *'
currency_exchange_journal_id
Many2one → account.journal
domain="[('company_id', '=', company_id), ('type', '=', 'general')]"
help='The accounting journal where automatic exchange differences will be registered'
related='company_id.currency_exchange_journal_id'
string='Exchange Gain or Loss Journal'
args: 'account.journal'
currency_id
Many2one → res.currency
help='Main currency of the company.'
related='company_id.currency_id'
required=True
string='Currency'
args: 'res.currency'
default_purchase_tax_id
Many2one → account.tax
company_dependent=True
oldname='default_purchase_tax'
string='Default Purchase Tax'
args: 'account.tax'
default_sale_tax_id
Many2one → account.tax
company_dependent=True
oldname='default_sale_tax'
string='Default Sale Tax'
args: 'account.tax'
group_analytic_accounting
Boolean
implied_group='analytic.group_analytic_accounting'
string='Analytic Accounting'
group_cash_rounding
Boolean
implied_group='account.group_cash_rounding'
string='Cash Rounding'
group_warning_account
Boolean
implied_group='account.group_warning_account'
string='Warnings'
has_accounting_entries
Boolean
compute='_compute_has_chart_of_accounts'
has_chart_of_accounts
Boolean
compute='_compute_has_chart_of_accounts'
string='Company has a chart of accounts'
module_account_accountant
Boolean
string='Accounting'
module_account_asset
Boolean
string='Assets Management'
module_account_bank_statement_import_camt
Boolean
module_account_bank_statement_import_csv
Boolean
module_account_bank_statement_import_ofx
Boolean
module_account_bank_statement_import_qif
Boolean
module_account_batch_deposit
Boolean
help='This allows you to group received checks before you deposit them to the bank.\n-This installs the module account_batch_deposit.'
string='Use batch deposit'
module_account_budget
Boolean
string='Budget Management'
module_account_deferred_revenue
Boolean
string='Revenue Recognition'
module_account_payment
Boolean
string='Online Payment'
module_account_plaid
Boolean
string='Plaid Connector'
module_account_reports
Boolean
module_account_reports_followup
Boolean
module_account_sepa
Boolean
string='SEPA Credit Transfer (SCT)'
module_account_sepa_direct_debit
Boolean
string='Use SEPA Direct Debit'
module_account_taxcloud
Boolean
string='Account TaxCloud'
module_account_yodlee
Boolean
module_currency_rate_live
Boolean
string='Automatic Currency Rates'
module_l10n_eu_service
Boolean
string='EU Digital Goods VAT'
module_l10n_us_check_printing
Boolean
module_print_docsaway
Boolean
string='Docsaway'
module_product_margin
Boolean
string='Allow Product Margin'
tax_calculation_rounding_method
Selection
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
args: [('round_per_line', 'Round calculation of taxes per line'), ('round_globally', 'Round globally calculation of taxes ')]
tax_cash_basis_journal_id
Many2one → account.journal
related='company_id.tax_cash_basis_journal_id'
string='Tax Cash Basis Journal'
args: 'account.journal'
tax_exigibility
Boolean
related='company_id.tax_exigibility'
string='Cash Basis'
create(self, values)
get_values(self)
onchange_account_yodlee(self)
onchange_analytic_accounting(self)
onchange_module_account_budget(self)
set_values(self)
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Contracts'
args: 'account.analytic.account', 'partner_id'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contracts'
type='integer'
credit
Monetary
compute='_credit_debit_get'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
currency_id
Many2one → res.currency
compute='_get_company_currency'
help='Utility field to express amount currency'
readonly=True
string='Currency'
args: 'res.currency'
debit
Monetary
compute='_credit_debit_get'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
debit_limit
Monetary
has_unreconciled_entries
Boolean
compute='_compute_has_unreconciled_entries'
help='The partner has at least one unreconciled debit and credit since last time the invoices & payments matching was performed.'
invoice_ids
One2many → account.invoice
copy=False
readonly=True
string='Invoices'
args: 'account.invoice', 'partner_id'
invoice_warn
Selection
default='no-message'
help=WARNING_HELP
required=True
args: WARNING_MESSAGE, 'Invoice'
invoice_warn_msg
Text
journal_item_count
Integer
compute='_compute_journal_item_count'
string='Journal Items'
type='integer'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed for this partner. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit or if you click the "Done" button.'
oldname='last_reconciliation_date'
readonly=True
string='Latest Invoices & Payments Matching Date'
property_account_payable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'payable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the payable account for the current partner'
oldname='property_account_payable'
required=True
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
company_dependent=True
help='The fiscal position will determine taxes and accounts used for the partner.'
oldname='property_account_position'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'receivable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the receivable account for the current partner'
oldname='property_account_receivable'
required=True
string='Account Receivable'
args: 'account.account'
property_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for sales orders and customer invoices'
oldname='property_payment_term'
string='Customer Payment Terms'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for purchase orders and vendor bills'
oldname='property_supplier_payment_term'
string='Vendor Payment Terms'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
oldname='ref_companies'
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice'
string='Total Invoiced'
trust
Selection
company_dependent=True
default='normal'
string='Degree of trust you have in this debtor'
args: [('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')]
action_view_partner_invoices(self)
get_followup_lines_domain(self, date, overdue_only=False, only_unblocked=False)
mark_as_reconciled(self)
journal_id
One2many → account.journal
domain=[('type', '=', 'bank')]
help='The accounting journal corresponding to this bank account.'
readonly=True
string='Account Journal'
args: 'account.journal', 'bank_account_id'
No public methods.
adjustment_type
Selection
required=True
store=False
string='Adjustment Type'
args: [('debit', 'Applied on debit journal item'), ('credit', 'Applied on credit journal item')]
amount
Monetary
currency_field='company_currency_id'
required=True
company_currency_id
Many2one → res.currency
default=<expr>
readonly=True
args: 'res.currency'
credit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Credit account'
args: 'account.account'
date
Date
default=fields.Date.context_today
required=True
debit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Debit account'
args: 'account.account'
journal_id
Many2one → account.journal
default=_get_default_journal
domain=[('type', '=', 'general')]
required=True
string='Journal'
args: 'account.journal'
reason
Char
required=True
string='Justification'
tax_id
Many2one → account.tax
domain=[('type_tax_use', '=', 'none'), ('tax_adjustment', '=', True)]
ondelete='restrict'
required=True
string='Adjustment Tax'
args: 'account.tax'
create_move(self)
create_move_credit(self)
create_move_debit(self)
No new fields.
Public methods (1)validate_move(self)
No new fields.
Public methods (0)No public methods.
bank_account_code_prefix
Char
oldname='bank_account_code_char'
args: 'Bank Accounts Prefix'
bank_account_ids
One2many → account.bank.accounts.wizard
oldname='bank_accounts_id'
required=True
string='Cash and Banks'
args: 'account.bank.accounts.wizard', 'bank_account_id'
cash_account_code_prefix
Char
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
code_digits
Integer
help='No. of Digits to use for account code'
required=True
string='# of Digits'
company_id
Many2one → res.company
required=True
string='Company'
args: 'res.company'
complete_tax_set
Boolean
help='This boolean helps you to choose if you want to propose to the user to encode the sales and purchase rates or use the usual m2o fields. This last choice assumes that the set of tax defined for the chosen template is complete'
args: 'Complete Set of Taxes'
currency_id
Many2one → res.currency
help="Currency as per company's country."
required=True
string='Currency'
args: 'res.currency'
only_one_chart_template
Boolean
string='Only One Chart Template Available'
purchase_tax_id
Many2one → account.tax.template
oldname='purchase_tax'
string='Default Purchase Tax'
args: 'account.tax.template'
purchase_tax_rate
Float
string='Purchase Tax(%)'
sale_tax_id
Many2one → account.tax.template
oldname='sale_tax'
string='Default Sales Tax'
args: 'account.tax.template'
sale_tax_rate
Float
string='Sales Tax(%)'
transfer_account_id
Many2one → account.account.template
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
required=True
string='Transfer Account'
args: 'account.account.template'
use_anglo_saxon
Boolean
related='chart_template_id.use_anglo_saxon'
string='Use Anglo-Saxon Accounting'
default_get(self, fields)
execute(self)
existing_accounting(self, company_id)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
onchange_chart_template_id(self)
onchange_tax_rate(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/10.0/account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, David Monjoie, Xavier Morel, Joren Van Onder, Goffin Simon, Cedric Snauwaert, Simon Lejeune, Nicolas Martinelli, Nicolas Lempereur, Julien Legros, qdp-odoo, Géry Debongnie, Aaron Bohy, Jeremy Kersten, GitHub, Lucas Perais (lpe), Damien Bouvy, Olivier Colson, pvy, Yannick Tivisse, qsm-odoo, Martin Geubelle, Pierre Masereel, Denis Vermylen (dve), De Paoli Quentin, Tanguy Charlier, Jorge Pinna Puissant, Nans Lefebvre, amoyaux, Arnold Moyaux, Adrian Torres, Nathan de Pryck, wan, mreficent |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/billing |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:50:47 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web_kanban - web - product - decimal_precision - bus - web_tour - report - analytic - web_planner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Invoicing & Payments
====================
The specific and easy-to-use Invoicing system in Odoo allows you to keep track of your accounting, even when you are not an accountant. It provides an easy way to follow up on your vendors and customers.
You could use this simplified accounting in case you work with an (external) account to keep your books, and you still want to keep track of payments. This module also offers you an easy method of registering payments, without having to encode complete abstracts of account.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account.report_overdue_document |
account.report_overdue_document | ir.ui.view | qweb | New |
account_aged_balance_view |
Aged Partner Balance | account.aged.trial.balance | form | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_common_report_view |
Common Report | account.common.report | form | New |
account_invoice_cancel_view |
account.invoice.cancel.form | account.invoice.cancel | form | New |
account_invoice_confirm_view |
account.invoice.confirm.form | account.invoice.confirm | form | New |
account_invoice_report_duplicate |
account_invoice_report_duplicate | ir.ui.view | qweb | Inherits account.report_invoice_document |
account_invoice_report_duplicate_main |
account_invoice_report_duplicate_main | ir.ui.view | qweb | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_graph_date_cash_basis |
account.move.line.graph | account.move.line | graph | New |
account_move_line_reconcile_writeoff |
account.move.line.reconcile.writeoff.form | account.move.line.reconcile.writeoff | form | New |
account_planner |
account_planner | ir.ui.view | qweb | New |
account_report_balance_view |
Trial Balance | account.balance.report | data | Inherits account_common_report_view |
account_report_general_ledger_view |
General Ledger | account.report.general.ledger | data | Inherits account_common_report_view |
account_report_partner_ledger_view |
Partner Ledger | account.report.partner.ledger | data | Inherits account.account_common_report_view |
account_report_print_journal_view |
Sale/Purchase Journal | account.print.journal | data | Inherits account.account_common_report_view |
account_tag_view_form |
Tags | account.account.tag | form | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
accounting_report_view |
Accounting Report | accounting.report | field | Inherits account.account_common_report_view |
assets_backend |
account assets | ir.ui.view | qweb | Inherits web.assets_backend |
cash_box_in_form |
cash_box_in | cash.box.in | form | New |
cash_box_out_form |
cash_box_out | cash.box.out | form | New |
external_layout_footer |
external_layout_footer | ir.ui.view | qweb | Inherits report.external_layout_footer |
invoice_form |
account.invoice.form | account.invoice | form | New |
invoice_kanban |
account.invoice.kanban | account.invoice | kanban | New |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | form | New |
invoice_supplier_tree |
account.invoice.supplier.tree | account.invoice | tree | New |
invoice_tree |
account.invoice.tree | account.invoice | tree | New |
partner_view_button_contracts_count |
partner.view.button.contracts_count | res.partner | div | Inherits base.view_partner_form |
partner_view_buttons |
partner.view.buttons | res.partner | div | Inherits base.view_partner_form |
product_template_form_view |
product.template.form.inherit | product.template | page | Inherits product.product_template_form_view |
report_agedpartnerbalance |
report_agedpartnerbalance | ir.ui.view | qweb | New |
report_financial |
report_financial | ir.ui.view | qweb | New |
report_generalledger |
report_generalledger | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_journal |
report_journal | ir.ui.view | qweb | New |
report_overdue |
report_overdue | ir.ui.view | qweb | New |
report_partnerledger |
report_partnerledger | ir.ui.view | qweb | New |
report_trialbalance |
report_trialbalance | ir.ui.view | qweb | New |
tax_adjustments_wizard |
tax.adjustments.wizard.form | tax.adjustments.wizard | form | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.tree.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_bank_journal_form |
account.bank.journal.form | account.journal | form | New |
view_account_bank_journal_tree |
account.bank.journal.tree | account.journal | tree | New |
view_account_bnk_stmt_cashbox |
account.bnk_stmt_cashbox.form | account.bank.statement.cashbox | form | New |
view_account_bnk_stmt_check |
account.bnk_stmt_check.form | account.bank.statement.closebalance | form | New |
view_account_chart_template_form |
account.chart.template.form | account.chart.template | form | New |
view_account_chart_template_seacrh |
account.chart.template.search | account.chart.template | search | New |
view_account_chart_template_tree |
account.chart.template.tree | account.chart.template | tree | New |
view_account_config_settings |
account settings | account.config.settings | form | New |
view_account_financial_report_form |
account.financial.report.form | account.financial.report | form | New |
view_account_financial_report_search |
account.financial.report.search | account.financial.report | search | New |
view_account_financial_report_tree |
account.financial.report.tree | account.financial.report | tree | New |
view_account_form |
account.account.form | account.account | form | New |
view_account_invoice_filter |
account.invoice.select | account.invoice | search | New |
view_account_invoice_refund |
account.invoice.refund.form | account.invoice.refund | form | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_line_filter |
Journal Items | account.move.line | search | New |
view_account_move_line_reconcile_full |
account.move.line.reconcile.full.form | account.move.line.reconcile | form | New |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_from_invoices |
account.register.payments.wizard | account.register.payments | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_invoice_form |
account.payment.invoice.form | account.payment | form | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_tree |
account.payment.tree | account.payment | tree | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_reconcile_model_form |
account.reconcile.model.form | account.reconcile.model | form | New |
view_account_reconcile_model_search |
account.reconcile.model.search | account.reconcile.model | search | New |
view_account_reconcile_model_tree |
account.reconcile.model.tree | account.reconcile.model | tree | New |
view_account_report_tree_hierarchy |
account.report.hierarchy | account.financial.report | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_supplier_payment_tree |
account.supplier.payment.tree | account.payment | tree | New |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_template_form |
account.account.template.form | account.account.template | form | New |
view_account_template_search |
account.account.template.search | account.account.template | search | New |
view_account_template_tree |
account.account.template.tree | account.account.template | tree | New |
view_account_type_form |
account.account.type.form | account.account.type | form | New |
view_account_type_search |
account.account.type.search | account.account.type | search | New |
view_account_type_tree |
account.account.type.tree | account.account.type | tree | New |
view_bank_statement_form |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_line_form |
bank.statement.line.form | account.bank.statement.line | form | New |
view_bank_statement_line_search |
account.bank.statement.line.search | account.bank.statement.line | search | New |
view_bank_statement_line_tree |
account.bank.statement.line.tree | account.bank.statement.line | tree | New |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_full_reconcile_form |
account.full.reconcile.form | account.full.reconcile | form | New |
view_invoice_graph |
account.invoice.graph | account.invoice | graph | New |
view_invoice_line_calendar |
account.invoice.calendar | account.invoice | calendar | New |
view_invoice_line_form |
account.invoice.line.form | account.invoice.line | form | New |
view_invoice_line_tree |
account.invoice.line.tree | account.invoice.line | tree | New |
view_invoice_pivot |
account.invoice.pivot | account.invoice | pivot | New |
view_invoice_tax_form |
account.invoice.tax.form | account.invoice.tax | form | New |
view_invoice_tax_tree |
account.invoice.tax.tree | account.invoice.tax | tree | New |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_form2 |
account.move.line.form2 | account.move.line | form | New |
view_move_line_pivot |
account.move.line.pivot | account.move.line | pivot | New |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_tree |
account.move.tree | account.move | tree | New |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | page | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_line_form |
account.payment.term.line.form | account.payment.term.line | form | New |
view_payment_term_line_tree |
account.payment.term.line.tree | account.payment.term.line | tree | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
view_wizard_multi_chart |
Choose Accounting Template | wizard.multi.charts.accounts | form | Inherits base.res_config_view_base |
amount
Monetary
required=True
string='Payment Amount'
communication
Char
string='Memo'
company_id
Many2one → res.company
readonly=True
related='journal_id.company_id'
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
hide_payment_method
Boolean
compute='_compute_hide_payment_method'
help="Technical field used to hide the payment method if the selected journal has only one available which is 'manual'"
journal_id
Many2one → account.journal
domain=[('type', 'in', ('bank', 'cash'))]
required=True
string='Payment Journal'
args: 'account.journal'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
partner_type
Selection
payment_date
Date
copy=False
default=fields.Date.context_today
required=True
string='Payment Date'
payment_method_code
Char
help='Technical field used to adapt the interface to the payment type selected.'
readonly=True
related='payment_method_id.code'
payment_method_id
Many2one → account.payment.method
oldname='payment_method'
required=True
string='Payment Method Type'
args: 'account.payment.method'
payment_type
Selection
required=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
No public methods.
chart_template_id
Many2one → account.chart.template
help="This optional field allow you to link an account template to a specific chart template that may differ from the one its root parent belongs to. This allow you to define chart templates that extend another and complete it with few new accounts (You don't need to define the whole structure that is common to both several times)."
string='Chart Template'
args: 'account.chart.template'
code
Char
index=True
required=True
size=64
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
name
Char
index=True
required=True
nocreate
Boolean
default=False
help='If checked, the new chart of accounts will not contain this by default.'
string='Optional Create'
note
Text
reconcile
Boolean
default=False
help='Check this option if you want the user to reconcile entries in this account.'
string='Allow Invoices & payments Matching'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag', 'account_account_template_account_tag'
tax_ids
Many2many → account.tax.template
string='Default Taxes'
args: 'account.tax.template', 'account_account_template_tax_rel', 'account_id', 'tax_id'
user_type_id
Many2one → account.account.type
help='These types are defined according to your country. The type contains more information about the account and its specificities.'
oldname='user_type'
required=True
string='Type'
args: 'account.account.type'
name_get(self)
date_from
Date
default=<expr>
journal_ids
Many2many → account.journal
required=True
string='Journals'
args: 'account.journal'
period_length
Integer
default=30
required=True
string='Period Length (days)'
No public methods.
amount
Monetary
currency_field='company_currency_id'
amount_currency
Monetary
help='The amount expressed in the related account currency if not equal to the company one.'
readonly=True
related='move_id.amount_currency'
store=True
analytic_amount_currency
Monetary
compute='_get_analytic_amount_currency'
help='The amount expressed in the related account currency if not equal to the company one.'
readonly=True
string='Amount Currency'
code
Char
size=8
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
args: 'res.currency'
currency_id
Many2one → res.currency
help='The related account currency if not equal to the company one.'
readonly=True
related='move_id.currency_id'
store=True
string='Account Currency'
args: 'res.currency'
general_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
ondelete='restrict'
readonly=True
related='move_id.account_id'
store=True
string='Financial Account'
args: 'account.account'
move_id
Many2one → account.move.line
index=True
ondelete='cascade'
string='Move Line'
args: 'account.move.line'
partner_id
Many2one → res.partner
readonly=True
related='account_id.partner_id'
store=True
string='Partner'
args: 'res.partner'
product_id
Many2one → product.product
string='Product'
args: 'product.product'
product_uom_id
Many2one → product.uom
string='Unit of Measure'
args: 'product.uom'
ref
Char
string='Ref.'
on_change_unit_amount(self)
view_header_get(self, view_id, view_type)
journal_ids
Many2many → account.journal
default=[]
required=True
string='Journals'
args: 'account.journal', 'account_balance_report_journal_rel', 'account_id', 'journal_id'
No public methods.
acc_name
Char
required=True
string='Account Name.'
account_type
Selection
bank_account_id
Many2one → wizard.multi.charts.accounts
ondelete='cascade'
required=True
string='Bank Account'
args: 'wizard.multi.charts.accounts'
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
No public methods.
all_lines_reconciled
Boolean
compute='_check_lines_reconciled'
balance_end
Monetary
compute='_end_balance'
help='Balance as calculated based on Opening Balance and transaction lines'
store=True
args: 'Computed Balance'
balance_end_real
Monetary
states={'confirm': [('readonly', True)]}
args: 'Ending Balance'
balance_start
Monetary
default=_default_opening_balance
states={'confirm': [('readonly', True)]}
string='Starting Balance'
cashbox_end_id
Many2one → account.bank.statement.cashbox
string='Ending Cashbox'
args: 'account.bank.statement.cashbox'
cashbox_start_id
Many2one → account.bank.statement.cashbox
string='Starting Cashbox'
args: 'account.bank.statement.cashbox'
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'
oldname='currency'
string='Currency'
args: 'res.currency'
date
Date
copy=False
default=fields.Date.context_today
index=True
required=True
states={'confirm': [('readonly', True)]}
date_done
Datetime
string='Closed On'
difference
Monetary
compute='_end_balance'
help='Difference between the computed ending balance and the specified ending balance.'
store=True
is_difference_zero
Boolean
compute='_is_difference_zero'
help='Check if difference is zero.'
string='Is zero'
journal_id
Many2one → account.journal
default=_default_journal
required=True
states={'confirm': [('readonly', True)]}
string='Journal'
args: 'account.journal'
journal_type
Selection
help='Technical field used for usability purposes'
related='journal_id.type'
line_ids
One2many → account.bank.statement.line
copy=True
states={'confirm': [('readonly', True)]}
string='Statement lines'
args: 'account.bank.statement.line', 'statement_id'
move_line_ids
One2many → account.move.line
states={'confirm': [('readonly', True)]}
string='Entry lines'
args: 'account.move.line', 'statement_id'
name
Char
copy=False
readonly=True
states={'open': [('readonly', False)]}
string='Reference'
reference
Char
copy=False
help='Used to hold the reference of the external mean that created this statement (name of imported file, reference of online synchronization...)'
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')]
total_entry_encoding
Monetary
compute='_end_balance'
help='Total of transaction lines.'
store=True
args: 'Transactions Subtotal'
user_id
Many2one → res.users
default=<expr>
required=False
string='Responsible'
args: 'res.users'
button_cancel(self)
button_confirm_bank(self)
button_journal_entries(self)
button_open(self)
check_confirm_bank(self)
link_bank_to_partner(self)
onchange_journal_id(self)
open_cashbox_id(self)
reconciliation_widget_preprocess(self)
unlink(self)
cashbox_lines_ids
One2many → account.cashbox.line
string='Cashbox Lines'
args: 'account.cashbox.line', 'cashbox_id'
validate(self)
No new fields.
Public methods (1)validate(self)
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='This technical field can be used at the statement line creation/import time in order to avoid the reconciliation process on it later on. The statement line will simply create a counterpart on this account'
string='Counterpart Account'
args: 'account.account'
amount
Monetary
currency_field='journal_currency_id'
digits=0
amount_currency
Monetary
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
bank_account_id
Many2one → res.partner.bank
string='Bank Account'
args: 'res.partner.bank'
company_id
Many2one → res.company
readonly=True
related='statement_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='The optional other currency if it is a multi-currency entry.'
string='Currency'
args: 'res.currency'
date
Date
default=<expr>
required=True
journal_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='statement_id.currency_id'
args: 'res.currency'
journal_entry_ids
One2many → account.move
copy=False
readonly=True
args: 'account.move', 'statement_line_id', 'Journal Entries'
journal_id
Many2one → account.journal
readonly=True
related='statement_id.journal_id'
store=True
string='Journal'
args: 'account.journal'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the journal entry, automatically set when the statement line is reconciled then stored to set the same number again if the line is cancelled, set to draft and re-processed again.'
readonly=True
string='Journal Entry Name'
name
Char
required=True
string='Label'
note
Text
string='Notes'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
partner_name
Char
help="This field is used to record the third party name when importing bank statement in electronic format, when the partner doesn't exist yet in the database (or cannot be found)."
ref
Char
string='Reference'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of bank statement lines.'
index=True
state
Selection
readonly=True
related='statement_id.state'
string='Status'
statement_id
Many2one → account.bank.statement
index=True
ondelete='cascade'
required=True
string='Statement'
args: 'account.bank.statement'
auto_reconcile(self)
button_cancel_reconciliation(self)
create(self, vals)
fast_counterpart_creation(self)
get_data_for_reconciliation_widget(self, excluded_ids=None)
get_move_lines_for_reconciliation(self, excluded_ids=None, str=False, offset=0, limit=None, additional_domain=None, overlook_partner=False)
get_move_lines_for_reconciliation_widget(self, excluded_ids=None, str=False, offset=0, limit=None)
get_reconciliation_proposition(self, excluded_ids=None)
get_statement_line_for_reconciliation_widget(self)
process_reconciliation(self, counterpart_aml_dicts=None, payment_aml_rec=None, new_aml_dicts=None)
process_reconciliations(self, data)
reconciliation_widget_auto_reconcile(self, num_already_reconciled_lines)
unlink(self)
cashbox_id
Many2one → account.bank.statement.cashbox
string='Cashbox'
args: 'account.bank.statement.cashbox'
coin_value
Float
digits=0
required=True
string='Coin/Bill Value'
number
Integer
help='Opening Unit Numbers'
string='Number of Coins/Bills'
subtotal
Float
compute='_sub_total'
digits=0
readonly=True
string='Subtotal'
No public methods.
account_ids
One2many → account.account.template
string='Associated Account Templates'
args: 'account.account.template', 'chart_template_id'
bank_account_code_prefix
Char
oldname='bank_account_code_char'
string='Prefix of the bank accounts'
cash_account_code_prefix
Char
string='Prefix of the main cash accounts'
code_digits
Integer
default=6
help='No. of Digits to use for account code'
required=True
string='# of Digits'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
complete_tax_set
Boolean
default=True
help='This boolean helps you to choose if you want to propose to the user to encode the sale and purchase rates or choose from list of taxes. This last choice assumes that the set of tax defined on this template is complete'
string='Complete Set of Taxes'
currency_id
Many2one → res.currency
required=True
string='Currency'
args: 'res.currency'
expense_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Loss Exchange Rate Account'
args: 'account.account.template'
income_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Gain Exchange Rate Account'
args: 'account.account.template'
name
Char
required=True
parent_id
Many2one → account.chart.template
string='Parent Chart Template'
args: 'account.chart.template'
property_account_expense_categ_id
Many2one → account.account.template
oldname='property_account_expense_categ'
string='Category of Expense Account'
args: 'account.account.template'
property_account_expense_id
Many2one → account.account.template
oldname='property_account_expense'
string='Expense Account on Product Template'
args: 'account.account.template'
property_account_income_categ_id
Many2one → account.account.template
oldname='property_account_income_categ'
string='Category of Income Account'
args: 'account.account.template'
property_account_income_id
Many2one → account.account.template
oldname='property_account_income'
string='Income Account on Product Template'
args: 'account.account.template'
property_account_payable_id
Many2one → account.account.template
oldname='property_account_payable'
string='Payable Account'
args: 'account.account.template'
property_account_receivable_id
Many2one → account.account.template
oldname='property_account_receivable'
string='Receivable Account'
args: 'account.account.template'
property_stock_account_input_categ_id
Many2one → account.account.template
oldname='property_stock_account_input_categ'
string='Input Account for Stock Valuation'
args: 'account.account.template'
property_stock_account_output_categ_id
Many2one → account.account.template
oldname='property_stock_account_output_categ'
string='Output Account for Stock Valuation'
args: 'account.account.template'
property_stock_valuation_account_id
Many2one → account.account.template
string='Account Template for Stock Valuation'
args: 'account.account.template'
tax_template_ids
One2many → account.tax.template
help='List of all the taxes that have to be installed by the wizard'
string='Tax Template List'
args: 'account.tax.template', 'chart_template_id'
transfer_account_id
Many2one → account.account.template
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
required=True
string='Transfer Account'
args: 'account.account.template'
use_anglo_saxon
Boolean
default=False
string='Use Anglo-Saxon accounting'
visible
Boolean
default=True
help="Set this to False if you don't want this template to be used actively in the wizard that generate Chart of Accounts from templates, this is useful when you want to generate accounts of this template only when loading its child template."
string='Can be Visible?'
create_record_with_xmlid(self, company, template, model, vals)
generate_account(self, tax_template_ref, acc_template_ref, code_digits, company)
generate_account_reconcile_model(self, tax_template_ref, acc_template_ref, company)
generate_fiscal_position(self, tax_template_ref, acc_template_ref, company)
generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company)
open_select_template_wizard(self)
try_loading_for_current_company(self)
display_account
Selection
default='movement'
required=True
string='Display Accounts'
args: [('all', 'All'), ('movement', 'With movements'), ('not_zero', 'With balance is not equal to 0')]
pre_print_report(self, data)
amount_currency
Boolean
help='Print Report with the currency column if the currency differs from the company currency.'
args: 'With Currency'
pre_print_report(self, data)
result_selection
Selection
default='customer'
required=True
string="Partner's"
args: [('customer', 'Receivable Accounts'), ('supplier', 'Payable Accounts'), ('customer_supplier', 'Receivable and Payable Accounts')]
pre_print_report(self, data)
company_id
Many2one → res.company
default=<expr>
readonly=True
string='Company'
args: 'res.company'
date_from
Date
string='Start Date'
date_to
Date
string='End Date'
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
target_move
Selection
default='posted'
required=True
string='Target Moves'
args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
check_report(self)
bank_account_code_prefix
Char
help='Define the code prefix for the bank accounts'
oldname='bank_account_code_char'
related='company_id.bank_account_code_prefix'
string='Bank Accounts Prefix *'
cash_account_code_prefix
Char
help='Define the code prefix for the cash accounts'
related='company_id.cash_account_code_prefix'
string='Cash Accounts Prefix *'
chart_template_id
Many2one → account.chart.template
domain="[('visible','=', True)]"
string='Template'
args: 'account.chart.template'
code_digits
Integer
help='No. of digits to use for account code'
related='company_id.accounts_code_digits'
string='# of Digits *'
company_footer
Text
help='Bank accounts as printed in the footer of each printed document'
readonly=True
related='company_id.rml_footer'
string='Bank accounts footer preview'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
complete_tax_set
Boolean
help='This boolean helps you to choose if you want to propose to the user to encode\n the sales and purchase rates or use the usual m2o fields. This last choice assumes that\n the set of tax defined for the chosen template is complete'
string='Complete set of taxes'
currency_exchange_journal_id
Many2one → account.journal
domain="[('company_id', '=', company_id)]"
related='company_id.currency_exchange_journal_id'
string='Rate Difference Journal'
args: 'account.journal'
currency_id
Many2one → res.currency
compute='_get_currency_id'
help='Main currency of the company.'
inverse='_set_currency_id'
required=True
string='Default company currency'
args: 'res.currency'
default_purchase_tax_id
Many2one → account.tax
help='This purchase tax will be assigned by default on new products.'
oldname='default_purchase_tax'
string='Default Purchase Tax'
args: 'account.tax'
default_sale_tax_id
Many2one → account.tax
help='This sale tax will be assigned by default on new products.'
oldname='default_sale_tax'
string='Default Sale Tax'
args: 'account.tax'
expects_chart_of_accounts
Boolean
help='Check this box if this company is a legal entity.'
related='company_id.expects_chart_of_accounts'
string='This company has its own chart of accounts'
fiscalyear_last_day
Integer
default=<expr>
related='company_id.fiscalyear_last_day'
fiscalyear_last_month
Selection
default=<expr>
related='company_id.fiscalyear_last_month'
args: [(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')]
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
related='company_id.fiscalyear_lock_date'
string='Lock Date'
group_analytic_accounting
Boolean
help='Allows you to use the analytic accounting.'
implied_group='analytic.group_analytic_accounting'
string='Analytic accounting'
group_multi_currency
Boolean
help='Allows to work in a multi currency environment'
implied_group='base.group_multi_currency'
string='Allow multi currencies'
group_proforma_invoices
Boolean
help='Allows you to put invoices in pro-forma state.'
implied_group='account.group_proforma_invoices'
string='Allow pro-forma invoices'
group_warning_account
Selection
implied_group='account.group_warning_account'
args: [(0, 'All the partners can be used in invoices'), (1, 'An informative or blocking warning can be set on a partner')], 'Warning'
has_chart_of_accounts
Boolean
string='Company has a chart of accounts'
has_default_company
Boolean
default=<expr>
readonly=True
module_account_accountant
Boolean
help='If you do not check this box, you will be able to do invoicing & payments,\n but not accounting (Journal Items, Chart of Accounts, ...)'
string='Full accounting features: journals, legal statements, chart of accounts, etc.'
module_account_asset
Boolean
help='Asset management: This allows you to manage the assets owned by a company or a person. It keeps track of the depreciation occurred on those assets, and creates account move for those depreciation lines.\n\n-This installs the module account_asset.'
string='Assets management'
module_account_bank_statement_import_csv
Boolean
help='Get your bank statements from your bank and import them in Odoo in the .CSV format.\n-This installs the module account_bank_statement_import_csv.'
args: 'Import in .csv format'
module_account_bank_statement_import_ofx
Boolean
help='Get your bank statements from your bank and import them in Odoo in the .OFX format.\n-This installs the module account_bank_statement_import_ofx.'
args: 'Import in .ofx format'
module_account_bank_statement_import_qif
Boolean
help='Get your bank statements from your bank and import them in Odoo in the .QIF format.\n-This installs the module account_bank_statement_import_qif.'
args: 'Import .qif files'
module_account_batch_deposit
Boolean
help='This allows you to group received checks before you deposit them to the bank.\n-This installs the module account_batch_deposit.'
string='Use batch deposit'
module_account_budget
Boolean
help='This allows accountants to manage analytic and crossovered budgets. Once the master budgets and the budgets are defined, the project managers can set the planned amount on each analytic account.\n-This installs the module account_budget.'
string='Budget management'
module_account_deferred_revenue
Boolean
help='This allows you to manage the revenue recognition on selling products. It keeps track of the installments occurred on those revenue recognitions, and creates account moves for those installment lines\n-This installs the module account_deferred_revenue.'
string='Revenue Recognition'
module_account_plaid
Boolean
help='Get your bank statements from you bank and import them through plaid.com.\n-This installs the module account_plaid.'
string='Plaid Connector'
module_account_reports
Boolean
module_account_reports_followup
Boolean
help='This allows to automate letters for unpaid invoices, with multi-level recalls.\n-This installs the module account_reports_followup.'
args: 'Enable payment followup management'
module_account_sepa
Boolean
help='If you check this box, you will be able to register your payment using SEPA.\n-This installs the module account_sepa.'
string='Use SEPA payments'
module_account_tax_cash_basis
Boolean
help='Generate tax cash basis entrie when reconciliating entries'
string='Allow Tax Cash Basis'
module_account_yodlee
Boolean
help='Get your bank statements from your bank and import them through yodlee.com.\n-This installs the module account_yodlee.'
args: 'Bank Interface - Sync your bank feeds automatically'
module_l10n_us_check_printing
Boolean
overdue_msg
Text
related='company_id.overdue_msg'
string='Overdue Payments Message *'
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
related='company_id.period_lock_date'
string='Lock Date for Non-Advisers'
purchase_tax_id
Many2one → account.tax.template
oldname='purchase_tax'
string='Default purchase tax'
args: 'account.tax.template'
purchase_tax_rate
Float
string='Purchase tax (%)'
sale_tax_id
Many2one → account.tax.template
oldname='sale_tax'
string='Default sale tax'
args: 'account.tax.template'
sale_tax_rate
Float
string='Sales tax (%)'
tax_calculation_rounding_method
Selection
help="If you select 'Round per line' : for each tax, the tax amount will first be\n computed and rounded for each PO/SO/invoice line and then these rounded amounts will be summed,\n leading to the total amount for that tax. If you select 'Round globally': for each tax,\n the tax amount will be computed for each PO/SO/invoice line, then these amounts will be\n summed and eventually this total tax amount will be rounded. If you sell with tax included,\n you should choose 'Round per line' because you certainly want the sum of your tax-included line\n subtotals to be equal to the total amount with taxes."
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method *'
args: [('round_per_line', 'Round calculation of taxes per line'), ('round_globally', 'Round globally calculation of taxes ')]
template_transfer_account_id
Many2one → account.account.template
help='Intermediary account used when moving money from a liquidity account to another'
args: 'account.account.template'
transfer_account_id
Many2one → account.account
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
related='company_id.transfer_account_id'
args: 'account.account'
use_anglo_saxon
Boolean
related='company_id.anglo_saxon_accounting'
string='Use Anglo-Saxon Accounting *'
create(self, vals)
onchange_analytic_accounting(self)
onchange_chart_template_id(self)
onchange_company_id(self)
onchange_module_account_budget(self)
onchange_tax_rate(self)
open_bank_accounts(self)
open_company(self)
set_chart_of_accounts(self)
set_group_multi_currency(self)
set_product_taxes(self)
set_transfer_account(self)
account_ids
Many2many → account.account
account_report_id
Many2one → account.financial.report
account_type_ids
Many2many → account.account.type
children_ids
One2many → account.financial.report
display_detail
Selection
default='detail_flat'
args: [('no_detail', 'No detail'), ('detail_flat', 'Display children flat'), ('detail_with_hierarchy', 'Display children with hierarchy')], 'Display details'
level
Integer
compute='_get_level'
store=True
string='Level'
name
Char
required=True
translate=True
args: 'Report Name'
parent_id
Many2one → account.financial.report
sequence
Integer
sign
Selection
default=1
help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'
required=True
args: [(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports'
style_overwrite
Selection
default=0
help="You can set up here the format you want this record to be displayed. If you leave the automatic formatting, it will be computed based on the financial reports hierarchy (auto-computed field 'level')."
args: [(0, 'Automatic formatting'), (1, 'Main Title 1 (bold, underlined)'), (2, 'Title 2 (bold)'), (3, 'Title 3 (bold, smaller)'), (4, 'Normal Text'), (5, 'Italic Text (smaller)'), (6, 'Smallest Text')], 'Financial Report Style'
type
Selection
default='sum'
args: [('sum', 'View'), ('accounts', 'Accounts'), ('account_type', 'Account Type'), ('account_report', 'Report Value')], 'Type'
No public methods.
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery or invocing country match the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery or invoicing country match.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position'
note
Text
help='Legal mentions that have to be printed on the invoices.'
translate=True
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
One2many → account.fiscal.position.tax
copy=True
string='Tax Mapping'
args: 'account.fiscal.position.tax', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Integer
default=0
string='Zip Range From'
zip_to
Integer
default=0
string='Zip Range To'
get_fiscal_position(self, partner_id, delivery_id=None)
map_account(self, account)
map_accounts(self, accounts)
map_tax(self, taxes, product=None, partner=None)
account_dest_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Account on Product'
args: 'account.account'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
account_dest_id
Many2one → account.account.template
required=True
string='Account Destination'
args: 'account.account.template'
account_src_id
Many2one → account.account.template
required=True
string='Account Source'
args: 'account.account.template'
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Mapping'
args: 'account.fiscal.position.template'
No public methods.
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
tax_dest_id
Many2one → account.tax
string='Tax to Apply'
args: 'account.tax'
tax_src_id
Many2one → account.tax
required=True
string='Tax on Product'
args: 'account.tax'
No public methods.
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position.template'
tax_dest_id
Many2one → account.tax.template
string='Replacement Tax'
args: 'account.tax.template'
tax_src_id
Many2one → account.tax.template
required=True
string='Tax Source'
args: 'account.tax.template'
No public methods.
account_ids
One2many → account.fiscal.position.account.template
string='Account Mapping'
args: 'account.fiscal.position.account.template', 'position_id'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
name
Char
required=True
string='Fiscal Position Template'
note
Text
string='Notes'
tax_ids
One2many → account.fiscal.position.tax.template
string='Tax Mapping'
args: 'account.fiscal.position.tax.template', 'position_id'
No public methods.
exchange_move_id
Many2one → account.move
exchange_partial_rec_id
Many2one → account.partial.reconcile
name
Char
copy=False
default=<expr>
required=True
string='Number'
partial_reconcile_ids
One2many → account.partial.reconcile
string='Reconciliation Parts'
args: 'account.partial.reconcile', 'full_reconcile_id'
reconciled_line_ids
One2many → account.move.line
string='Matched Journal Items'
args: 'account.move.line', 'full_reconcile_id'
unlink(self)
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='The partner account used for this invoice.'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Account'
args: 'account.account'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_total
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Total'
amount_total_company_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
help='Total amount in the currency of the company, negative for credit notes.'
readonly=True
store=True
string='Total in Company Currency'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
help='Total amount in the currency of the invoice, negative for credit notes.'
readonly=True
store=True
string='Total in Invoice Currency'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
track_visibility='always'
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount in Company Currency'
comment
Text
readonly=True
states={'draft': [('readonly', False)]}
args: 'Additional Information'
commercial_partner_id
Many2one → res.partner
compute_sudo=True
help='The commercial entity that will be used on Journal Entries for this invoice'
readonly=True
related='partner_id.commercial_partner_id'
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
default=_default_currency
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Currency'
track_visibility='always'
args: 'res.currency'
date
Date
copy=False
help='Keep empty to use the invoice date.'
readonly=True
states={'draft': [('readonly', False)]}
string='Accounting Date'
date_due
Date
copy=False
help='If you use payment terms, the due date will be computed automatically at the generation of accounting entries. The payment term may compute several due dates, for example 50% now and 50% in one month, but if you want to force a due date, make sure that the payment term is not set on the invoice. If you keep the payment term and the due date empty, it means direct payment.'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Due Date'
date_invoice
Date
copy=False
help='Keep empty to use the current date'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice Date'
fiscal_position_id
Many2one → account.fiscal.position
oldname='fiscal_position'
readonly=True
states={'draft': [('readonly', False)]}
string='Fiscal Position'
args: 'account.fiscal.position'
has_outstanding
Boolean
compute='_get_outstanding_info_JSON'
invoice_line_ids
One2many → account.invoice.line
copy=True
oldname='invoice_line'
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice Lines'
args: 'account.invoice.line', 'invoice_id'
journal_id
Many2one → account.journal
default=_default_journal
domain="[('type', 'in', {'out_invoice': ['sale'], 'out_refund': ['sale'], 'in_refund': ['purchase'], 'in_invoice': ['purchase']}.get(type, [])), ('company_id', '=', company_id)]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
copy=False
help='Link to the automatically generated Journal Items.'
index=True
ondelete='restrict'
readonly=True
string='Journal Entry'
args: 'account.move'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the invoice, automatically set when the invoice is validated then stored to set the same number again if the invoice is cancelled, set to draft and re-validated.'
readonly=False
string='Journal Entry Name'
name
Char
copy=False
help='The name that will be used on account move lines'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Reference/Description'
number
Char
copy=False
readonly=True
related='move_id.name'
store=True
origin
Char
help='Reference of the document that produced this invoice.'
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
outstanding_credits_debits_widget
Text
compute='_get_outstanding_info_JSON'
partner_bank_id
Many2one → res.partner.bank
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Refund, otherwise a Partner bank account number.'
readonly=True
states={'draft': [('readonly', False)]}
string='Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
change_default=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Partner'
track_visibility='always'
args: 'res.partner'
payment_ids
Many2many → account.payment
copy=False
readonly=True
string='Payments'
args: 'account.payment', 'account_invoice_payment_rel', 'invoice_id', 'payment_id'
payment_move_line_ids
Many2many → account.move.line
compute='_compute_payments'
store=True
string='Payment Move Lines'
args: 'account.move.line'
payment_term_id
Many2one → account.payment.term
help='If you use payment terms, the due date will be computed automatically at the generation of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month.'
oldname='payment_term'
readonly=True
states={'draft': [('readonly', False)]}
string='Payment Terms'
args: 'account.payment.term'
payments_widget
Text
compute='_get_payment_info_JSON'
reconciled
Boolean
compute='_compute_residual'
help='It indicates that the invoice has been paid and the journal entry of the invoice has been reconciled with one or several journal entries of payment.'
readonly=True
store=True
string='Paid/Reconciled'
reference
Char
copy=False
help='The partner reference of this invoice.'
readonly=True
states={'draft': [('readonly', False)]}
string='Vendor Reference'
reference_type
Selection
default='none'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Payment Reference'
args: '_get_reference_type'
refund_invoice_id
Many2one → account.invoice
string='Invoice for which this invoice is the refund'
args: 'account.invoice'
residual
Monetary
compute='_compute_residual'
help='Remaining amount due.'
store=True
string='Amount Due'
residual_company_signed
Monetary
compute='_compute_residual'
currency_field='company_currency_id'
help='Remaining amount due in the currency of the company.'
store=True
string='Amount Due in Company Currency'
residual_signed
Monetary
compute='_compute_residual'
currency_field='currency_id'
help='Remaining amount due in the currency of the invoice.'
store=True
string='Amount Due in Invoice Currency'
sent
Boolean
copy=False
default=False
help='It indicates that the invoice has been sent.'
readonly=True
state
Selection
copy=False
default='draft'
help=" * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n * The 'Pro-forma' status is used when the invoice does not have an invoice number.\n * The 'Open' status is used when user creates invoice, an invoice number is generated. It stays in the open status till the user pays the invoice.\n * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n * The 'Cancelled' status is used when user cancel invoice."
index=True
readonly=True
string='Status'
track_visibility='onchange'
args: [('draft', 'Draft'), ('proforma', 'Pro-forma'), ('proforma2', 'Pro-forma'), ('open', 'Open'), ('paid', 'Paid'), ('cancel', 'Cancelled')]
tax_line_ids
One2many → account.invoice.tax
copy=True
oldname='tax_line'
readonly=True
states={'draft': [('readonly', False)]}
string='Tax Lines'
args: 'account.invoice.tax', 'invoice_id'
type
Selection
change_default=True
default=<expr>
index=True
readonly=True
track_visibility='always'
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Refund'), ('in_refund', 'Vendor Refund')]
user_id
Many2one → res.users
default=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Salesperson'
track_visibility='onchange'
args: 'res.users'
action_cancel(self)
action_date_assign(self)
action_invoice_cancel(self)
action_invoice_draft(self)
action_invoice_open(self)
action_invoice_paid(self)
action_invoice_proforma2(self)
action_invoice_re_open(self)
action_invoice_sent(self)
action_move_create(self)
assign_outstanding_credit(self, credit_aml_id)
compute_invoice_totals(self, company_currency, invoice_move_lines)
compute_taxes(self)
create(self, vals)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
finalize_invoice_move_lines(self, move_lines)
get_delivery_partner_id(self)
get_formview_id(self)
get_taxes_values(self)
group_lines(self, iml, line)
inv_line_characteristic_hashcode(self, invoice_line)
invoice_line_move_line_get(self)
invoice_print(self)
invoice_validate(self)
line_get_convert(self, line, part)
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
pay_and_reconcile(self, pay_journal, pay_amount=None, date=None, writeoff_acc=None)
refund(self, date_invoice=None, date=None, description=None, journal_id=None)
register_payment(self, payment_line, writeoff_acc_id=False, writeoff_journal_id=False)
tax_line_move_line_get(self)
unlink(self)
No new fields.
Public methods (1)invoice_cancel(self)
No new fields.
Public methods (1)invoice_confirm(self)
account_analytic_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
account_id
Many2one → account.account
default=_default_account
domain=[('deprecated', '=', False)]
help='The income or expense account related to the selected product.'
required=True
string='Account'
args: 'account.account'
analytic_tag_ids
Many2many → account.analytic.tag
string='Analytic Tags'
args: 'account.analytic.tag'
company_currency_id
Many2one → res.currency
readonly=True
related='invoice_id.company_currency_id'
related_sudo=False
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
related='invoice_id.company_id'
related_sudo=False
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
related='invoice_id.currency_id'
related_sudo=False
store=True
args: 'res.currency'
discount
Float
default=0.0
digits=dp.get_precision('Discount')
string='Discount (%)'
invoice_id
Many2one → account.invoice
index=True
ondelete='cascade'
string='Invoice Reference'
args: 'account.invoice'
invoice_line_tax_ids
Many2many → account.tax
domain=[('type_tax_use', '!=', 'none'), '|', ('active', '=', False), ('active', '=', True)]
oldname='invoice_line_tax_id'
string='Taxes'
args: 'account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id'
name
Text
required=True
string='Description'
origin
Char
help='Reference of the document that produced this invoice.'
string='Source Document'
partner_id
Many2one → res.partner
readonly=True
related='invoice_id.partner_id'
related_sudo=False
store=True
string='Partner'
args: 'res.partner'
price_subtotal
Monetary
compute='_compute_price'
readonly=True
store=True
string='Amount'
price_subtotal_signed
Monetary
compute='_compute_price'
currency_field='company_currency_id'
help='Total amount in the currency of the company, negative for credit notes.'
readonly=True
store=True
string='Amount Signed'
price_unit
Float
digits=dp.get_precision('Product Price')
required=True
string='Unit Price'
product_id
Many2one → product.product
index=True
ondelete='restrict'
string='Product'
args: 'product.product'
quantity
Float
default=1
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity'
sequence
Integer
default=10
help='Gives the sequence of this line when displaying the invoice.'
uom_id
Many2one → product.uom
index=True
oldname='uos_id'
ondelete='set null'
string='Unit of Measure'
args: 'product.uom'
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_invoice_line_account(self, type, product, fpos, company)
unlink(self)
date
Date
string='Accounting Date'
date_invoice
Date
default=fields.Date.context_today
required=True
string='Refund Date'
description
Char
default=_get_reason
required=True
string='Reason'
filter_refund
Selection
default='refund'
help='Refund base on this type. You can not Modify and Cancel if the invoice is already reconciled'
required=True
string='Refund Method'
args: [('refund', 'Create a draft refund'), ('cancel', 'Cancel: create refund and reconcile'), ('modify', 'Modify: create refund, reconcile and create a new draft invoice')]
refund_only
Boolean
compute='_get_refund_only'
string='Technical field to hide filter_refund in case invoice is partially paid'
compute_refund(self, mode='refund')
invoice_refund(self)
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Account'
args: 'account.account'
account_line_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Account Line'
args: 'account.account'
categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
commercial_partner_id
Many2one → res.partner
help='Commercial Entity'
string='Partner Company'
args: 'res.partner'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country of the Partner Company'
args: 'res.country'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
currency_rate
Float
group_operator='avg'
readonly=True
string='Currency Rate'
date
Date
readonly=True
date_due
Date
readonly=True
string='Due Date'
fiscal_position_id
Many2one → account.fiscal.position
oldname='fiscal_position'
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
nbr
Integer
readonly=True
string='# of Lines'
partner_bank_id
Many2one → res.partner.bank
readonly=True
string='Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
payment_term_id
Many2one → account.payment.term
oldname='payment_term'
readonly=True
string='Payment Terms'
args: 'account.payment.term'
price_average
Float
group_operator='avg'
readonly=True
string='Average Price'
price_total
Float
readonly=True
string='Total Without Tax'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_qty
Float
readonly=True
string='Product Quantity'
residual
Float
readonly=True
string='Total Residual'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('proforma', 'Pro-forma'), ('proforma2', 'Pro-forma'), ('open', 'Open'), ('paid', 'Done'), ('cancel', 'Cancelled')]
type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Refund'), ('in_refund', 'Vendor Refund')]
uom_name
Char
readonly=True
string='Reference Unit of Measure'
user_currency_price_average
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Average Price'
user_currency_price_total
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Total Without Tax'
user_currency_residual
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Total Residual'
user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
volume
Float
readonly=True
string='Volume'
weight
Float
readonly=True
string='Gross Weight'
init(self)
account_analytic_id
Many2one → account.analytic.account
string='Analytic account'
args: 'account.analytic.account'
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Tax Account'
args: 'account.account'
amount
Monetary
base
Monetary
compute='_compute_base_amount'
string='Base'
company_id
Many2one → res.company
readonly=True
related='account_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
readonly=True
related='invoice_id.currency_id'
store=True
args: 'res.currency'
invoice_id
Many2one → account.invoice
index=True
ondelete='cascade'
string='Invoice'
args: 'account.invoice'
manual
Boolean
default=True
name
Char
required=True
string='Tax Description'
sequence
Integer
help='Gives the sequence order when displaying a list of invoice tax.'
tax_id
Many2one → account.tax
ondelete='restrict'
string='Tax'
args: 'account.tax'
create(self, vals)
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
action_open_reconcile(self)
create_bank_statement(self)
create_cash_statement(self)
get_bar_graph_datas(self)
get_journal_dashboard_datas(self)
get_line_graph_datas(self)
open_action(self)
open_action_with_context(self)
open_collect_money(self)
open_payments_action(self, payment_type)
open_spend_money(self)
open_transfer_money(self)
toggle_favorite(self)
amount
Monetary
compute='_amount_compute'
store=True
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'
store=True
string='Currency'
args: 'res.currency'
date
Date
default=fields.Date.context_today
index=True
required=True
states={'posted': [('readonly', True)]}
dummy_account_id
Many2one → account.account
readonly=True
related='line_ids.account_id'
store=False
string='Account'
args: 'account.account'
journal_id
Many2one → account.journal
default=_get_default_journal
required=True
states={'posted': [('readonly', True)]}
string='Journal'
args: 'account.journal'
line_ids
One2many → account.move.line
copy=True
states={'posted': [('readonly', True)]}
string='Journal Items'
args: 'account.move.line', 'move_id'
matched_percentage
Float
compute='_compute_matched_percentage'
digits=0
help='Technical field used in cash basis method'
readonly=True
store=True
args: 'Percentage Matched'
name
Char
copy=False
default='/'
required=True
string='Number'
narration
Text
string='Internal Note'
partner_id
Many2one → res.partner
compute='_compute_partner_id'
readonly=True
store=True
string='Partner'
args: 'res.partner'
ref
Char
copy=False
string='Reference'
state
Selection
copy=False
default='draft'
help="All manually created new journal entries are usually in the status 'Unposted', but you can set the option to skip that status on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in 'Posted' status."
readonly=True
required=True
string='Status'
args: [('draft', 'Unposted'), ('posted', 'Posted')]
statement_line_id
Many2one → account.bank.statement.line
copy=False
index=True
readonly=True
string='Bank statement line reconciled with this entry'
args: 'account.bank.statement.line'
assert_balanced(self)
button_cancel(self)
create(self, vals)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
name_get(self)
open_reconcile_view(self)
post(self)
reverse_moves(self, date=None, journal_id=None)
unlink(self)
write(self, vals)
account_id
Many2one → account.account
default=<expr>
domain=[('deprecated', '=', False)]
index=True
ondelete='cascade'
required=True
string='Account'
args: 'account.account'
amount_currency
Monetary
default=0.0
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
amount_residual
Monetary
compute='_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
compute='_amount_residual'
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_account_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
analytic_line_ids
One2many → account.analytic.line
oldname='analytic_lines'
string='Analytic lines'
args: 'account.analytic.line', 'move_id'
analytic_tag_ids
Many2many → account.analytic.tag
string='Analytic tags'
args: 'account.analytic.tag'
balance
Monetary
compute='_store_balance'
currency_field='company_currency_id'
help='Technical field holding the debit - credit in order to open meaningful graph views from reports'
store=True
balance_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
help='Technical field holding the debit_cash_basis - credit_cash_basis in order to open meaningful graph views from reports'
store=True
blocked
Boolean
default=False
help='You can check this box to mark this journal item as a litigation with the associated partner'
string='No Follow-up'
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
string='Company Currency'
args: 'res.currency'
company_id
Many2one → res.company
related='account_id.company_id'
store=True
string='Company'
args: 'res.company'
counterpart
Char
compute='_get_counterpart'
help='Compute the counter part accounts of this journal item for this journal entry. This can be needed in reports.'
args: 'Counterpart'
credit
Monetary
currency_field='company_currency_id'
default=0.0
credit_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
store=True
currency_id
Many2one → res.currency
default=_get_currency
help='The optional other currency if it is a multi-currency entry.'
string='Currency'
args: 'res.currency'
date
Date
copy=False
index=True
related='move_id.date'
store=True
string='Date'
date_maturity
Date
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
required=True
string='Due date'
debit
Monetary
currency_field='company_currency_id'
default=0.0
debit_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
store=True
full_reconcile_id
Many2one → account.full.reconcile
copy=False
string='Matching Number'
args: 'account.full.reconcile'
invoice_id
Many2one → account.invoice
oldname='invoice'
args: 'account.invoice'
journal_id
Many2one → account.journal
copy=False
index=True
related='move_id.journal_id'
store=True
string='Journal'
args: 'account.journal'
matched_credit_ids
One2many → account.partial.reconcile
String='Matched Credits'
help='Credit journal items that are matched with this journal item.'
args: 'account.partial.reconcile', 'debit_move_id'
matched_debit_ids
One2many → account.partial.reconcile
String='Matched Debits'
help='Debit journal items that are matched with this journal item.'
args: 'account.partial.reconcile', 'credit_move_id'
move_id
Many2one → account.move
auto_join=True
help='The move of this entry line.'
index=True
ondelete='cascade'
required=True
string='Journal Entry'
args: 'account.move'
name
Char
required=True
string='Label'
narration
Text
related='move_id.narration'
string='Narration'
partner_id
Many2one → res.partner
ondelete='restrict'
string='Partner'
args: 'res.partner'
payment_id
Many2one → account.payment
copy=False
help='Payment that created this entry'
string='Originator Payment'
args: 'account.payment'
product_id
Many2one → product.product
string='Product'
args: 'product.product'
product_uom_id
Many2one → product.uom
string='Unit of Measure'
args: 'product.uom'
quantity
Float
digits=dp.get_precision('Product Unit of Measure')
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
reconciled
Boolean
compute='_amount_residual'
store=True
ref
Char
copy=False
index=True
related='move_id.ref'
store=True
string='Reference'
statement_id
Many2one → account.bank.statement
copy=False
help='The bank statement used for bank reconciliation'
index=True
string='Statement'
args: 'account.bank.statement'
tax_exigible
Boolean
default=True
help='Technical field used to mark a tax line as exigible in the vat report or not (only exigible journal items are displayed). By default all new journal items are directly exigible, but with the module account_tax_cash_basis, some will become exigible only when the payment is recorded.'
string='Appears in VAT report'
tax_ids
Many2many → account.tax
domain=['|', ('active', '=', False), ('active', '=', True)]
string='Taxes'
args: 'account.tax'
tax_line_id
Many2one → account.tax
ondelete='restrict'
string='Originator tax'
args: 'account.tax'
user_type_id
Many2one → account.account.type
index=True
oldname='user_type'
related='account_id.user_type_id'
store=True
args: 'account.account.type'
auto_reconcile_lines(self)
compute_amount_fields(self, amount, src_currency, company_currency, invoice_currency=False)
compute_full_after_batch_reconcile(self)
create(self, vals)
create_analytic_lines(self)
domain_move_lines_for_reconciliation(self, excluded_ids=None, str=False)
get_data_for_manual_reconciliation(self, res_type, res_ids=None, account_type=None)
get_data_for_manual_reconciliation_widget(self, partner_ids, account_ids)
get_move_lines_for_manual_reconciliation(self, account_id, partner_id=False, excluded_ids=None, str=False, offset=0, limit=None, target_currency_id=False)
get_reconciliation_proposition(self, account_id, partner_id=False)
init(self)
name_get(self)
open_reconcile_view(self)
prepare_move_lines_for_reconciliation_widget(self, target_currency=False, target_date=False)
process_reconciliation(self, new_mv_line_dicts)
process_reconciliations(self, data)
reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False)
remove_move_reconcile(self)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
credit
Float
digits=0
readonly=True
string='Credit amount'
debit
Float
digits=0
readonly=True
string='Debit amount'
trans_nbr
Integer
readonly=True
string='# of Transaction'
writeoff
Float
digits=0
readonly=True
string='Write-Off amount'
default_get(self, fields)
trans_rec_addendum_writeoff(self)
trans_rec_get(self)
trans_rec_reconcile_full(self)
trans_rec_reconcile_partial_reconcile(self)
analytic_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
comment
Char
default='Write-off'
required=True
date_p
Date
default=fields.Date.context_today
string='Date'
journal_id
Many2one → account.journal
required=True
string='Write-Off Journal'
args: 'account.journal'
writeoff_acc_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Write-Off account'
args: 'account.account'
trans_rec_addendum(self)
trans_rec_reconcile(self)
trans_rec_reconcile_partial(self)
date
Date
default=fields.Date.context_today
required=True
string='Reversal date'
journal_id
Many2one → account.journal
help='If empty, uses the journal of the journal entry to be reversed.'
string='Use Specific Journal'
args: 'account.journal'
reverse_moves(self)
amount
Monetary
currency_field='company_currency_id'
help='Amount concerned by this matching. Assumed to be always positive'
amount_currency
Monetary
string='Amount in Currency'
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
related='debit_move_id.company_id'
store=True
string='Currency'
args: 'res.company'
credit_move_id
Many2one → account.move.line
index=True
required=True
args: 'account.move.line'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
debit_move_id
Many2one → account.move.line
index=True
required=True
args: 'account.move.line'
full_reconcile_id
Many2one → account.full.reconcile
copy=False
string='Full Reconcile'
args: 'account.full.reconcile'
create(self, vals)
create_exchange_rate_entry(self, aml_to_fix, amount_diff, diff_in_currency, currency, move_date)
unlink(self)
company_id
Many2one
store=True
destination_account_id
Many2one → account.account
compute='_compute_destination_account_id'
readonly=True
args: 'account.account'
destination_journal_id
Many2one → account.journal
domain=[('type', 'in', ('bank', 'cash'))]
string='Transfer To'
args: 'account.journal'
has_invoices
Boolean
compute='_get_has_invoices'
help='Technical field used for usability purposes'
invoice_ids
Many2many → account.invoice
copy=False
readonly=True
string='Invoices'
args: 'account.invoice', 'account_invoice_payment_rel', 'payment_id', 'invoice_id'
move_line_ids
One2many → account.move.line
copy=False
ondelete='restrict'
readonly=True
args: 'account.move.line', 'payment_id'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the journal entry, automatically set when the statement line is reconciled then stored to set the same number again if the line is cancelled, set to draft and re-processed again.'
readonly=True
string='Journal Entry Name'
name
Char
copy=False
default='Draft Payment'
readonly=True
payment_difference
Monetary
compute='_compute_payment_difference'
readonly=True
payment_difference_handling
Selection
copy=False
default='open'
string='Payment Difference'
args: [('open', 'Keep open'), ('reconcile', 'Mark invoice as fully paid')]
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
readonly=True
payment_type
Selection
selection_add=[('transfer', 'Internal Transfer')]
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
args: [('draft', 'Draft'), ('posted', 'Posted'), ('sent', 'Sent'), ('reconciled', 'Reconciled')]
writeoff_account_id
Many2one → account.account
copy=False
domain=[('deprecated', '=', False)]
string='Difference Account'
args: 'account.account'
button_dummy(self)
button_invoices(self)
button_journal_entries(self)
cancel(self)
default_get(self, fields)
open_payment_matching_screen(self)
post(self)
unlink(self)
unreconcile(self)
code
Char
required=True
name
Char
required=True
translate=True
payment_type
Selection
required=True
args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
No public methods.
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment term without removing it.'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Terms'
translate=True
note
Text
string='Description on the Invoice'
translate=True
compute(self, value, date_ref=False)
unlink(self)
days
Integer
default=0
required=True
string='Number of Days'
option
Selection
default='day_after_invoice_date'
required=True
string='Options'
args: [('day_after_invoice_date', 'Day(s) after the invoice date'), ('fix_day_following_month', 'Day(s) after the end of the invoice month (Net EOM)'), ('last_day_following_month', 'Last day of following month'), ('last_day_current_month', 'Last day of current month')]
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Terms'
args: 'account.payment.term'
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of payment term lines.'
value
Selection
default='balance'
help='Select here the kind of valuation related to this payment term line.'
required=True
string='Type'
args: [('balance', 'Balance'), ('percent', 'Percent'), ('fixed', 'Fixed Amount')]
value_amount
Float
digits=dp.get_precision('Payment Terms')
help='For percent enter a ratio between 0-100.'
string='Value'
No public methods.
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
sort_selection
Selection
default='move_name'
required=True
args: [('date', 'Date'), ('move_name', 'Journal Entry Number')], 'Entries Sorted by'
No public methods.
account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Account'
args: 'account.account.template'
amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
amount_type
Selection
default='percentage'
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of balance')]
has_second_line
Boolean
default=False
string='Add a second line'
label
Char
string='Journal Item Label'
name
Char
required=True
string='Button Label'
second_account_id
Many2one → account.account.template
domain=[('deprecated', '=', False)]
ondelete='cascade'
string='Second Account'
args: 'account.account.template'
second_amount
Float
default=100.0
digits=0
help='Fixed amount will count as a debit if it is negative, as a credit if it is positive.'
required=True
string='Second Amount'
second_amount_type
Selection
default='percentage'
required=True
string='Second Amount type'
args: [('fixed', 'Fixed'), ('percentage', 'Percentage of amount')]
second_label
Char
string='Second Journal Item Label'
second_tax_id
Many2one → account.tax.template
domain=[('type_tax_use', '=', 'purchase')]
ondelete='restrict'
string='Second Tax'
args: 'account.tax.template'
sequence
Integer
default=10
required=True
tax_id
Many2one → account.tax.template
domain=[('type_tax_use', '=', 'purchase')]
ondelete='restrict'
string='Tax'
args: 'account.tax.template'
No public methods.
No new fields.
Public methods (3)create_payment(self)
default_get(self, fields)
get_payment_vals(self)
initial_balance
Boolean
help="If you selected date, this field allow you to add a row to display the amount of debit/credit/balance that precedes the filter you've set."
string='Include Initial Balances'
journal_ids
Many2many → account.journal
required=True
string='Journals'
args: 'account.journal', 'account_report_general_ledger_journal_rel', 'account_id', 'journal_id'
sortby
Selection
default='sort_date'
required=True
string='Sort by'
args: [('sort_date', 'Date'), ('sort_journal_partner', 'Journal & Partner')]
No public methods.
amount_currency
Boolean
help='It adds the currency column on report if the currency differs from the company currency.'
args: 'With Currency'
reconciled
Boolean
No public methods.
account_id
Many2one → account.account.template
help='Account that will be set on invoice tax lines for invoices. Leave empty to use the expense account.'
oldname='account_collected_id'
ondelete='restrict'
string='Tax Account'
args: 'account.account.template'
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Analytic Cost'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
children_tax_ids
Many2many → account.tax.template
string='Children Taxes'
args: 'account.tax.template', 'account_tax_template_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
description
Char
string='Display on Invoices'
include_base_amount
Boolean
default=False
help='If set, taxes which are computed after this one will be computed based on the price tax included.'
string='Affect Subsequent Taxes'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_account_id
Many2one → account.account.template
help='Account that will be set on invoice tax lines for refunds. Leave empty to use the expense account.'
oldname='account_paid_id'
ondelete='restrict'
string='Tax Account on Refunds'
args: 'account.account.template'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag'
tax_adjustment
Boolean
default=False
tax_group_id
Many2one → account.tax.group
string='Tax Group'
args: 'account.tax.group'
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group."
required=True
string='Tax Scope'
args: [('sale', 'Sales'), ('purchase', 'Purchases'), ('none', 'None')]
name_get(self)
No new fields.
Public methods (1)trans_unrec(self)
account_report_id
Many2one → account.financial.report
default=_get_account_report
required=True
string='Account Reports'
args: 'account.financial.report'
date_from_cmp
Date
string='Start Date'
date_to_cmp
Date
string='End Date'
debit_credit
Boolean
help='This option allows you to get more details about the way your balances are computed. Because it is space consuming, we do not allow to use it while doing a comparison.'
string='Display Debit/Credit Columns'
enable_filter
Boolean
string='Enable Comparison'
filter_cmp
Selection
default='filter_no'
required=True
string='Filter by'
args: [('filter_no', 'No Filters'), ('filter_date', 'Date')]
label_filter
Char
help='This label will be displayed on report to show the balance computed for the given comparison filter.'
string='Column Label'
check_report(self)
No new fields.
Public methods (1)send_mail(self, auto_commit=False)
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='This account will be used for invoices to value expenses.'
oldname='property_account_expense_categ'
string='Expense Account'
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='This account will be used for invoices to value sales.'
oldname='property_account_income_categ'
string='Income Account'
args: 'account.account'
No public methods.
No new fields.
Public methods (0)No public methods.
property_account_expense_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='This account will be used for invoices instead of the default one to value expenses for the current product.'
oldname='property_account_expense'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='This account will be used for invoices instead of the default one to value sales for the current product.'
oldname='property_account_income'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
domain=[('type_tax_use', '=', 'purchase')]
string='Vendor Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
taxes_id
Many2many → account.tax
domain=[('type_tax_use', '=', 'sale')]
string='Customer Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
get_product_accounts(self, fiscal_pos=None)
write(self, vals)
No new fields.
Public methods (1)render_html(self, docids, data=None)
No new fields.
Public methods (2)get_account_lines(self, data)
render_html(self, docids, data=None)
No new fields.
Public methods (1)render_html(self, docids, data=None)
No new fields.
Public methods (2)lines(self, target_move, journal_ids, sort_selection, data)
render_html(self, docids, data=None)
No new fields.
Public methods (1)render_html(self, docids, data=None)
No new fields.
Public methods (1)render_html(self, docids, data=None)
No new fields.
Public methods (1)render_html(self, docids, data=None)
accounts_code_digits
Integer
string='Number of digits in an account code'
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
bank_account_code_prefix
Char
oldname='bank_account_code_char'
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template_id
Many2one → account.chart.template
help='The chart template for the company (if any)'
args: 'account.chart.template'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_currency_exchange_account_id
Many2one → account.account
domain="[('internal_type', '=', 'other'), ('deprecated', '=', False), ('company_id', '=', id)]"
related='currency_exchange_journal_id.default_debit_account_id'
string='Loss Exchange Rate Account'
args: 'account.account'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default=12
required=True
args: [(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')]
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
string='Lock Date'
income_currency_exchange_account_id
Many2one → account.account
domain="[('internal_type', '=', 'other'), ('deprecated', '=', False), ('company_id', '=', id)]"
related='currency_exchange_journal_id.default_credit_account_id'
string='Gain Exchange Rate Account'
args: 'account.account'
overdue_msg
Text
default='Dear Sir/Madam,\n\nOur records indicate that some payments on your account are still due. Please find details below.\nIf the amount has already been paid, please disregard this notice. Otherwise, please forward us the total amount stated below.\nIf you have any queries regarding your account, Please contact us.\n\nThank you in advance for your cooperation.\nBest Regards,'
string='Overdue Payments Message'
translate=True
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
string='Lock Date for Non-Advisers'
property_stock_account_input_categ_id
Many2one → account.account
oldname='property_stock_account_input_categ'
string='Input Account for Stock Valuation'
args: 'account.account'
property_stock_account_output_categ_id
Many2one → account.account
oldname='property_stock_account_output_categ'
string='Output Account for Stock Valuation'
args: 'account.account'
property_stock_valuation_account_id
Many2one → account.account
string='Account Template for Stock Valuation'
args: 'account.account'
tax_calculation_rounding_method
Selection
default='round_per_line'
help="If you select 'Round per Line' : for each tax, the tax amount will first be computed and rounded for each PO/SO/invoice line and then these rounded amounts will be summed, leading to the total amount for that tax. If you select 'Round Globally': for each tax, the tax amount will be computed for each PO/SO/invoice line, then these amounts will be summed and eventually this total tax amount will be rounded. If you sell with tax included, you should choose 'Round per line' because you certainly want the sum of your tax-included line subtotals to be equal to the total amount with taxes."
string='Tax Calculation Rounding Method'
args: [('round_per_line', 'Round per Line'), ('round_globally', 'Round Globally')]
transfer_account_id
Many2one → account.account
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
compute_fiscalyear_dates(self, date)
get_new_account_code(self, current_code, old_prefix, new_prefix, digits)
reflect_code_digits_change(self, digits)
reflect_code_prefix_change(self, old_code, new_code, digits)
write(self, values)
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Contracts'
args: 'account.analytic.account', 'partner_id'
contracts_count
Integer
compute='_compute_contracts_count'
string='Contracts'
type='integer'
credit
Monetary
compute='_credit_debit_get'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
currency_id
Many2one → res.currency
compute='_get_company_currency'
help='Utility field to express amount currency'
readonly=True
string='Currency'
args: 'res.currency'
debit
Monetary
compute='_credit_debit_get'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
debit_limit
Monetary
has_unreconciled_entries
Boolean
compute='_compute_has_unreconciled_entries'
help='The partner has at least one unreconciled debit and credit since last time the invoices & payments matching was performed.'
invoice_ids
One2many → account.invoice
copy=False
readonly=True
string='Invoices'
args: 'account.invoice', 'partner_id'
invoice_warn
Selection
default='no-message'
help=WARNING_HELP
required=True
args: WARNING_MESSAGE, 'Invoice'
invoice_warn_msg
Text
issued_total
Monetary
compute='_compute_issued_total'
string='Journal Items'
journal_item_count
Integer
compute='_compute_journal_item_count'
string='Journal Items'
type='integer'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed for this partner. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit or if you click the "Done" button.'
oldname='last_reconciliation_date'
readonly=True
string='Latest Invoices & Payments Matching Date'
property_account_payable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'payable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the payable account for the current partner'
oldname='property_account_payable'
required=True
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
company_dependent=True
help='The fiscal position will determine taxes and accounts used for the partner.'
oldname='property_account_position'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'receivable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the receivable account for the current partner'
oldname='property_account_receivable'
required=True
string='Account Receivable'
args: 'account.account'
property_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for sale orders and customer invoices'
oldname='property_payment_term'
string='Customer Payment Terms'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for purchase orders and vendor bills'
oldname='property_supplier_payment_term'
string='Vendor Payment Terms'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
oldname='ref_companies'
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice'
string='Total Invoiced'
trust
Selection
company_dependent=True
default='normal'
string='Degree of trust you have in this debtor'
args: [('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')]
get_followup_lines_domain(self, date, overdue_only=False, only_unblocked=False)
mark_as_reconciled(self)
open_partner_history(self)
adjustment_type
Selection
required=True
store=False
string='Adjustment Type'
args: [('debit', 'Applied on debit journal item'), ('credit', 'Applied on credit journal item')]
amount
Monetary
currency_field='company_currency_id'
required=True
company_currency_id
Many2one → res.currency
default=<expr>
readonly=True
args: 'res.currency'
credit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Credit account'
args: 'account.account'
date
Date
default=fields.Date.context_today
required=True
debit_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Debit account'
args: 'account.account'
journal_id
Many2one → account.journal
default=_get_default_journal
domain=[('type', '=', 'general')]
required=True
string='Journal'
args: 'account.journal'
reason
Char
required=True
string='Justification'
tax_id
Many2one → account.tax
domain=[('type_tax_use', '=', 'none'), ('tax_adjustment', '=', True)]
ondelete='restrict'
required=True
string='Adjustment Tax'
args: 'account.tax'
create_move(self)
create_move_credit(self)
create_move_debit(self)
No new fields.
Public methods (1)validate_move(self)
No new fields.
Public methods (0)No public methods.
bank_account_code_prefix
Char
oldname='bank_account_code_char'
args: 'Bank Accounts Prefix'
bank_account_ids
One2many → account.bank.accounts.wizard
oldname='bank_accounts_id'
required=True
string='Cash and Banks'
args: 'account.bank.accounts.wizard', 'bank_account_id'
cash_account_code_prefix
Char
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
code_digits
Integer
help='No. of Digits to use for account code'
required=True
string='# of Digits'
company_id
Many2one → res.company
required=True
string='Company'
args: 'res.company'
complete_tax_set
Boolean
help='This boolean helps you to choose if you want to propose to the user to encode the sales and purchase rates or use the usual m2o fields. This last choice assumes that the set of tax defined for the chosen template is complete'
args: 'Complete Set of Taxes'
currency_id
Many2one → res.currency
help="Currency as per company's country."
required=True
string='Currency'
args: 'res.currency'
only_one_chart_template
Boolean
string='Only One Chart Template Available'
purchase_tax_id
Many2one → account.tax.template
oldname='purchase_tax'
string='Default Purchase Tax'
args: 'account.tax.template'
purchase_tax_rate
Float
string='Purchase Tax(%)'
sale_tax_id
Many2one → account.tax.template
oldname='sale_tax'
string='Default Sales Tax'
args: 'account.tax.template'
sale_tax_rate
Float
string='Sales Tax(%)'
transfer_account_id
Many2one → account.account.template
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
required=True
string='Transfer Account'
args: 'account.account.template'
use_anglo_saxon
Boolean
related='chart_template_id.use_anglo_saxon'
string='Use Anglo-Saxon Accounting'
default_get(self, fields)
execute(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
onchange_chart_template_id(self)
onchange_tax_rate(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/9.0/account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Stéphane Bidoul, Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Josse Colpaert, Denis Ledoux, Christophe Simonis, Xavier Morel, Joren Van Onder, Goffin Simon, Cedric Snauwaert, Simon Lejeune, Frédéric van der Essen, Nicolas Martinelli, Nicolas Lempereur, Jérome Maes, Julien Legros, Richard Mathot, qdp-odoo, Géry Debongnie, Aaron Bohy, Jeremy Kersten, GitHub, Lucas Perais (lpe), Damien Bouvy, Julien De Coster, Olivier Colson, pvy, Denis Michiels, Arthur Maniet, Yannick Tivisse, qsm-odoo, Cédric Snauwaert, Martin Geubelle, Odoo Online, Laurent Smet, Denis Vermylen (dve), De Paoli Quentin, mge-odoo, Quentin De Paoli, Valencia Rodrigues Sah, Olivier Laurent |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/billing |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:48:30 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web_kanban - web - product - decimal_precision - bus - report - analytic - web_tip - web_planner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Invoicing & Payments
====================
The specific and easy-to-use Invoicing system in Odoo allows you to keep track of your accounting, even when you are not an accountant. It provides an easy way to follow up on your vendors and customers.
You could use this simplified accounting in case you work with an (external) account to keep your books, and you still want to keep track of payments. This module also offers you an easy method of registering payments, without having to encode complete abstracts of account.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account.report_overdue_document |
account.report_overdue_document | ir.ui.view | qweb | New |
account_aged_balance_view |
Aged Partner Balance | account.aged.trial.balance | form | New |
account_bank_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_bank_statement_pivot |
account.bank.statement.pivot | account.bank.statement | pivot | New |
account_common_report_view |
Common Report | account.common.report | form | New |
account_invoice_cancel_view |
account.invoice.cancel.form | account.invoice.cancel | form | New |
account_invoice_confirm_view |
account.invoice.confirm.form | account.invoice.confirm | form | New |
account_invoice_report_duplicate |
account_invoice_report_duplicate | ir.ui.view | qweb | Inherits account.report_invoice_document |
account_invoice_report_duplicate_main |
account_invoice_report_duplicate_main | ir.ui.view | qweb | New |
account_journal_dashboard_kanban_view |
account.journal.dashboard.kanban | account.journal | kanban | New |
account_move_line_graph_date |
account.move.line.graph | account.move.line | graph | New |
account_move_line_graph_date_cash_basis |
account.move.line.graph | account.move.line | graph | New |
account_move_line_reconcile_writeoff |
account.move.line.reconcile.writeoff.form | account.move.line.reconcile.writeoff | form | New |
account_planner |
account_planner | ir.ui.view | qweb | New |
account_report_balance_view |
Trial Balance | account.balance.report | data | Inherits account_common_report_view |
account_report_general_ledger_view |
General Ledger | account.report.general.ledger | data | Inherits account_common_report_view |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
accounting_report_view |
Accounting Report | accounting.report | field | Inherits account.account_common_report_view |
assets_backend |
account assets | ir.ui.view | qweb | Inherits web.assets_backend |
cash_box_in_form |
cash_box_in | cash.box.in | form | New |
cash_box_out_form |
cash_box_out | cash.box.out | form | New |
external_layout_footer |
external_layout_footer | ir.ui.view | qweb | Inherits report.external_layout_footer |
invoice_form |
account.invoice.form | account.invoice | form | New |
invoice_kanban |
account.invoice.kanban | account.invoice | kanban | New |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | form | New |
invoice_supplier_tree |
account.invoice.supplier.tree | account.invoice | tree | New |
invoice_tree |
account.invoice.tree | account.invoice | tree | New |
partner_view_button_contracts_count |
partner.view.button.contracts_count | res.partner | div | Inherits base.view_partner_form |
partner_view_buttons |
partner.view.buttons | res.partner | div | Inherits base.view_partner_form |
product_template_form_view |
product.template.form.inherit | product.template | page | Inherits product.product_template_form_view |
report_agedpartnerbalance |
report_agedpartnerbalance | ir.ui.view | qweb | New |
report_financial |
report_financial | ir.ui.view | qweb | New |
report_generalledger |
report_generalledger | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_overdue |
report_overdue | ir.ui.view | qweb | New |
report_trialbalance |
report_trialbalance | ir.ui.view | qweb | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_analytic_line_filter_inherit_account |
account.analytic.line.select.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_filter |
view_account_analytic_line_form_inherit_account |
account.analytic.line.form.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_form |
view_account_analytic_line_pivot |
account.analytic.line.pivot | account.analytic.line | field | Inherits analytic.view_account_analytic_line_pivot |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.tree.inherit.account | account.analytic.line | data | Inherits analytic.view_account_analytic_line_tree |
view_account_bank_journal_form |
account.bank.journal.form | account.journal | form | New |
view_account_bank_journal_tree |
account.bank.journal.tree | account.journal | tree | New |
view_account_bnk_stmt_cashbox |
account.bnk_stmt_cashbox.form | account.bank.statement.cashbox | form | New |
view_account_bnk_stmt_check |
account.bnk_stmt_check.form | account.bank.statement.closebalance | form | New |
view_account_chart_template_form |
account.chart.template.form | account.chart.template | form | New |
view_account_chart_template_seacrh |
account.chart.template.search | account.chart.template | search | New |
view_account_chart_template_tree |
account.chart.template.tree | account.chart.template | tree | New |
view_account_config_settings |
account settings | account.config.settings | form | New |
view_account_financial_report_form |
account.financial.report.form | account.financial.report | form | New |
view_account_financial_report_search |
account.financial.report.search | account.financial.report | search | New |
view_account_financial_report_tree |
account.financial.report.tree | account.financial.report | tree | New |
view_account_form |
account.account.form | account.account | form | New |
view_account_invoice_filter |
account.invoice.select | account.invoice | search | New |
view_account_invoice_refund |
account.invoice.refund.form | account.invoice.refund | form | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_pivot |
account.invoice.report.pivot | account.invoice.report | pivot | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_line_filter |
Journal Items | account.move.line | search | New |
view_account_move_line_reconcile_full |
account.move.line.reconcile.full.form | account.move.line.reconcile | form | New |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | form | New |
view_account_operation_template_form |
account.operation.template.form | account.operation.template | form | New |
view_account_operation_template_search |
account.operation.template.search | account.operation.template | search | New |
view_account_operation_template_tree |
account.operation.template.tree | account.operation.template | tree | New |
view_account_payment_form |
account.payment.form | account.payment | form | New |
view_account_payment_from_invoices |
account.register.payments.wizard | account.register.payments | form | New |
view_account_payment_graph |
account.payment.graph | account.payment | graph | New |
view_account_payment_invoice_form |
account.payment.invoice.form | account.payment | form | New |
view_account_payment_search |
account.payment.search | account.payment | search | New |
view_account_payment_tree |
account.payment.tree | account.payment | tree | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_report_tree_hierarchy |
account.report.hierarchy | account.financial.report | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_supplier_payment_tree |
account.supplier.payment.tree | account.payment | tree | New |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_template_form |
account.account.template.form | account.account.template | form | New |
view_account_template_search |
account.account.template.search | account.account.template | search | New |
view_account_template_tree |
account.account.template.tree | account.account.template | tree | New |
view_account_type_form |
account.account.type.form | account.account.type | form | New |
view_account_type_search |
account.account.type.search | account.account.type | search | New |
view_account_type_tree |
account.account.type.tree | account.account.type | tree | New |
view_bank_statement_form |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_line_form |
bank.statement.line.form | account.bank.statement.line | form | New |
view_bank_statement_line_search |
account.bank.statement.line.search | account.bank.statement.line | search | New |
view_bank_statement_line_tree |
account.bank.statement.line.tree | account.bank.statement.line | tree | New |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | group | Inherits product.product_category_form_view |
view_company_inherit_form |
res.company.form.inherit | res.company | field | Inherits base.view_company_form |
view_invoice_graph |
account.invoice.graph | account.invoice | graph | New |
view_invoice_line_calendar |
account.invoice.calendar | account.invoice | calendar | New |
view_invoice_line_form |
account.invoice.line.form | account.invoice.line | form | New |
view_invoice_line_tree |
account.invoice.line.tree | account.invoice.line | tree | New |
view_invoice_pivot |
account.invoice.pivot | account.invoice | pivot | New |
view_invoice_tax_form |
account.invoice.tax.form | account.invoice.tax | form | New |
view_invoice_tax_tree |
account.invoice.tax.tree | account.invoice.tax | tree | New |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_form2 |
account.move.line.form2 | account.move.line | form | New |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_tree |
account.move.tree | account.move | tree | New |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | page | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_line_form |
account.payment.term.line.form | account.payment.term.line | form | New |
view_payment_term_line_tree |
account.payment.term.line.tree | account.payment.term.line | tree | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
view_wizard_multi_chart |
Choose Accounting Template | wizard.multi.charts.accounts | form | Inherits base.res_config_view_base |
amount
Monetary
required=True
string='Payment Amount'
communication
Char
string='Memo'
company_id
Many2one → res.company
readonly=True
related='journal_id.company_id'
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
hide_payment_method
Boolean
compute='_compute_hide_payment_method'
help="Technical field used to hide the payment method if the selected journal has only one available which is 'manual'"
journal_id
Many2one → account.journal
domain=[('type', 'in', ('bank', 'cash'))]
required=True
string='Payment Method'
args: 'account.journal'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
partner_type
Selection
payment_date
Date
copy=False
default=fields.Date.context_today
required=True
string='Payment Date'
payment_method_code
Char
help='Technical field used to adapt the interface to the payment type selected.'
readonly=True
related='payment_method_id.code'
payment_method_id
Many2one → account.payment.method
oldname='payment_method'
required=True
string='Payment Type'
args: 'account.payment.method'
payment_type
Selection
required=True
string='Payment Type'
args: [('outbound', 'Send Money'), ('inbound', 'Receive Money')]
No public methods.
chart_template_id
Many2one → account.chart.template
help="This optional field allow you to link an account template to a specific chart template that may differ from the one its root parent belongs to. This allow you to define chart templates that extend another and complete it with few new accounts (You don't need to define the whole structure that is common to both several times)."
string='Chart Template'
args: 'account.chart.template'
code
Char
index=True
required=True
size=64
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
name
Char
index=True
required=True
nocreate
Boolean
default=False
help='If checked, the new chart of accounts will not contain this by default.'
string='Optional Create'
note
Text
reconcile
Boolean
default=False
help='Check this option if you want the user to reconcile entries in this account.'
string='Allow Invoices & payments Matching'
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag', 'account_account_template_account_tag'
tax_ids
Many2many → account.tax.template
string='Default Taxes'
args: 'account.tax.template', 'account_account_template_tax_rel', 'account_id', 'tax_id'
user_type_id
Many2one → account.account.type
help='These types are defined according to your country. The type contains more information about the account and its specificities.'
oldname='user_type'
required=True
string='Type'
args: 'account.account.type'
name_get(self)
date_from
Date
default=<expr>
journal_ids
Many2many → account.journal
required=True
string='Journals'
args: 'account.journal'
period_length
Integer
default=30
required=True
string='Period Length (days)'
No public methods.
amount
Monetary
currency_field='company_currency_id'
amount_currency
Monetary
help='The amount expressed in the related account currency if not equal to the company one.'
readonly=True
related='move_id.amount_currency'
store=True
analytic_amount_currency
Monetary
compute='_get_analytic_amount_currency'
help='The amount expressed in the related account currency if not equal to the company one.'
readonly=True
string='Amount Currency'
code
Char
size=8
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
args: 'res.currency'
currency_id
Many2one → res.currency
help='The related account currency if not equal to the company one.'
readonly=True
related='move_id.currency_id'
store=True
string='Account Currency'
args: 'res.currency'
general_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
ondelete='restrict'
readonly=True
related='move_id.account_id'
store=True
string='Financial Account'
args: 'account.account'
move_id
Many2one → account.move.line
index=True
ondelete='cascade'
string='Move Line'
args: 'account.move.line'
partner_id
Many2one → res.partner
readonly=True
related='account_id.partner_id'
store=True
string='Partner'
args: 'res.partner'
product_id
Many2one → product.product
string='Product'
args: 'product.product'
product_uom_id
Many2one → product.uom
string='Unit of Measure'
args: 'product.uom'
ref
Char
string='Ref.'
on_change_unit_amount(self)
view_header_get(self, view_id, view_type)
journal_ids
Many2many → account.journal
default=[]
required=True
string='Journals'
args: 'account.journal', 'account_balance_report_journal_rel', 'account_id', 'journal_id'
No public methods.
acc_name
Char
required=True
string='Account Name.'
account_type
Selection
bank_account_id
Many2one → wizard.multi.charts.accounts
ondelete='cascade'
required=True
string='Bank Account'
args: 'wizard.multi.charts.accounts'
currency_id
Many2one → res.currency
help='Forces all moves for this account to have this secondary currency.'
string='Account Currency'
args: 'res.currency'
No public methods.
all_lines_reconciled
Boolean
compute='_check_lines_reconciled'
balance_end
Monetary
compute='_end_balance'
help='Balance as calculated based on Opening Balance and transaction lines'
store=True
args: 'Computed Balance'
balance_end_real
Monetary
states={'confirm': [('readonly', True)]}
args: 'Ending Balance'
balance_start
Monetary
default=_default_opening_balance
states={'confirm': [('readonly', True)]}
string='Starting Balance'
cashbox_end_id
Many2one → account.bank.statement.cashbox
string='Ending Cashbox'
args: 'account.bank.statement.cashbox'
cashbox_start_id
Many2one → account.bank.statement.cashbox
string='Starting Cashbox'
args: 'account.bank.statement.cashbox'
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'
oldname='currency'
string='Currency'
args: 'res.currency'
date
Date
copy=False
default=fields.Date.context_today
index=True
required=True
states={'confirm': [('readonly', True)]}
date_done
Datetime
string='Closed On'
difference
Monetary
compute='_end_balance'
help='Difference between the computed ending balance and the specified ending balance.'
store=True
is_difference_zero
Boolean
compute='_is_difference_zero'
help='Check if difference is zero.'
string='Is zero'
journal_id
Many2one → account.journal
default=_default_journal
required=True
states={'confirm': [('readonly', True)]}
string='Journal'
args: 'account.journal'
journal_type
Selection
help='Technical field used for usability purposes'
related='journal_id.type'
line_ids
One2many → account.bank.statement.line
copy=True
states={'confirm': [('readonly', True)]}
string='Statement lines'
args: 'account.bank.statement.line', 'statement_id'
move_line_ids
One2many → account.move.line
states={'confirm': [('readonly', True)]}
string='Entry lines'
args: 'account.move.line', 'statement_id'
name
Char
copy=False
readonly=True
states={'open': [('readonly', False)]}
string='Reference'
state
Selection
copy=False
default='open'
readonly=True
required=True
string='Status'
args: [('open', 'New'), ('confirm', 'Validated')]
total_entry_encoding
Monetary
compute='_end_balance'
help='Total of transaction lines.'
store=True
args: 'Transactions Subtotal'
user_id
Many2one → res.users
default=<expr>
required=False
string='Responsible'
args: 'res.users'
button_cancel(self)
button_confirm_bank(self)
button_journal_entries(self)
button_open(self)
check_confirm_bank(self)
create(self, vals)
link_bank_to_partner(self)
onchange_journal_id(self)
open_cashbox_id(self)
reconciliation_widget_preprocess(self)
unlink(self)
cashbox_lines_ids
One2many → account.cashbox.line
string='Cashbox Lines'
args: 'account.cashbox.line', 'cashbox_id'
validate(self)
No new fields.
Public methods (1)validate(self)
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='This technical field can be used at the statement line creation/import time in order to avoid the reconciliation process on it later on. The statement line will simply create a counterpart on this account'
string='Counterpart Account'
args: 'account.account'
amount
Monetary
currency_field='journal_currency_id'
digits=0
amount_currency
Monetary
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
bank_account_id
Many2one → res.partner.bank
string='Bank Account'
args: 'res.partner.bank'
company_id
Many2one → res.company
readonly=True
related='statement_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
help='The optional other currency if it is a multi-currency entry.'
string='Currency'
args: 'res.currency'
date
Date
default=<expr>
required=True
journal_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='statement_id.currency_id'
args: 'res.currency'
journal_entry_ids
One2many → account.move
copy=False
readonly=True
args: 'account.move', 'statement_line_id', 'Journal Entries'
journal_id
Many2one → account.journal
readonly=True
related='statement_id.journal_id'
store=True
string='Journal'
args: 'account.journal'
name
Char
required=True
string='Memo'
note
Text
string='Notes'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
partner_name
Char
help="This field is used to record the third party name when importing bank statement in electronic format, when the partner doesn't exist yet in the database (or cannot be found)."
ref
Char
string='Reference'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of bank statement lines.'
index=True
state
Selection
readonly=True
related='statement_id.state'
string='Status'
statement_id
Many2one → account.bank.statement
index=True
ondelete='cascade'
required=True
string='Statement'
args: 'account.bank.statement'
auto_reconcile(self)
button_cancel_reconciliation(self)
create(self, vals)
fast_counterpart_creation(self)
get_data_for_reconciliation_widget(self, excluded_ids=None)
get_move_lines_for_reconciliation(self, excluded_ids=None, str=False, offset=0, limit=None, additional_domain=None, overlook_partner=False)
get_move_lines_for_reconciliation_widget(self, excluded_ids=None, str=False, offset=0, limit=None)
get_reconciliation_proposition(self, excluded_ids=None)
get_statement_line_for_reconciliation_widget(self)
process_reconciliation(self, counterpart_aml_dicts=None, payment_aml_rec=None, new_aml_dicts=None)
process_reconciliations(self, cr, uid, ids, data, context=None)
reconciliation_widget_auto_reconcile(self, num_already_reconciled_lines)
unlink(self)
cashbox_id
Many2one → account.bank.statement.cashbox
string='Cashbox'
args: 'account.bank.statement.cashbox'
coin_value
Float
digits=0
required=True
string='Coin/Bill Value'
number
Integer
help='Opening Unit Numbers'
string='Number of Coins/Bills'
subtotal
Float
compute='_sub_total'
digits=0
readonly=True
string='Subtotal'
No public methods.
account_ids
One2many → account.account.template
string='Associated Account Templates'
args: 'account.account.template', 'chart_template_id'
bank_account_code_prefix
Char
oldname='bank_account_code_char'
string='Prefix of the bank accounts'
cash_account_code_prefix
Char
string='Prefix of the main cash accounts'
code_digits
Integer
default=6
help='No. of Digits to use for account code'
required=True
string='# of Digits'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
complete_tax_set
Boolean
default=True
help='This boolean helps you to choose if you want to propose to the user to encode the sale and purchase rates or choose from list of taxes. This last choice assumes that the set of tax defined on this template is complete'
string='Complete Set of Taxes'
currency_id
Many2one → res.currency
required=True
string='Currency'
args: 'res.currency'
expense_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Loss Exchange Rate Account'
args: 'account.account.template'
income_currency_exchange_account_id
Many2one → account.account.template
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
string='Gain Exchange Rate Account'
args: 'account.account.template'
name
Char
required=True
parent_id
Many2one → account.chart.template
string='Parent Chart Template'
args: 'account.chart.template'
property_account_expense_categ_id
Many2one → account.account.template
oldname='property_account_expense_categ'
string='Category of Expense Account'
args: 'account.account.template'
property_account_expense_id
Many2one → account.account.template
oldname='property_account_expense'
string='Expense Account on Product Template'
args: 'account.account.template'
property_account_income_categ_id
Many2one → account.account.template
oldname='property_account_income_categ'
string='Category of Income Account'
args: 'account.account.template'
property_account_income_id
Many2one → account.account.template
oldname='property_account_income'
string='Income Account on Product Template'
args: 'account.account.template'
property_account_payable_id
Many2one → account.account.template
oldname='property_account_payable'
string='Payable Account'
args: 'account.account.template'
property_account_receivable_id
Many2one → account.account.template
oldname='property_account_receivable'
string='Receivable Account'
args: 'account.account.template'
property_stock_account_input_categ_id
Many2one → account.account.template
oldname='property_stock_account_input_categ'
string='Input Account for Stock Valuation'
args: 'account.account.template'
property_stock_account_output_categ_id
Many2one → account.account.template
oldname='property_stock_account_output_categ'
string='Output Account for Stock Valuation'
args: 'account.account.template'
property_stock_valuation_account_id
Many2one → account.account.template
string='Account Template for Stock Valuation'
args: 'account.account.template'
tax_template_ids
One2many → account.tax.template
help='List of all the taxes that have to be installed by the wizard'
string='Tax Template List'
args: 'account.tax.template', 'chart_template_id'
transfer_account_id
Many2one → account.account.template
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
required=True
string='Transfer Account'
args: 'account.account.template'
use_anglo_saxon
Boolean
default=False
string='Use Anglo-Saxon accounting'
visible
Boolean
default=True
help="Set this to False if you don't want this template to be used actively in the wizard that generate Chart of Accounts from templates, this is useful when you want to generate accounts of this template only when loading its child template."
string='Can be Visible?'
generate_account(self, tax_template_ref, acc_template_ref, code_digits, company)
generate_fiscal_position(self, tax_template_ref, acc_template_ref, company)
generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company)
open_select_template_wizard(self)
try_loading_for_current_company(self)
display_account
Selection
default='movement'
required=True
string='Display Accounts'
args: [('all', 'All'), ('movement', 'With movements'), ('not_zero', 'With balance is not equal to 0')]
pre_print_report(self, data)
result_selection
Selection
default='customer'
required=True
string="Partner's"
args: [('customer', 'Receivable Accounts'), ('supplier', 'Payable Accounts'), ('customer_supplier', 'Receivable and Payable Accounts')]
pre_print_report(self, data)
company_id
Many2one → res.company
default=<expr>
readonly=True
string='Company'
args: 'res.company'
date_from
Date
string='Start Date'
date_to
Date
string='End Date'
journal_ids
Many2many → account.journal
default=<expr>
required=True
string='Journals'
args: 'account.journal'
target_move
Selection
default='posted'
required=True
string='Target Moves'
args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
check_report(self)
bank_account_code_prefix
Char
help='Define the code prefix for the bank accounts'
oldname='bank_account_code_char'
related='company_id.bank_account_code_prefix'
string='Bank Accounts Prefix'
cash_account_code_prefix
Char
help='Define the code prefix for the cash accounts'
related='company_id.cash_account_code_prefix'
string='Cash Accounts Prefix'
chart_template_id
Many2one → account.chart.template
domain="[('visible','=', True)]"
string='Template'
args: 'account.chart.template'
code_digits
Integer
help='No. of digits to use for account code'
related='company_id.accounts_code_digits'
string='# of Digits'
company_footer
Text
help='Bank accounts as printed in the footer of each printed document'
readonly=True
related='company_id.rml_footer'
string='Bank accounts footer preview'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
complete_tax_set
Boolean
help='This boolean helps you to choose if you want to propose to the user to encode\n the sales and purchase rates or use the usual m2o fields. This last choice assumes that\n the set of tax defined for the chosen template is complete'
string='Complete set of taxes'
currency_exchange_journal_id
Many2one → account.journal
related='company_id.currency_exchange_journal_id'
string='Rate Difference Journal'
args: 'account.journal'
currency_id
Many2one → res.currency
compute='_get_currency_id'
help='Main currency of the company.'
inverse='_set_currency_id'
required=True
string='Default company currency'
args: 'res.currency'
default_purchase_tax_id
Many2one → account.tax
help='This purchase tax will be assigned by default on new products.'
oldname='default_purchase_tax'
string='Default Purchase Tax'
args: 'account.tax'
default_sale_tax_id
Many2one → account.tax
help='This sale tax will be assigned by default on new products.'
oldname='default_sale_tax'
string='Default Sale Tax'
args: 'account.tax'
expects_chart_of_accounts
Boolean
help='Check this box if this company is a legal entity.'
related='company_id.expects_chart_of_accounts'
string='This company has its own chart of accounts'
fiscalyear_last_day
Integer
default=31
related='company_id.fiscalyear_last_day'
fiscalyear_last_month
Selection
default=12
related='company_id.fiscalyear_last_month'
args: [(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')]
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
related='company_id.fiscalyear_lock_date'
string='Lock Date'
group_analytic_accounting
Boolean
help='Allows you to use the analytic accounting.'
implied_group='analytic.group_analytic_accounting'
string='Analytic accounting'
group_multi_currency
Boolean
help='Allows you multi currency environment'
implied_group='base.group_multi_currency'
string='Allow multi currencies'
group_proforma_invoices
Boolean
help='Allows you to put invoices in pro-forma state.'
implied_group='account.group_proforma_invoices'
string='Allow pro-forma invoices'
has_chart_of_accounts
Boolean
string='Company has a chart of accounts'
has_default_company
Boolean
default=<expr>
readonly=True
module_account_accountant
Boolean
help='If you do not check this box, you will be able to do invoicing & payments,\n but not accounting (Journal Items, Chart of Accounts, ...)'
string='Full accounting features: journals, legal statements, chart of accounts, etc.'
module_account_asset
Boolean
help='Asset management: This allows you to manage the assets owned by a company or a person. It keeps track of the depreciation occurred on those assets, and creates account move for those depreciation lines.\n\n-This installs the module account_asset. If you do not check this box, you will be able to do invoicing & payments, but not accounting (Journal Items, Chart of Accounts, ...)'
string='Assets management'
module_account_bank_statement_import_ofx
Boolean
help='Get your bank statements from your bank and import them in Odoo in the .OFX format.\nThis installs the module account_bank_statement_import_ofx.'
args: 'Import in .ofx format'
module_account_bank_statement_import_qif
Boolean
help='Get your bank statements from your bank and import them in Odoo in the .QIF format.\nThis installs the module account_bank_statement_import_qif.'
args: 'Import .qif files'
module_account_batch_deposit
Boolean
help='This allows you to group received checks before you deposit them to the bank.\n-This installs the module account_batch_deposit.'
string='Use batch deposit'
module_account_budget
Boolean
help='This allows accountants to manage analytic and crossovered budgets. Once the master budgets and the budgets are defined, the project managers can set the planned amount on each analytic account.\n-This installs the module account_budget.'
string='Budget management'
module_account_plaid
Boolean
help='Get your bank statements from you bank and import them through plaid.com.\n-that installs the module account_plaid.'
string='Plaid Connector'
module_account_reports
Boolean
module_account_reports_followup
Boolean
help='This allows to automate letters for unpaid invoices, with multi-level recalls.\n-This installs the module account_reports_followup.'
args: 'Enable payment followup management'
module_account_sepa
Boolean
help='If you check this box, you will be able to register your payment using SEPA.\n-This installs the module account_sepa.'
string='Use SEPA payments'
module_account_tax_cash_basis
Boolean
help='Generate tax cash basis entrie when reconciliating entries'
string='Allow Tax Cash Basis'
module_account_yodlee
Boolean
help='Get your bank statements from your bank and import them through yodlee.com.\n-that installs the module account_yodlee.'
args: 'Bank Interface - Sync your bank feeds automatically'
module_l10n_us_check_printing
Boolean
paypal_account
Char
help='Paypal account (email) for receiving online payments (credit card, etc.)\n If you set a paypal account, the customer will be able to pay your invoices or quotations\n with a button "Pay with Paypal" in automated emails or through the Odoo portal.'
related='company_id.paypal_account'
size=128
string='Paypal account'
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
related='company_id.period_lock_date'
string='Lock Date for Non-Advisers'
purchase_tax_id
Many2one → account.tax.template
oldname='purchase_tax'
string='Default purchase tax'
args: 'account.tax.template'
purchase_tax_rate
Float
string='Purchase tax (%)'
sale_tax_id
Many2one → account.tax.template
oldname='sale_tax'
string='Default sale tax'
args: 'account.tax.template'
sale_tax_rate
Float
string='Sales tax (%)'
tax_calculation_rounding_method
Selection
help="If you select 'Round per line' : for each tax, the tax amount will first be\n computed and rounded for each PO/SO/invoice line and then these rounded amounts will be summed,\n leading to the total amount for that tax. If you select 'Round globally': for each tax,\n the tax amount will be computed for each PO/SO/invoice line, then these amounts will be\n summed and eventually this total tax amount will be rounded. If you sell with tax included,\n you should choose 'Round per line' because you certainly want the sum of your tax-included line\n subtotals to be equal to the total amount with taxes."
related='company_id.tax_calculation_rounding_method'
string='Tax calculation rounding method'
args: [('round_per_line', 'Round calculation of taxes per line'), ('round_globally', 'Round globally calculation of taxes ')]
template_transfer_account_id
Many2one → account.account.template
help='Intermediary account used when moving money from a liquidity account to another'
args: 'account.account.template'
transfer_account_id
Many2one → account.account
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
related='company_id.transfer_account_id'
args: 'account.account'
use_anglo_saxon
Boolean
related='company_id.anglo_saxon_accounting'
string='Use Anglo-Saxon Accounting'
onchange_analytic_accounting(self)
onchange_chart_template_id(self)
onchange_company_id(self)
onchange_tax_rate(self)
open_bank_accounts(self)
open_company(self)
set_chart_of_accounts(self)
set_group_multi_currency(self)
set_product_taxes(self)
set_transfer_account(self)
account_ids
Many2many → account.account
account_report_id
Many2one → account.financial.report
account_type_ids
Many2many → account.account.type
children_ids
One2many → account.financial.report
display_detail
Selection
default='detail_flat'
args: [('no_detail', 'No detail'), ('detail_flat', 'Display children flat'), ('detail_with_hierarchy', 'Display children with hierarchy')], 'Display details'
level
Integer
compute='_get_level'
store=True
string='Level'
name
Char
required=True
translate=True
args: 'Report Name'
parent_id
Many2one → account.financial.report
sequence
Integer
sign
Selection
default=1
help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'
required=True
args: [(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports'
style_overwrite
Selection
default=0
help="You can set up here the format you want this record to be displayed. If you leave the automatic formatting, it will be computed based on the financial reports hierarchy (auto-computed field 'level')."
args: [(0, 'Automatic formatting'), (1, 'Main Title 1 (bold, underlined)'), (2, 'Title 2 (bold)'), (3, 'Title 3 (bold, smaller)'), (4, 'Normal Text'), (5, 'Italic Text (smaller)'), (6, 'Smallest Text')], 'Financial Report Style'
type
Selection
default='sum'
args: [('sum', 'View'), ('accounts', 'Accounts'), ('account_type', 'Account Type'), ('account_report', 'Report Value')], 'Type'
No public methods.
account_ids
One2many → account.fiscal.position.account
copy=True
string='Account Mapping'
args: 'account.fiscal.position.account', 'position_id'
active
Boolean
default=True
help='By unchecking the active field, you may hide a fiscal position without deleting it.'
auto_apply
Boolean
help='Apply automatically this fiscal position.'
string='Detect Automatically'
company_id
Many2one → res.company
string='Company'
args: 'res.company'
country_group_id
Many2one → res.country.group
help='Apply only if delivery or invocing country match the group.'
string='Country Group'
args: 'res.country.group'
country_id
Many2one → res.country
help='Apply only if delivery or invoicing country match.'
string='Country'
args: 'res.country'
name
Char
required=True
string='Fiscal Position'
note
Text
help='Legal mentions that have to be printed on the invoices.'
args: 'Notes'
sequence
Integer
state_ids
Many2many → res.country.state
string='Federal States'
args: 'res.country.state'
states_count
Integer
compute='_compute_states_count'
tax_ids
One2many → account.fiscal.position.tax
copy=True
string='Tax Mapping'
args: 'account.fiscal.position.tax', 'position_id'
vat_required
Boolean
help='Apply only if partner has a VAT number.'
string='VAT required'
zip_from
Integer
default=0
string='Zip Range From'
zip_to
Integer
default=0
string='Zip Range To'
get_fiscal_position(self, partner_id, delivery_id=None)
map_account(self, cr, uid, fposition_id, account_id, context=None)
map_account(self, account)
map_accounts(self, accounts)
map_tax(self, cr, uid, fposition_id, taxes, context=None)
map_tax(self, taxes)
account_dest_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Account to Use Instead'
args: 'account.account'
account_src_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Account on Product'
args: 'account.account'
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
No public methods.
account_dest_id
Many2one → account.account.template
required=True
string='Account Destination'
args: 'account.account.template'
account_src_id
Many2one → account.account.template
required=True
string='Account Source'
args: 'account.account.template'
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Mapping'
args: 'account.fiscal.position.template'
No public methods.
position_id
Many2one → account.fiscal.position
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position'
tax_dest_id
Many2one → account.tax
string='Tax to Apply'
args: 'account.tax'
tax_src_id
Many2one → account.tax
required=True
string='Tax on Product'
args: 'account.tax'
No public methods.
position_id
Many2one → account.fiscal.position.template
ondelete='cascade'
required=True
string='Fiscal Position'
args: 'account.fiscal.position.template'
tax_dest_id
Many2one → account.tax.template
string='Replacement Tax'
args: 'account.tax.template'
tax_src_id
Many2one → account.tax.template
required=True
string='Tax Source'
args: 'account.tax.template'
No public methods.
account_ids
One2many → account.fiscal.position.account.template
string='Account Mapping'
args: 'account.fiscal.position.account.template', 'position_id'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
name
Char
required=True
string='Fiscal Position Template'
note
Text
string='Notes'
tax_ids
One2many → account.fiscal.position.tax.template
string='Tax Mapping'
args: 'account.fiscal.position.tax.template', 'position_id'
No public methods.
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
help='The partner account used for this invoice.'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Account'
args: 'account.account'
amount_tax
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Tax'
amount_total
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Total'
amount_total_company_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
help='Total amount in the currency of the company, negative for credit notes.'
readonly=True
store=True
string='Total'
amount_total_signed
Monetary
compute='_compute_amount'
currency_field='currency_id'
help='Total amount in the currency of the invoice, negative for credit notes.'
readonly=True
store=True
string='Total'
amount_untaxed
Monetary
compute='_compute_amount'
readonly=True
store=True
string='Untaxed Amount'
track_visibility='always'
amount_untaxed_signed
Monetary
compute='_compute_amount'
currency_field='company_currency_id'
readonly=True
store=True
string='Untaxed Amount'
comment
Text
readonly=True
states={'draft': [('readonly', False)]}
args: 'Additional Information'
commercial_partner_id
Many2one → res.partner
compute_sudo=True
help='The commercial entity that will be used on Journal Entries for this invoice'
readonly=True
related='partner_id.commercial_partner_id'
store=True
string='Commercial Entity'
args: 'res.partner'
company_currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
default=_default_currency
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Currency'
track_visibility='always'
args: 'res.currency'
date
Date
copy=False
help='Keep empty to use the invoice date.'
readonly=True
states={'draft': [('readonly', False)]}
string='Accounting Date'
date_due
Date
copy=False
help='If you use payment terms, the due date will be computed automatically at the generation of accounting entries. The payment term may compute several due dates, for example 50% now and 50% in one month, but if you want to force a due date, make sure that the payment term is not set on the invoice. If you keep the payment term and the due date empty, it means direct payment.'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Due Date'
date_invoice
Date
copy=False
help='Keep empty to use the current date'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice Date'
fiscal_position_id
Many2one → account.fiscal.position
oldname='fiscal_position'
readonly=True
states={'draft': [('readonly', False)]}
string='Fiscal Position'
args: 'account.fiscal.position'
has_outstanding
Boolean
compute='_get_outstanding_info_JSON'
invoice_line_ids
One2many → account.invoice.line
copy=True
oldname='invoice_line'
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice Lines'
args: 'account.invoice.line', 'invoice_id'
journal_id
Many2one → account.journal
default=_default_journal
domain="[('type', 'in', {'out_invoice': ['sale'], 'out_refund': ['sale'], 'in_refund': ['purchase'], 'in_invoice': ['purchase']}.get(type, [])), ('company_id', '=', company_id)]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
copy=False
help='Link to the automatically generated Journal Items.'
index=True
ondelete='restrict'
readonly=True
string='Journal Entry'
args: 'account.move'
move_name
Char
copy=False
default=False
help='Technical field holding the number given to the invoice, automatically set when the invoice is validated then stored to set the same number again if the invoice is cancelled, set to draft and re-validated.'
readonly=False
string='Journal Entry'
name
Char
copy=False
help='The name that will be used on account move lines'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Reference/Description'
number
Char
copy=False
readonly=True
related='move_id.name'
store=True
origin
Char
help='Reference of the document that produced this invoice.'
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
outstanding_credits_debits_widget
Text
compute='_get_outstanding_info_JSON'
partner_bank_id
Many2one → res.partner.bank
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Refund, otherwise a Partner bank account number.'
readonly=True
states={'draft': [('readonly', False)]}
string='Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
change_default=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Partner'
track_visibility='always'
args: 'res.partner'
payment_ids
Many2many → account.payment
copy=False
readonly=True
string='Payments'
args: 'account.payment', 'account_invoice_payment_rel', 'invoice_id', 'payment_id'
payment_move_line_ids
Many2many → account.move.line
compute='_compute_payments'
store=True
string='Payments'
args: 'account.move.line'
payment_term_id
Many2one → account.payment.term
help='If you use payment terms, the due date will be computed automatically at the generation of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month.'
oldname='payment_term'
readonly=True
states={'draft': [('readonly', False)]}
string='Payment Term'
args: 'account.payment.term'
payments_widget
Text
compute='_get_payment_info_JSON'
reconciled
Boolean
compute='_compute_residual'
help='It indicates that the invoice has been paid and the journal entry of the invoice has been reconciled with one or several journal entries of payment.'
readonly=True
store=True
string='Paid/Reconciled'
reference
Char
help='The partner reference of this invoice.'
readonly=True
states={'draft': [('readonly', False)]}
string='Vendor Reference'
reference_type
Selection
default='none'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Payment Reference'
args: '_get_reference_type'
residual
Monetary
compute='_compute_residual'
help='Remaining amount due.'
store=True
string='Amount Due'
residual_company_signed
Monetary
compute='_compute_residual'
currency_field='company_currency_id'
help='Remaining amount due in the currency of the company.'
store=True
string='Amount Due'
residual_signed
Monetary
compute='_compute_residual'
currency_field='currency_id'
help='Remaining amount due in the currency of the invoice.'
store=True
string='Amount Due'
sent
Boolean
copy=False
default=False
help='It indicates that the invoice has been sent.'
readonly=True
state
Selection
copy=False
default='draft'
help=" * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n * The 'Pro-forma' status is used the invoice does not have an invoice number.\n * The 'Open' status is used when user create invoice, an invoice number is generated. Its in open status till user does not pay invoice.\n * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n * The 'Cancelled' status is used when user cancel invoice."
index=True
readonly=True
string='Status'
track_visibility='onchange'
args: [('draft', 'Draft'), ('proforma', 'Pro-forma'), ('proforma2', 'Pro-forma'), ('open', 'Open'), ('paid', 'Paid'), ('cancel', 'Cancelled')]
tax_line_ids
One2many → account.invoice.tax
copy=True
oldname='tax_line'
readonly=True
states={'draft': [('readonly', False)]}
string='Tax Lines'
args: 'account.invoice.tax', 'invoice_id'
type
Selection
change_default=True
default=<expr>
index=True
readonly=True
track_visibility='always'
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Refund'), ('in_refund', 'Vendor Refund')]
user_id
Many2one → res.users
default=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Salesperson'
track_visibility='onchange'
args: 'res.users'
action_cancel(self)
action_cancel_draft(self)
action_date_assign(self)
action_invoice_sent(self)
action_move_create(self)
assign_outstanding_credit(self, cr, uid, id, credit_aml_id, context=None)
compute_invoice_totals(self, company_currency, invoice_move_lines)
compute_taxes(self)
confirm_paid(self)
create(self, vals)
fields_view_get(self, view_id=None, view_type=False, toolbar=False, submenu=False)
finalize_invoice_move_lines(self, move_lines)
get_formview_id(self)
get_taxes_values(self)
group_lines(self, iml, line)
inv_line_characteristic_hashcode(self, invoice_line)
invoice_line_move_line_get(self)
invoice_print(self)
invoice_validate(self)
line_get_convert(self, line, part)
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
pay_and_reconcile(self, pay_journal, pay_amount=None, date=None, writeoff_acc=None)
pay_and_reconcile(self, cr, uid, ids, pay_journal_id, pay_amount=None, date=None, writeoff_acc_id=None, context=None)
refund(self, date_invoice=None, date=None, description=None, journal_id=None)
register_payment(self, payment_line, writeoff_acc_id=False, writeoff_journal_id=False)
tax_line_move_line_get(self)
unlink(self)
No new fields.
Public methods (1)invoice_cancel(self)
No new fields.
Public methods (1)invoice_confirm(self)
account_analytic_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
account_id
Many2one → account.account
default=_default_account
domain=[('deprecated', '=', False)]
help='The income or expense account related to the selected product.'
required=True
string='Account'
args: 'account.account'
company_currency_id
Many2one → res.currency
readonly=True
related='invoice_id.company_currency_id'
related_sudo=False
args: 'res.currency'
company_id
Many2one → res.company
readonly=True
related='invoice_id.company_id'
related_sudo=False
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
related='invoice_id.currency_id'
related_sudo=False
store=True
args: 'res.currency'
discount
Float
default=0.0
digits=dp.get_precision('Discount')
string='Discount (%)'
invoice_id
Many2one → account.invoice
index=True
ondelete='cascade'
string='Invoice Reference'
args: 'account.invoice'
invoice_line_tax_ids
Many2many → account.tax
domain=[('type_tax_use', '!=', 'none'), '|', ('active', '=', False), ('active', '=', True)]
oldname='invoice_line_tax_id'
string='Taxes'
args: 'account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id'
name
Text
required=True
string='Description'
origin
Char
help='Reference of the document that produced this invoice.'
string='Source Document'
partner_id
Many2one → res.partner
readonly=True
related='invoice_id.partner_id'
related_sudo=False
store=True
string='Partner'
args: 'res.partner'
price_subtotal
Monetary
compute='_compute_price'
readonly=True
store=True
string='Amount'
price_subtotal_signed
Monetary
compute='_compute_price'
currency_field='company_currency_id'
help='Total amount in the currency of the company, negative for credit notes.'
readonly=True
store=True
string='Amount Signed'
price_unit
Float
digits=dp.get_precision('Product Price')
required=True
string='Unit Price'
product_id
Many2one → product.product
index=True
ondelete='restrict'
string='Product'
args: 'product.product'
quantity
Float
default=1
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity'
sequence
Integer
default=10
help='Gives the sequence of this line when displaying the invoice.'
uom_id
Many2one → product.uom
index=True
oldname='uos_id'
ondelete='set null'
string='Unit of Measure'
args: 'product.uom'
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_invoice_line_account(self, type, product, fpos, company)
date
Date
string='Accounting Date'
date_invoice
Date
default=fields.Date.context_today
required=True
string='Refund Date'
description
Char
default=_get_reason
required=True
string='Reason'
filter_refund
Selection
default='refund'
help='Refund base on this type. You can not Modify and Cancel if the invoice is already reconciled'
required=True
string='Refund Method'
args: [('refund', 'Create a draft refund'), ('cancel', 'Cancel: create refund and reconcile'), ('modify', 'Modify: create refund, reconcile and create a new draft invoice')]
refund_only
Boolean
compute='_get_refund_only'
string='Technical field to hide filter_refund in case invoice is partially paid'
compute_refund(self, mode='refund')
invoice_refund(self)
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Account'
args: 'account.account'
account_line_id
Many2one → account.account
domain=[('deprecated', '=', False)]
readonly=True
string='Account Line'
args: 'account.account'
categ_id
Many2one → product.category
readonly=True
string='Product Category'
args: 'product.category'
commercial_partner_id
Many2one → res.partner
help='Commercial Entity'
string='Partner Company'
args: 'res.partner'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country of the Partner Company'
args: 'res.country'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
currency_rate
Float
group_operator='avg'
readonly=True
string='Currency Rate'
date
Date
readonly=True
date_due
Date
readonly=True
string='Due Date'
fiscal_position_id
Many2one → account.fiscal.position
oldname='fiscal_position'
readonly=True
string='Fiscal Position'
args: 'account.fiscal.position'
journal_id
Many2one → account.journal
readonly=True
string='Journal'
args: 'account.journal'
nbr
Integer
readonly=True
string='# of Lines'
partner_bank_id
Many2one → res.partner.bank
readonly=True
string='Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
readonly=True
string='Partner'
args: 'res.partner'
payment_term_id
Many2one → account.payment.term
oldname='payment_term'
readonly=True
string='Payment Term'
args: 'account.payment.term'
price_average
Float
group_operator='avg'
readonly=True
string='Average Price'
price_total
Float
readonly=True
string='Total Without Tax'
product_id
Many2one → product.product
readonly=True
string='Product'
args: 'product.product'
product_qty
Float
readonly=True
string='Product Quantity'
residual
Float
readonly=True
string='Total Residual'
state
Selection
readonly=True
string='Invoice Status'
args: [('draft', 'Draft'), ('proforma', 'Pro-forma'), ('proforma2', 'Pro-forma'), ('open', 'Open'), ('paid', 'Done'), ('cancel', 'Cancelled')]
type
Selection
readonly=True
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Vendor Bill'), ('out_refund', 'Customer Refund'), ('in_refund', 'Vendor Refund')]
uom_name
Char
readonly=True
string='Reference Unit of Measure'
user_currency_price_average
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Average Price'
user_currency_price_total
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Total Without Tax'
user_currency_residual
Float
compute='_compute_amounts_in_user_currency'
digits=0
string='Total Residual'
user_id
Many2one → res.users
readonly=True
string='Salesperson'
args: 'res.users'
init(self, cr)
account_analytic_id
Many2one → account.analytic.account
string='Analytic account'
args: 'account.analytic.account'
account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Tax Account'
args: 'account.account'
amount
Monetary
base
Monetary
compute='_compute_base_amount'
string='Base'
company_id
Many2one → res.company
readonly=True
related='account_id.company_id'
store=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
readonly=True
related='invoice_id.currency_id'
store=True
args: 'res.currency'
invoice_id
Many2one → account.invoice
index=True
ondelete='cascade'
string='Invoice'
args: 'account.invoice'
manual
Boolean
default=True
name
Char
required=True
string='Tax Description'
sequence
Integer
help='Gives the sequence order when displaying a list of invoice tax.'
tax_id
Many2one → account.tax
ondelete='restrict'
string='Tax'
args: 'account.tax'
No public methods.
kanban_dashboard
Text
compute='_kanban_dashboard'
kanban_dashboard_graph
Text
compute='_kanban_dashboard_graph'
show_on_dashboard
Boolean
default=True
help='Whether this journal should be displayed on the dashboard or not'
string='Show journal on dashboard'
action_create_new(self)
action_open_reconcile(self)
create_bank_statement(self)
create_cash_statement(self)
get_bar_graph_datas(self)
get_journal_dashboard_datas(self)
get_line_graph_datas(self)
open_action(self)
open_action_with_context(self)
open_collect_money(self)
open_payments_action(self, payment_type)
open_spend_money(self)
open_transfer_money(self)
toggle_favorite(self)
amount
Monetary
compute='_amount_compute'
store=True
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'
store=True
string='Currency'
args: 'res.currency'
date
Date
default=fields.Date.context_today
index=True
required=True
states={'posted': [('readonly', True)]}
dummy_account_id
Many2one → account.account
related='line_ids.account_id'
store=False
string='Account'
args: 'account.account'
journal_id
Many2one → account.journal
default=_get_default_journal
required=True
states={'posted': [('readonly', True)]}
string='Journal'
args: 'account.journal'
line_ids
One2many → account.move.line
copy=True
states={'posted': [('readonly', True)]}
string='Journal Items'
args: 'account.move.line', 'move_id'
matched_percentage
Float
compute='_compute_matched_percentage'
digits=0
help='Technical field used in cash basis method'
readonly=True
store=True
args: 'Percentage Matched'
name
Char
copy=False
default='/'
required=True
string='Number'
narration
Text
string='Internal Note'
partner_id
Many2one → res.partner
compute='_compute_partner_id'
readonly=True
store=True
string='Partner'
args: 'res.partner'
rate_diff_partial_rec_id
Many2one → account.partial.reconcile
help='Technical field used to keep track of the origin of journal entries created in case of fluctuation of the currency exchange rate. This is needed when cancelling the source: it will post the inverse journal entry to cancel that part too.'
string='Exchange Rate Entry of'
args: 'account.partial.reconcile'
ref
Char
copy=False
string='Reference'
state
Selection
copy=False
default='draft'
help="All manually created new journal entries are usually in the status 'Unposted', but you can set the option to skip that status on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in 'Posted' status."
readonly=True
required=True
string='Status'
args: [('draft', 'Unposted'), ('posted', 'Posted')]
statement_line_id
Many2one → account.bank.statement.line
copy=False
index=True
readonly=True
string='Bank statement line reconciled with this entry'
args: 'account.bank.statement.line'
assert_balanced(self)
button_cancel(self)
copy(self, default=None)
create(self, vals)
name_get(self)
open_reconcile_view(self)
post(self)
reverse_moves(self, date=None, journal_id=None)
unlink(self)
write(self, vals)
account_id
Many2one → account.account
default=<expr>
domain=[('deprecated', '=', False)]
index=True
ondelete='cascade'
required=True
string='Account'
args: 'account.account'
amount_currency
Monetary
default=0.0
help='The amount expressed in an optional other currency if it is a multi-currency entry.'
amount_residual
Monetary
compute='_amount_residual'
currency_field='company_currency_id'
help='The residual amount on a journal item expressed in the company currency.'
store=True
string='Residual Amount'
amount_residual_currency
Monetary
compute='_amount_residual'
help='The residual amount on a journal item expressed in its currency (possibly not the company currency).'
store=True
string='Residual Amount in Currency'
analytic_account_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
analytic_line_ids
One2many → account.analytic.line
oldname='analytic_lines'
string='Analytic lines'
args: 'account.analytic.line', 'move_id'
balance
Monetary
compute='_store_balance'
currency_field='company_currency_id'
default=0.0
help='Technical field holding the debit - credit in order to open meaningful graph views from reports'
store=True
balance_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
default=0.0
help='Technical field holding the debit_cash_basis - credit_cash_basis in order to open meaningful graph views from reports'
store=True
blocked
Boolean
default=False
help='You can check this box to mark this journal item as a litigation with the associated partner'
string='No Follow-up'
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
store=True
args: 'res.currency'
company_id
Many2one → res.company
related='account_id.company_id'
store=True
string='Company'
args: 'res.company'
counterpart
Char
compute='_get_counterpart'
help='Compute the counter part accounts of this journal item for this journal entry. This can be needed in reports.'
args: 'Counterpart'
credit
Monetary
currency_field='company_currency_id'
default=0.0
credit_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
default=0.0
store=True
currency_id
Many2one → res.currency
default=_get_currency
help='The optional other currency if it is a multi-currency entry.'
string='Currency'
args: 'res.currency'
date
Date
copy=False
default=fields.Date.context_today
index=True
related='move_id.date'
required=True
store=True
string='Date'
date_maturity
Date
help='This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.'
index=True
required=True
string='Due date'
debit
Monetary
currency_field='company_currency_id'
default=0.0
debit_cash_basis
Monetary
compute='_compute_cash_basis'
currency_field='company_currency_id'
default=0.0
store=True
invoice_id
Many2one → account.invoice
oldname='invoice'
args: 'account.invoice'
journal_id
Many2one → account.journal
copy=False
default=_get_journal
index=True
related='move_id.journal_id'
required=True
store=True
string='Journal'
args: 'account.journal'
matched_credit_ids
One2many → account.partial.reconcile
String='Matched Credits'
help='Credit journal items that are matched with this journal item.'
args: 'account.partial.reconcile', 'debit_move_id'
matched_debit_ids
One2many → account.partial.reconcile
String='Matched Debits'
help='Debit journal items that are matched with this journal item.'
args: 'account.partial.reconcile', 'credit_move_id'
move_id
Many2one → account.move
auto_join=True
help='The move of this entry line.'
index=True
ondelete='cascade'
required=True
string='Journal Entry'
args: 'account.move'
name
Char
required=True
string='Label'
narration
Text
related='move_id.narration'
string='Internal Note'
partner_id
Many2one → res.partner
ondelete='restrict'
string='Partner'
args: 'res.partner'
payment_id
Many2one → account.payment
help='Payment that created this entry'
string='Originator Payment'
args: 'account.payment'
product_id
Many2one → product.product
string='Product'
args: 'product.product'
product_uom_id
Many2one → product.uom
string='Unit of Measure'
args: 'product.uom'
quantity
Float
digits=(16, 2)
help='The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.'
reconciled
Boolean
compute='_amount_residual'
store=True
ref
Char
copy=False
index=True
related='move_id.ref'
store=True
string='Partner Reference'
statement_id
Many2one → account.bank.statement
copy=False
help='The bank statement used for bank reconciliation'
index=True
string='Statement'
args: 'account.bank.statement'
tax_ids
Many2many → account.tax
domain=['|', ('active', '=', False), ('active', '=', True)]
string='Taxes'
args: 'account.tax'
tax_line_id
Many2one → account.tax
ondelete='restrict'
string='Originator tax'
args: 'account.tax'
user_type_id
Many2one → account.account.type
index=True
oldname='user_type'
related='account_id.user_type_id'
store=True
args: 'account.account.type'
auto_reconcile_lines(self)
compute_amount_fields(self, amount, src_currency, company_currency, invoice_currency=False)
compute_full_after_batch_reconcile(self)
create(self, vals, apply_taxes=True)
create_analytic_lines(self)
domain_move_lines_for_reconciliation(self, excluded_ids=None, str=False)
get_data_for_manual_reconciliation(self, res_type, res_ids=None, account_type=None)
get_data_for_manual_reconciliation_widget(self, partner_ids, account_ids)
get_move_lines_for_manual_reconciliation(self, account_id, partner_id=False, excluded_ids=None, str=False, offset=0, limit=None, target_currency_id=False)
get_reconciliation_proposition(self, account_id, partner_id=False)
init(self, cr)
name_get(self)
open_reconcile_view(self)
prepare_move_lines_for_reconciliation_widget(self, cr, uid, line_ids, target_currency_id=False, context=None)
prepare_move_lines_for_reconciliation_widget(self, target_currency=False, target_date=False)
process_reconciliation(self, new_mv_line_dicts)
process_reconciliations(self, cr, uid, data, context=None)
reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False)
remove_move_reconcile(self)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
credit
Float
digits=0
readonly=True
string='Credit amount'
debit
Float
digits=0
readonly=True
string='Debit amount'
trans_nbr
Integer
readonly=True
string='# of Transaction'
writeoff
Float
digits=0
readonly=True
string='Write-Off amount'
default_get(self, fields)
trans_rec_addendum_writeoff(self)
trans_rec_get(self)
trans_rec_reconcile_full(self)
trans_rec_reconcile_partial_reconcile(self)
analytic_id
Many2one → account.analytic.account
domain=[('account_type', '=', 'normal')]
string='Analytic Account'
args: 'account.analytic.account'
comment
Char
default='Write-off'
required=True
date_p
Date
default=fields.Date.context_today
string='Date'
journal_id
Many2one → account.journal
required=True
string='Write-Off Journal'
args: 'account.journal'
writeoff_acc_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Write-Off account'
args: 'account.account'
trans_rec_addendum(self)
trans_rec_reconcile(self)
trans_rec_reconcile_partial(self)
date
Date
default=fields.Date.context_today
required=True
string='Reversal date'
journal_id
Many2one → account.journal
help='If empty, uses the journal of the journal entry to be reversed.'
string='Use Specific Journal'
args: 'account.journal'
reverse_moves(self)
amount
Monetary
currency_field='company_currency_id'
help='Amount concerned by this matching. Assumed to be always positive'
amount_currency
Monetary
string='Amount in Currency'
company_currency_id
Many2one → res.currency
help='Utility field to express amount currency'
readonly=True
related='company_id.currency_id'
args: 'res.currency'
company_id
Many2one → res.company
related='debit_move_id.company_id'
store=True
string='Currency'
args: 'res.company'
credit_move_id
Many2one → account.move.line
index=True
required=True
args: 'account.move.line'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
debit_move_id
Many2one → account.move.line
index=True
required=True
args: 'account.move.line'
create(self, vals)
create_exchange_rate_entry(self, aml_to_fix, amount_diff, diff_in_currency, currency, move_date)
unlink(self)
company_id
Many2one
store=True
destination_account_id
Many2one → account.account
compute='_compute_destination_account_id'
readonly=True
args: 'account.account'
destination_journal_id
Many2one → account.journal
domain=[('type', 'in', ('bank', 'cash'))]
string='Transfer To'
args: 'account.journal'
has_invoices
Boolean
compute='_get_has_invoices'
help='Technical field used for usability purposes'
invoice_ids
Many2many → account.invoice
copy=False
readonly=True
string='Invoices'
args: 'account.invoice', 'account_invoice_payment_rel', 'payment_id', 'invoice_id'
move_line_ids
One2many → account.move.line
copy=False
ondelete='restrict'
readonly=True
args: 'account.move.line', 'payment_id'
name
Char
copy=False
default='Draft Payment'
readonly=True
payment_difference
Monetary
compute='_compute_payment_difference'
readonly=True
payment_difference_handling
Selection
copy=False
default='open'
string='Payment Difference'
args: [('open', 'Keep open'), ('reconcile', 'Mark invoice as fully paid')]
payment_reference
Char
copy=False
help='Reference of the document used to issue this payment. Eg. check number, file name, etc.'
readonly=True
payment_type
Selection
selection_add=[('transfer', 'Internal Transfer')]
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
args: [('draft', 'Draft'), ('posted', 'Posted'), ('sent', 'Sent'), ('reconciled', 'Reconciled')]
writeoff_account_id
Many2one → account.account
copy=False
domain=[('deprecated', '=', False)]
string='Difference Account'
args: 'account.account'
button_dummy(self)
button_invoices(self)
button_journal_entries(self)
cancel(self)
default_get(self, fields)
post(self)
unlink(self)
unreconcile(self)
code
Char
required=True
name
Char
required=True
payment_type
Selection
required=True
args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
No public methods.
active
Boolean
default=True
help='If the active field is set to False, it will allow you to hide the payment term without removing it.'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
line_ids
One2many → account.payment.term.line
copy=True
default=_default_line_ids
string='Terms'
args: 'account.payment.term.line', 'payment_id'
name
Char
required=True
string='Payment Term'
translate=True
note
Text
string='Description on the Invoice'
translate=True
compute(self, value, date_ref=False)
unlink(self)
days
Integer
default=0
required=True
string='Number of Days'
option
Selection
default='day_after_invoice_date'
required=True
string='Options'
args: [('day_after_invoice_date', 'Day(s) after the invoice date'), ('fix_day_following_month', 'Day(s) after the end of the invoice month (Net EOM)'), ('last_day_following_month', 'Last day of following month'), ('last_day_current_month', 'Last day of current month')]
payment_id
Many2one → account.payment.term
index=True
ondelete='cascade'
required=True
string='Payment Term'
args: 'account.payment.term'
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of payment term lines.'
value
Selection
default='balance'
help='Select here the kind of valuation related to this payment term line.'
required=True
string='Type'
args: [('balance', 'Balance'), ('percent', 'Percent'), ('fixed', 'Fixed Amount')]
value_amount
Float
digits=dp.get_precision('Payment Term')
help='For percent enter a ratio between 0-100.'
string='Value'
No public methods.
No new fields.
Public methods (3)create_payment(self)
default_get(self, fields)
get_payment_vals(self)
initial_balance
Boolean
help="If you selected date, this field allow you to add a row to display the amount of debit/credit/balance that precedes the filter you've set."
string='Include Initial Balances'
journal_ids
Many2many → account.journal
required=True
string='Journals'
args: 'account.journal', 'account_report_general_ledger_journal_rel', 'account_id', 'journal_id'
sortby
Selection
default='sort_date'
required=True
string='Sort by'
args: [('sort_date', 'Date'), ('sort_journal_partner', 'Journal & Partner')]
No public methods.
account_id
Many2one → account.account.template
help='Account that will be set on invoice tax lines for invoices. Leave empty to use the expense account.'
oldname='account_collected_id'
ondelete='restrict'
string='Tax Account'
args: 'account.account.template'
active
Boolean
default=True
help='Set active to false to hide the tax without removing it.'
amount
Float
digits=(16, 4)
required=True
amount_type
Selection
default='percent'
required=True
selection=[('group', 'Group of Taxes'), ('fixed', 'Fixed'), ('percent', 'Percentage of Price'), ('division', 'Percentage of Price Tax Included')]
string='Tax Computation'
analytic
Boolean
help='If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)'
string='Analytic Cost'
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
children_tax_ids
Many2many → account.tax.template
string='Children Taxes'
args: 'account.tax.template', 'account_tax_template_filiation_rel', 'parent_tax', 'child_tax'
company_id
Many2one → res.company
default=<expr>
required=True
string='Company'
args: 'res.company'
description
Char
string='Display on Invoices'
include_base_amount
Boolean
default=False
help='If set, taxes which are computed after this one will be computed based on the price tax included.'
string='Affect Subsequent Taxes'
name
Char
required=True
string='Tax Name'
price_include
Boolean
default=False
help='Check this if the price you use on the product and invoices includes this tax.'
string='Included in Price'
refund_account_id
Many2one → account.account.template
help='Account that will be set on invoice tax lines for refunds. Leave empty to use the expense account.'
oldname='account_paid_id'
ondelete='restrict'
string='Tax Account on Refunds'
args: 'account.account.template'
sequence
Integer
default=1
help='The sequence field is used to define order in which the tax lines are applied.'
required=True
tag_ids
Many2many → account.account.tag
help='Optional tags you may want to assign for custom reporting'
string='Account tag'
args: 'account.account.tag'
type_tax_use
Selection
default='sale'
help="Determines where the tax is selectable. Note : 'None' means a tax can't be used by itself, however it can still be used in a group."
required=True
string='Tax Scope'
args: [('sale', 'Sales'), ('purchase', 'Purchases'), ('none', 'None')]
name_get(self)
No new fields.
Public methods (1)trans_unrec(self)
account_report_id
Many2one → account.financial.report
default=_get_account_report
required=True
string='Account Reports'
args: 'account.financial.report'
date_from_cmp
Date
string='Start Date'
date_to_cmp
Date
string='End Date'
debit_credit
Boolean
help='This option allows you to get more details about the way your balances are computed. Because it is space consuming, we do not allow to use it while doing a comparison.'
string='Display Debit/Credit Columns'
enable_filter
Boolean
string='Enable Comparison'
filter_cmp
Selection
default='filter_no'
required=True
string='Filter by'
args: [('filter_no', 'No Filters'), ('filter_date', 'Date')]
label_filter
Char
help='This label will be displayed on report to show the balance computed for the given comparison filter.'
string='Column Label'
check_report(self)
No new fields.
Public methods (1)send_mail(self, auto_commit=False)
property_account_expense_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='This account will be used for invoices to value expenses.'
oldname='property_account_expense_categ'
string='Expense Account'
args: 'account.account'
property_account_income_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='This account will be used for invoices to value sales.'
oldname='property_account_income_categ'
string='Income Account'
args: 'account.account'
No public methods.
No new fields.
Public methods (0)No public methods.
property_account_expense_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='This account will be used for invoices instead of the default one to value expenses for the current product.'
oldname='property_account_expense'
string='Expense Account'
args: 'account.account'
property_account_income_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='This account will be used for invoices instead of the default one to value sales for the current product.'
oldname='property_account_income'
string='Income Account'
args: 'account.account'
supplier_taxes_id
Many2many → account.tax
domain=[('type_tax_use', '=', 'purchase')]
string='Vendor Taxes'
args: 'account.tax', 'product_supplier_taxes_rel', 'prod_id', 'tax_id'
taxes_id
Many2many → account.tax
domain=[('type_tax_use', '=', 'sale')]
string='Customer Taxes'
args: 'account.tax', 'product_taxes_rel', 'prod_id', 'tax_id'
get_product_accounts(self, fiscal_pos=None)
write(self, vals)
No new fields.
Public methods (1)render_html(self, data)
No new fields.
Public methods (2)get_account_lines(self, data)
render_html(self, data)
No new fields.
Public methods (1)render_html(self, data)
No new fields.
Public methods (1)render_html(self, data)
No new fields.
Public methods (1)render_html(self, data)
accounts_code_digits
Integer
string='Number of digits in an account code'
anglo_saxon_accounting
Boolean
string='Use anglo-saxon accounting'
bank_account_code_prefix
Char
oldname='bank_account_code_char'
string='Prefix of the bank accounts'
bank_journal_ids
One2many → account.journal
domain=[('type', '=', 'bank')]
string='Bank Journals'
args: 'account.journal', 'company_id'
cash_account_code_prefix
Char
string='Prefix of the cash accounts'
chart_template_id
Many2one → account.chart.template
help='The chart template for the company (if any)'
args: 'account.chart.template'
currency_exchange_journal_id
Many2one → account.journal
domain=[('type', '=', 'general')]
string='Exchange Gain or Loss Journal'
args: 'account.journal'
expects_chart_of_accounts
Boolean
default=True
string='Expects a Chart of Accounts'
expense_currency_exchange_account_id
Many2one → account.account
domain="[('internal_type', '=', 'other'), ('deprecated', '=', False), ('company_id', '=', id)]"
related='currency_exchange_journal_id.default_debit_account_id'
string='Loss Exchange Rate Account'
args: 'account.account'
fiscalyear_last_day
Integer
default=31
required=True
fiscalyear_last_month
Selection
default=12
required=True
args: [(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')]
fiscalyear_lock_date
Date
help='No users, including Advisers, can edit accounts prior to and inclusive of this date. Use it for fiscal year locking for example.'
string='Lock Date'
income_currency_exchange_account_id
Many2one → account.account
domain="[('internal_type', '=', 'other'), ('deprecated', '=', False), ('company_id', '=', id)]"
related='currency_exchange_journal_id.default_credit_account_id'
string='Gain Exchange Rate Account'
args: 'account.account'
overdue_msg
Text
default='Dear Sir/Madam,\n\nOur records indicate that some payments on your account are still due. Please find details below.\nIf the amount has already been paid, please disregard this notice. Otherwise, please forward us the total amount stated below.\nIf you have any queries regarding your account, Please contact us.\n\nThank you in advance for your cooperation.\nBest Regards,'
string='Overdue Payments Message'
translate=True
paypal_account
Char
help='Paypal username (usually email) for receiving online payments.'
size=128
string='Paypal Account'
period_lock_date
Date
help="Only users with the 'Adviser' role can edit accounts prior to and inclusive of this date. Use it for period locking inside an open fiscal year, for example."
string='Lock Date for Non-Advisers'
property_stock_account_input_categ_id
Many2one → account.account
oldname='property_stock_account_input_categ'
string='Input Account for Stock Valuation'
args: 'account.account'
property_stock_account_output_categ_id
Many2one → account.account
oldname='property_stock_account_output_categ'
string='Output Account for Stock Valuation'
args: 'account.account'
property_stock_valuation_account_id
Many2one → account.account
string='Account Template for Stock Valuation'
args: 'account.account'
tax_calculation_rounding_method
Selection
default='round_per_line'
help="If you select 'Round per Line' : for each tax, the tax amount will first be computed and rounded for each PO/SO/invoice line and then these rounded amounts will be summed, leading to the total amount for that tax. If you select 'Round Globally': for each tax, the tax amount will be computed for each PO/SO/invoice line, then these amounts will be summed and eventually this total tax amount will be rounded. If you sell with tax included, you should choose 'Round per line' because you certainly want the sum of your tax-included line subtotals to be equal to the total amount with taxes."
string='Tax Calculation Rounding Method'
args: [('round_per_line', 'Round per Line'), ('round_globally', 'Round Globally')]
transfer_account_id
Many2one → account.account
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
string='Inter-Banks Transfer Account'
args: 'account.account'
compute_fiscalyear_dates(self, date)
get_new_account_code(self, current_code, old_prefix, new_prefix, digits)
reflect_code_digits_change(self, digits)
reflect_code_prefix_change(self, old_code, new_code, digits)
write(self, values)
bank_account_count
Integer
compute='_compute_bank_count'
string='Bank'
contract_ids
One2many → account.analytic.account
readonly=True
string='Contracts'
args: 'account.analytic.account', 'partner_id'
contracts_count
Integer
compute='_journal_item_count'
string='Contracts'
type='integer'
credit
Monetary
compute='_credit_debit_get'
help='Total amount this customer owes you.'
search=_credit_search
string='Total Receivable'
currency_id
Many2one → res.currency
compute='_get_company_currency'
help='Utility field to express amount currency'
readonly=True
string='Currency'
args: 'res.currency'
debit
Monetary
compute='_credit_debit_get'
help='Total amount you have to pay to this vendor.'
search=_debit_search
string='Total Payable'
debit_limit
Monetary
has_unreconciled_entries
Boolean
compute='_compute_has_unreconciled_entries'
help='The partner has at least one unreconciled debit and credit since last time the invoices & payments matching was performed.'
invoice_ids
One2many → account.invoice
copy=False
readonly=True
string='Invoices'
args: 'account.invoice', 'partner_id'
issued_total
Monetary
compute='_compute_issued_total'
string='Journal Items'
journal_item_count
Integer
compute='_journal_item_count'
string='Journal Items'
type='integer'
last_time_entries_checked
Datetime
copy=False
help='Last time the invoices & payments matching was performed for this partner. It is set either if there\'s not at least an unreconciled debit and an unreconciled credit or if you click the "Done" button.'
oldname='last_reconciliation_date'
readonly=True
string='Latest Invoices & Payments Matching Date'
property_account_payable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'payable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the payable account for the current partner'
oldname='property_account_payable'
required=True
string='Account Payable'
args: 'account.account'
property_account_position_id
Many2one → account.fiscal.position
company_dependent=True
help='The fiscal position will determine taxes and accounts used for the partner.'
oldname='property_account_position'
string='Fiscal Position'
args: 'account.fiscal.position'
property_account_receivable_id
Many2one → account.account
company_dependent=True
domain="[('internal_type', '=', 'receivable'), ('deprecated', '=', False)]"
help='This account will be used instead of the default one as the receivable account for the current partner'
oldname='property_account_receivable'
required=True
string='Account Receivable'
args: 'account.account'
property_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for sale orders and customer invoices'
oldname='property_payment_term'
string='Customer Payment Term'
args: 'account.payment.term'
property_supplier_payment_term_id
Many2one → account.payment.term
company_dependent=True
help='This payment term will be used instead of the default one for purchase orders and vendor bills'
oldname='property_supplier_payment_term'
string='Vendor Payment Term'
args: 'account.payment.term'
ref_company_ids
One2many → res.company
oldname='ref_companies'
string='Companies that refers to partner'
args: 'res.company', 'partner_id'
total_invoiced
Monetary
compute='_invoice_total'
groups='account.group_account_invoice'
string='Total Invoiced'
get_followup_lines_domain(self, date, overdue_only=False, only_unblocked=False)
mark_as_reconciled(self)
No new fields.
Public methods (1)validate_move(self)
No new fields.
Public methods (0)No public methods.
bank_account_code_prefix
Char
oldname='bank_account_code_char'
args: 'Bank Accounts Prefix'
bank_account_ids
One2many → account.bank.accounts.wizard
oldname='bank_accounts_id'
required=True
string='Cash and Banks'
args: 'account.bank.accounts.wizard', 'bank_account_id'
cash_account_code_prefix
Char
chart_template_id
Many2one → account.chart.template
required=True
string='Chart Template'
args: 'account.chart.template'
code_digits
Integer
help='No. of Digits to use for account code'
required=True
string='# of Digits'
company_id
Many2one → res.company
required=True
string='Company'
args: 'res.company'
complete_tax_set
Boolean
help='This boolean helps you to choose if you want to propose to the user to encode the sales and purchase rates or use the usual m2o fields. This last choice assumes that the set of tax defined for the chosen template is complete'
args: 'Complete Set of Taxes'
currency_id
Many2one → res.currency
help="Currency as per company's country."
required=True
string='Currency'
args: 'res.currency'
only_one_chart_template
Boolean
string='Only One Chart Template Available'
purchase_tax_id
Many2one → account.tax.template
oldname='purchase_tax'
string='Default Purchase Tax'
args: 'account.tax.template'
purchase_tax_rate
Float
string='Purchase Tax(%)'
sale_tax_id
Many2one → account.tax.template
oldname='sale_tax'
string='Default Sales Tax'
args: 'account.tax.template'
sale_tax_rate
Float
string='Sales Tax(%)'
transfer_account_id
Many2one → account.account.template
domain=<expr>
help='Intermediary account used when moving money from a liquidity account to another'
required=True
string='Transfer Account'
args: 'account.account.template'
use_anglo_saxon
Boolean
related='chart_template_id.use_anglo_saxon'
string='Use Anglo-Saxon Accounting'
default_get(self, fields)
execute(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
onchange_chart_template_id(self)
onchange_tax_rate(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/8.0/account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Accounting & Finance |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Atul Patel (OpenERP), Randhir Mayatra (OpenERP), Odoo Translation Bot, Turkesh Patel (Open ERP), Numerigraphe - Lionel Sausin, Christophe Matthieu, Harry (OpenERP), Antonin Bourguignon, ajay javiya (OpenERP), Martin Trigaux, Ajay Chauhan (OpenERP), Foram Katharotiya (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Tejas Tank, Thibault Delavallée, Vo Minh Thu, Josse Colpaert, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Denis Ledoux, Alexis de Lattre, Fabien Meghazi, niv-openerp, ggh-openerp, Christophe Simonis, Xavier Morel, Goffin Simon, Bhumi Thakkar (Open ERP), Cedric Snauwaert, Simon Lejeune, Frédéric van der Essen, Vishmita, Nicolas Martinelli, Chirag Dodiya (OpenERP Trainee), Kersten Jeremy, Amit Bhavsar (Open ERP), Paramjit Singh Sahota, Nicolas Lempereur, Anand Patel (OpenERP), Julien Legros, Paulius Sladkevičius, Nimesh Contractor (OpenERP), Richard Mathot, qdp-odoo, Niels Huylebroeck, Juan Rial, Géry Debongnie, Aaron Bohy, bth-openerp, Vishmita Jadeja (openerp), Bharat R. Devnani (OpenERP), Fekete Mihai, Richard Mathot (OpenERP), ged-odoo, Jaydeep Barot (OpenERP Trainee), openerp-sle, Jeremy Kersten, Gery Debongnie, Randhir Mayatra rma-openerp, Amit Vora (OpenERP Trainee), sgo@tinyerp.com, Lucas Perais (lpe), Darshan Kalola (OpenERP), Darshan Kalola, Jitendra Prajapati (OpenERP), Yogesh Parekh (OpenERP), Erwin van der Ploeg, ssh-odoo, Sunil Sharma (OpenERP), Rakesh Sindhav (OpenERP), Jaydeep Barot, Sanjay Gohel (OpenERP), Jignesh Rathod (OpenERP), Commandant Custo, Denis Michiels, Arthur Maniet, richierichrawr, David Arnold |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/billing |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:45:39 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web_kanban - web - product - decimal_precision - report - analytic - board - edi - email_template |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Accounting and Financial Management.
====================================
Financial and accounting module that covers:
--------------------------------------------
* General Accounting
* Cost/Analytic accounting
* Third party accounting
* Taxes management
* Budgets
* Customer and Supplier Invoices
* Bank statements
* Reconciliation process by partner
Creates a dashboard for accountants that includes:
--------------------------------------------------
* List of Customer Invoices to Approve
* Company Analysis
* Graph of Treasury
Processes like maintaining general ledgers are done through the defined Financial Journals (entry move line or grouping is maintained through a journal)
for a particular financial year and for preparation of vouchers there is a module named account_voucher.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account.report_overdue_document |
account.report_overdue_document | ir.ui.view | qweb | New |
account_account_graph |
account.account.graph | account.account | graph | New |
account_aged_balance_view |
Aged Partner Balance | account.aged.trial.balance | form | New |
account_analytic_balance_view |
Account Analytic Balance | account.analytic.balance | form | New |
account_analytic_chart_view |
Chart of Analytic Accounts | account.analytic.chart | form | New |
account_analytic_cost_ledger_journal_view |
Account Analytic Cost Ledger Journal | account.analytic.cost.ledger.journal.report | form | New |
account_analytic_cost_view |
Account Analytic Check | account.analytic.cost.ledger | form | New |
account_analytic_invert_balance_view |
Account Analytic Inverted Balance | account.analytic.inverted.balance | form | New |
account_analytic_journal_view |
Account Analytic Journal | account.analytic.journal.report | form | New |
account_analytic_line_extended_form |
account.analytic.line.extended_form | account.analytic.line | form | New |
account_automatic_reconcile_view |
Account Automatic Reconcile | account.automatic.reconcile | form | New |
account_automatic_reconcile_view1 |
Automatic reconcile unreconcile | account.automatic.reconcile | form | New |
account_cash_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_common_report_view |
Common Report | account.common.report | form | New |
account_invoice_cancel_view |
account.invoice.cancel.form | account.invoice.cancel | form | New |
account_invoice_confirm_view |
account.invoice.confirm.form | account.invoice.confirm | form | New |
account_move_line_graph |
account.move.line.graph | account.move.line | graph | New |
account_move_line_reconcile_writeoff |
account.move.line.reconcile.writeoff.form | account.move.line.reconcile.writeoff | form | New |
account_move_line_select_button_view |
Open Move Line Button | account.move.line.select | form | New |
account_partner_balance_view |
Partner Balance | account.partner.balance | data | Inherits account_common_report_view |
account_partner_ledger_view |
Partner Ledger | account.partner.ledger | data | Inherits account_common_report_view |
account_partner_reconcile_view |
Partner Reconcilation Process | account.partner.reconcile.process | form | New |
account_report_balance_view |
Trial Balance | account.balance.report | data | Inherits account_common_report_view |
account_report_general_journal_view |
Account General Journal | account.general.journal | data | Inherits account_common_report_view |
account_report_general_ledger_view |
General Ledger | account.report.general.ledger | data | Inherits account_common_report_view |
account_report_general_ledger_view_inherit |
General Ledger | account.report.general.ledger | field | Inherits account_report_general_ledger_view |
account_report_print_journal |
Account Print Journal | account.print.journal | data | Inherits account_common_report_view |
account_unreconcile_reconcile_view |
Unreconcile Entries | account.unreconcile.reconcile | form | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
accounting_report_view |
Accounting Report | accounting.report | xpath | Inherits account.account_common_report_view |
assets_backend |
account assets | ir.ui.view | qweb | Inherits web.assets_backend |
board_view_created_invoice |
report.invoice.created.tree | report.invoice.created | tree | New |
cash_box_in_form |
cash_box_in | cash.box.in | form | New |
cash_box_out_form |
cash_box_out | cash.box.out | form | New |
invoice_form |
account.invoice.form | account.invoice | form | New |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | form | New |
invoice_tree |
account.invoice.tree | account.invoice | tree | New |
open_journal_button_view |
Open Journal Button | account.journal.select | form | New |
partner_view_button_contracts_count |
partner.view.button.contracts_count | res.partner | xpath | Inherits base.view_partner_form |
partner_view_button_journal_item_count |
partner.view.button.journal_item_count | res.partner | xpath | Inherits base.view_partner_form |
partner_view_buttons |
partner.view.buttons | res.partner | xpath | Inherits base.view_partner_form |
product_template_form_view |
product.template.form.inherit | product.template | page | Inherits product.product_template_form_view |
report_agedpartnerbalance |
report_agedpartnerbalance | ir.ui.view | qweb | New |
report_analyticbalance |
report_analyticbalance | ir.ui.view | qweb | New |
report_analyticcostledger |
report_analyticcostledger | ir.ui.view | qweb | New |
report_analyticcostledgerquantity |
report_analyticcostledgerquantity | ir.ui.view | qweb | New |
report_analyticjournal |
report_analyticjournal | ir.ui.view | qweb | New |
report_centraljournal |
report_centraljournal | ir.ui.view | qweb | New |
report_financial |
report_financial | ir.ui.view | qweb | New |
report_generaljournal |
report_generaljournal | ir.ui.view | qweb | New |
report_generalledger |
report_generalledger | ir.ui.view | qweb | New |
report_invertedanalyticbalance |
report_invertedanalyticbalance | ir.ui.view | qweb | New |
report_invoice |
report_invoice | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | New |
report_journal |
report_journal | ir.ui.view | qweb | New |
report_overdue |
report_overdue | ir.ui.view | qweb | New |
report_partnerbalance |
report_partnerbalance | ir.ui.view | qweb | New |
report_partnerledger |
report_partnerledger | ir.ui.view | qweb | New |
report_partnerledgerother |
report_partnerledgerother | ir.ui.view | qweb | New |
report_salepurchasejournal |
report_salepurchasejournal | ir.ui.view | qweb | New |
report_trialbalance |
report_trialbalance | ir.ui.view | qweb | New |
report_vat |
report_vat | ir.ui.view | qweb | New |
sequence_inherit_form |
ir.sequence.form | ir.sequence | page | Inherits base.sequence_view |
validate_account_move_line_view |
Post Journal Entries | validate.account.move.lines | form | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_addtmpl_wizard_form |
Create Account | account.addtmpl.wizard | form | New |
view_account_analytic_account_list |
account.analytic.account.list | account.analytic.account | tree | New |
view_account_analytic_account_search |
account.analytic.account.search | account.analytic.account | search | New |
view_account_analytic_account_tree |
account.analytic.account.tree | account.analytic.account | tree | New |
view_account_analytic_entries_search |
account.analytic.entries.graph | analytic.entries.report | graph | New |
view_account_analytic_journal_form |
account.analytic.journal.form | account.analytic.journal | form | New |
view_account_analytic_journal_tree |
account.analytic.journal.tree | account.analytic.journal | tree | New |
view_account_analytic_line_filter |
account.analytic.line.select | account.analytic.line | search | New |
view_account_analytic_line_form |
account.analytic.line.form | account.analytic.line | form | New |
view_account_analytic_line_tree |
account.analytic.line.tree | account.analytic.line | tree | New |
view_account_bank_statement_filter |
account.cash.statement.select | account.bank.statement | search | New |
view_account_central_journal |
Account central Journal | account.central.journal | field | Inherits account_common_report_view |
view_account_change_currency |
Change Currency | account.change.currency | form | New |
view_account_chart |
account.chart.form | account.chart | form | New |
view_account_chart_template_form |
account.chart.template.form | account.chart.template | form | New |
view_account_chart_template_seacrh |
account.chart.template.search | account.chart.template | search | New |
view_account_chart_template_tree |
account.chart.template.tree | account.chart.template | tree | New |
view_account_config_settings |
account settings | account.config.settings | form | New |
view_account_configuration_installer |
account.installer.form | account.installer | form | Inherits base.res_config_installer |
view_account_entries_report_graph |
account.entries.report.graph | account.entries.report | graph | New |
view_account_entries_report_search |
account.entries.report.search | account.entries.report | search | New |
view_account_entries_report_tree |
account.entries.report.tree | account.entries.report | tree | New |
view_account_financial_report_form |
account.financial.report.form | account.financial.report | form | New |
view_account_financial_report_search |
account.financial.report.search | account.financial.report | search | New |
view_account_financial_report_tree |
account.financial.report.tree | account.financial.report | tree | New |
view_account_fiscalyear_close |
account.fiscalyear.close.form | account.fiscalyear.close | form | New |
view_account_fiscalyear_close_state |
account.fiscalyear.close.state.form | account.fiscalyear.close.state | form | New |
view_account_fiscalyear_form |
account.fiscalyear.form | account.fiscalyear | form | New |
view_account_fiscalyear_search |
account.fiscalyear.search | account.fiscalyear | search | New |
view_account_fiscalyear_tree |
account.fiscalyear.tree | account.fiscalyear | tree | New |
view_account_form |
account.account.form | account.account | form | New |
view_account_gain_loss_tree |
Unrealized Gain or Loss | account.account | tree | New |
view_account_invoice_filter |
account.invoice.select | account.invoice | search | New |
view_account_invoice_refund |
account.invoice.refund.form | account.invoice.refund | form | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_journal_1 |
account.journal.form.1 | account.journal | field | Inherits account.view_account_journal_form |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_bank_reconcile |
account.move.bank.reconcile.form | account.move.bank.reconcile | form | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_line_filter |
Journal Items | account.move.line | search | New |
view_account_move_line_reconcile_full |
account.move.line.reconcile.full.form | account.move.line.reconcile | form | New |
view_account_move_line_reconcile_select |
account.move.line.reconcile.select.form | account.move.line.reconcile.select | form | New |
view_account_move_line_unreconcile_select |
account.move.line.unreconcile.select.form | account.move.line.unreconcile.select | form | New |
view_account_move_tree |
account.move.tree | account.move | tree | New |
view_account_open_closed_fiscalyear |
account.open.closed.fiscalyear.form | account.open.closed.fiscalyear | form | New |
view_account_period_close |
account.period.close.form | account.period.close | form | New |
view_account_period_form |
account.period.form | account.period | form | New |
view_account_period_search |
account.period.search | account.period | search | New |
view_account_period_tree |
account.period.tree | account.period | tree | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_report_tree_hierarchy |
account.report.hierarchy | account.financial.report | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_state_open |
Account State Open | account.state.open | form | New |
view_account_statement_from_invoice_lines |
account.statement.from.invoice.lines.form | account.statement.from.invoice.lines | form | New |
view_account_statement_operation_template_form |
account.statement.operation.template.form | account.statement.operation.template | form | New |
view_account_statement_operation_template_search |
account.statement.operation.template.search | account.statement.operation.template | search | New |
view_account_statement_operation_template_tree |
account.statement.operation.template.tree | account.statement.operation.template | tree | New |
view_account_subscription_generate |
account.subscription.generate.form | account.subscription.generate | form | New |
view_account_tax_chart |
account.tax.chart.form | account.tax.chart | form | New |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_template_form |
account.account.template.form | account.account.template | form | New |
view_account_template_search |
account.account.template.search | account.account.template | search | New |
view_account_template_tree |
account.account.template.tree | account.account.template | tree | New |
view_account_treasury_report_graph |
account.treasury.report.graph | account.treasury.report | graph | New |
view_account_treasury_report_search |
account.treasury.report.search | account.treasury.report | search | New |
view_account_treasury_report_tree |
account.treasury.report.tree | account.treasury.report | tree | New |
view_account_tree |
account.account.tree | account.account | tree | New |
view_account_type_form |
account.account.type.form | account.account.type | form | New |
view_account_type_search |
account.account.type.search | account.account.type | search | New |
view_account_type_tree |
account.account.type.tree | account.account.type | tree | New |
view_account_use_model |
account.use.model.form | account.use.model | form | New |
view_account_use_model_create_entry |
account.use.model.create.entry.form | account.use.model | form | New |
view_account_vat_declaration |
Account Tax Declaration | account.vat.declaration | form | New |
view_aged_recv_graph |
report.aged.receivable.graph | report.aged.receivable | graph | New |
view_aged_recv_tree |
report.aged.receivable.tree | report.aged.receivable | tree | New |
view_analytic_entries_report_search |
analytic.entries.report.search | analytic.entries.report | search | New |
view_analytic_journal_search |
account.analytic.journal.search | account.analytic.journal | search | New |
view_bank_statement_form |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_form2 |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_cash_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | data | Inherits product.product_category_form_view |
view_company_analysis_tree |
account.company.analysis.tree | account.entries.report | tree | New |
view_company_inherit_form |
res.company.form.inherit | res.company | notebook | Inherits base.view_company_form |
view_crm_case_user_form |
report.account.receivable.form | report.account.receivable | form | New |
view_crm_case_user_graph |
report.account.receivable.graph | report.account.receivable | graph | New |
view_crm_case_user_tree |
report.account.receivable.tree | report.account.receivable | tree | New |
view_invoice_graph |
account.invoice.graph | account.invoice | graph | New |
view_invoice_line_calendar |
account.invoice.calendar | account.invoice | calendar | New |
view_invoice_line_form |
account.invoice.line.form | account.invoice.line | form | New |
view_invoice_line_tree |
account.invoice.line.tree | account.invoice.line | tree | New |
view_invoice_tax_form |
account.invoice.tax.form | account.invoice.tax | form | New |
view_invoice_tax_tree |
account.invoice.tax.tree | account.invoice.tax | tree | New |
view_journal_period_tree |
account.journal.period.tree | account.journal.period | tree | New |
view_model_form |
account.model.form | account.model | form | New |
view_model_line_form |
account.model.line.form | account.model.line | form | New |
view_model_line_tree |
account.model.line.tree | account.model.line | tree | New |
view_model_search |
account.model.search | account.model | search | New |
view_model_tree |
account.model.tree | account.model | tree | New |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_form2 |
account.move.line.form2 | account.move.line | form | New |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_line_tree_reconcile |
account.move.line | tree_account_reconciliation | New | |
view_move_reconcile_form |
account.move.reconcile.form | account.move.reconcile | form | New |
view_move_tree |
account.move.tree | account.move | tree | New |
view_partner_bank_form_inherit |
Partner Bank Accounts - Journal | res.partner.bank | group | Inherits base.view_partner_bank_form |
view_partner_bank_tree_add_currency |
Partner Bank Accounts - Add currency on tree | res.partner.bank | field | Inherits base.view_partner_bank_tree |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | page | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_line_form |
account.payment.term.line.form | account.payment.term.line | form | New |
view_payment_term_line_tree |
account.payment.term.line.tree | account.payment.term.line | tree | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_project_account_analytic_line_form |
project.account.analytic.line.form | project.account.analytic.line | form | New |
view_report_account_sales_graph |
report.account.sales.graph | report.account.sales | graph | New |
view_report_account_sales_search |
report.account.sales.search | report.account.sales | search | New |
view_report_account_sales_tree |
report.account.sales.tree | report.account.sales | tree | New |
view_report_account_type_sales_form |
report.account_type.sales.form | report.account_type.sales | tree | New |
view_report_account_type_sales_graph |
report.account_type.sales.graph | report.account_type.sales | graph | New |
view_report_account_type_sales_search |
report.account_type.sales.search | report.account_type.sales | search | New |
view_report_account_type_sales_tree |
report.account_type.sales.tree | report.account_type.sales | tree | New |
view_subscription_form |
account.subscription.form | account.subscription | form | New |
view_subscription_line_form |
account.subscription.line.form | account.subscription.line | form | New |
view_subscription_line_form_complete |
account.subscription.line.form | account.subscription.line | form | New |
view_subscription_line_tree |
account.subscription.line.tree | account.subscription.line | tree | New |
view_subscription_search |
account.subscription.search | account.subscription | search | New |
view_subscription_tree |
account.subscription.tree | account.subscription | tree | New |
view_tax_code_form |
account.tax.code.form | account.tax.code | form | New |
view_tax_code_search |
account.tax.code.search | account.tax.code | search | New |
view_tax_code_template_form |
account.tax.code.template.form | account.tax.code.template | form | New |
view_tax_code_template_search |
account.tax.code.template.search | account.tax.code.template | search | New |
view_tax_code_template_tree |
account.tax.code.template.tree | account.tax.code.template | tree | New |
view_tax_code_tree |
account.tax.code.tree | account.tax.code | tree | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
view_wizard_multi_chart |
Set Your Accounting Options | wizard.multi.charts.accounts | form | Inherits base.res_config_view_base |
account_id
Many2one → account.account
help='The partner account used for this invoice.'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Account'
args: 'account.account'
amount_tax
Float
compute='_compute_amount'
digits=dp.get_precision('Account')
readonly=True
store=True
string='Tax'
amount_total
Float
compute='_compute_amount'
digits=dp.get_precision('Account')
readonly=True
store=True
string='Total'
amount_untaxed
Float
compute='_compute_amount'
digits=dp.get_precision('Account')
readonly=True
store=True
string='Subtotal'
track_visibility='always'
check_total
Float
default=0.0
digits=dp.get_precision('Account')
readonly=True
states={'draft': [('readonly', False)]}
string='Verification Total'
comment
Text
commercial_partner_id
Many2one → res.partner
help='The commercial entity that will be used on Journal Entries for this invoice'
readonly=True
related='partner_id.commercial_partner_id'
store=True
string='Commercial Entity'
args: 'res.partner'
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
default=_default_currency
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Currency'
track_visibility='always'
args: 'res.currency'
date_due
Date
copy=False
help='If you use payment terms, the due date will be computed automatically at the generation of accounting entries. The payment term may compute several due dates, for example 50% now and 50% in one month, but if you want to force a due date, make sure that the payment term is not set on the invoice. If you keep the payment term and the due date empty, it means direct payment.'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Due Date'
date_invoice
Date
copy=False
help='Keep empty to use the current date'
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice Date'
fiscal_position
Many2one → account.fiscal.position
readonly=True
states={'draft': [('readonly', False)]}
string='Fiscal Position'
args: 'account.fiscal.position'
internal_number
Char
copy=False
default=False
help='Unique number of the invoice, computed automatically when the invoice is created.'
readonly=True
string='Invoice Number'
invoice_line
One2many → account.invoice.line
copy=True
readonly=True
states={'draft': [('readonly', False)]}
string='Invoice Lines'
args: 'account.invoice.line', 'invoice_id'
journal_id
Many2one → account.journal
default=_default_journal
domain="[('type', 'in', {'out_invoice': ['sale'], 'out_refund': ['sale_refund'], 'in_refund': ['purchase_refund'], 'in_invoice': ['purchase']}.get(type, [])), ('company_id', '=', company_id)]"
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Journal'
args: 'account.journal'
move_id
Many2one → account.move
copy=False
help='Link to the automatically generated Journal Items.'
index=True
ondelete='restrict'
readonly=True
string='Journal Entry'
args: 'account.move'
move_lines
Many2many → account.move.line
compute='_compute_move_lines'
string='Entry Lines'
args: 'account.move.line'
move_name
Char
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Journal Entry'
name
Char
index=True
readonly=True
states={'draft': [('readonly', False)]}
string='Reference/Description'
number
Char
copy=False
readonly=True
related='move_id.name'
store=True
origin
Char
help='Reference of the document that produced this invoice.'
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
partner_bank_id
Many2one → res.partner.bank
help='Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Supplier Refund, otherwise a Partner bank account number.'
readonly=True
states={'draft': [('readonly', False)]}
string='Bank Account'
args: 'res.partner.bank'
partner_id
Many2one → res.partner
change_default=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Partner'
track_visibility='always'
args: 'res.partner'
payment_ids
Many2many → account.move.line
compute='_compute_payments'
string='Payments'
args: 'account.move.line'
payment_term
Many2one → account.payment.term
help='If you use payment terms, the due date will be computed automatically at the generation of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month.'
readonly=True
states={'draft': [('readonly', False)]}
string='Payment Terms'
args: 'account.payment.term'
period_id
Many2one → account.period
copy=False
domain=[('state', '!=', 'done')]
help='Keep empty to use the period of the validation(invoice) date.'
readonly=True
states={'draft': [('readonly', False)]}
string='Force Period'
args: 'account.period'
reconciled
Boolean
compute='_compute_reconciled'
help='It indicates that the invoice has been paid and the journal entry of the invoice has been reconciled with one or several journal entries of payment.'
readonly=True
store=True
string='Paid/Reconciled'
reference
Char
help='The partner reference of this invoice.'
string='Invoice Reference'
reference_type
Selection
default='none'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Payment Reference'
args: '_get_reference_type'
residual
Float
compute='_compute_residual'
digits=dp.get_precision('Account')
help='Remaining amount due.'
store=True
string='Balance'
sent
Boolean
copy=False
default=False
help='It indicates that the invoice has been sent.'
readonly=True
state
Selection
copy=False
default='draft'
help=" * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n * The 'Pro-forma' when invoice is in Pro-forma status,invoice does not have an invoice number.\n * The 'Open' status is used when user create invoice,a invoice number is generated.Its in open status till user does not pay invoice.\n * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n * The 'Cancelled' status is used when user cancel invoice."
index=True
readonly=True
string='Status'
track_visibility='onchange'
args: [('draft', 'Draft'), ('proforma', 'Pro-forma'), ('proforma2', 'Pro-forma'), ('open', 'Open'), ('paid', 'Paid'), ('cancel', 'Cancelled')]
supplier_invoice_number
Char
help='The reference of this invoice as provided by the supplier.'
readonly=True
states={'draft': [('readonly', False)]}
string='Supplier Invoice Number'
tax_line
One2many → account.invoice.tax
copy=True
readonly=True
states={'draft': [('readonly', False)]}
string='Tax Lines'
args: 'account.invoice.tax', 'invoice_id'
type
Selection
change_default=True
default=<expr>
index=True
readonly=True
string='Type'
track_visibility='always'
args: [('out_invoice', 'Customer Invoice'), ('in_invoice', 'Supplier Invoice'), ('out_refund', 'Customer Refund'), ('in_refund', 'Supplier Refund')]
user_id
Many2one → res.users
default=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Salesperson'
track_visibility='onchange'
args: 'res.users'
action_cancel(self)
action_cancel_draft(self)
action_date_assign(self)
action_invoice_sent(self)
action_move_create(self)
action_number(self)
button_compute(self, set_total=False)
button_reset_taxes(self)
check_tax_lines(self, compute_taxes)
compute_invoice_totals(self, company_currency, ref, invoice_move_lines)
confirm_paid(self)
fields_view_get(self, view_id=None, view_type=False, toolbar=False, submenu=False)
finalize_invoice_move_lines(self, move_lines)
get_formview_id(self)
group_lines(self, iml, line)
inv_line_characteristic_hashcode(self, invoice_line)
invoice_print(self)
invoice_validate(self)
line_get_convert(self, line, part, date)
move_line_id_payment_get(self)
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
onchange_company_id(self, company_id, part_id, type, invoice_line, currency_id)
onchange_invoice_line(self, lines)
onchange_journal_id(self, journal_id=False)
onchange_partner_bank(self, partner_bank_id=False)
onchange_partner_id(self, type, partner_id, date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False)
onchange_payment_term_date_invoice(self, payment_term_id, date_invoice)
pay_and_reconcile(self, pay_amount, pay_account_id, period_id, pay_journal_id, writeoff_acc_id, writeoff_period_id, writeoff_journal_id, name='')
pay_and_reconcile(self, cr, uid, ids, pay_amount, pay_account_id, period_id, pay_journal_id, writeoff_acc_id, writeoff_period_id, writeoff_journal_id, context=None, name='')
refund(self, date=None, period_id=None, description=None, journal_id=None)
test_paid(self)
unlink(self)
account_analytic_id
Many2one → account.analytic.account
string='Analytic Account'
args: 'account.analytic.account'
account_id
Many2one → account.account
default=_default_account
domain=[('type', 'not in', ['view', 'closed'])]
help='The income or expense account related to the selected product.'
required=True
string='Account'
args: 'account.account'
company_id
Many2one → res.company
readonly=True
related='invoice_id.company_id'
store=True
string='Company'
args: 'res.company'
discount
Float
default=0.0
digits=dp.get_precision('Discount')
string='Discount (%)'
invoice_id
Many2one → account.invoice
index=True
ondelete='cascade'
string='Invoice Reference'
args: 'account.invoice'
invoice_line_tax_id
Many2many → account.tax
domain=[('parent_id', '=', False), '|', ('active', '=', False), ('active', '=', True)]
string='Taxes'
args: 'account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id'
name
Text
required=True
string='Description'
origin
Char
help='Reference of the document that produced this invoice.'
string='Source Document'
partner_id
Many2one → res.partner
readonly=True
related='invoice_id.partner_id'
store=True
string='Partner'
args: 'res.partner'
price_subtotal
Float
compute='_compute_price'
digits=dp.get_precision('Account')
readonly=True
store=True
string='Amount'
price_unit
Float
default=_default_price_unit
digits=dp.get_precision('Product Price')
required=True
string='Unit Price'
product_id
Many2one → product.product
index=True
ondelete='restrict'
string='Product'
args: 'product.product'
quantity
Float
default=1
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity'
sequence
Integer
default=10
help='Gives the sequence of this line when displaying the invoice.'
string='Sequence'
uos_id
Many2one → product.uom
index=True
ondelete='set null'
string='Unit of Measure'
args: 'product.uom'
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
move_line_get(self, invoice_id)
move_line_get_item(self, line)
onchange_account_id(self, product_id, partner_id, inv_type, fposition_id, account_id)
product_id_change(self, product, uom_id, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, company_id=None)
uos_id_change(self, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, company_id=None)
account_analytic_id
Many2one → account.analytic.account
string='Analytic account'
args: 'account.analytic.account'
account_id
Many2one → account.account
domain=[('type', 'not in', ['view', 'income', 'closed'])]
required=True
string='Tax Account'
args: 'account.account'
amount
Float
digits=dp.get_precision('Account')
string='Amount'
base
Float
digits=dp.get_precision('Account')
string='Base'
base_amount
Float
default=0.0
digits=dp.get_precision('Account')
string='Base Code Amount'
base_code_id
Many2one → account.tax.code
help='The account basis of the tax declaration.'
string='Base Code'
args: 'account.tax.code'
company_id
Many2one → res.company
readonly=True
related='account_id.company_id'
store=True
string='Company'
args: 'res.company'
factor_base
Float
compute='_compute_factors'
string='Multipication factor for Base code'
factor_tax
Float
compute='_compute_factors'
string='Multipication factor Tax code'
invoice_id
Many2one → account.invoice
index=True
ondelete='cascade'
string='Invoice Line'
args: 'account.invoice'
manual
Boolean
default=True
string='Manual'
name
Char
required=True
string='Tax Description'
sequence
Integer
help='Gives the sequence order when displaying a list of invoice tax.'
string='Sequence'
tax_amount
Float
default=0.0
digits=dp.get_precision('Account')
string='Tax Code Amount'
tax_code_id
Many2one → account.tax.code
help='The tax basis of the tax declaration.'
string='Tax Code'
args: 'account.tax.code'
amount_change(self, amount, currency_id=False, company_id=False, date_invoice=False)
base_change(self, base, currency_id=False, company_id=False, date_invoice=False)
compute(self, invoice)
compute(self, cr, uid, invoice_id, context=None)
move_line_get(self, invoice_id)
No new fields.
Public methods (1)send_mail(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
invoice_ids
One2many → account.invoice
copy=False
readonly=True
string='Invoices'
args: 'account.invoice', 'partner_id'
No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_account_graph |
account.account.graph | account.account | graph | New |
account_aged_balance_view |
Aged Partner Balance | account.aged.trial.balance | form | New |
account_analytic_balance_view |
Account Analytic Balance | account.analytic.balance | form | New |
account_analytic_chart_view |
Chart of Analytic Accounts | account.analytic.chart | form | New |
account_analytic_cost_ledger_journal_view |
Account Analytic Cost Ledger Journal | account.analytic.cost.ledger.journal.report | form | New |
account_analytic_cost_view |
Account Analytic Check | account.analytic.cost.ledger | form | New |
account_analytic_invert_balance_view |
Account Analytic Inverted Balance | account.analytic.inverted.balance | form | New |
account_analytic_journal_view |
Account Analytic Journal | account.analytic.journal.report | form | New |
account_analytic_line_extended_form |
account.analytic.line.extended_form | account.analytic.line | form | New |
account_automatic_reconcile_view |
Account Automatic Reconcile | account.automatic.reconcile | form | New |
account_automatic_reconcile_view1 |
Automatic reconcile unreconcile | account.automatic.reconcile | form | New |
account_cash_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_common_report_view |
Common Report | account.common.report | form | New |
account_invoice_cancel_view |
account.invoice.cancel.form | account.invoice.cancel | form | New |
account_invoice_confirm_view |
account.invoice.confirm.form | account.invoice.confirm | form | New |
account_move_line_graph |
account.move.line.graph | account.move.line | graph | New |
account_move_line_reconcile_writeoff |
account.move.line.reconcile.writeoff.form | account.move.line.reconcile.writeoff | form | New |
account_move_line_select_button_view |
Open Move Line Button | account.move.line.select | form | New |
account_partner_balance_view |
Partner Balance | account.partner.balance | data | Inherits account_common_report_view |
account_partner_ledger_view |
Partner Ledger | account.partner.ledger | data | Inherits account_common_report_view |
account_partner_reconcile_view |
Partner Reconcilation Process | account.partner.reconcile.process | form | New |
account_report_balance_view |
Trial Balance | account.balance.report | data | Inherits account_common_report_view |
account_report_general_journal_view |
Account General Journal | account.general.journal | data | Inherits account_common_report_view |
account_report_general_ledger_view |
General Ledger | account.report.general.ledger | data | Inherits account_common_report_view |
account_report_general_ledger_view_inherit |
General Ledger | account.report.general.ledger | field | Inherits account_report_general_ledger_view |
account_report_print_journal |
Account Print Journal | account.print.journal | data | Inherits account_common_report_view |
account_unreconcile_reconcile_view |
Unreconcile Entries | account.unreconcile.reconcile | form | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
accounting_report_view |
Accounting Report | accounting.report | xpath | Inherits account.account_common_report_view |
board_account_form |
board.account.form | board.board | form | New |
board_view_created_invoice |
report.invoice.created.tree | report.invoice.created | tree | New |
cash_box_in_form |
cash_box_in | cash.box.in | form | New |
cash_box_out_form |
cash_box_out | cash.box.out | form | New |
invoice_form |
account.invoice.form | account.invoice | form | New |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | form | New |
invoice_tree |
account.invoice.tree | account.invoice | tree | New |
open_journal_button_view |
Open Journal Button | account.journal.select | form | New |
product_normal_form_view |
product.normal.form.inherit | product.product | notebook | Inherits product.product_normal_form_view |
product_template_form_view |
product.template.product.form.inherit | product.template | notebook | Inherits product.product_template_form_view |
sequence_inherit_form |
ir.sequence.form | ir.sequence | page | Inherits base.sequence_view |
validate_account_move_line_view |
Post Journal Entries | validate.account.move.lines | form | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_addtmpl_wizard_form |
Create Account | account.addtmpl.wizard | form | New |
view_account_analytic_account_list |
account.analytic.account.list | account.analytic.account | tree | New |
view_account_analytic_account_search |
account.analytic.account.search | account.analytic.account | search | New |
view_account_analytic_account_tree |
account.analytic.account.tree | account.analytic.account | tree | New |
view_account_analytic_entries_search |
account.analytic.entries.graph | analytic.entries.report | graph | New |
view_account_analytic_journal_form |
account.analytic.journal.form | account.analytic.journal | form | New |
view_account_analytic_journal_tree |
account.analytic.journal.tree | account.analytic.journal | tree | New |
view_account_analytic_line_filter |
account.analytic.line.select | account.analytic.line | search | New |
view_account_analytic_line_form |
account.analytic.line.form | account.analytic.line | form | New |
view_account_analytic_line_tree |
account.analytic.line.tree | account.analytic.line | tree | New |
view_account_bank_statement_filter |
account.cash.statement.select | account.bank.statement | search | New |
view_account_central_journal |
Account central Journal | account.central.journal | field | Inherits account_common_report_view |
view_account_change_currency |
Change Currency | account.change.currency | form | New |
view_account_chart |
account.chart.form | account.chart | form | New |
view_account_chart_template_form |
account.chart.template.form | account.chart.template | form | New |
view_account_chart_template_seacrh |
account.chart.template.search | account.chart.template | search | New |
view_account_chart_template_tree |
account.chart.template.tree | account.chart.template | tree | New |
view_account_config_settings |
account settings | account.config.settings | form | New |
view_account_configuration_installer |
account.installer.form | account.installer | form | Inherits base.res_config_installer |
view_account_entries_report_graph |
account.entries.report.graph | account.entries.report | graph | New |
view_account_entries_report_search |
account.entries.report.search | account.entries.report | search | New |
view_account_entries_report_tree |
account.entries.report.tree | account.entries.report | tree | New |
view_account_financial_report_form |
account.financial.report.form | account.financial.report | form | New |
view_account_financial_report_search |
account.financial.report.search | account.financial.report | search | New |
view_account_financial_report_tree |
account.financial.report.tree | account.financial.report | tree | New |
view_account_fiscalyear_close |
account.fiscalyear.close.form | account.fiscalyear.close | form | New |
view_account_fiscalyear_close_state |
account.fiscalyear.close.state.form | account.fiscalyear.close.state | form | New |
view_account_fiscalyear_form |
account.fiscalyear.form | account.fiscalyear | form | New |
view_account_fiscalyear_search |
account.fiscalyear.search | account.fiscalyear | search | New |
view_account_fiscalyear_tree |
account.fiscalyear.tree | account.fiscalyear | tree | New |
view_account_form |
account.account.form | account.account | form | New |
view_account_gain_loss_tree |
Unrealized Gain or Loss | account.account | tree | New |
view_account_invoice_filter |
account.invoice.select | account.invoice | search | New |
view_account_invoice_refund |
account.invoice.refund.form | account.invoice.refund | form | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_invoice_report_tree |
account.invoice.report.tree | account.invoice.report | tree | New |
view_account_journal_1 |
account.journal.form.1 | account.journal | field | Inherits account.view_account_journal_form |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_bank_reconcile |
account.move.bank.reconcile.form | account.move.bank.reconcile | form | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_line_filter |
Journal Items | account.move.line | search | New |
view_account_move_line_reconcile_full |
account.move.line.reconcile.full.form | account.move.line.reconcile | form | New |
view_account_move_line_reconcile_select |
account.move.line.reconcile.select.form | account.move.line.reconcile.select | form | New |
view_account_move_line_unreconcile_select |
account.move.line.unreconcile.select.form | account.move.line.unreconcile.select | form | New |
view_account_move_tree |
account.move.tree | account.move | tree | New |
view_account_open_closed_fiscalyear |
account.open.closed.fiscalyear.form | account.open.closed.fiscalyear | form | New |
view_account_period_close |
account.period.close.form | account.period.close | form | New |
view_account_period_form |
account.period.form | account.period | form | New |
view_account_period_search |
account.period.search | account.period | search | New |
view_account_period_tree |
account.period.tree | account.period | tree | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_report_tree_hierarchy |
account.report.hierarchy | account.financial.report | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_state_open |
Account State Open | account.state.open | form | New |
view_account_subscription_generate |
account.subscription.generate.form | account.subscription.generate | form | New |
view_account_tax_chart |
account.tax.chart.form | account.tax.chart | form | New |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_template_form |
account.account.template.form | account.account.template | form | New |
view_account_template_search |
account.account.template.search | account.account.template | search | New |
view_account_template_tree |
account.account.template.tree | account.account.template | tree | New |
view_account_treasury_report_graph |
account.treasury.report.graph | account.treasury.report | graph | New |
view_account_treasury_report_search |
account.treasury.report.search | account.treasury.report | search | New |
view_account_treasury_report_tree |
account.treasury.report.tree | account.treasury.report | tree | New |
view_account_tree |
account.account.tree | account.account | tree | New |
view_account_type_form |
account.account.type.form | account.account.type | form | New |
view_account_type_search |
account.account.type.search | account.account.type | search | New |
view_account_type_tree |
account.account.type.tree | account.account.type | tree | New |
view_account_use_model |
account.use.model.form | account.use.model | form | New |
view_account_use_model_create_entry |
account.use.model.create.entry.form | account.use.model | form | New |
view_account_vat_declaration |
Account Tax Declaration | account.vat.declaration | form | New |
view_aged_recv_graph |
report.aged.receivable.graph | report.aged.receivable | graph | New |
view_aged_recv_tree |
report.aged.receivable.tree | report.aged.receivable | tree | New |
view_analytic_entries_report_search |
analytic.entries.report.search | analytic.entries.report | search | New |
view_analytic_entries_report_tree |
analytic.entries.report.tree | analytic.entries.report | tree | New |
view_analytic_journal_search |
account.analytic.journal.search | account.analytic.journal | search | New |
view_bank_statement_form |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_form2 |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_form_journal_items |
account.bank.statement.journal.items.form.inherit | account.bank.statement | xpath | Inherits view_bank_statement_form |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_cash_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | data | Inherits product.product_category_form_view |
view_company_analysis_tree |
account.company.analysis.tree | account.entries.report | tree | New |
view_company_inherit_form |
res.company.form.inherit | res.company | notebook | Inherits base.view_company_form |
view_crm_case_user_form |
report.account.receivable.form | report.account.receivable | form | New |
view_crm_case_user_graph |
report.account.receivable.graph | report.account.receivable | graph | New |
view_crm_case_user_tree |
report.account.receivable.tree | report.account.receivable | tree | New |
view_invoice_graph |
account.invoice.graph | account.invoice | graph | New |
view_invoice_line_calendar |
account.invoice.calendar | account.invoice | calendar | New |
view_invoice_line_form |
account.invoice.line.form | account.invoice.line | form | New |
view_invoice_line_tree |
account.invoice.line.tree | account.invoice.line | tree | New |
view_invoice_tax_form |
account.invoice.tax.form | account.invoice.tax | form | New |
view_invoice_tax_tree |
account.invoice.tax.tree | account.invoice.tax | tree | New |
view_journal_period_tree |
account.journal.period.tree | account.journal.period | tree | New |
view_model_form |
account.model.form | account.model | form | New |
view_model_line_form |
account.model.line.form | account.model.line | form | New |
view_model_line_tree |
account.model.line.tree | account.model.line | tree | New |
view_model_search |
account.model.search | account.model | search | New |
view_model_tree |
account.model.tree | account.model | tree | New |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_form2 |
account.move.line.form2 | account.move.line | form | New |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_line_tree_reconcile |
account.move.line | tree_account_reconciliation | New | |
view_move_reconcile_form |
account.move.reconcile.form | account.move.reconcile | form | New |
view_move_tree |
account.move.tree | account.move | tree | New |
view_partner_bank_form_inherit |
Partner Bank Accounts - Journal | res.partner.bank | group | Inherits base.view_partner_bank_form |
view_partner_bank_tree_add_currency |
Partner Bank Accounts - Add currency on tree | res.partner.bank | field | Inherits base.view_partner_bank_tree |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | page | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_line_form |
account.payment.term.line.form | account.payment.term.line | form | New |
view_payment_term_line_tree |
account.payment.term.line.tree | account.payment.term.line | tree | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_project_account_analytic_line_form |
project.account.analytic.line.form | project.account.analytic.line | form | New |
view_report_account_sales_graph |
report.account.sales.graph | report.account.sales | graph | New |
view_report_account_sales_search |
report.account.sales.search | report.account.sales | search | New |
view_report_account_sales_tree |
report.account.sales.tree | report.account.sales | tree | New |
view_report_account_type_sales_form |
report.account_type.sales.form | report.account_type.sales | tree | New |
view_report_account_type_sales_graph |
report.account_type.sales.graph | report.account_type.sales | graph | New |
view_report_account_type_sales_search |
report.account_type.sales.search | report.account_type.sales | search | New |
view_report_account_type_sales_tree |
report.account_type.sales.tree | report.account_type.sales | tree | New |
view_subscription_form |
account.subscription.form | account.subscription | form | New |
view_subscription_line_form |
account.subscription.line.form | account.subscription.line | form | New |
view_subscription_line_form_complete |
account.subscription.line.form | account.subscription.line | form | New |
view_subscription_line_tree |
account.subscription.line.tree | account.subscription.line | tree | New |
view_subscription_search |
account.subscription.search | account.subscription | search | New |
view_subscription_tree |
account.subscription.tree | account.subscription | tree | New |
view_tax_code_form |
account.tax.code.form | account.tax.code | form | New |
view_tax_code_search |
account.tax.code.search | account.tax.code | search | New |
view_tax_code_template_form |
account.tax.code.template.form | account.tax.code.template | form | New |
view_tax_code_template_search |
account.tax.code.template.search | account.tax.code.template | search | New |
view_tax_code_template_tree |
account.tax.code.template.tree | account.tax.code.template | tree | New |
view_tax_code_tree |
account.tax.code.tree | account.tax.code | tree | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
view_wizard_multi_chart |
Set Your Accounting Options | wizard.multi.charts.accounts | form | Inherits base.res_config_view_base |
No models found for this module.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/6.1/account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Accounting & Finance |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Jagdish Panchal (Open ERP), Rucha (Open ERP), Stephane Wirtel, Numerigraphe - Lionel Sausin, Pinakin Nayi (OpenERP), Harry (OpenERP), Martin Trigaux, Purnendu Singh (OpenERP), Fabien Pinckaers, Antony Lesuisse, Bharat Devnani (OpenERP), Meera Trambadia (OpenERP), Olivier Dony, Divyesh Makwana (Open ERP), Thibault Delavallée, Vo Minh Thu, pso (OpenERP), Launchpad Translations on behalf of openerp, Quentin (OpenERP), Kuldeep Joshi (OpenERP), Mayur Maheshwari (OpenERP), Alexis de Lattre, vro, olt@tinyerp.com, Fabien Meghazi, niv-openerp, Xavier ALT, Christophe Simonis, Ujjvala Collins (OpenERP), Xavier Morel, Chris Biersbach, Amit (OpenERP), Amit Dodiya, Amit Bhavsar (Open ERP), Rifakat, Najlaâ, Mustufa Rangwala (OpenERP), Thibault Francois, Samus CTO, kirti savalia (OpenERP), Stefan Rijnhart, sebastien beau, Niels Huylebroeck, Carlos Vásquez, Bogdan Stanciu, Husen Daudi, Craig Gowing, Els Van Vossel, Israel Fermin Montilla, Rifakat Haradwala (Open ERP), Hardik Ansodariy (OpenERP), ssu, rch-openerp, Bharat (OpenERP), ARA (OpenERP), aag (OpenERP), tfr@openerp.com, ron@tinyerp.com, mtr, fp, qdp-launchpad@tinyerp.com, AMP (OpenERP), ksa (OpenERP), Mustufa Rangwala, Naresh (OpenERP), psi (Open ERP), Tejas (OpenERP), Amit Parmar (OpenERP), RavishchanraMurari (Open ERP), Kirti Savalia (OpenERP), Hemendra Paregi (Open ERP), skh, Dhara (OpenERP), Atik Agewan (OpenERP), Ravi Gohil (Open ERP), philubert@gmail.com, Ariel Figueroa, msh-openerp, Somesh Khare, rha@tinyerp.com, nel@tinyerp.com, Dmitrijs Ledkovs, Ila Rana, Olivier DOSSMANN, cpa-openerp, rha, bde |
| WEBSITE | |
| WEBSITE | http://www.openerp.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:41:35 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - product - process - decimal_precision - analytic - board - edi - email_template - base_tools |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Accounting and Financial Management.
====================================
Financial and accounting module that covers:
--------------------------------------------
General accountings
Cost / Analytic accounting
Third party accounting
Taxes management
Budgets
Customer and Supplier Invoices
Bank statements
Reconciliation process by partner
Creates a dashboard for accountants that includes:
--------------------------------------------------
* List of Customer Invoice to Approve
* Company Analysis
* Graph of Aged Receivables
* Graph of Treasury
The processes like maintaining of general ledger is done through the defined financial Journals (entry move line or
grouping is maintained through journal) for a particular financial year and for preparation of vouchers there is a
module named account_voucher.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_account_graph |
account.account.graph | account.account | graph | New |
account_aged_balance_view |
Aged Partner Balance | account.aged.trial.balance | form | New |
account_analytic_balance_view |
Account Analytic Balance | account.analytic.balance | form | New |
account_analytic_chart_view |
Chart of Analytic Accounts | account.analytic.chart | form | New |
account_analytic_cost_ledger_journal_view |
Account Analytic Cost Ledger Journal | account.analytic.cost.ledger.journal.report | form | New |
account_analytic_cost_view |
Account Analytic Check | account.analytic.cost.ledger | form | New |
account_analytic_invert_balance_view |
Account Analytic Inverted Balance | account.analytic.inverted.balance | form | New |
account_analytic_journal_view |
Account Analytic Journal | account.analytic.journal.report | form | New |
account_analytic_line_extended_form |
account.analytic.line.extended_form | account.analytic.line | form | New |
account_automatic_reconcile_view |
Account Automatic Reconcile | account.automatic.reconcile | form | New |
account_automatic_reconcile_view1 |
Automatic reconcile unreconcile | account.automatic.reconcile | form | New |
account_cash_statement_graph |
account.bank.statement.graph | account.bank.statement | graph | New |
account_common_report_view |
Common Report | account.common.report | form | New |
account_invoice_cancel_view |
account.invoice.cancel.form | account.invoice.cancel | form | New |
account_invoice_confirm_view |
account.invoice.confirm.form | account.invoice.confirm | form | New |
account_move_graph |
account.move.graph | account.move | graph | New |
account_move_line_graph |
account.move.line.graph | account.move.line | graph | New |
account_move_line_reconcile_writeoff |
account.move.line.reconcile.writeoff.form | account.move.line.reconcile.writeoff | form | New |
account_move_line_select_button_view |
Open Move Line Button | account.move.line.select | form | New |
account_partner_balance_view |
Partner Balance | account.partner.balance | data | Inherits account_common_report_view |
account_partner_ledger_view |
Partner Ledger | account.partner.ledger | data | Inherits account_common_report_view |
account_partner_reconcile_view |
Partner Reconcilation Process | account.partner.reconcile.process | form | New |
account_report_balance_view |
Trial Balance | account.balance.report | data | Inherits account_common_report_view |
account_report_general_journal_view |
Account General Journal | account.general.journal | data | Inherits account_common_report_view |
account_report_general_ledger_view |
General Ledger | account.report.general.ledger | data | Inherits account_common_report_view |
account_report_general_ledger_view_inherit |
General Ledger | account.report.general.ledger | field | Inherits account_report_general_ledger_view |
account_report_print_journal |
Account Print Journal | account.print.journal | data | Inherits account_common_report_view |
account_unreconcile_reconcile_view |
Unreconcile Entries | account.unreconcile.reconcile | form | New |
account_unreconcile_view |
Unreconcile Entries | account.unreconcile | form | New |
accounting_report_view |
Accounting Report | accounting.report | xpath | Inherits account.account_common_report_view |
analytic_accounts_graph |
analytic.accounts.graph | account.analytic.account | graph | New |
board_account_form |
board.account.form | board.board | form | New |
board_view_created_invoice |
report.invoice.created.tree | report.invoice.created | tree | New |
invoice_form |
account.invoice.form | account.invoice | form | New |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | form | New |
invoice_tree |
account.invoice.tree | account.invoice | tree | New |
open_journal_button_view |
Open Journal Button | account.journal.select | form | New |
product_normal_form_view |
product.normal.form.inherit | product.product | notebook | Inherits product.product_normal_form_view |
product_template_form_view |
product.template.product.form.inherit | product.template | notebook | Inherits product.product_template_form_view |
report_hr_timesheet_invoice_journal_form |
report.hr.timesheet.invoice.journal.form | report.hr.timesheet.invoice.journal | form | New |
report_hr_timesheet_invoice_journal_graph |
report.hr.timesheet.invoice.journal.graph | report.hr.timesheet.invoice.journal | graph | New |
report_hr_timesheet_invoice_journal_search |
report.hr.timesheet.invoice.journal.search | report.hr.timesheet.invoice.journal | search | New |
report_hr_timesheet_invoice_journal_tree |
report.hr.timesheet.invoice.journal.tree | report.hr.timesheet.invoice.journal | tree | New |
sequence_inherit_form |
ir.sequence.form | ir.sequence | page | Inherits base.sequence_view |
validate_account_move_line_view |
Post Journal Entries | validate.account.move.lines | form | New |
validate_account_move_view |
Post Journal Entries | validate.account.move | form | New |
view_account_addtmpl_wizard_form |
Create Account | account.addtmpl.wizard | form | New |
view_account_analytic_account_form |
account.analytic.account.form | account.analytic.account | form | New |
view_account_analytic_account_list |
account.analytic.account.list | account.analytic.account | tree | New |
view_account_analytic_account_search |
account.analytic.account.search | account.analytic.account | search | New |
view_account_analytic_account_tree |
account.analytic.account.tree | account.analytic.account | tree | New |
view_account_analytic_entries_search |
account.analytic.entries.graph | analytic.entries.report | graph | New |
view_account_analytic_journal_form |
account.analytic.journal.form | account.analytic.journal | form | New |
view_account_analytic_journal_tree |
account.analytic.journal.tree | account.analytic.journal | tree | New |
view_account_analytic_line_filter |
account.analytic.line.select | account.analytic.line | search | New |
view_account_analytic_line_form |
account.analytic.line.form | account.analytic.line | form | New |
view_account_analytic_line_tree |
account.analytic.line.tree | account.analytic.line | tree | New |
view_account_bank_statement_filter |
account.cash.statement.select | account.bank.statement | search | New |
view_account_central_journal |
Account central Journal | account.central.journal | field | Inherits account_common_report_view |
view_account_change_currency |
Change Currency | account.change.currency | form | New |
view_account_chart |
account.chart.form | account.chart | form | New |
view_account_chart_template_form |
account.chart.template.form | account.chart.template | form | New |
view_account_chart_template_seacrh |
account.chart.template.search | account.chart.template | search | New |
view_account_chart_template_tree |
account.chart.template.tree | account.chart.template | tree | New |
view_account_configuration_installer |
account.installer.form | account.installer | data | Inherits base.res_config_installer |
view_account_entries_report_graph |
account.entries.report.graph | account.entries.report | graph | New |
view_account_entries_report_search |
account.entries.report.search | account.entries.report | search | New |
view_account_entries_report_tree |
account.entries.report.tree | account.entries.report | tree | New |
view_account_financial_report_form |
account.financial.report.form | account.financial.report | form | New |
view_account_financial_report_search |
account.financial.report.search | account.financial.report | search | New |
view_account_financial_report_tree |
account.financial.report.tree | account.financial.report | tree | New |
view_account_fiscalyear_close |
account.fiscalyear.close.form | account.fiscalyear.close | form | New |
view_account_fiscalyear_close_state |
account.fiscalyear.close.state.form | account.fiscalyear.close.state | form | New |
view_account_fiscalyear_form |
account.fiscalyear.form | account.fiscalyear | form | New |
view_account_fiscalyear_search |
account.fiscalyear.search | account.fiscalyear | search | New |
view_account_fiscalyear_tree |
account.fiscalyear.tree | account.fiscalyear | tree | New |
view_account_form |
account.account.form | account.account | form | New |
view_account_gain_loss_tree |
Unrealized Gain or Loss | account.account | tree | New |
view_account_invoice_filter |
account.invoice.select | account.invoice | search | New |
view_account_invoice_refund |
account.invoice.refund.form | account.invoice.refund | form | New |
view_account_invoice_report_graph |
account.invoice.report.graph | account.invoice.report | graph | New |
view_account_invoice_report_search |
account.invoice.report.search | account.invoice.report | search | New |
view_account_invoice_report_tree |
account.invoice.report.tree | account.invoice.report | tree | New |
view_account_journal_1 |
account.journal.form.1 | account.journal | field | Inherits account.view_account_journal_form |
view_account_journal_form |
account.journal.form | account.journal | form | New |
view_account_journal_search |
account.journal.search | account.journal | search | New |
view_account_journal_tree |
account.journal.tree | account.journal | tree | New |
view_account_journal_view_form |
account.journal.view.form | account.journal.view | form | New |
view_account_journal_view_search |
account.journal.view.search | account.journal.view | search | New |
view_account_journal_view_tree |
account.journal.view.tree | account.journal.view | tree | New |
view_account_list |
account.account.list | account.account | tree | New |
view_account_move_bank_reconcile |
account.move.bank.reconcile.form | account.move.bank.reconcile | form | New |
view_account_move_filter |
account.move.select | account.move | search | New |
view_account_move_journal_form |
account.move.journal.form | account.move.journal | form | New |
view_account_move_line_filter |
Journal Items | account.move.line | search | New |
view_account_move_line_reconcile_full |
account.move.line.reconcile.full.form | account.move.line.reconcile | form | New |
view_account_move_line_reconcile_select |
account.move.line.reconcile.select.form | account.move.line.reconcile.select | form | New |
view_account_move_line_unreconcile_select |
account.move.line.unreconcile.select.form | account.move.line.unreconcile.select | form | New |
view_account_move_tree |
account.move.tree | account.move | tree | New |
view_account_open_closed_fiscalyear |
account.open.closed.fiscalyear.form | account.open.closed.fiscalyear | form | New |
view_account_period_close |
account.period.close.form | account.period.close | form | New |
view_account_period_form |
account.period.form | account.period | form | New |
view_account_period_search |
account.period.search | account.period | search | New |
view_account_period_tree |
account.period.tree | account.period | tree | New |
view_account_position_form |
account.fiscal.position.form | account.fiscal.position | form | New |
view_account_position_template_form |
account.fiscal.position.template.form | account.fiscal.position.template | form | New |
view_account_position_template_search |
account.fiscal.position.template.search | account.fiscal.position.template | search | New |
view_account_position_template_tree |
account.fiscal.position.template.tree | account.fiscal.position.template | tree | New |
view_account_position_tree |
account.fiscal.position.tree | account.fiscal.position | tree | New |
view_account_report_tree_hierarchy |
account.report.hierarchy | account.financial.report | tree | New |
view_account_search |
account.account.search | account.account | search | New |
view_account_state_open |
Account State Open | account.state.open | form | New |
view_account_subscription_generate |
account.subscription.generate.form | account.subscription.generate | form | New |
view_account_tax_chart |
account.tax.chart.form | account.tax.chart | form | New |
view_account_tax_search |
account.tax.search | account.tax | search | New |
view_account_tax_template_form |
account.tax.template.form | account.tax.template | form | New |
view_account_tax_template_search |
account.tax.template.search | account.tax.template | search | New |
view_account_tax_template_tree |
account.tax.template.tree | account.tax.template | tree | New |
view_account_template_form |
account.account.template.form | account.account.template | form | New |
view_account_template_search |
account.account.template.search | account.account.template | search | New |
view_account_template_tree |
account.account.template.tree | account.account.template | tree | New |
view_account_treasury_report_graph |
account.treasury.report.graph | account.treasury.report | graph | New |
view_account_treasury_report_search |
account.treasury.report.search | account.treasury.report | search | New |
view_account_treasury_report_tree |
account.treasury.report.tree | account.treasury.report | tree | New |
view_account_tree |
account.account.tree | account.account | tree | New |
view_account_type_form |
account.account.type.form | account.account.type | form | New |
view_account_type_search |
account.account.type.search | account.account.type | search | New |
view_account_type_tree |
account.account.type.tree | account.account.type | tree | New |
view_account_use_model |
account.use.model.form | account.use.model | form | New |
view_account_use_model_create_entry |
account.use.model.create.entry.form | account.use.model | form | New |
view_account_vat_declaration |
Account Vat Declaration | account.vat.declaration | form | New |
view_aged_recv_graph |
report.aged.receivable.graph | report.aged.receivable | graph | New |
view_aged_recv_tree |
report.aged.receivable.tree | report.aged.receivable | tree | New |
view_analytic_entries_report_search |
analytic.entries.report.search | analytic.entries.report | search | New |
view_analytic_entries_report_tree |
analytic.entries.report.tree | analytic.entries.report | tree | New |
view_analytic_journal_search |
account.analytic.journal.search | account.analytic.journal | search | New |
view_bank_statement_form |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_form2 |
account.bank.statement.form | account.bank.statement | form | New |
view_bank_statement_periodic_form |
account.bank.statement.reconcile.form | account.bank.statement | form | New |
view_bank_statement_search |
account.bank.statement.search | account.bank.statement | search | New |
view_bank_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_cash_statement_tree |
account.bank.statement.tree | account.bank.statement | tree | New |
view_category_property_form |
product.category.property.form.inherit | product.category | form | Inherits product.product_category_form_view |
view_company_analysis_tree |
account.company.analysis.tree | account.entries.report | tree | New |
view_company_inherit_1_form |
res.company.form.inherit | res.company | field | Inherits base.view_company_form |
view_company_inherit_form |
res.company.form.inherit | res.company | notebook | Inherits base.view_company_form |
view_crm_case_user_form |
report.account.receivable.form | report.account.receivable | form | New |
view_crm_case_user_graph |
report.account.receivable.graph | report.account.receivable | graph | New |
view_crm_case_user_tree |
report.account.receivable.tree | report.account.receivable | tree | New |
view_invoice_graph |
account.invoice.graph | account.invoice | graph | New |
view_invoice_line_calendar |
account.invoice.calendar | account.invoice | calendar | New |
view_invoice_line_form |
account.invoice.line.form | account.invoice.line | form | New |
view_invoice_line_tree |
account.invoice.line.tree | account.invoice.line | tree | New |
view_invoice_tax_form |
account.invoice.tax.form | account.invoice.tax | form | New |
view_invoice_tax_tree |
account.invoice.tax.tree | account.invoice.tax | tree | New |
view_journal_column_form |
account.journal.column.form | account.journal.column | form | New |
view_journal_column_tree |
account.journal.column.tree | account.journal.column | tree | New |
view_journal_period_tree |
account.journal.period.tree | account.journal.period | tree | New |
view_model_form |
account.model.form | account.model | form | New |
view_model_line_form |
account.model.line.form | account.model.line | form | New |
view_model_line_tree |
account.model.line.tree | account.model.line | tree | New |
view_model_search |
account.model.search | account.model | search | New |
view_model_tree |
account.model.tree | account.model | tree | New |
view_move_form |
account.move.form | account.move | form | New |
view_move_line_form |
account.move.line.form | account.move.line | form | New |
view_move_line_form2 |
account.move.line.form2 | account.move.line | form | New |
view_move_line_tax_tree |
account.move.line.tax.tree | account.move.line | tree | New |
view_move_line_tree |
account.move.line.tree | account.move.line | tree | New |
view_move_reconcile_form |
account.move.reconcile.form | account.move.reconcile | form | New |
view_move_tree |
account.move.tree | account.move | tree | New |
view_partner_bank_form_inherit |
Partner Bank Accounts - Journal | res.partner.bank | group | Inherits base.view_partner_bank_form |
view_partner_bank_tree_add_currency |
Partner Bank Accounts - Add currency on tree | res.partner.bank | field | Inherits base.view_partner_bank_tree |
view_partner_property_form |
res.partner.property.form.inherit | res.partner | page | Inherits base.view_partner_form |
view_payment_term_form |
account.payment.term.form | account.payment.term | form | New |
view_payment_term_line_form |
account.payment.term.line.form | account.payment.term.line | form | New |
view_payment_term_line_tree |
account.payment.term.line.tree | account.payment.term.line | tree | New |
view_payment_term_search |
account.payment.term.search | account.payment.term | search | New |
view_project_account_analytic_line_form |
project.account.analytic.line.form | project.account.analytic.line | form | New |
view_report_account_sales_graph |
report.account.sales.graph | report.account.sales | graph | New |
view_report_account_sales_search |
report.account.sales.search | report.account.sales | search | New |
view_report_account_sales_tree |
report.account.sales.tree | report.account.sales | tree | New |
view_report_account_type_sales_form |
report.account_type.sales.form | report.account_type.sales | tree | New |
view_report_account_type_sales_graph |
report.account_type.sales.graph | report.account_type.sales | graph | New |
view_report_account_type_sales_search |
report.account_type.sales.search | report.account_type.sales | search | New |
view_report_account_type_sales_tree |
report.account_type.sales.tree | report.account_type.sales | tree | New |
view_res_partner_reconcile |
res.partner.form.reconcile | res.partner | field | Inherits base.view_partner_form |
view_subscription_form |
account.subscription.form | account.subscription | form | New |
view_subscription_line_form |
account.subscription.line.form | account.subscription.line | form | New |
view_subscription_line_form_complete |
account.subscription.line.form | account.subscription.line | form | New |
view_subscription_line_tree |
account.subscription.line.tree | account.subscription.line | tree | New |
view_subscription_search |
account.subscription.search | account.subscription | search | New |
view_subscription_tree |
account.subscription.tree | account.subscription | tree | New |
view_tax_code_form |
account.tax.code.form | account.tax.code | form | New |
view_tax_code_search |
account.tax.code.search | account.tax.code | search | New |
view_tax_code_template_form |
account.tax.code.template.form | account.tax.code.template | form | New |
view_tax_code_template_search |
account.tax.code.template.search | account.tax.code.template | search | New |
view_tax_code_template_tree |
account.tax.code.template.tree | account.tax.code.template | tree | New |
view_tax_code_tree |
account.tax.code.tree | account.tax.code | tree | New |
view_tax_form |
account.tax.form | account.tax | form | New |
view_tax_tree |
account.tax.tree | account.tax | tree | New |
view_treasory_graph |
account.treasury.graph | account.account | graph | New |
view_wizard_multi_chart |
Generate Chart of Accounts from a Chart Template | wizard.multi.charts.accounts | data | Inherits base.res_config_view_base |
No models found for this module.