Repository
OCA/l10n-italy · module folder · Try on Runboat
Module version
1.2.2
Category
Account
Folder size
0.62 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-italy
Last tracking update
2026-08-07 08:09:16
Authors
Odoo Community Association (OCA), Odoo Italia Network, Openforce
Maintainers
Odoo Community Association (OCA), Odoo Italia Network, Openforce
Committers
eLBati, Sergio Zanchetta, tafaRU, micheledic, Simone Rubino, Weblate, OCA-git-bot, oca-ci, Marco Colombo
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
l10n_it_fatturapa_out_wt, l10n_it_withholding_tax_financial_report, l10n_it_withholding_tax_payment, l10n_it_withholding_tax_payment_order, l10n_it_withholding_tax_reason
Description
La ritenuta d’acconto provvede a calcolare automaticamente i valori
delle diverse tipologie di ritenuta presenti nella contaiblità italiana.

Con questo modulo è possibile, tramite apposito workflow, gestire i
diversi passaggi di stato delle ritenute rilevate: dovuta, applicata,
versata

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
document_tax_totals_wt document_tax_totals_wt ir.ui.view qweb Inherits account.document_tax_totals
invoice_supplier_tree_wt view.withholding.invoice.supplier.tree account.move tree Inherits account.view_invoice_tree
print_withholding_tax print_withholding_tax ir.ui.view qweb Inherits account.report_invoice_document
view_withholding_invoice_form view.withholding.invoice.form account.move form Inherits account.view_move_form
view_withholding_move_form view.withholding.tax.move.form withholding.tax.move form New
view_withholding_move_search view.withholding.tax.move.search withholding.tax.move search New
view_withholding_move_tree view.withholding.tax.move.tree withholding.tax.move tree New
view_withholding_statement_form view.withholding.tax.statement.form withholding.tax.statement form New
view_withholding_statement_tree view.withholding.tax.statement.tree withholding.tax.statement tree New
view_withholding_tax_fiscal_position_form view.withholding.tax.fiscal.position.form account.fiscal.position form Inherits account.view_account_position_form
view_withholding_tax_form view.withholding.tax.form withholding.tax form New
view_withholding_tax_statement_search view.withholding.tax.statement.search withholding.tax.statement search New
view_withholding_tax_tree view.withholding.tax.tree withholding.tax tree New
view_wt_invoice_line_form view.withholding.invoice.supplier.form account.move.line form Inherits account.view_move_line_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (12)

New fields (1)
  • withholding_tax_ids Many2many → withholding.tax
    string='Withholding Tax' args: 'withholding.tax', 'account_fiscal_position_withholding_tax_rel', 'fiscal_position_id', 'withholding_tax_id'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)

New fields (7)
  • base Float
  • base_coeff Float
    compute='_compute_coeff' help='Coeff used to compute amount competence in the riconciliation' store=True
  • invoice_id Many2one → account.move
    ondelete='cascade' string='Invoice' args: 'account.move'
  • sequence Integer
  • tax Float
  • tax_coeff Float
    compute='_compute_coeff' help='Coeff used to compute amount competence in the riconciliation' store=True
  • withholding_tax_id Many2one → withholding.tax
    ondelete='restrict' string='Withholding tax' args: 'withholding.tax'
Public methods (0)

No public methods.

New fields (6)
  • amount_net_pay Float
    compute='_compute_amount_withholding_tax' digits='Account' readonly=True store=True string='Net To Pay'
  • amount_net_pay_residual Float
    compute='_compute_amount_withholding_tax' digits='Account' readonly=True store=True string='Residual Net To Pay'
  • withholding_tax Boolean
  • withholding_tax_amount Float
    compute='_compute_amount_withholding_tax' digits='Account' readonly=True store=True string='Withholding tax Amount'
  • withholding_tax_in_print Boolean
    default=True args: 'Show Withholding Tax In Print'
  • withholding_tax_line_ids One2many → account.invoice.withholding.tax
    copy=True readonly=True states={'draft': [('readonly', False)]} args: 'account.invoice.withholding.tax', 'invoice_id', 'Withholding Tax Lines'
Public methods (3)
  • action_post(self)
    Split amount withholding tax on account move lines
  • create_wt_statement(self)
    Create one statement for each withholding tax
  • get_wt_taxes_values(self)

New fields (5)
  • invoice_line_tax_wt_ids Many2many → withholding.tax
    column1='invoice_line_id' column2='withholding_tax_id' comodel_name='withholding.tax' default=_default_withholding_tax relation='account_invoice_line_tax_wt' string='W.T.'
  • withholding_tax_amount Float
  • withholding_tax_base Float
  • withholding_tax_generated_by_move_id Many2one → account.move
    readonly=True string='Withholding Tax generated from' args: 'account.move'
  • withholding_tax_id Many2one → withholding.tax
    string='Withholding Tax' args: 'withholding.tax'
Public methods (1)
  • remove_move_reconcile(self)

New fields (0)

No new fields.

Public methods (4)
  • create(self, vals_list)
    @api.model_create_multi
  • generate_wt_moves(self, is_wt_move, lines=None)
    @api.model
  • reconcile_exist_account_move(self, lines, rec_line_statement, amount_wt)
    @api.model
  • unlink(self)

New fields (0)

No new fields.

Public methods (1)
  • default_get(self, fields)
    @api.model
    Compute amount to pay proportionally to amount total - wt

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (17)
  • account_payable_id Many2one → account.account
    required=True string='Account Payable' args: 'account.account'
  • account_receivable_id Many2one → account.account
    required=True string='Account Receivable' args: 'account.account'
  • active Boolean
    default=True
  • base Float
    compute='_compute_get_rate'
  • certification Boolean
  • code Char
    required=True size=256
  • comment Text
    args: 'Text'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • daticassprev_tax_id Many2one → account.tax
    args: 'account.tax'
  • journal_id Many2one → account.journal
    default=<expr> help='Journal used at invoice payment to register withholding tax' required=True string='Withholding tax journal' args: 'account.journal'
  • name Char
    required=True size=256
  • payment_term Many2one → account.payment.term
    required=True args: 'account.payment.term', 'Payment Terms'
  • rate_ids One2many → withholding.tax.rate
    required=True args: 'withholding.tax.rate', 'withholding_tax_id', 'Rates'
  • sequence Integer
  • tax Float
    compute='_compute_get_rate' string='Tax %'
  • use_daticassaprev Boolean
    help='Setting this, while exporting e-invoice XML, data will be also added to DatiCassaPrevidenziale' args: 'DatiCassa export'
  • wt_types Selection
    default='ritenuta' required=True args: [('enasarco', 'Enasarco tax'), ('ritenuta', 'Withholding tax'), ('inps', 'Inps Tax'), ('enpam', 'Enpam Tax'), ('other', 'Other Tax')], 'Withholding tax type'
Public methods (4)
  • compute_tax(self, amount)
  • copy(self, default=None)
  • get_base_from_tax(self, wt_amount)
    100 * wt_amount 1 --------------- * ------- % tax Coeff
  • get_grouping_key(self, invoice_tax_val)
    Returns a string that will be used to group account.invoice.withholding.tax sharing the same properties

New fields (16)
  • account_move_id Many2one → account.move
    ondelete='cascade' args: 'account.move', 'Payment Move'
  • amount Float
  • company_id Many2one → res.company
    related='withholding_tax_id.company_id' string='Company' args: 'res.company'
  • credit_debit_line_id Many2one → account.move.line
    ondelete='cascade' args: 'account.move.line', 'Credit/Debit Line'
  • date Date
    args: 'Date Competence'
  • date_maturity Date
  • full_reconcile_id Many2one → account.full.reconcile
    compute='_compute_full_reconcile_id' string='WT reconciliation' args: 'account.full.reconcile'
  • move_line_id Many2one → account.move.line
    help='Used from trace WT from other parts' ondelete='cascade' args: 'account.move.line', 'Account Move line'
  • partner_id Many2one → res.partner
    args: 'res.partner', 'Partner'
  • payment_line_id Many2one → account.move.line
    ondelete='cascade' args: 'account.move.line', 'Payment Line'
  • reconcile_partial_id Many2one → account.partial.reconcile
    ondelete='cascade' args: 'account.partial.reconcile', 'Invoice reconciliation'
  • state Selection
    copy=False default='due' readonly=True args: [('due', 'Due'), ('paid', 'Paid')], 'Status'
  • statement_id Many2one → withholding.tax.statement
    args: 'withholding.tax.statement', 'Statement'
  • withholding_tax_id Many2one → withholding.tax
    args: 'withholding.tax', 'Withholding Tax'
  • wt_account_move_id Many2one → account.move
    ondelete='cascade' args: 'account.move', 'WT Move'
  • wt_type Selection
    related='statement_id.wt_type' store=True string='Type'
Public methods (6)
  • action_paid(self)
  • action_set_to_draft(self)
  • check_unlink(self)
  • generate_account_move(self)
    Creation of account move to increase credit/debit vs tax authority
  • name_get(self)
  • unlink(self)

New fields (6)
  • base Float
    default=1 string='Base Coeff.'
  • comment Text
    string='Text'
  • date_start Date
  • date_stop Date
  • tax Float
    string='Tax %'
  • withholding_tax_id Many2one → withholding.tax
    ondelete='cascade' readonly=True string='Withholding Tax' args: 'withholding.tax'
Public methods (0)

No public methods.

New fields (12)
  • amount Float
    compute='_compute_total' readonly=True store=True string='WT amount applied'
  • amount_paid Float
    compute='_compute_total' readonly=True store=True string='WT amount paid'
  • base Float
  • company_id Many2one → res.company
    related='withholding_tax_id.company_id' string='Company' args: 'res.company'
  • date Date
  • invoice_id Many2one → account.move
    ondelete='cascade' args: 'account.move', 'Invoice'
  • move_id Many2one → account.move
    ondelete='cascade' args: 'account.move', 'Account move'
  • move_ids One2many → withholding.tax.move
    args: 'withholding.tax.move', 'statement_id', 'Moves'
  • partner_id Many2one → res.partner
    args: 'res.partner', 'Partner'
  • tax Float
  • withholding_tax_id Many2one → withholding.tax
    string='Withholding Tax' args: 'withholding.tax'
  • wt_type Selection
    compute='_compute_type' store=True args: [('in', 'In'), ('out', 'Out')], 'Type'
Public methods (2)
  • get_wt_competence(self, amount_reconcile)
  • name_get(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…