Repository
odoo/odoo · module folder
Module version
1.0
Category
Accounting/Localizations
Folder size
0.27 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
None
Last tracking update
2026-08-15 22:44:18
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Odoo Translation Bot, william-andre, Gauthier Wala (gawa), Dylan Kiss (dyki), Nicolas Viseur (vin), Antoine Dupuis, Smit Patel, ppat-odoo, Krzysztof Magusiak (krma), Laurent Smet (LAS), Manav Shah
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
l10n_account_withholding_tax_pos, l10n_kh, l10n_lk, l10n_ph, l10n_sa_withholding_tax
Description
Allows to register withholding taxes during the payment of an invoice or bill.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
report_payment_receipt_document report_payment_receipt_document ir.ui.view qweb Inherits account.report_payment_receipt_document
res_config_settings_form res.config.settings.form res.config.settings form Inherits account.res_config_settings_view_form
view_account_payment_form account.payment.form account.payment form Inherits account.view_account_payment_form
view_account_payment_register_form account.payment.register.form account.payment.register form Inherits account.view_account_payment_register_form
view_tax_form account.tax.form account.tax form Inherits account.view_tax_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (9)

New fields (6)
  • display_withholding Boolean
    compute='_compute_display_withholding'
  • outstanding_account_id Many2one
    readonly=False
  • should_withhold_tax Boolean
    compute='_compute_should_withhold_tax' copy=False help='Withhold tax amounts from the payment amount.' readonly=False store=True string='Withhold Tax Amounts'
  • withholding_hide_tax_base_account Boolean
    compute='_compute_withholding_hide_tax_base_account'
  • withholding_line_ids One2many → account.payment.withholding.line
    comodel_name='account.payment.withholding.line' inverse_name='payment_id' string='Withholding Lines'
  • withholding_payment_account_id Many2one
    related='payment_method_line_id.payment_account_id'
Public methods (0)

No public methods.

New fields (8)
  • display_withholding Boolean
    compute='_compute_display_withholding'
  • should_withhold_tax Boolean
    compute='_compute_should_withhold_tax' copy=False readonly=False store=True string='Withhold Tax Amounts'
  • withholding_default_account_id Many2one
    related='journal_id.default_account_id'
  • withholding_hide_tax_base_account Boolean
    compute='_compute_withholding_hide_tax_base_account'
  • withholding_line_ids One2many → account.payment.register.withholding.line
    comodel_name='account.payment.register.withholding.line' compute='_compute_withholding_line_ids' inverse_name='payment_register_id' readonly=False store=True string='Withholding Lines'
  • withholding_net_amount Monetary
    compute='_compute_withholding_net_amount' help='Net amount after deducting the withholding lines' store=True string='Net Amount'
  • withholding_outstanding_account_id Many2one → account.account
    check_company=True comodel_name='account.account' compute='_compute_withholding_outstanding_account_id' copy=False domain="['|', ('account_type', 'in', ('asset_current', 'liability_current')), ('id', '=', withholding_default_account_id)]" readonly=False store=True string='Outstanding Account'
  • withholding_payment_account_id Many2one
    related='payment_method_line_id.payment_account_id'
Public methods (0)

No public methods.

New fields (1)
  • payment_register_id Many2one → account.payment.register
    comodel_name='account.payment.register' ondelete='cascade' required=True
Public methods (0)

No public methods.

New fields (1)
  • payment_id Many2one → account.payment
    comodel_name='account.payment' ondelete='cascade' required=True
Public methods (0)

No public methods.

New fields (2)
  • is_withholding_tax_on_payment Boolean
    help='If enabled, this tax will not affect your accounts until the registration of payments.' string='Withhold On Payment'
  • withholding_sequence_id Many2one → ir.sequence
    check_company=True comodel_name='ir.sequence' copy=False help='This sequence will be used to generate default numbers on payment withholding lines.' string='Withholding Sequence'
Public methods (0)

No public methods.

New fields (24)
  • account_id Many2one → account.account
    comodel_name='account.account' compute='_compute_account_id' precompute=True readonly=False required=True store=True
  • amount Monetary
    compute='_compute_amount' currency_field='comodel_currency_id' readonly=False store=True string='Withholding amount'
  • base_amount Monetary
    compute='_compute_base_amount' currency_field='comodel_currency_id' readonly=False store=True string='Withholding base'
  • comodel_company_currency_id Many2one
    related='company_id.currency_id'
  • comodel_currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_comodel_currency_id' required=True
  • comodel_date Date
    compute='_compute_comodel_date'
  • comodel_payment_type Selection
    compute='_compute_comodel_payment_type' selection=[('outbound', 'Send Money'), ('inbound', 'Receive Money')]
  • comodel_percentage_paid_factor Float
    compute='_compute_comodel_percentage_paid_factor'
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_company_id' precompute=True required=True store=True
  • name Char
    string='Sequence Number'
  • original_base_amount Monetary
    compute='_compute_original_amounts' currency_field='comodel_currency_id'
  • original_tax_amount Monetary
    compute='_compute_original_amounts' currency_field='comodel_currency_id'
  • placeholder_type Selection
    compute='_compute_placeholder_type' precompute=True readonly=False required=True selection=[('given_by_sequence', 'Given By the Sequence'), ('given_by_name', 'Given By the Name'), ('not_defined', 'Not defined')] store=True
  • placeholder_value Char
    help='Populated by the comodel during edition of the line.'
  • previous_placeholder_type Selection
    compute='_compute_placeholder_type' precompute=True readonly=False selection=[('given_by_sequence', 'Given By the Sequence'), ('given_by_name', 'Given By the Name'), ('not_defined', 'Not defined')] store=True
  • source_base_amount Monetary
    currency_field='comodel_company_currency_id'
  • source_base_amount_currency Monetary
    currency_field='source_currency_id'
  • source_currency_id Many2one → res.currency
    comodel_name='res.currency'
  • source_tax_amount Monetary
    currency_field='comodel_company_currency_id'
  • source_tax_amount_currency Monetary
    currency_field='source_currency_id'
  • source_tax_id Many2one → account.tax
    comodel_name='account.tax'
  • tax_id Many2one → account.tax
    check_company=True comodel_name='account.tax' domain="[('type_tax_use', '=', type_tax_use), ('is_withholding_tax_on_payment', '=', True)]" required=True
  • type_tax_use Char
    compute='_compute_type_tax_use'
  • withholding_sequence_id Many2one
    related='tax_id.withholding_sequence_id'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • withholding_tax_base_account_id Many2one → account.account
    comodel_name='account.account' help='This account will be set on withholding tax base lines.' string='Withholding Tax Base'
Public methods (0)

No public methods.

New fields (1)
  • withholding_tax_base_account_id Many2one
    readonly=False related='company_id.withholding_tax_base_account_id'
Public methods (0)

No public methods.

Loading…