| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-france |
| GIT | |
| GIT | https://github.com/OCA/l10n-france.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-france/tree/16.0/l10n_fr_account_vat_return |
| VERSION | |
| VERSION | 8.1.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Weblate, OCA-git-bot, oca-ci, Boris Gallet |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-france |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
fr_vat_type
Selection
help='This field is used by the French VAT return module'
string='Type'
args: '_get_fr_vat_type_sel'
No public methods.
fr_vat_type
Selection
string='Type'
args: '_get_fr_vat_type_sel'
No public methods.
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'
No public methods.
No new fields.
Public methods (0)No public methods.
fr_vat_autoliquidation
Selection
compute='_compute_fr_vat_autoliquidation'
store=True
string='Autoliquidation'
args: [('total', 'Total'), ('partial', 'Partial')]
No public methods.
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
display_type_change(self)
name_get(self)
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')]
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)
print_ca3(self)
reconcile_account_move_button(self)
remove_credit_vat_reimbursement(self)
sent2manual(self)
sent2posted(self)
unlink(self)
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'
No public methods.
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'
No public methods.
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
No public methods.
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'
default_get(self, fields_list)
validate(self)
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'
No public methods.
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
run(self)
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'
No public methods.
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'
option_continue(self)
option_show(self)
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')]
default_get(self, fields_list)
run(self)
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'
No public methods.
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'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-france |
| GIT | |
| GIT | https://github.com/OCA/l10n-france.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-france/tree/14.0/l10n_fr_account_vat_return |
| VERSION | |
| VERSION | 9.0.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-france |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
fr_vat_type
Selection
help='This field is used by the French VAT return module'
string='Type'
args: '_get_fr_vat_type_sel'
No public methods.
fr_vat_type
Selection
string='Type'
args: '_get_fr_vat_type_sel'
No public methods.
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'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
fr_vat_autoliquidation
Boolean
compute='_compute_fr_vat_autoliquidation'
store=True
string='Autoliquidation'
No public methods.
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
display_type_change(self)
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=100)
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')]
auto2sent(self)
back_to_manual(self)
company_id_change(self)
create_reimbursement_line(self, amount)
generate_ca3_attachment(self)
manual2auto(self)
name_get(self)
print_ca3(self)
remove_credit_vat_reimbursement(self)
sent2manual(self)
sent2posted(self)
unlink(self)
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'
No public methods.
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'
No public methods.
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
No public methods.
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'
validate(self)
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
run(self)
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'
No public methods.
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'
option_continue(self)
option_show(self)
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')]
default_get(self, fields_list)
run(self)
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'
No public methods.
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'
No public methods.