France VAT Return

l10n_fr_account_vat_return
REPOSITORY
REPOSITORYOCA/l10n-france
GIT
GIThttps://github.com/OCA/l10n-france.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-france/tree/16.0/l10n_fr_account_vat_return
VERSION
VERSION 8.1.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Weblate, OCA-git-bot, oca-ci, Boris Gallet
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-france
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
OCA/intrastat-extrastat:
    - intrastat_base
OCA/l10n-france:
    - l10n_fr_oca
odoo/odoo:
    - l10n_fr
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pypdf>=3.1.0
xlsxwriter
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (27)
XML IDNameModelTypeStatus
l10n_fr_account_vat_box_form l10n.fr.account.vat.box form New
l10n_fr_account_vat_box_search l10n.fr.account.vat.box search New
l10n_fr_account_vat_box_tree l10n.fr.account.vat.box tree New
l10n_fr_account_vat_return_autoliq_line_form l10n.fr.account.vat.return.autoliq.line form New
l10n_fr_account_vat_return_autoliq_line_tree l10n.fr.account.vat.return.autoliq.line tree New
l10n_fr_account_vat_return_form l10n.fr.account.vat.return form New
l10n_fr_account_vat_return_line_form l10n.fr.account.vat.return.line form New
l10n_fr_account_vat_return_line_log_form l10n.fr.account.vat.return.line.log form New
l10n_fr_account_vat_return_line_log_tree l10n.fr.account.vat.return.line.log tree New
l10n_fr_account_vat_return_line_tree l10n.fr.account.vat.return.line tree New
l10n_fr_account_vat_return_reimbursement_form l10n.fr.account.vat.return.reimbursement form New
l10n_fr_account_vat_return_search l10n.fr.account.vat.return search New
l10n_fr_account_vat_return_tree l10n.fr.account.vat.return tree New
l10n_fr_account_vat_return_unpaid_vat_on_payment_manual_line_form l10n.fr.account.vat.return.unpaid.vat.on.payment.manual.line form New
l10n_fr_account_vat_return_unpaid_vat_on_payment_manual_line_tree l10n.fr.account.vat.return.unpaid.vat.on.payment.manual.line tree New
l10n_fr_vat_autoliq_manual_form l10n.fr.vat.autoliq.manual form New
l10n_fr_vat_draft_move_option_form l10n.fr.vat.draft.move.option form New
l10n_fr_vat_exigibility_update_form l10n.fr.vat.exigibility.update form New
res_config_settings_view_form res.config.settings xpath Inherits account.res_config_settings_view_form
view_account_position_form account.fiscal.position field Inherits account.view_account_position_form
view_account_position_template_form intrastat.account.fiscal.position.template.form account.fiscal.position.template field Inherits account.view_account_position_template_form
view_account_position_template_tree intrastat.account.fiscal.position.template.tree account.fiscal.position.template field Inherits account.view_account_position_template_tree
view_account_position_tree account.fiscal.position field Inherits account.view_account_position_tree
view_invoice_tree account.move field Inherits account.view_invoice_tree
view_move_form account.move field Inherits account.view_move_form
view_tax_form account.tax xpath Inherits account.view_tax_form
view_tax_tree account.tax field Inherits account.view_tax_tree
Models touched (20)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • fr_vat_type Selection
    help='This field is used by the French VAT return module' string='Type' args: '_get_fr_vat_type_sel'
Public methods (0)

No public methods.

New fields (1)
  • fr_vat_type Selection
    string='Type' args: '_get_fr_vat_type_sel'
Public methods (0)

No public methods.

New fields (2)
  • fiscal_position_fr_vat_type Selection
    related='fiscal_position_id.fr_vat_type' store=True string='Fiscal Position Type'
  • out_vat_on_payment Boolean
    compute='_compute_out_vat_on_payment' store=True string='VAT on Payment for Customer Invoices'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • fr_vat_autoliquidation Selection
    compute='_compute_fr_vat_autoliquidation' store=True string='Autoliquidation' args: [('total', 'Total'), ('partial', 'Partial')]
Public methods (0)

No public methods.

New fields (26)
  • account_code Char
    string='Generic Account Code'
  • account_id Many2one → account.account
    company_dependent=True domain="[('deprecated', '=', False), ('company_id', '=', current_company_id)]" help='If not set, Odoo will use the first account that starts with the Generic Account Code. If set, Odoo will ignore the Generic Account Code and use this account.' args: 'account.account'
  • accounting_method Selection
    readonly=True args: [('debit', 'Debit'), ('credit', 'Credit')]
  • active Boolean
    default=True
  • code Char
    readonly=True
  • display_type Selection
    readonly=True args: [('section', 'Section'), ('sub_section', 'Sub-Section')]
  • due_vat_base_box_id Many2one → l10n.fr.account.vat.box
    readonly=True string='Due VAT Base' args: 'l10n.fr.account.vat.box'
  • due_vat_rate Integer
    readonly=True string='VAT Rate x100'
  • edi_code Char
    readonly=True string='EDI Code'
  • edi_type Selection
    readonly=True string='EDI Type' args: [('MOA', 'Monetary (MOA)'), ('CCI_TBX', 'Boolean (CCI/TBX)'), ('PCD', 'Percentage (PCD)'), ('QTY', 'Quantity (QTY)'), ('FTX', 'Char (FTX)'), ('NAD', 'Name and address (NAD)')]
  • form_code Selection
    readonly=True required=True string='Form' args: [('3310CA3', '3310-CA3'), ('3310A', '3310-A')]
  • full_label Char
    readonly=True
  • manual Boolean
    readonly=True
  • meaning_id Char
    readonly=True string='Meaningful ID'
  • name Char
    required=True string='Label'
  • negative Boolean
    readonly=True
  • nref_code Char
    readonly=True string='N-REF Code'
  • print_page Selection
    readonly=True string='Page' args: [('1', 'First Page'), ('2', 'Second Page'), ('3', 'Third Page')]
  • print_x Integer
    readonly=True args: 'Print Position X'
  • print_y Integer
    readonly=True args: 'Print Position Y'
  • push_box_2_id Many2one → l10n.fr.account.vat.box
    readonly=True args: 'l10n.fr.account.vat.box'
  • push_box_id Many2one → l10n.fr.account.vat.box
    readonly=True args: 'l10n.fr.account.vat.box'
  • push_rate Float
    digits=(16, PUSH_RATE_PRECISION) readonly=True
  • push_rate_2 Float
    digits=(16, PUSH_RATE_PRECISION) readonly=True
  • push_sequence Integer
    readonly=True
  • sequence Integer
    default=10 readonly=True
Public methods (2)
  • display_type_change(self)
    @api.onchange('display_type')
  • name_get(self)
    @api.depends('code', 'name', 'display_type')

New fields (37)
  • autoliq_line_ids One2many → l10n.fr.account.vat.return.autoliq.line
    readonly=True string='Autoliquidation Lines' args: 'l10n.fr.account.vat.return.autoliq.line', 'parent_id'
  • autoliq_manual_done Boolean
  • bank_account_id Many2one → res.partner.bank
    check_company=True compute='_compute_bank_account_id' domain="[('partner_id','=', company_partner_id), '|', ('company_id', '=', False), ('company_id', '=', company_id)]" ondelete='restrict' precompute=True readonly=False states={'sent': [('readonly', True)], 'posted': [('readonly', True)]} store=True string='Company Bank Account' args: 'res.partner.bank'
  • ca3_attachment_datas Binary
    related='ca3_attachment_id.datas' string='CA3 File'
  • ca3_attachment_id Many2one → ir.attachment
    string='CA3 Attachment' args: 'ir.attachment'
  • ca3_attachment_name Char
    related='ca3_attachment_id.name' string='CA3 Filename'
  • comment_dgfip Text
    states={'sent': [('readonly', True)], 'posted': [('readonly', True)]} string='Comment for DGFiP'
  • company_currency_id Many2one
    related='company_id.currency_id' store=True string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> ondelete='cascade' readonly=True required=True states={'manual': [('readonly', False)]} tracking=True args: 'res.company'
  • company_partner_id Many2one
    related='company_id.partner_id' string='Company Partner'
  • deductible_vat_zip_file_datas Binary
    related='deductible_vat_zip_file_id.datas' string='Deductible VAT ZIP File'
  • deductible_vat_zip_file_id Many2one → ir.attachment
    string='Deductible VAT ZIP Attachment' args: 'ir.attachment'
  • deductible_vat_zip_file_name Char
    related='deductible_vat_zip_file_id.name' string='Deductible VAT ZIP Filename'
  • deductible_vat_zip_other_threshold Monetary
    currency_field='company_currency_id' default=500 help='When generating the deductible VAT justification ZIP file, do not provide a copy of the non-asset invoice whose total untaxed amount in company currency is under that threshold.' string='Threshold to provide non-asset invoices in ZIP' tracking=True
  • end_date Date
    compute='_compute_name_end_date' store=True
  • gateway_attachment_id Many2one → ir.attachment
    readonly=True string='Data Sent via the Gateway' args: 'ir.attachment'
  • gateway_available Boolean
    compute='_compute_gateway_available'
  • gateway_test_mode Boolean
    compute='_compute_gateway_test_mode'
  • ignore_draft_moves Boolean
  • line_ids One2many → l10n.fr.account.vat.return.line
    readonly=True states={'manual': [('readonly', False)]} string='Return Lines' args: 'l10n.fr.account.vat.return.line', 'parent_id'
  • move_id Many2one → account.move
    check_company=True readonly=True string='Journal Entry' tracking=True args: 'account.move'
  • name Char
    compute='_compute_name_end_date' store=True string='Period'
  • reimbursement_comment_dgfip Text
    states={'sent': [('readonly', True)], 'posted': [('readonly', True)]} string='Reimbursement Comment for DGFiP'
  • reimbursement_end_date Date
    readonly=True string='Event Date'
  • reimbursement_first_creation_date Date
    readonly=True string='Creation Date'
  • reimbursement_min_amount Integer
    compute='_compute_name_end_date' store=True
  • reimbursement_show_button Boolean
    compute='_compute_reimbursement_show_button' string='Show VAT Credit Reimbursement Button'
  • reimbursement_type Selection
    readonly=True args: '_reimbursement_type_selection'
  • send_gateway Selection
    compute='_compute_send_gateway' precompute=True readonly=False store=True args: '_send_gateway_selection'
  • sent_datetime Datetime
    readonly=True string='Sent Date'
  • start_date Date
    compute='_compute_start_date' precompute=True readonly=True required=True states={'manual': [('readonly', False)]} store=True tracking=True
  • state Selection
    default='manual' readonly=True required=True tracking=True args: [('manual', 'Manual Lines'), ('auto', 'Automatic Lines'), ('sent', 'Sent'), ('posted', 'Posted')]
  • unpaid_vat_on_payment_manual_line_filter_account_ids Many2many → account.account
    compute='_compute_unpaid_vat_on_payment_manual_line_filter_account_ids' precompute=True store=True args: 'account.account'
  • unpaid_vat_on_payment_manual_line_ids One2many → l10n.fr.account.vat.return.unpaid.vat.on.payment.manual.line
    readonly=True states={'manual': [('readonly', False)]} args: 'l10n.fr.account.vat.return.unpaid.vat.on.payment.manual.line', 'parent_id'
  • vat_credit_total Integer
    readonly=True string='VAT Credit Total'
  • vat_on_payment_option Selection
    compute='_compute_vat_on_payment_option' store=True string='VAT on Payment Option' args: [('native', 'Native Odoo'), ('non_native', 'Non-native (recommended)')]
  • vat_periodicity Selection
    compute='_compute_start_date' precompute=True readonly=True required=True states={'manual': [('readonly', False)]} store=True string='VAT Periodicity' tracking=True args: [('1', 'Monthly'), ('3', 'Quarterly'), ('12', 'Yearly')]
Public methods (14)
  • auto2sent_manual(self)
  • auto2sent_via_gateway(self)
  • back_to_manual(self)
  • create_reimbursement_line(self, amount)
  • generate_ca3_attachment(self)
  • generate_zip_deductible_vat(self)
  • manual2auto(self)
  • name_get(self)
    @api.depends('name', 'vat_periodicity')
  • print_ca3(self)
  • reconcile_account_move_button(self)
  • remove_credit_vat_reimbursement(self)
  • sent2manual(self)
  • sent2posted(self)
  • unlink(self)

New fields (17)
  • account_id Many2one
    related='move_line_id.account_id' store=True
  • autoliq_type Selection
    required=True string='Type' args: [('intracom', 'Intracom'), ('extracom', 'Extracom')]
  • company_currency_id Many2one
    related='move_line_id.company_currency_id' store=True
  • company_id Many2one
    related='parent_id.company_id' store=True
  • compute_type Selection
    required=True args: [('auto', 'Auto'), ('manual', 'Manual')]
  • credit Monetary
    currency_field='company_currency_id' related='move_line_id.credit' store=True
  • date Date
    related='move_id.date' store=True
  • debit Monetary
    currency_field='company_currency_id' related='move_line_id.debit' store=True
  • journal_id Many2one
    related='move_id.journal_id' store=True
  • label Char
    related='move_line_id.name' store=True
  • move_id Many2one
    related='move_line_id.move_id' store=True string='Journal Entry'
  • move_line_id Many2one → account.move.line
    check_company=True string='Journal Item' args: 'account.move.line'
  • parent_id Many2one → l10n.fr.account.vat.return
    ondelete='cascade' string='VAT Return' args: 'l10n.fr.account.vat.return'
  • partner_id Many2one
    related='move_line_id.partner_id' store=True
  • product_ratio Float
    digits=(16, 2)
  • ref Char
    related='move_id.ref' store=True
  • vat_rate_int Integer
    help='VAT rate x 100' required=True string='VAT Rate'
Public methods (0)

No public methods.

New fields (26)
  • analytic_precision Integer
    default=<expr>
  • box_accounting_method Selection
    related='box_id.accounting_method' store=True
  • box_code Char
    related='box_id.code' store=True
  • box_display_type Selection
    related='box_id.display_type' store=True
  • box_edi_code Char
    related='box_id.edi_code' store=True
  • box_edi_type Selection
    related='box_id.edi_type' store=True
  • box_form_code Selection
    related='box_id.form_code' store=True
  • box_id Many2one → l10n.fr.account.vat.box
    ondelete='restrict' required=True string='Box' args: 'l10n.fr.account.vat.box'
  • box_manual Boolean
    related='box_id.manual' store=True
  • box_meaning_id Char
    related='box_id.meaning_id' store=True
  • box_name Char
    related='box_id.name' store=True
  • box_negative Boolean
    related='box_id.negative' store=True
  • box_push_box_id Many2one
    related='box_id.push_box_id' store=True
  • box_push_sequence Integer
    related='box_id.push_sequence' store=True
  • box_sequence Integer
    related='box_id.sequence' store=True
  • company_id Many2one
    related='parent_id.company_id' store=True
  • log_ids One2many → l10n.fr.account.vat.return.line.log
    readonly=True string='Computation Details' args: 'l10n.fr.account.vat.return.line.log', 'parent_id'
  • manual_account_id Many2one → account.account
    check_company=True compute='_compute_manual_account_id' domain="[('company_id', '=', company_id), ('deprecated', '=', False)]" precompute=True readonly=False store=True string='Account' args: 'account.account'
  • manual_analytic_distribution Json
    compute='_compute_manual_account_id' precompute=True readonly=False store=True string='Analytic'
  • parent_id Many2one → l10n.fr.account.vat.return
    ondelete='cascade' string='VAT Return' args: 'l10n.fr.account.vat.return'
  • state Selection
    related='parent_id.state' store=True
  • value Integer
    compute='_compute_value' store=True
  • value_bool Boolean
    string='Value (Y/N)'
  • value_char Char
    string='Text'
  • value_float Float
    compute='_compute_value' store=True string='Value Before Rounding'
  • value_manual_int Integer
    string='Integer Value'
Public methods (0)

No public methods.

New fields (9)
  • account_id Many2one → account.account
    ondelete='restrict' readonly=True string='Account' args: 'account.account'
  • amount Float
    readonly=True
  • analytic_distribution Json
    readonly=True string='Analytic'
  • analytic_precision Integer
    default=<expr>
  • compute_type Selection
    readonly=True required=True args: [('period_balance', 'Period Balance'), ('period_balance_sale', 'Period Balance in Sale Journal'), ('balance', 'Ending Balance'), ('balance_ratio', 'Ending Balance x Ratio'), ('unpaid_vat_on_payment', 'Unpaid VAT on Payment'), ('base_from_balance', 'Base from Ending Balance'), ('base_from_balance_ratio', 'Base from Ending Balance x Ratio'), ('base_from_unpaid_vat_on_payment', 'Base from Unpaid VAT on Payment'), ('computed_vat_amount', 'Computed VAT Amount'), ('rate', 'VAT Amount / VAT Rate'), ('box', 'Box Value'), ('manual', 'Manual'), ('adjustment', 'Adjustment')]
  • note Char
  • origin_move_id Many2one → account.move
    readonly=True string='Source Invoice' args: 'account.move'
  • parent_id Many2one → l10n.fr.account.vat.return.line
    ondelete='cascade' readonly=True string='VAT Return Line' args: 'l10n.fr.account.vat.return.line'
  • parent_parent_id Many2one
    related='parent_id.parent_id' store=True
Public methods (0)

No public methods.

New fields (9)
  • amount Integer
    required=True string='Reimbursement Amount'
  • company_currency_id Many2one
    related='return_id.company_id.currency_id'
  • end_date Date
    string='Event Date'
  • first_creation_date Date
    string='Creation Date'
  • min_amount Integer
    related='return_id.reimbursement_min_amount'
  • reimbursement_comment_dgfip Text
    string='Comment for DGFIP'
  • reimbursement_type Selection
    required=True args: '_reimbursement_type_selection'
  • return_id Many2one → l10n.fr.account.vat.return
    readonly=True required=True string='VAT Return' args: 'l10n.fr.account.vat.return'
  • vat_credit_total Integer
    related='return_id.vat_credit_total'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • validate(self)

New fields (6)
  • account_id Many2one → account.account
    domain="[('id', 'in', parent.unpaid_vat_on_payment_manual_line_filter_account_ids)]" required=True string='VAT Account' args: 'account.account'
  • amount Monetary
    currency_field='company_currency_id' help='Enter the unpaid VAT on payment amount that Odoo cannot compute automatically because it is not linked to an invoice in Odoo (but related to the starting balance for example). This feature is useful in the first months of use of Odoo accounting, when there are unpaid VAT on payment invoices in the previous fiscal year and the accounting of the previous fiscal year was not handled in Odoo.' required=True string='VAT Amount'
  • company_currency_id Many2one
    related='parent_id.company_id.currency_id' store=True
  • company_id Many2one
    related='parent_id.company_id' store=True
  • note Char
  • parent_id Many2one → l10n.fr.account.vat.return
    ondelete='cascade' string='VAT Return' args: 'l10n.fr.account.vat.return'
Public methods (0)

No public methods.

New fields (2)
  • fr_vat_return_id Many2one → l10n.fr.account.vat.return
    readonly=True required=True string='FR VAT Return' args: 'l10n.fr.account.vat.return'
  • line_ids One2many → l10n.fr.vat.autoliq.manual.line
    args: 'l10n.fr.vat.autoliq.manual.line', 'parent_id'
Public methods (1)
  • run(self)

New fields (15)
  • account_id Many2one
    related='move_line_id.account_id'
  • autoliq_line_id Many2one → l10n.fr.account.vat.return.autoliq.line
    required=True args: 'l10n.fr.account.vat.return.autoliq.line'
  • autoliq_type Selection
    related='autoliq_line_id.autoliq_type'
  • company_currency_id Many2one
    related='move_line_id.company_currency_id'
  • credit Monetary
    currency_field='company_currency_id' related='move_line_id.credit'
  • date Date
    related='move_line_id.date'
  • debit Monetary
    currency_field='company_currency_id' related='move_line_id.debit'
  • journal_id Many2one
    related='move_line_id.journal_id'
  • label Char
    related='move_line_id.name'
  • move_line_id Many2one
    related='autoliq_line_id.move_line_id'
  • option Selection
    string='Product or Service' args: [('product', 'Product'), ('service', 'Service'), ('mix', 'Mix')]
  • parent_id Many2one → l10n.fr.vat.autoliq.manual
    ondelete='cascade' args: 'l10n.fr.vat.autoliq.manual'
  • partner_id Many2one
    related='move_line_id.partner_id'
  • product_ratio Float
    digits=(16, 2) string='Product Ratio (%)'
  • ref Char
    related='move_line_id.move_id.ref'
Public methods (0)

No public methods.

New fields (4)
  • draft_move_count Integer
    readonly=True
  • draft_move_ids Many2many → account.move
    readonly=True string='Draft Journal Entries' args: 'account.move'
  • end_date Date
    related='fr_vat_return_id.end_date'
  • fr_vat_return_id Many2one → l10n.fr.account.vat.return
    readonly=True string='FR VAT Return' args: 'l10n.fr.account.vat.return'
Public methods (2)
  • option_continue(self)
  • option_show(self)

New fields (5)
  • company_id Many2one → res.company
    readonly=True required=True args: 'res.company'
  • current_fr_vat_exigibility Selection
    related='company_id.fr_vat_exigibility' string='Current VAT Exigibility'
  • new_fr_vat_exigibility Selection
    required=True string='New VAT Exigibility' args: '_fr_vat_exigibility_selection'
  • update_date Date
    default=fields.Date.context_today string='Update Since'
  • update_type Selection
    default='from_start' required=True string='Update' args: [('from_start', 'From the Start'), ('date', 'Since Specific Date')]
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • run(self)

New fields (15)
  • analytic_precision Integer
    default=<expr>
  • fr_vat_bank_account_id Many2one → res.partner.bank
    check_company=True help='Company bank account used to pay VAT or receive credit VAT reimbursements.' ondelete='restrict' string='Company Bank Account' args: 'res.partner.bank'
  • fr_vat_exigibility Selection
    default='on_invoice' string='VAT Exigibility' args: '_fr_vat_exigibility_selection'
  • fr_vat_expense_analytic_distribution Json
    compute='_compute_fr_vat_analytic_distribution' readonly=False store=True string='Analytic Expense Account for Rounding'
  • fr_vat_income_analytic_distribution Json
    compute='_compute_fr_vat_analytic_distribution' readonly=False store=True string='Analytic Income Account for Rounding'
  • fr_vat_journal_id Many2one → account.journal
    check_company=True ondelete='restrict' string='Journal for VAT Journal Entry' args: 'account.journal'
  • fr_vat_manual_autoliq_line_default_option Selection
    string='Default for Manual Autoliquidation Line' args: [('product', 'Product'), ('service', 'Service')]
  • fr_vat_periodicity Selection
    default='1' string='VAT Periodicity' args: [('1', 'Monthly'), ('3', 'Quarterly'), ('12', 'Yearly')]
  • fr_vat_remind_auto_generate_and_transmit Boolean
    string='Auto-generate and Transmit on Deadline Day'
  • fr_vat_remind_deadline_day Selection
    default='20' string='VAT Return Deadline Day' args: [('15', '15'), ('16', '16'), ('17', '17'), ('18', '18'), ('19', '19'), ('20', '20'), ('21', '21'), ('22', '22'), ('23', '23'), ('24', '24')]
  • fr_vat_remind_user_ids Many2many → res.users
    string='Users to Remind' args: 'res.users', 'fr_vat_company_remind_user_rel', 'company_id', 'user_id'
  • fr_vat_send_gateway Selection
    string='Default VAT Gateway' args: '_fr_vat_send_gateway_selection'
  • fr_vat_update_lock_dates Boolean
    string='Update Lock Date upon VAT Return Validation'
  • l10n_fr_rounding_difference_loss_account_id Many2one → account.account
    check_company=True string='Expense Account for Rounding' args: 'account.account'
  • l10n_fr_rounding_difference_profit_account_id Many2one → account.account
    check_company=True string='Income Account for Rounding' args: 'account.account'
Public methods (0)

No public methods.

New fields (16)
  • analytic_precision Integer
    related='company_id.analytic_precision'
  • fr_vat_bank_account_id Many2one
    domain="[('partner_id','=', fr_vat_company_partner_id), ('company_id', 'in', (False, company_id))]" readonly=False related='company_id.fr_vat_bank_account_id'
  • fr_vat_company_partner_id Many2one
    related='company_id.partner_id'
  • fr_vat_exigibility Selection
    readonly=True related='company_id.fr_vat_exigibility'
  • fr_vat_expense_analytic_distribution Json
    readonly=False related='company_id.fr_vat_expense_analytic_distribution'
  • fr_vat_income_analytic_distribution Json
    readonly=False related='company_id.fr_vat_income_analytic_distribution'
  • fr_vat_journal_id Many2one
    domain="[('company_id', '=', company_id), ('type', '=', 'general')]" readonly=False related='company_id.fr_vat_journal_id'
  • fr_vat_manual_autoliq_line_default_option Selection
    readonly=False related='company_id.fr_vat_manual_autoliq_line_default_option'
  • fr_vat_periodicity Selection
    readonly=False related='company_id.fr_vat_periodicity'
  • fr_vat_remind_auto_generate_and_transmit Boolean
    readonly=False related='company_id.fr_vat_remind_auto_generate_and_transmit'
  • fr_vat_remind_deadline_day Selection
    readonly=False related='company_id.fr_vat_remind_deadline_day'
  • fr_vat_remind_user_ids Many2many
    readonly=False related='company_id.fr_vat_remind_user_ids'
  • fr_vat_send_gateway Selection
    readonly=False related='company_id.fr_vat_send_gateway'
  • fr_vat_update_lock_dates Boolean
    readonly=False related='company_id.fr_vat_update_lock_dates'
  • l10n_fr_rounding_difference_loss_account_id Many2one
    domain="[('company_id', '=', company_id), ('deprecated', '=', False), ('account_type', '=', 'expense')]" readonly=False related='company_id.l10n_fr_rounding_difference_loss_account_id'
  • l10n_fr_rounding_difference_profit_account_id Many2one
    domain="[('company_id', '=', company_id), ('deprecated', '=', False), ('account_type', '=', 'income')]" readonly=False related='company_id.l10n_fr_rounding_difference_profit_account_id'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-france
GIT
GIThttps://github.com/OCA/l10n-france.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-france/tree/14.0/l10n_fr_account_vat_return
VERSION
VERSION 9.0.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-france
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
OCA/intrastat-extrastat:
    - intrastat_base
OCA/l10n-france:
    - l10n_fr_oca
OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - l10n_fr
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pypdf>=3.1.0
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (25)
XML IDNameModelTypeStatus
l10n_fr_account_vat_box_form l10n.fr.account.vat.box form New
l10n_fr_account_vat_box_search l10n.fr.account.vat.box search New
l10n_fr_account_vat_box_tree l10n.fr.account.vat.box tree New
l10n_fr_account_vat_return_autoliq_line_form l10n.fr.account.vat.return.autoliq.line form New
l10n_fr_account_vat_return_autoliq_line_tree l10n.fr.account.vat.return.autoliq.line tree New
l10n_fr_account_vat_return_form l10n.fr.account.vat.return form New
l10n_fr_account_vat_return_line_form l10n.fr.account.vat.return.line form New
l10n_fr_account_vat_return_line_log_form l10n.fr.account.vat.return.line.log form New
l10n_fr_account_vat_return_line_log_tree l10n.fr.account.vat.return.line.log tree New
l10n_fr_account_vat_return_line_tree l10n.fr.account.vat.return.line tree New
l10n_fr_account_vat_return_reimbursement_form l10n.fr.account.vat.return.reimbursement form New
l10n_fr_account_vat_return_search l10n.fr.account.vat.return search New
l10n_fr_account_vat_return_tree l10n.fr.account.vat.return tree New
l10n_fr_vat_autoliq_manual_form l10n.fr.vat.autoliq.manual form New
l10n_fr_vat_draft_move_option_form l10n.fr.vat.draft.move.option form New
l10n_fr_vat_exigibility_update_form l10n.fr.vat.exigibility.update form New
res_config_settings_view_form res.config.settings xpath Inherits account.res_config_settings_view_form
view_account_position_form account.fiscal.position field Inherits account.view_account_position_form
view_account_position_template_form intrastat.account.fiscal.position.template.form account.fiscal.position.template field Inherits account.view_account_position_template_form
view_account_position_template_tree intrastat.account.fiscal.position.template.tree account.fiscal.position.template field Inherits account.view_account_position_template_tree
view_account_position_tree account.fiscal.position field Inherits account.view_account_position_tree
view_invoice_tree account.move field Inherits account.view_invoice_tree
view_move_form account.move field Inherits account.view_move_form
view_tax_form account.tax xpath Inherits account.view_tax_form
view_tax_tree account.tax field Inherits account.view_tax_tree
Models touched (20)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • fr_vat_type Selection
    help='This field is used by the French VAT return module' string='Type' args: '_get_fr_vat_type_sel'
Public methods (0)

No public methods.

New fields (1)
  • fr_vat_type Selection
    string='Type' args: '_get_fr_vat_type_sel'
Public methods (0)

No public methods.

New fields (2)
  • fiscal_position_fr_vat_type Selection
    related='fiscal_position_id.fr_vat_type' store=True string='Fiscal Position Type'
  • out_vat_on_payment Boolean
    compute='_compute_out_vat_on_payment' store=True string='VAT on Payment for Customer Invoices'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • fr_vat_autoliquidation Boolean
    compute='_compute_fr_vat_autoliquidation' store=True string='Autoliquidation'
Public methods (0)

No public methods.

New fields (25)
  • account_code Char
    string='Generic Account Code'
  • account_id Many2one → account.account
    company_dependent=True domain="[('deprecated', '=', False), ('company_id', '=', current_company_id)]" help='If not set, Odoo will use the first account that starts with the Generic Account Code. If set, Odoo will ignore the Generic Account Code and use this account.' args: 'account.account'
  • accounting_method Selection
    readonly=True args: [('debit', 'Debit'), ('credit', 'Credit')]
  • active Boolean
    default=True
  • analytic_account_id Many2one → account.analytic.account
    company_dependent=True domain="[('company_id', 'in', (False, current_company_id))]" string='Analytic Account' args: 'account.analytic.account'
  • code Char
    readonly=True
  • display_type Selection
    readonly=True args: [('section', 'Section'), ('sub_section', 'Sub-Section')]
  • due_vat_base_box_id Many2one → l10n.fr.account.vat.box
    readonly=True string='Due VAT Base' args: 'l10n.fr.account.vat.box'
  • due_vat_rate Integer
    readonly=True string='VAT Rate x100'
  • edi_code Char
    readonly=True string='EDI Code'
  • edi_type Selection
    readonly=True string='EDI Type' args: [('MOA', 'Monetary (MOA)'), ('CCI_TBX', 'Boolean (CCI/TBX)'), ('PCD', 'Percentage (PCD)'), ('QTY', 'Quantity (QTY)'), ('FTX', 'Char (FTX)'), ('NAD', 'Name and address (NAD)')]
  • form_code Selection
    readonly=True required=True string='Form' args: [('3310CA3', '3310-CA3'), ('3310A', '3310-A')]
  • full_label Char
    readonly=True
  • manual Boolean
    readonly=True
  • meaning_id Char
    readonly=True string='Meaningful ID'
  • name Char
    required=True string='Label'
  • negative Boolean
    readonly=True
  • nref_code Char
    readonly=True string='N-REF Code'
  • print_page Selection
    readonly=True string='Page' args: [('1', 'First Page'), ('2', 'Second Page'), ('3', 'Third Page')]
  • print_x Integer
    readonly=True string='Print Position X'
  • print_y Integer
    readonly=True string='Print Position Y'
  • push_box_id Many2one → l10n.fr.account.vat.box
    readonly=True args: 'l10n.fr.account.vat.box'
  • push_rate Float
    digits=(16, PUSH_RATE_PRECISION) readonly=True
  • push_sequence Integer
    readonly=True
  • sequence Integer
    default=10 readonly=True
Public methods (3)
  • display_type_change(self)
    @api.onchange('display_type')
  • name_get(self)
    @api.depends('code', 'name', 'display_type')
  • name_search(self, name='', args=None, operator='ilike', limit=100)
    @api.model

New fields (25)
  • autoliq_line_ids One2many → l10n.fr.account.vat.return.autoliq.line
    readonly=True string='Autoliquidation Lines' args: 'l10n.fr.account.vat.return.autoliq.line', 'parent_id'
  • autoliq_manual_done Boolean
  • bank_account_id Many2one → res.partner.bank
    check_company=True domain="[('partner_id','=', company_partner_id), '|', ('company_id', '=', False), ('company_id', '=', company_id)]" ondelete='restrict' states={'sent': [('readonly', True)], 'posted': [('readonly', True)]} string='Company Bank Account' args: 'res.partner.bank'
  • ca3_attachment_datas Binary
    related='ca3_attachment_id.datas' string='CA3 File'
  • ca3_attachment_id Many2one → ir.attachment
    string='CA3 Attachment' args: 'ir.attachment'
  • ca3_attachment_name Char
    related='ca3_attachment_id.name' string='CA3 Filename'
  • comment_dgfip Text
    states={'sent': [('readonly', True)], 'posted': [('readonly', True)]} string='Comment for DGFiP'
  • company_currency_id Many2one
    related='company_id.currency_id' store=True string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> ondelete='cascade' readonly=True required=True states={'manual': [('readonly', False)]} tracking=True args: 'res.company'
  • company_partner_id Many2one
    related='company_id.partner_id' string='Company Partner'
  • end_date Date
    compute='_compute_name_end_date' store=True
  • ignore_draft_moves Boolean
  • line_ids One2many → l10n.fr.account.vat.return.line
    readonly=True states={'manual': [('readonly', False)]} string='Return Lines' args: 'l10n.fr.account.vat.return.line', 'parent_id'
  • move_id Many2one → account.move
    check_company=True readonly=True string='Journal Entry' tracking=True args: 'account.move'
  • name Char
    compute='_compute_name_end_date' store=True string='Period'
  • reimbursement_comment_dgfip Text
    states={'sent': [('readonly', True)], 'posted': [('readonly', True)]} string='Reimbursement Comment for DGFiP'
  • reimbursement_end_date Date
    readonly=True string='Event Date'
  • reimbursement_first_creation_date Date
    readonly=True string='Creation Date'
  • reimbursement_min_amount Integer
    compute='_compute_name_end_date' store=True
  • reimbursement_show_button Boolean
    compute='_compute_reimbursement_show_button' string='Show VAT Credit Reimbursement Button'
  • reimbursement_type Selection
    readonly=True args: '_reimbursement_type_selection'
  • start_date Date
    readonly=True required=True states={'manual': [('readonly', False)]} tracking=True
  • state Selection
    default='manual' readonly=True required=True tracking=True args: [('manual', 'Manual Lines'), ('auto', 'Automatic Lines'), ('sent', 'Sent'), ('posted', 'Posted')]
  • vat_credit_total Integer
    readonly=True string='VAT Credit Total'
  • vat_periodicity Selection
    readonly=True required=True states={'manual': [('readonly', False)]} string='VAT Periodicity' tracking=True args: [('1', 'Monthly'), ('3', 'Quarterly'), ('12', 'Yearly')]
Public methods (12)
  • auto2sent(self)
  • back_to_manual(self)
  • company_id_change(self)
    @api.onchange('company_id')
  • create_reimbursement_line(self, amount)
  • generate_ca3_attachment(self)
  • manual2auto(self)
  • name_get(self)
    @api.depends('name', 'vat_periodicity')
  • print_ca3(self)
  • remove_credit_vat_reimbursement(self)
  • sent2manual(self)
  • sent2posted(self)
  • unlink(self)

New fields (17)
  • account_id Many2one
    related='move_line_id.account_id' store=True
  • autoliq_type Selection
    required=True string='Type' args: [('intracom', 'Intracom'), ('extracom', 'Extracom')]
  • company_currency_id Many2one
    related='move_line_id.company_currency_id' store=True
  • company_id Many2one
    related='parent_id.company_id' store=True
  • compute_type Selection
    required=True args: [('auto', 'Auto'), ('manual', 'Manual')]
  • credit Monetary
    currency_field='company_currency_id' related='move_line_id.credit' store=True
  • date Date
    related='move_id.date' store=True
  • debit Monetary
    currency_field='company_currency_id' related='move_line_id.debit' store=True
  • journal_id Many2one
    related='move_id.journal_id' store=True
  • label Char
    related='move_line_id.name' store=True
  • move_id Many2one
    related='move_line_id.move_id' store=True string='Journal Entry'
  • move_line_id Many2one → account.move.line
    check_company=True string='Journal Item' args: 'account.move.line'
  • parent_id Many2one → l10n.fr.account.vat.return
    ondelete='cascade' string='VAT Return' args: 'l10n.fr.account.vat.return'
  • partner_id Many2one
    related='move_line_id.partner_id' store=True
  • product_ratio Float
    digits=(16, 2)
  • ref Char
    related='move_id.ref' store=True
  • vat_rate_int Integer
    help='VAT rate x 100' required=True string='VAT Rate'
Public methods (0)

No public methods.

New fields (25)
  • box_accounting_method Selection
    related='box_id.accounting_method' store=True
  • box_code Char
    related='box_id.code' store=True
  • box_display_type Selection
    related='box_id.display_type' store=True
  • box_edi_code Char
    related='box_id.edi_code' store=True
  • box_edi_type Selection
    related='box_id.edi_type' store=True
  • box_form_code Selection
    related='box_id.form_code' store=True
  • box_id Many2one → l10n.fr.account.vat.box
    ondelete='restrict' required=True string='Box' args: 'l10n.fr.account.vat.box'
  • box_manual Boolean
    related='box_id.manual' store=True
  • box_meaning_id Char
    related='box_id.meaning_id' store=True
  • box_name Char
    related='box_id.name' store=True
  • box_negative Boolean
    related='box_id.negative' store=True
  • box_push_box_id Many2one
    related='box_id.push_box_id' store=True
  • box_push_sequence Integer
    related='box_id.push_sequence' store=True
  • box_sequence Integer
    related='box_id.sequence' store=True
  • company_id Many2one
    related='parent_id.company_id' store=True
  • log_ids One2many → l10n.fr.account.vat.return.line.log
    readonly=True string='Computation Details' args: 'l10n.fr.account.vat.return.line.log', 'parent_id'
  • manual_account_id Many2one → account.account
    check_company=True compute='_compute_manual_account_id' domain="[('company_id', '=', company_id), ('deprecated', '=', False)]" readonly=False store=True string='Account' args: 'account.account'
  • manual_analytic_account_id Many2one → account.analytic.account
    check_company=True compute='_compute_manual_account_id' domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" readonly=False store=True string='Analytic Account' args: 'account.analytic.account'
  • parent_id Many2one → l10n.fr.account.vat.return
    ondelete='cascade' string='VAT Return' args: 'l10n.fr.account.vat.return'
  • state Selection
    related='parent_id.state' store=True
  • value Integer
    compute='_compute_value' store=True
  • value_bool Boolean
    string='Value (Y/N)'
  • value_char Char
    string='Text'
  • value_float Float
    compute='_compute_value' store=True string='Value Before Rounding'
  • value_manual_int Integer
    string='Integer Value'
Public methods (0)

No public methods.

New fields (8)
  • account_id Many2one → account.account
    ondelete='restrict' readonly=True string='Account' args: 'account.account'
  • amount Float
    readonly=True
  • analytic_account_id Many2one → account.analytic.account
    ondelete='restrict' readonly=True string='Analytic Account' args: 'account.analytic.account'
  • compute_type Selection
    readonly=True required=True args: [('period_balance', 'Period Balance'), ('period_balance_sale', 'Period Balance in Sale Journal'), ('balance', 'Ending Balance'), ('balance_ratio', 'Ending Balance x Ratio'), ('unpaid_vat_on_payment', 'Unpaid VAT on Payment'), ('base_from_balance', 'Base from Ending Balance'), ('base_from_balance_ratio', 'Base from Ending Balance x Ratio'), ('base_from_unpaid_vat_on_payment', 'Base from Unpaid VAT on Payment'), ('computed_vat_amount', 'Computed VAT Amount'), ('rate', 'VAT Amount / VAT Rate'), ('box', 'Box Value'), ('manual', 'Manual'), ('adjustment', 'Adjustment')]
  • note Char
  • origin_move_id Many2one → account.move
    readonly=True string='Source Invoice' args: 'account.move'
  • parent_id Many2one → l10n.fr.account.vat.return.line
    ondelete='cascade' readonly=True string='VAT Return Line' args: 'l10n.fr.account.vat.return.line'
  • parent_parent_id Many2one
    related='parent_id.parent_id' store=True
Public methods (0)

No public methods.

New fields (9)
  • amount Integer
    required=True string='Reimbursement Amount'
  • company_currency_id Many2one
    related='return_id.company_id.currency_id'
  • end_date Date
    string='Event Date'
  • first_creation_date Date
    string='Creation Date'
  • min_amount Integer
    related='return_id.reimbursement_min_amount'
  • reimbursement_comment_dgfip Text
    string='Comment for DGFIP'
  • reimbursement_type Selection
    required=True args: '_reimbursement_type_selection'
  • return_id Many2one → l10n.fr.account.vat.return
    readonly=True required=True string='VAT Return' args: 'l10n.fr.account.vat.return'
  • vat_credit_total Integer
    related='return_id.vat_credit_total'
Public methods (1)
  • validate(self)

New fields (2)
  • fr_vat_return_id Many2one → l10n.fr.account.vat.return
    readonly=True string='FR VAT Return' args: 'l10n.fr.account.vat.return'
  • line_ids One2many → l10n.fr.vat.autoliq.manual.line
    args: 'l10n.fr.vat.autoliq.manual.line', 'parent_id'
Public methods (1)
  • run(self)

New fields (15)
  • account_id Many2one
    related='move_line_id.account_id'
  • autoliq_line_id Many2one → l10n.fr.account.vat.return.autoliq.line
    required=True args: 'l10n.fr.account.vat.return.autoliq.line'
  • autoliq_type Selection
    related='autoliq_line_id.autoliq_type'
  • company_currency_id Many2one
    related='move_line_id.company_currency_id'
  • credit Monetary
    currency_field='company_currency_id' related='move_line_id.credit'
  • date Date
    related='move_line_id.date'
  • debit Monetary
    currency_field='company_currency_id' related='move_line_id.debit'
  • journal_id Many2one
    related='move_line_id.journal_id'
  • label Char
    related='move_line_id.name'
  • move_line_id Many2one
    related='autoliq_line_id.move_line_id'
  • option Selection
    string='Product or Service' args: [('product', 'Product'), ('service', 'Service'), ('mix', 'Mix')]
  • parent_id Many2one → l10n.fr.vat.autoliq.manual
    ondelete='cascade' args: 'l10n.fr.vat.autoliq.manual'
  • partner_id Many2one
    related='move_line_id.partner_id'
  • product_ratio Float
    digits=(16, 2) string='Product Radio (%)'
  • ref Char
    related='move_line_id.move_id.ref'
Public methods (0)

No public methods.

New fields (4)
  • draft_move_count Integer
    readonly=True
  • draft_move_ids Many2many → account.move
    readonly=True string='Draft Journal Entries' args: 'account.move'
  • end_date Date
    related='fr_vat_return_id.end_date'
  • fr_vat_return_id Many2one → l10n.fr.account.vat.return
    readonly=True string='FR VAT Return' args: 'l10n.fr.account.vat.return'
Public methods (2)
  • option_continue(self)
  • option_show(self)

New fields (5)
  • company_id Many2one → res.company
    readonly=True required=True args: 'res.company'
  • current_fr_vat_exigibility Selection
    related='company_id.fr_vat_exigibility' string='Current VAT Exigibility'
  • new_fr_vat_exigibility Selection
    required=True string='New VAT Exigibility' args: '_fr_vat_exigibility_selection'
  • update_date Date
    default=fields.Date.context_today string='Update Since'
  • update_type Selection
    default='from_start' required=True string='Update' args: [('from_start', 'From the Start'), ('date', 'Since Specific Date')]
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • run(self)

New fields (9)
  • fr_vat_bank_account_id Many2one → res.partner.bank
    check_company=True help='Company bank account used to pay VAT or receive credit VAT reimbursements.' ondelete='restrict' string='Company Bank Account' args: 'res.partner.bank'
  • fr_vat_exigibility Selection
    default='on_invoice' string='VAT Exigibility' args: '_fr_vat_exigibility_selection'
  • fr_vat_expense_account_id Many2one → account.account
    check_company=True string='Account for Expense Adjustment' args: 'account.account'
  • fr_vat_expense_analytic_account_id Many2one → account.analytic.account
    check_company=True ondelete='restrict' string='Analytic Account for Expense Adjustment' args: 'account.analytic.account'
  • fr_vat_income_account_id Many2one → account.account
    check_company=True string='Account for Income Adjustment' args: 'account.account'
  • fr_vat_income_analytic_account_id Many2one → account.analytic.account
    check_company=True ondelete='restrict' string='Analytic Account for Income Adjustment' args: 'account.analytic.account'
  • fr_vat_journal_id Many2one → account.journal
    check_company=True ondelete='restrict' string='Journal for VAT Journal Entry' args: 'account.journal'
  • fr_vat_periodicity Selection
    default='1' string='VAT Periodicity' args: [('1', 'Monthly'), ('3', 'Quarterly'), ('12', 'Yearly')]
  • fr_vat_update_lock_dates Boolean
    string='Update Lock Date upon VAT Return Validation'
Public methods (0)

No public methods.

New fields (10)
  • fr_vat_bank_account_id Many2one
    domain="[('partner_id','=', fr_vat_company_partner_id), '|', ('company_id', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.fr_vat_bank_account_id'
  • fr_vat_company_partner_id Many2one
    related='company_id.partner_id'
  • fr_vat_exigibility Selection
    readonly=True related='company_id.fr_vat_exigibility'
  • fr_vat_expense_account_id Many2one
    domain="[('company_id', '=', company_id)]" readonly=False related='company_id.fr_vat_expense_account_id'
  • fr_vat_expense_analytic_account_id Many2one
    domain="[('company_id', '=', company_id)]" readonly=False related='company_id.fr_vat_expense_analytic_account_id'
  • fr_vat_income_account_id Many2one
    domain="[('company_id', '=', company_id)]" readonly=False related='company_id.fr_vat_income_account_id'
  • fr_vat_income_analytic_account_id Many2one
    domain="[('company_id', '=', company_id)]" readonly=False related='company_id.fr_vat_income_analytic_account_id'
  • fr_vat_journal_id Many2one
    domain="[('company_id', '=', company_id), ('type', '=', 'general')]" readonly=False related='company_id.fr_vat_journal_id'
  • fr_vat_periodicity Selection
    readonly=False related='company_id.fr_vat_periodicity'
  • fr_vat_update_lock_dates Boolean
    readonly=False related='company_id.fr_vat_update_lock_dates'
Public methods (0)

No public methods.