ITA - Inversione contabile

l10n_it_reverse_charge
REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/16.0/l10n_it_reverse_charge
VERSION
VERSION 1.0.11
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Odoo Italia Network
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Odoo Italia Network
COMMITTERS
COMMITTERSeLBati, Weblate, OCA-git-bot, Simone Rubino, oca-ci, odooNextev, Simone, Borruso
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
**Italiano**

Modulo per gestire l'inversione contabile (reverse charge) nelle fatture
fornitore.

Il modulo permette di automatizzare le registrazioni contabili derivate
dalle fatture fornitori intra UE ed extra UE mediante l'inversione
contabile IVA. Inoltre è automatizzata la procedura di annullamento e
riapertura della fattura fornitore.

È inoltre possibile utilizzare la modalità "con autofattura fornitore
aggiuntiva". Questa modalità è usata tipicamente per i fornitori extra
UE per mostrare, nel registro IVA acquisti, una fattura intestata alla
propria azienda (autofattura passiva). L'autofattura passiva verrà poi
totalmente riconciliata con l'autofattura attiva, anch'essa intestata
alla propria azienda.

**English**

Module to handle reverse charge IVA in vendor bills.

The module allows you to automate the accounting entries derived from
invoices of intra-EU and extra-EU suppliers through the VAT reverse
charge. Furthermore, the vendor bill cancellation and reopening
procedure is automated.

It is also possible to use the "additional vendor self billing" mode.
This mode is typically used for non-EU suppliers to show, in the
purchases VAT journal, a vendor bill addressed to your own company
(self-bill). The self-bill will then be completely reconciled with the
self-invoice, which is also addressed to your own company.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_fiscal_position_form_rc account.fiscal.position.form.rc account.fiscal.position field Inherits account.view_account_position_form
view_invoice_line_form_rc view_invoice_line_form_rc account.move.line xpath Inherits account.view_move_line_form
view_invoice_supplier_form_rc account.invoice.supplier.form.rc account.move group Inherits account.view_move_form
view_rc_type_form account.rc.type.form account.rc.type form New
view_rc_type_tree account.rc.type.tree account.rc.type tree New
Models touched (5)

New fields (1)
  • rc_type_id Many2one → account.rc.type
    args: 'account.rc.type', 'RC Type'
Public methods (0)

No public methods.

New fields (5)
  • rc_original_purchase_invoice_ids One2many → account.move
    copy=False readonly=True string='Original purchase invoices' args: 'account.move', 'rc_self_purchase_invoice_id'
  • rc_payment_move_id Many2one → account.move
    comodel_name='account.move' copy=False readonly=True string='RC Payment Move'
  • rc_purchase_invoice_id Many2one → account.move
    comodel_name='account.move' copy=False readonly=True string='RC Purchase Invoice'
  • rc_self_invoice_id Many2one → account.move
    comodel_name='account.move' copy=False readonly=True string='RC Self Invoice'
  • rc_self_purchase_invoice_id Many2one → account.move
    comodel_name='account.move' copy=False readonly=True string='RC Self Purchase Invoice'
Public methods (18)
  • action_post(self)
  • button_cancel(self)
  • button_draft(self)
  • compute_rc_amount_tax_main_currency(self)
    Get Tax for all RC lines in Invoice's Company Currency. The result is converted and rounded based on Company Currency because this value is used for credit/debit.
  • generate_self_invoice(self)
  • generate_supplier_self_invoice(self)
  • get_tax_amount_added_for_rc(self)
  • rc_credit_line_vals(self, account, amount_ic, amount_cc)
  • rc_debit_line_vals(self, account, amount_ic, amount_cc)
  • rc_inv_line_vals(self, line)
  • rc_inv_vals(self, partner, rc_type, lines, currency)
  • rc_payment_credit_line_vals(self, line_to_reconcile)
    Values for the credit line of the RC Payment Move.
  • rc_payment_debit_line_vals(self, line_to_reconcile, account)
    Values for the debit line of the RC Payment Move.
  • rc_payment_vals(self, rc_type)
    Values for the RC Payment Move.
  • reconcile_rc_invoice(self)
  • reconcile_supplier_invoice(self)
  • remove_invoice_payment(self)
  • remove_rc_payment(self, delete_self_invoice=True)

New fields (2)
  • rc Boolean
    compute='_compute_rc_flag' readonly=False store=True args: 'RC'
  • rc_source_line_id Many2one → account.move.line
    readonly=True args: 'account.move.line'
Public methods (0)

No public methods.

New fields (13)
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • description Text
  • journal_id Many2one → account.journal
    help='Journal used on RC self invoices.' string='Self Invoice Journal' args: 'account.journal'
  • method Selection
    required=True selection=[('integration', 'VAT Integration'), ('selfinvoice', 'Self Invoice')]
  • name Char
    required=True
  • partner_id Many2one → res.partner
    help='Partner used on RC self invoices.' string='Self Invoice Partner' args: 'res.partner'
  • partner_type Selection
    selection=[('supplier', 'Supplier'), ('other', 'Other')] string='Self Invoice Partner Type'
  • payment_journal_id Many2one → account.journal
    help='Journal used to pay RC self invoices.' string='Self Invoice Payment Journal' args: 'account.journal'
  • self_invoice_text Text
    args: 'Text in Self Invoice'
  • supplier_journal_id Many2one → account.journal
    help='Journal used on RC supplier self invoices.' string='Supplier Self Invoice Journal' args: 'account.journal'
  • tax_ids One2many → account.rc.type.tax
    copy=False help='Example: 22_A_I_UE, 22_V_I_UE' string='Self Invoice Tax Mapping' args: 'account.rc.type.tax', 'rc_type_id'
  • transitory_account_id Many2one → account.account
    help='Transitory account used on self invoices.' string='Self Invoice Transitory Account' args: 'account.account'
  • with_supplier_self_invoice Boolean
    help='Flag this to enable the creation of an additional supplier self invoice. This is tipically used for extraUE suppliers, in order to show, in supplier register, an invoice to the specified partner (tipically, my company), instead of the extraUE partner' args: 'With additional supplier self invoice'
Public methods (1)
  • map_tax(self, taxes, key_tax_field, value_tax_field)
    Map each tax in `taxes`, based on the mapping defined by `self.tax_ids`. Raise an exception if a mapping is not found for some of `taxes`. :param key_tax_field: Field of the mapping lines to be used as key for searching the tax :param value_tax_field: Field of the mapping lines to be used as value for mapping the tax :param taxes: Taxes to be mapped

New fields (5)
  • company_id Many2one → res.company
    related='rc_type_id.company_id' store=True string='Company' args: 'res.company'
  • original_purchase_tax_id Many2one → account.tax
    required=False string='Original Purchase Tax' args: 'account.tax'
  • purchase_tax_id Many2one → account.tax
    required=True string='Purchase Tax' args: 'account.tax'
  • rc_type_id Many2one → account.rc.type
    ondelete='cascade' required=True string='RC type' args: 'account.rc.type'
  • sale_tax_id Many2one → account.tax
    required=True string='Sale Tax' args: 'account.tax'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/14.0/l10n_it_reverse_charge
VERSION
VERSION 1.2.12
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Odoo Italia Network
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Odoo Italia Network
COMMITTERS
COMMITTERSeLBati, tafaRU, OCA Transbot, Weblate, OCA-git-bot, sergiocorato, Simone Rubino, Alfredo Zamora, simonev, oca-ci, Giovanni, matteoopenf, George Smirnov, Alessandro Uffreduzzi, Marco Colombo, daniel-chionne, Alessio Renda, SoSylwe, gabriele-baldessari
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_fiscal_position_form_rc account.fiscal.position.form.rc account.fiscal.position field Inherits account.view_account_position_form
view_invoice_line_form_rc view_invoice_line_form_rc account.move.line xpath Inherits account.view_move_line_form
view_invoice_supplier_form_rc account.invoice.supplier.form.rc account.move group Inherits account.view_move_form
view_rc_type_form account.rc.type.form account.rc.type form New
view_rc_type_tree account.rc.type.tree account.rc.type tree New
Models touched (5)

New fields (1)
  • rc_type_id Many2one → account.rc.type
    args: 'account.rc.type', 'RC Type'
Public methods (0)

No public methods.

New fields (5)
  • rc_original_purchase_invoice_ids One2many → account.move
    copy=False readonly=True string='Original purchase invoices' args: 'account.move', 'rc_self_purchase_invoice_id'
  • rc_payment_move_id Many2one → account.move
    comodel_name='account.move' copy=False readonly=True string='RC Payment Move'
  • rc_purchase_invoice_id Many2one → account.move
    comodel_name='account.move' copy=False readonly=True string='RC Purchase Invoice'
  • rc_self_invoice_id Many2one → account.move
    comodel_name='account.move' copy=False readonly=True string='RC Self Invoice'
  • rc_self_purchase_invoice_id Many2one → account.move
    comodel_name='account.move' copy=False readonly=True string='RC Self Purchase Invoice'
Public methods (18)
  • action_post(self)
  • button_cancel(self)
  • button_draft(self)
  • compute_rc_amount_tax_main_currency(self)
    Get Tax for all RC lines in Invoice's Company Currency. The result is converted and rounded based on Company Currency because this value is used for credit/debit.
  • generate_self_invoice(self)
  • generate_supplier_self_invoice(self)
  • get_tax_amount_added_for_rc(self)
  • rc_credit_line_vals(self, account, amount)
  • rc_debit_line_vals(self, account, amount)
  • rc_inv_line_vals(self, line)
  • rc_inv_vals(self, partner, rc_type, lines, currency)
  • rc_payment_credit_line_vals(self, line_to_reconcile)
    Values for the credit line of the RC Payment Move.
  • rc_payment_debit_line_vals(self, line_to_reconcile, account)
    Values for the debit line of the RC Payment Move.
  • rc_payment_vals(self, rc_type)
    Values for the RC Payment Move.
  • reconcile_rc_invoice(self)
  • reconcile_supplier_invoice(self)
  • remove_invoice_payment(self)
  • remove_rc_payment(self, delete_self_invoice=True)

New fields (1)
  • rc Boolean
    compute='_compute_rc_flag' default=False readonly=False store=True args: 'RC'
Public methods (0)

No public methods.

New fields (13)
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • description Text
    args: 'Description'
  • journal_id Many2one → account.journal
    help='Journal used on RC self invoices.' string='Self Invoice Journal' args: 'account.journal'
  • method Selection
    required=True selection=[('integration', 'VAT Integration'), ('selfinvoice', 'Self Invoice')] string='Method'
  • name Char
    required=True args: 'Name'
  • partner_id Many2one → res.partner
    help='Partner used on RC self invoices.' string='Self Invoice Partner' args: 'res.partner'
  • partner_type Selection
    selection=[('supplier', 'Supplier'), ('other', 'Other')] string='Self Invoice Partner Type'
  • payment_journal_id Many2one → account.journal
    help='Journal used to pay RC self invoices.' string='Self Invoice Payment Journal' args: 'account.journal'
  • self_invoice_text Text
    args: 'Text in Self Invoice'
  • supplier_journal_id Many2one → account.journal
    help='Journal used on RC supplier self invoices.' string='Supplier Self Invoice Journal' args: 'account.journal'
  • tax_ids One2many → account.rc.type.tax
    copy=False help='Example: 22_A_I_UE, 22_V_I_UE' string='Self Invoice Tax Mapping' args: 'account.rc.type.tax', 'rc_type_id'
  • transitory_account_id Many2one → account.account
    help='Transitory account used on self invoices.' string='Self Invoice Transitory Account' args: 'account.account'
  • with_supplier_self_invoice Boolean
    help='Flag this to enable the creation of an additional supplier self invoice. This is tipically used for extraUE suppliers, in order to show, in supplier register, an invoice to the specified partner (tipically, my company), instead of the extraUE partner' args: 'With additional supplier self invoice'
Public methods (1)
  • map_tax(self, taxes, key_tax_field, value_tax_field)
    Map each tax in `taxes`, based on the mapping defined by `self.tax_ids`. Raise an exception if a mapping is not found for some of `taxes`. :param key_tax_field: Field of the mapping lines to be used as key for searching the tax :param value_tax_field: Field of the mapping lines to be used as value for mapping the tax :param taxes: Taxes to be mapped

New fields (5)
  • company_id Many2one → res.company
    related='rc_type_id.company_id' store=True string='Company' args: 'res.company'
  • original_purchase_tax_id Many2one → account.tax
    required=False string='Original Purchase Tax' args: 'account.tax'
  • purchase_tax_id Many2one → account.tax
    required=True string='Purchase Tax' args: 'account.tax'
  • rc_type_id Many2one → account.rc.type
    ondelete='cascade' required=True string='RC type' args: 'account.rc.type'
  • sale_tax_id Many2one → account.tax
    required=True string='Sale Tax' args: 'account.tax'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/12.0/l10n_it_reverse_charge
VERSION
VERSION 1.3.2
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Odoo Italia Network
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Odoo Italia Network
COMMITTERS
COMMITTERSeLBati, OCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi, sergiocorato, Simone Rubino, Lara Baggio, oca-ci, Marco Colombo
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy/tree/12.0/l10n_it_reverse_charge
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - account_cancel
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
view_fiscal_position_form_rc account.fiscal.position.form.rc account.fiscal.position field Inherits account.view_account_position_form
view_invoice_form_rc account.invoice.form.rc account.invoice field Inherits account.invoice_form
view_invoice_line_form_rc view_invoice_line_form_rc account.invoice.line xpath Inherits account.view_invoice_line_form
view_invoice_supplier_form_rc account.invoice.supplier.form.rc account.invoice field Inherits account.invoice_supplier_form
view_rc_type_form account.rc.type.form account.rc.type form New
view_rc_type_tree account.rc.type.tree account.rc.type tree New
Models touched (5)

New fields (1)
  • rc_type_id Many2one → account.rc.type
    args: 'account.rc.type', 'RC Type'
Public methods (0)

No public methods.

New fields (4)
  • rc_original_purchase_invoice_ids One2many → account.invoice
    copy=False readonly=True string='Original purchase invoices' args: 'account.invoice', 'rc_self_purchase_invoice_id'
  • rc_purchase_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Purchase Invoice'
  • rc_self_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Self Invoice'
  • rc_self_purchase_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Self Purchase Invoice'
Public methods (22)
  • action_cancel(self)
    @api.multi
  • action_invoice_draft(self)
    @api.multi
  • compute_rc_amount_tax(self)
  • generate_self_invoice(self)
  • generate_supplier_self_invoice(self)
  • get_inv_line_to_reconcile(self)
  • get_rc_inv_line_to_reconcile(self, invoice)
  • get_tax_amount_added_for_rc(self)
  • invoice_validate(self)
    @api.multi
  • onchange_rc_fiscal_position_id(self)
    @api.onchange('fiscal_position_id')
  • partially_reconcile_supplier_invoice(self, rc_payment)
  • rc_credit_line_vals(self, journal)
  • rc_debit_line_vals(self, amount=None)
  • rc_inv_line_vals(self, line)
  • rc_inv_vals(self, partner, account, rc_type, lines, currency)
  • rc_invoice_payment_vals(self, rc_type)
  • rc_payment_credit_line_vals(self, invoice)
  • rc_payment_debit_line_vals(self, invoice, journal)
  • rc_payment_vals(self, rc_type)
  • reconcile_rc_invoice(self)
  • reconcile_supplier_invoice(self)
  • remove_rc_payment(self)

New fields (1)
  • rc Boolean
    args: 'RC'
Public methods (1)
  • onchange_invoice_line_tax_id(self)
    @api.onchange('invoice_line_tax_ids')

New fields (13)
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • description Text
    args: 'Description'
  • journal_id Many2one → account.journal
    help='Journal used on RC self invoices.' string='Self Invoice Journal' args: 'account.journal'
  • method Selection
    required=True string='Method' args: (('integration', 'VAT Integration'), ('selfinvoice', 'Self Invoice'))
  • name Char
    required=True args: 'Name'
  • partner_id Many2one → res.partner
    help='Partner used on RC self invoices.' string='Self Invoice Partner' args: 'res.partner'
  • partner_type Selection
    string='Self Invoice Partner Type' args: (('supplier', 'Supplier'), ('other', 'Other'))
  • payment_journal_id Many2one → account.journal
    help='Journal used to pay RC self invoices.' string='Self Invoice Payment Journal' args: 'account.journal'
  • self_invoice_text Text
    args: 'Text in Self Invoice'
  • supplier_journal_id Many2one → account.journal
    help='Journal used on RC supplier self invoices.' string='Supplier Self Invoice Journal' args: 'account.journal'
  • tax_ids One2many → account.rc.type.tax
    copy=False help='Example: 22_A_I_UE, 22_V_I_UE' string='Self Invoice Tax Mapping' args: 'account.rc.type.tax', 'rc_type_id'
  • transitory_account_id Many2one → account.account
    help='Transitory account used on self invoices.' string='Self Invoice Transitory Account' args: 'account.account'
  • with_supplier_self_invoice Boolean
    help='Flag this to enable the creation of an additional supplier self invoice. This is tipically used for extraUE suppliers, in order to show, in supplier register, an invoice to the specified partner (tipically, my company), instead of the extraUE partner' args: 'With additional supplier self invoice'
Public methods (1)
  • map_tax(self, taxes, key_tax_field, value_tax_field)
    Map each tax in `taxes`, based on the mapping defined by `self.tax_ids`. Raise an exception if a mapping is not found for some of `taxes`. :param key_tax_field: Field of the mapping lines to be used as key for searching the tax :param value_tax_field: Field of the mapping lines to be used as value for mapping the tax :param taxes: Taxes to be mapped

New fields (5)
  • company_id Many2one → res.company
    related='rc_type_id.company_id' store=True string='Company' args: 'res.company'
  • original_purchase_tax_id Many2one → account.tax
    required=False string='Original Purchase Tax' args: 'account.tax'
  • purchase_tax_id Many2one → account.tax
    required=True string='Purchase Tax' args: 'account.tax'
  • rc_type_id Many2one → account.rc.type
    ondelete='cascade' required=True string='RC type' args: 'account.rc.type'
  • sale_tax_id Many2one → account.tax
    required=True string='Sale Tax' args: 'account.tax'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/11.0/l10n_it_reverse_charge
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Odoo Italia Network
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Odoo Italia Network
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi, Lara Baggio, alex_cam
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy/tree/11.0/l10n_it_reverse_charge
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - analytic
    - web_planner
    - portal
    - http_routing
    - account_cancel
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
view_fiscal_position_form_rc account.fiscal.position.form.rc account.fiscal.position field Inherits account.view_account_position_form
view_invoice_form_rc account.invoice.form.rc account.invoice field Inherits account.invoice_form
view_invoice_line_form_rc view_invoice_line_form_rc account.invoice.line xpath Inherits account.view_invoice_line_form
view_invoice_supplier_form_rc account.invoice.supplier.form.rc account.invoice field Inherits account.invoice_supplier_form
view_rc_type_form account.rc.type.form account.rc.type form New
view_rc_type_tree account.rc.type.tree account.rc.type tree New
Models touched (5)

New fields (1)
  • rc_type_id Many2one → account.rc.type
    args: 'account.rc.type', 'RC Type'
Public methods (0)

No public methods.

New fields (3)
  • rc_purchase_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Purchase Invoice'
  • rc_self_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Self Invoice'
  • rc_self_purchase_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Self Purchase Invoice'
Public methods (21)
  • action_cancel(self)
    @api.multi
  • action_invoice_draft(self)
    @api.multi
  • compute_rc_amount_tax(self)
  • generate_self_invoice(self)
  • generate_supplier_self_invoice(self)
  • get_inv_line_to_reconcile(self)
  • get_rc_inv_line_to_reconcile(self, invoice)
  • invoice_validate(self)
    @api.multi
  • onchange_rc_fiscal_position_id(self)
    @api.onchange('fiscal_position_id')
  • partially_reconcile_supplier_invoice(self, rc_payment)
  • rc_credit_line_vals(self, journal)
  • rc_debit_line_vals(self, amount=None)
  • rc_inv_line_vals(self, line)
  • rc_inv_vals(self, partner, account, rc_type, lines, currency)
  • rc_invoice_payment_vals(self, rc_type)
  • rc_payment_credit_line_vals(self, invoice)
  • rc_payment_debit_line_vals(self, invoice, journal)
  • rc_payment_vals(self, rc_type)
  • reconcile_rc_invoice(self)
  • reconcile_supplier_invoice(self)
  • remove_rc_payment(self)

New fields (1)
  • rc Boolean
    args: 'RC'
Public methods (1)
  • onchange_invoice_line_tax_id(self)
    @api.onchange('invoice_line_tax_ids')

New fields (12)
  • description Text
    args: 'Description'
  • journal_id Many2one → account.journal
    help='Journal used on RC self invoices.' string='Self Invoice Journal' args: 'account.journal'
  • method Selection
    required=True string='Method' args: (('integration', 'VAT Integration'), ('selfinvoice', 'Self Invoice'))
  • name Char
    required=True args: 'Name'
  • partner_id Many2one → res.partner
    help='Partner used on RC self invoices.' string='Self Invoice Partner' args: 'res.partner'
  • partner_type Selection
    string='Self Invoice Partner Type' args: (('supplier', 'Supplier'), ('other', 'Other'))
  • payment_journal_id Many2one → account.journal
    help='Journal used to pay RC self invoices.' string='Self Invoice Payment Journal' args: 'account.journal'
  • self_invoice_text Text
    help='Reference/Description in Customer Invoice' args: 'Text in Self Invoice'
  • supplier_journal_id Many2one → account.journal
    help='Journal used on RC supplier self invoices.' string='Supplier Self Invoice Journal' args: 'account.journal'
  • tax_ids One2many → account.rc.type.tax
    copy=False help='Example: 22_A_I_UE, 22_V_I_UE' string='Self Invoice Tax Mapping' args: 'account.rc.type.tax', 'rc_type_id'
  • transitory_account_id Many2one → account.account
    help='Transitory account used on self invoices.' string='Self Invoice Transitory Account' args: 'account.account'
  • with_supplier_self_invoice Boolean
    help='Flag this to enable the creation of an additional supplier self invoice. This is tipically used for extraUE suppliers, in order to show, in supplier register, an invoice to the specified partner (tipically, my company), instead of the extraUE partner' args: 'With additional supplier self invoice'
Public methods (0)

No public methods.

New fields (3)
  • purchase_tax_id Many2one → account.tax
    required=True string='Purchase Tax' args: 'account.tax'
  • rc_type_id Many2one → account.rc.type
    ondelete='cascade' required=True string='RC type' args: 'account.rc.type'
  • sale_tax_id Many2one → account.tax
    required=True string='Sale Tax' args: 'account.tax'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/10.0/l10n_it_reverse_charge
VERSION
VERSION 1.3.0
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Odoo Italia Network
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Odoo Italia Network
COMMITTERS
COMMITTERSLorenzo Battistini, eLBati, GitHub, tafaRU, Alex Comba, OCA Transbot, oca-travis, OCA-git-bot, SimoRubi, Simone Rubino
WEBSITE
WEBSITEhttps://www.odoo-italia.net
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_accountant
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - report
    - analytic
    - web_planner
    - account_cancel
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
view_fiscal_position_form_rc account.fiscal.position.form.rc account.fiscal.position field Inherits account.view_account_position_form
view_invoice_form_rc account.invoice.form.rc account.invoice field Inherits account.invoice_form
view_invoice_line_form_rc view_invoice_line_form_rc account.invoice.line xpath Inherits account.view_invoice_line_form
view_invoice_supplier_form_rc account.invoice.supplier.form.rc account.invoice field Inherits account.invoice_supplier_form
view_rc_type_form account.rc.type.form account.rc.type form New
view_rc_type_tree account.rc.type.tree account.rc.type tree New
Models touched (5)

New fields (1)
  • rc_type_id Many2one → account.rc.type
    args: 'account.rc.type', 'RC Type'
Public methods (0)

No public methods.

New fields (3)
  • rc_purchase_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Purchase Invoice'
  • rc_self_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Self Invoice'
  • rc_self_purchase_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Self Purchase Invoice'
Public methods (22)
  • action_cancel(self)
    @api.multi
  • action_invoice_draft(self)
    @api.multi
  • compute_rc_amount_tax(self)
  • generate_self_invoice(self)
  • generate_supplier_self_invoice(self)
  • get_inv_line_to_reconcile(self)
  • get_rc_inv_line_to_reconcile(self, invoice)
  • get_tax_amount_added_for_rc(self)
  • invoice_validate(self)
    @api.multi
  • onchange_rc_fiscal_position_id(self)
    @api.onchange('fiscal_position_id')
  • partially_reconcile_supplier_invoice(self, rc_payment)
  • rc_credit_line_vals(self, journal)
  • rc_debit_line_vals(self, amount=None)
  • rc_inv_line_vals(self, line)
  • rc_inv_vals(self, partner, account, rc_type, lines, currency)
  • rc_invoice_payment_vals(self, rc_type)
  • rc_payment_credit_line_vals(self, invoice)
  • rc_payment_debit_line_vals(self, invoice, journal)
  • rc_payment_vals(self, rc_type)
  • reconcile_rc_invoice(self)
  • reconcile_supplier_invoice(self)
  • remove_rc_payment(self)

New fields (1)
  • rc Boolean
    args: 'RC'
Public methods (1)
  • onchange_invoice_line_tax_id(self)
    @api.onchange('invoice_line_tax_ids')

New fields (13)
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • description Text
    args: 'Description'
  • journal_id Many2one → account.journal
    help='Journal used on RC self invoices.' string='Self Invoice Journal' args: 'account.journal'
  • method Selection
    required=True string='Method' args: (('integration', 'VAT Integration'), ('selfinvoice', 'Self Invoice'))
  • name Char
    required=True args: 'Name'
  • partner_id Many2one → res.partner
    help='Partner used on RC self invoices.' string='Self Invoice Partner' args: 'res.partner'
  • partner_type Selection
    string='Self Invoice Partner Type' args: (('supplier', 'Supplier'), ('other', 'Other'))
  • payment_journal_id Many2one → account.journal
    help='Journal used to pay RC self invoices.' string='Self Invoice Payment Journal' args: 'account.journal'
  • self_invoice_text Text
    args: 'Text in Self Invoice'
  • supplier_journal_id Many2one → account.journal
    help='Journal used on RC supplier self invoices.' string='Supplier Self Invoice Journal' args: 'account.journal'
  • tax_ids One2many → account.rc.type.tax
    copy=False help='Example: 22_A_I_UE, 22_V_I_UE' string='Self Invoice Tax Mapping' args: 'account.rc.type.tax', 'rc_type_id'
  • transitory_account_id Many2one → account.account
    help='Transitory account used on self invoices.' string='Self Invoice Transitory Account' args: 'account.account'
  • with_supplier_self_invoice Boolean
    help='Flag this to enable the creation of an additional supplier self invoice. This is tipically used for extraUE suppliers, in order to show, in supplier register, an invoice to the specified partner (tipically, my company), instead of the extraUE partner' args: 'With additional supplier self invoice'
Public methods (1)
  • map_tax(self, taxes, key_tax_field, value_tax_field)
    Map each tax in `taxes`, based on the mapping defined by `self.tax_ids`. Raise an exception if a mapping is not found for some of `taxes`. :param key_tax_field: Field of the mapping lines to be used as key for searching the tax :param value_tax_field: Field of the mapping lines to be used as value for mapping the tax :param taxes: Taxes to be mapped

New fields (5)
  • company_id Many2one → res.company
    related='rc_type_id.company_id' store=True string='Company' args: 'res.company'
  • original_purchase_tax_id Many2one → account.tax
    required=False string='Original Purchase Tax' args: 'account.tax'
  • purchase_tax_id Many2one → account.tax
    required=True string='Purchase Tax' args: 'account.tax'
  • rc_type_id Many2one → account.rc.type
    ondelete='cascade' required=True string='RC type' args: 'account.rc.type'
  • sale_tax_id Many2one → account.tax
    required=False string='Sale Tax' args: 'account.tax'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/8.0/l10n_it_reverse_charge
VERSION
VERSION 2.0.1
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Abstract
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Abstract
COMMITTERS
COMMITTERSeLBati, Alex Comba, OCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi
WEBSITE
WEBSITEhttps://www.odoo-italia.net
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-italy:
    - account_invoice_entry_date
odoo/odoo:
    - account_accountant
    - account_voucher
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - report
    - analytic
    - board
    - edi
    - email_template
    - account_cancel
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
view_fiscal_position_form_rc account.fiscal.position.form.rc account.fiscal.position field Inherits account.view_account_position_form
view_invoice_form_rc account.invoice.form.rc account.invoice xpath Inherits account.invoice_form
view_invoice_line_form_rc view_invoice_line_form_rc account.invoice.line xpath Inherits account.view_invoice_line_form
view_invoice_supplier_form_rc account.invoice.supplier.form.rc account.invoice xpath Inherits account.invoice_supplier_form
view_rc_type_form account.rc.type.form account.rc.type form New
view_rc_type_tree account.rc.type.tree account.rc.type tree New
Models touched (5)

New fields (1)
  • rc_type_id Many2one → account.rc.type
    args: 'account.rc.type', 'RC Type'
Public methods (0)

No public methods.

New fields (3)
  • rc_purchase_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Purchase Invoice'
  • rc_self_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Self Invoice'
  • rc_self_purchase_invoice_id Many2one → account.invoice
    comodel_name='account.invoice' copy=False readonly=True string='RC Self Purchase Invoice'
Public methods (19)
  • action_cancel(self)
    @api.multi
  • action_cancel_draft(self)
    @api.multi
  • generate_self_invoice(self)
  • generate_supplier_self_invoice(self)
  • get_inv_line_to_reconcile(self)
  • get_rc_inv_line_to_reconcile(self, invoice)
  • invoice_validate(self)
    @api.multi
  • partially_reconcile_supplier_invoice(self)
  • rc_credit_line_vals(self, journal, move)
  • rc_debit_line_vals(self, move, amount=None)
  • rc_inv_line_vals(self, line)
  • rc_inv_vals(self, partner, account, rc_type, lines)
  • rc_invoice_payment_vals(self, rc_type)
  • rc_payment_credit_line_vals(self, invoice, move)
  • rc_payment_debit_line_vals(self, invoice, journal, move)
  • rc_payment_vals(self, rc_type)
  • reconcile_rc_invoice(self, rc_payment)
  • reconcile_supplier_invoice(self)
  • remove_rc_payment(self)

New fields (1)
  • rc Boolean
    args: 'RC'
Public methods (1)
  • onchange_invoice_line_tax_id(self)
    @api.onchange('invoice_line_tax_id')

New fields (12)
  • description Text
    args: 'Description'
  • journal_id Many2one → account.journal
    help='Journal used on RC self invoices.' string='Self Invoice Journal' args: 'account.journal'
  • method Selection
    required=True string='Method' args: (('integration', 'VAT Integration'), ('selfinvoice', 'Self Invoice'))
  • name Char
    required=True args: 'Name'
  • partner_id Many2one → res.partner
    help='Partner used on RC self invoices.' string='Self Invoice Partner' args: 'res.partner'
  • partner_type Selection
    string='Self Invoice Partner Type' args: (('supplier', 'Supplier'), ('other', 'Other'))
  • payment_journal_id Many2one → account.journal
    help='Journal used to pay RC self invoices.' string='Self Invoice Payment Journal' args: 'account.journal'
  • self_invoice_text Text
    args: 'Text in Self Invoice'
  • supplier_journal_id Many2one → account.journal
    help='Journal used on RC supplier self invoices.' string='Supplier Self Invoice Journal' args: 'account.journal'
  • tax_ids One2many → account.rc.type.tax
    copy=False help='Example: 22_A_I_UE, 22_V_I_UE' string='Self Invoice Tax Mapping' args: 'account.rc.type.tax', 'rc_type_id'
  • transitory_account_id Many2one → account.account
    help='Transitory account used on self invoices.' string='Self Invoice Transitory Account' args: 'account.account'
  • with_supplier_self_invoice Boolean
    help='Flag this to enable the creation of an additional supplier self invoice. This is tipically used for extraUE suppliers, in order to show, in supplier register, an invoice to the specified partner (tipically, my company), instead of the extraUE partner' args: 'With additional supplier self invoice'
Public methods (0)

No public methods.

New fields (3)
  • purchase_tax_id Many2one → account.tax
    required=True string='Purchase Tax' args: 'account.tax'
  • rc_type_id Many2one → account.rc.type
    ondelete='cascade' required=True string='RC type' args: 'account.rc.type'
  • sale_tax_id Many2one → account.tax
    required=True string='Sale Tax' args: 'account.tax'
Public methods (0)

No public methods.