| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/19.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| COMMITTERS | |
| COMMITTERS | OCA-git-bot, oca-ci, Emilio Pascual |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:46 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat OCA/reporting-engine: - report_xlsx OCA/server-ux: - date_range odoo/odoo: - l10n_es - account - base_setup - base - web - onboarding - product - bus - web_tour - html_editor - uom - analytic - portal - http_routing - auth_signup - digest - resource - base_iban - base_vat - account_edi_ubl_cii |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
unidecode xlrd xlsxwriter |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Módulo que calcula los libros de IVA e IRPF español. Esto módulo introduce el menú "Libros de IVA y del IRPF" en Contabilidad -\> Informe -\> Declaraciones AEAT. Es posible visualizar e imprimir por separado: - Libro Registro de Facturas Emitidas - Libro Registro de Facturas Recibidas Es posible exportar los registros a archivo con extensión xlsx. En el modo de visualización de los informes es posible navegar a los asientos contables relacionados con la factura. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_vat_book_map_lines_view_tree |
aeat.vat.book.map.lines.view.tree | aeat.vat.book.map.line | list | New |
l10n_es_vat_book.vat_book_contact |
l10n_es_vat_book.vat_book_contact | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_dates |
l10n_es_vat_book.vat_book_dates | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_invoices_head |
l10n_es_vat_book.vat_book_invoices_head | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_line |
l10n_es_vat_book.vat_book_line | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_summary |
l10n_es_vat_book.vat_book_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_tax_summary |
l10n_es_vat_book.vat_book_tax_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_taxes_head |
l10n_es_vat_book.vat_book_taxes_head | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_html |
report_vat_book_invoices_issued_html | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_pdf |
report_vat_book_invoices_issued_pdf | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_html |
report_vat_book_invoices_received_html | ir.ui.view | qweb | New |
report_vat_book_invoices_received_pdf |
report_vat_book_invoices_received_pdf | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_vat_book_tree |
l10n_es.vat.book.tree | l10n.es.vat.book | field | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_vat_book_line_form |
view.l10n_es_vat_book_line.form | l10n.es.vat.book.line | form | New |
view_vat_book_line_tree |
view.l10n_es_vat_book_line.tree | l10n.es.vat.book.line | list | New |
view_vat_book_summary_form |
view.l10n_es_vat_book_summary.form | l10n.es.vat.book.summary | form | New |
view_vat_book_summary_tree |
view.l10n_es_vat_book_summary.tree | l10n.es.vat.book.summary | list | New |
view_vat_book_tax_summary_form |
view.l10n_es_vat_book_tax_summary.form | l10n.es.vat.book.tax.summary | form | New |
view_vat_book_tax_summary_tree |
view.l10n_es_vat_book_tax_summary.tree | l10n.es.vat.book.tax.summary | list | New |
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
excluded_account_xmlid_id
Many2one → l10n.es.aeat.map.tax.line.account
comodel_name='l10n.es.aeat.map.tax.line.account'
help='Journal items with this account will be excluded'
string='Tax Account Restriction'
fee_amount_xlsx_column
Char
string='Base xlsx column'
fee_type_xlsx_column
Char
string='Type xlsx column'
name
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_agency_ids
Many2many → aeat.tax.agency
string='Tax Agency'
args: 'aeat.tax.agency'
tax_xmlid_ids
Many2many → l10n.es.aeat.map.tax.line.tax
comodel_name='l10n.es.aeat.map.tax.line.tax'
string='Taxes'
get_accounts_for_company(self, company)
get_taxes_for_company(self, company)
auto_renumber
Boolean
calculation_date
Date
error_count
Integer
compute='_compute_error_count'
issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued invoices'
issued_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued Summary'
issued_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued Tax Summary'
line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
inverse_name='vat_book_id'
readonly=True
string='Issued/Received invoices'
number
Char
default='vat_book'
readonly=True
received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'received')]
inverse_name='vat_book_id'
readonly=True
string='Received invoices'
received_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly=True
string='Received Summary'
received_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly=True
string='Received Tax Summary'
rectification_issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued Refund Invoices'
rectification_received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_received')]
inverse_name='vat_book_id'
readonly=True
string='Received Refund Invoices'
summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
inverse_name='vat_book_id'
readonly=True
string='Summary'
tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
inverse_name='vat_book_id'
readonly=True
string='Tax Summary'
vat_settlement_period
Selection
default='monthly'
required=True
selection=[('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
button_confirm(self)
calculate(self)
create_vat_book_lines(self, move_lines, line_type, taxes)
export_xlsx(self)
get_book_line_key(self, move_line)
get_book_line_tax_key(self, move_line, tax)
get_pos_partner_ids(self)
get_report_file_name(self)
get_special_taxes_dic(self)
upsert_book_line_tax(self, move_line, vat_book_line, implied_taxes)
view_issued_invoices(self)
view_received_invoices(self)
base_amount
Float
string='Base'
entry_number
Integer
exception_text
Char
external_ref
Char
invoice_date
Date
line_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received'), ('rectification_issued', 'Refund Issued'), ('rectification_received', 'Refund Received')]
move_id
Many2one → account.move
comodel_name='account.move'
string='Invoice'
move_id
Many2one → account.move
comodel_name='account.move'
string='Journal Entry'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
ref
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_line_ids
One2many → l10n.es.vat.book.line.tax
comodel_name='l10n.es.vat.book.line.tax'
copy=False
inverse_name='vat_book_line_id'
string='Tax Lines'
total_amount
Float
string='Total'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
vat_number
Char
string='NIF'
No public methods.
base_amount
Float
string='Base'
base_move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
relation='account_move_line_l10n_es_vat_book_line_tax_base_rel'
string='Move Lines (Base)'
deductible_amount
Float
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Move Lines'
special_tax_amount
Float
string='Special Tax fee'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=[('req', 'R.Eq.'), ('irpf', 'IRPF')]
string='Special group'
special_tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Special Tax'
tax_amount
Float
string='Tax fee'
tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Tax'
tax_rate
Float
compute='_compute_tax_rate'
string='Tax Rate (%)'
total_amount
Float
compute='_compute_total_amount'
store=True
string='Total'
total_amount_special_include
Float
compute='_compute_total_amount_special_include'
store=True
string='Total w/Special'
vat_book_line_id
Many2one → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
index=True
ondelete='cascade'
required=True
No public methods.
base_amount
Float
readonly=True
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_amount
Float
readonly=True
total_amount
Float
readonly=True
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
No public methods.
base_move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
relation='account_move_line_l10n_es_vat_book_tax_summary_base_rel'
string='Journal items (Base)'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Journal items'
tax_id
Many2one → account.tax
comodel_name='account.tax'
ondelete='cascade'
required=True
string='Account Tax'
view_move_lines_base(self)
view_move_lines_tax(self)
No new fields.
Public methods (6)create_issued_sheet(self, workbook, book, draft_export)
create_received_sheet(self, workbook, book, draft_export)
fill_issued_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
fill_received_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
format_boe_date(self, date)
generate_xlsx_report(self, workbook, data, objects)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/18.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 2.2.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Enric Tobella, Weblate, OCA-git-bot, valen, oca-ci, sygel, mpascual, eduezerouali-tecnativa, IsabelAForgeFlow |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat OCA/reporting-engine: - report_xlsx OCA/server-ux: - date_range odoo/odoo: - l10n_es - account - base_setup - base - web - onboarding - product - bus - web_tour - html_editor - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - base_iban - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Módulo que calcula los libros de IVA e IRPF español. Esto módulo introduce el menú "Libros de IVA y del IRPF" en Contabilidad -\> Informe -\> Declaraciones AEAT. Es posible visualizar e imprimir por separado: - Libro Registro de Facturas Emitidas - Libro Registro de Facturas Recibidas Es posible exportar los registros a archivo con extensión xlsx. En el modo de visualización de los informes es posible navegar a los asientos contables relacionados con la factura. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_vat_book_map_lines_view_tree |
aeat.vat.book.map.lines.view.tree | aeat.vat.book.map.line | list | New |
l10n_es_vat_book.vat_book_contact |
l10n_es_vat_book.vat_book_contact | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_dates |
l10n_es_vat_book.vat_book_dates | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_invoices_head |
l10n_es_vat_book.vat_book_invoices_head | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_line |
l10n_es_vat_book.vat_book_line | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_summary |
l10n_es_vat_book.vat_book_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_tax_summary |
l10n_es_vat_book.vat_book_tax_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_taxes_head |
l10n_es_vat_book.vat_book_taxes_head | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_html |
report_vat_book_invoices_issued_html | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_pdf |
report_vat_book_invoices_issued_pdf | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_html |
report_vat_book_invoices_received_html | ir.ui.view | qweb | New |
report_vat_book_invoices_received_pdf |
report_vat_book_invoices_received_pdf | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_vat_book_tree |
l10n_es.vat.book.tree | l10n.es.vat.book | field | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_vat_book_line_form |
view.l10n_es_vat_book_line.form | l10n.es.vat.book.line | form | New |
view_vat_book_line_tree |
view.l10n_es_vat_book_line.tree | l10n.es.vat.book.line | list | New |
view_vat_book_summary_form |
view.l10n_es_vat_book_summary.form | l10n.es.vat.book.summary | form | New |
view_vat_book_summary_tree |
view.l10n_es_vat_book_summary.tree | l10n.es.vat.book.summary | list | New |
view_vat_book_tax_summary_form |
view.l10n_es_vat_book_tax_summary.form | l10n.es.vat.book.tax.summary | form | New |
view_vat_book_tax_summary_tree |
view.l10n_es_vat_book_tax_summary.tree | l10n.es.vat.book.tax.summary | list | New |
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
excluded_account_xmlid_id
Many2one → l10n.es.aeat.map.tax.line.account
comodel_name='l10n.es.aeat.map.tax.line.account'
help='Journal items with this account will be excluded'
string='Tax Account Restriction'
fee_amount_xlsx_column
Char
string='Base xlsx column'
fee_type_xlsx_column
Char
string='Type xlsx column'
name
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_agency_ids
Many2many → aeat.tax.agency
string='Tax Agency'
args: 'aeat.tax.agency'
tax_xmlid_ids
Many2many → l10n.es.aeat.map.tax.line.tax
comodel_name='l10n.es.aeat.map.tax.line.tax'
string='Taxes'
get_accounts_for_company(self, company)
get_taxes_for_company(self, company)
auto_renumber
Boolean
calculation_date
Date
error_count
Integer
compute='_compute_error_count'
issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued invoices'
issued_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued Summary'
issued_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued Tax Summary'
line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
inverse_name='vat_book_id'
readonly=True
string='Issued/Received invoices'
number
Char
default='vat_book'
readonly=True
received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'received')]
inverse_name='vat_book_id'
readonly=True
string='Received invoices'
received_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly=True
string='Received Summary'
received_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly=True
string='Received Tax Summary'
rectification_issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued Refund Invoices'
rectification_received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_received')]
inverse_name='vat_book_id'
readonly=True
string='Received Refund Invoices'
summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
inverse_name='vat_book_id'
readonly=True
string='Summary'
tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
inverse_name='vat_book_id'
readonly=True
string='Tax Summary'
vat_settlement_period
Selection
default='monthly'
required=True
selection=[('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
button_confirm(self)
calculate(self)
create_vat_book_lines(self, move_lines, line_type, taxes)
export_xlsx(self)
get_book_line_key(self, move_line)
get_book_line_tax_key(self, move_line, tax)
get_pos_partner_ids(self)
get_report_file_name(self)
get_special_taxes_dic(self)
upsert_book_line_tax(self, move_line, vat_book_line, implied_taxes)
view_issued_invoices(self)
view_received_invoices(self)
base_amount
Float
string='Base'
entry_number
Integer
exception_text
Char
external_ref
Char
invoice_date
Date
line_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received'), ('rectification_issued', 'Refund Issued'), ('rectification_received', 'Refund Received')]
move_id
Many2one → account.move
comodel_name='account.move'
string='Invoice'
move_id
Many2one → account.move
comodel_name='account.move'
string='Journal Entry'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
ref
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_line_ids
One2many → l10n.es.vat.book.line.tax
comodel_name='l10n.es.vat.book.line.tax'
copy=False
inverse_name='vat_book_line_id'
string='Tax Lines'
total_amount
Float
string='Total'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
vat_number
Char
string='NIF'
No public methods.
base_amount
Float
string='Base'
base_move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
relation='account_move_line_l10n_es_vat_book_line_tax_base_rel'
string='Move Lines (Base)'
deductible_amount
Float
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Move Lines'
special_tax_amount
Float
string='Special Tax fee'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=[('req', 'R.Eq.'), ('irpf', 'IRPF')]
string='Special group'
special_tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Special Tax'
tax_amount
Float
string='Tax fee'
tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Tax'
tax_rate
Float
compute='_compute_tax_rate'
string='Tax Rate (%)'
total_amount
Float
compute='_compute_total_amount'
store=True
string='Total'
total_amount_special_include
Float
compute='_compute_total_amount_special_include'
store=True
string='Total w/Special'
vat_book_line_id
Many2one → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
index=True
ondelete='cascade'
required=True
No public methods.
base_amount
Float
readonly=True
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_amount
Float
readonly=True
total_amount
Float
readonly=True
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
No public methods.
base_move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
relation='account_move_line_l10n_es_vat_book_tax_summary_base_rel'
string='Journal items (Base)'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Journal items'
tax_id
Many2one → account.tax
comodel_name='account.tax'
ondelete='cascade'
required=True
string='Account Tax'
view_move_lines_base(self)
view_move_lines_tax(self)
No new fields.
Public methods (6)create_issued_sheet(self, workbook, book, draft_export)
create_received_sheet(self, workbook, book, draft_export)
fill_issued_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
fill_received_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
format_boe_date(self, date)
generate_xlsx_report(self, workbook, data, objects)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/17.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 2.2.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, valen, oca-ci, Ignacio, sygel, pol, eduezerouali-tecnativa |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:19:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat OCA/reporting-engine: - report_xlsx OCA/server-ux: - date_range odoo/odoo: - l10n_es - account - base_setup - base - web - onboarding - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - base_iban - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
unidecode xlrd xlsxwriter |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Módulo que calcula los libros de IVA e IRPF español. Esto módulo introduce el menú "Libros de IVA y del IRPF" en Contabilidad -\> Informe -\> Declaraciones AEAT. Es posible visualizar e imprimir por separado: - Libro Registro de Facturas Emitidas - Libro Registro de Facturas Recibidas Es posible exportar los registros a archivo con extensión xlsx. En el modo de visualización de los informes es posible navegar a los asientos contables relacionados con la factura. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_vat_book_map_lines_view_tree |
aeat.vat.book.map.lines.view.tree | aeat.vat.book.map.line | tree | New |
l10n_es_vat_book.vat_book_contact |
l10n_es_vat_book.vat_book_contact | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_dates |
l10n_es_vat_book.vat_book_dates | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_invoices_head |
l10n_es_vat_book.vat_book_invoices_head | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_line |
l10n_es_vat_book.vat_book_line | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_summary |
l10n_es_vat_book.vat_book_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_tax_summary |
l10n_es_vat_book.vat_book_tax_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_taxes_head |
l10n_es_vat_book.vat_book_taxes_head | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_html |
report_vat_book_invoices_issued_html | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_pdf |
report_vat_book_invoices_issued_pdf | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_html |
report_vat_book_invoices_received_html | ir.ui.view | qweb | New |
report_vat_book_invoices_received_pdf |
report_vat_book_invoices_received_pdf | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_vat_book_tree |
l10n_es.vat.book.tree | l10n.es.vat.book | field | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_vat_book_line_form |
view.l10n_es_vat_book_line.form | l10n.es.vat.book.line | form | New |
view_vat_book_line_tree |
view.l10n_es_vat_book_line.tree | l10n.es.vat.book.line | tree | New |
view_vat_book_summary_form |
view.l10n_es_vat_book_summary.form | l10n.es.vat.book.summary | form | New |
view_vat_book_summary_tree |
view.l10n_es_vat_book_summary.tree | l10n.es.vat.book.summary | tree | New |
view_vat_book_tax_summary_form |
view.l10n_es_vat_book_tax_summary.form | l10n.es.vat.book.tax.summary | form | New |
view_vat_book_tax_summary_tree |
view.l10n_es_vat_book_tax_summary.tree | l10n.es.vat.book.tax.summary | tree | New |
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
excluded_account_xmlid_id
Many2one → l10n.es.aeat.map.tax.line.account
comodel_name='l10n.es.aeat.map.tax.line.account'
help='Journal items with this account will be excluded'
string='Tax Account Restriction'
fee_amount_xlsx_column
Char
string='Base xlsx column'
fee_type_xlsx_column
Char
string='Type xlsx column'
name
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_agency_ids
Many2many → aeat.tax.agency
string='Tax Agency'
args: 'aeat.tax.agency'
tax_xmlid_ids
Many2many → l10n.es.aeat.map.tax.line.tax
comodel_name='l10n.es.aeat.map.tax.line.tax'
string='Taxes'
get_accounts_for_company(self, company)
get_taxes_for_company(self, company)
auto_renumber
Boolean
calculation_date
Date
error_count
Integer
compute='_compute_error_count'
issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued invoices'
issued_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued Summary'
issued_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued Tax Summary'
line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
inverse_name='vat_book_id'
readonly=True
string='Issued/Received invoices'
number
Char
default='vat_book'
readonly=True
received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'received')]
inverse_name='vat_book_id'
readonly=True
string='Received invoices'
received_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly=True
string='Received Summary'
received_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly=True
string='Received Tax Summary'
rectification_issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_issued')]
inverse_name='vat_book_id'
readonly=True
string='Issued Refund Invoices'
rectification_received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_received')]
inverse_name='vat_book_id'
readonly=True
string='Received Refund Invoices'
summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
inverse_name='vat_book_id'
readonly=True
string='Summary'
tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
inverse_name='vat_book_id'
readonly=True
string='Tax Summary'
vat_settlement_period
Selection
default='monthly'
required=True
selection=[('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
button_confirm(self)
calculate(self)
create_vat_book_lines(self, move_lines, line_type, taxes)
export_xlsx(self)
get_book_line_key(self, move_line)
get_book_line_tax_key(self, move_line, tax)
get_pos_partner_ids(self)
get_report_file_name(self)
get_special_taxes_dic(self)
upsert_book_line_tax(self, move_line, vat_book_line, implied_taxes)
view_issued_invoices(self)
view_received_invoices(self)
base_amount
Float
string='Base'
entry_number
Integer
exception_text
Char
external_ref
Char
invoice_date
Date
line_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received'), ('rectification_issued', 'Refund Issued'), ('rectification_received', 'Refund Received')]
move_id
Many2one → account.move
comodel_name='account.move'
string='Invoice'
move_id
Many2one → account.move
comodel_name='account.move'
string='Journal Entry'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
ref
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_line_ids
One2many → l10n.es.vat.book.line.tax
comodel_name='l10n.es.vat.book.line.tax'
copy=False
inverse_name='vat_book_line_id'
string='Tax Lines'
total_amount
Float
string='Total'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
vat_number
Char
string='NIF'
No public methods.
base_amount
Float
string='Base'
base_move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
relation='account_move_line_l10n_es_vat_book_line_tax_base_rel'
string='Move Lines (Base)'
deductible_amount
Float
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Move Lines'
special_tax_amount
Float
string='Special Tax fee'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=[('req', 'R.Eq.'), ('irpf', 'IRPF')]
string='Special group'
special_tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Special Tax'
tax_amount
Float
string='Tax fee'
tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Tax'
tax_rate
Float
compute='_compute_tax_rate'
string='Tax Rate (%)'
total_amount
Float
compute='_compute_total_amount'
store=True
string='Total'
total_amount_special_include
Float
compute='_compute_total_amount_special_include'
store=True
string='Total w/Special'
vat_book_line_id
Many2one → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
index=True
ondelete='cascade'
required=True
No public methods.
base_amount
Float
readonly=True
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_amount
Float
readonly=True
total_amount
Float
readonly=True
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
No public methods.
base_move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
relation='account_move_line_l10n_es_vat_book_tax_summary_base_rel'
string='Journal items (Base)'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Journal items'
tax_id
Many2one → account.tax
comodel_name='account.tax'
ondelete='cascade'
required=True
string='Account Tax'
view_move_lines_base(self)
view_move_lines_tax(self)
No new fields.
Public methods (6)create_issued_sheet(self, workbook, book, draft_export)
create_received_sheet(self, workbook, book, draft_export)
fill_issued_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
fill_received_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
format_boe_date(self, date)
generate_xlsx_report(self, workbook, data, objects)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/16.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 2.1.1 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Víctor Martínez, Omar (Comunitea), Weblate, OCA-git-bot, Eric Antones, oca-ci, Aritz Olea, David Ramia, Christian-RB, eduezerouali-tecnativa, Eduardo López Peñalver |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:39 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat OCA/reporting-engine: - report_xlsx OCA/server-ux: - date_range odoo/odoo: - l10n_es - 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 |
unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_vat_book_map_lines_view_tree |
aeat.vat.book.map.lines.view.tree | aeat.vat.book.map.line | tree | New |
l10n_es_vat_book.vat_book_contact |
l10n_es_vat_book.vat_book_contact | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_dates |
l10n_es_vat_book.vat_book_dates | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_invoices_head |
l10n_es_vat_book.vat_book_invoices_head | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_line |
l10n_es_vat_book.vat_book_line | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_summary |
l10n_es_vat_book.vat_book_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_tax_summary |
l10n_es_vat_book.vat_book_tax_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_taxes_head |
l10n_es_vat_book.vat_book_taxes_head | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_html |
report_vat_book_invoices_issued_html | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_pdf |
report_vat_book_invoices_issued_pdf | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_html |
report_vat_book_invoices_received_html | ir.ui.view | qweb | New |
report_vat_book_invoices_received_pdf |
report_vat_book_invoices_received_pdf | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_vat_book_tree |
l10n_es.vat.book.tree | l10n.es.vat.book | field | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_vat_book_line_form |
view.l10n_es_vat_book_line.form | l10n.es.vat.book.line | form | New |
view_vat_book_line_tree |
view.l10n_es_vat_book_line.tree | l10n.es.vat.book.line | tree | New |
view_vat_book_summary_form |
view.l10n_es_vat_book_summary.form | l10n.es.vat.book.summary | form | New |
view_vat_book_summary_tree |
view.l10n_es_vat_book_summary.tree | l10n.es.vat.book.summary | tree | New |
view_vat_book_tax_summary_form |
view.l10n_es_vat_book_tax_summary.form | l10n.es.vat.book.tax.summary | form | New |
view_vat_book_tax_summary_tree |
view.l10n_es_vat_book_tax_summary.tree | l10n.es.vat.book.tax.summary | tree | New |
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
fee_amount_xlsx_column
Char
string='Base xlsx column'
fee_type_xlsx_column
Char
string='Type xlsx column'
name
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_agency_ids
Many2many → aeat.tax.agency
string='Tax Agency'
args: 'aeat.tax.agency'
tax_excluded_account_id
Many2one → account.account.template
comodel_name='account.account.template'
help='Journal items with this account will be excluded'
string='Tax Account Restriction'
tax_tmpl_ids
Many2many → account.tax.template
comodel_name='account.tax.template'
string='Taxes'
get_taxes(self, report)
auto_renumber
Boolean
states={'draft': [('readonly', False)]}
args: 'Auto renumber invoices received'
calculation_date
Date
error_count
Integer
compute='_compute_error_count'
issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued invoices'
issued_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Summary'
issued_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Tax Summary'
line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
inverse_name='vat_book_id'
readonly='True'
string='Issued/Received invoices'
number
Char
default='vat_book'
readonly='True'
received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received invoices'
received_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Summary'
received_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Tax Summary'
rectification_issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Refund Invoices'
rectification_received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Refund Invoices'
summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
inverse_name='vat_book_id'
readonly='True'
string='Summary'
tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Tax Summary'
vat_settlement_period
Selection
default='monthly'
required=True
selection=[('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
button_confirm(self)
calculate(self)
create_vat_book_lines(self, move_lines, line_type, taxes)
export_xlsx(self)
get_book_line_key(self, move_line)
get_book_line_tax_key(self, move_line, tax)
get_pos_partner_ids(self)
get_report_file_name(self)
get_special_taxes_dic(self)
upsert_book_line_tax(self, move_line, vat_book_line, implied_taxes)
view_issued_invoices(self)
view_received_invoices(self)
base_amount
Float
string='Base'
entry_number
Integer
exception_text
Char
external_ref
Char
invoice_date
Date
line_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received'), ('rectification_issued', 'Refund Issued'), ('rectification_received', 'Refund Received')]
move_id
Many2one → account.move
comodel_name='account.move'
string='Invoice'
move_id
Many2one → account.move
comodel_name='account.move'
string='Journal Entry'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
ref
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_line_ids
One2many → l10n.es.vat.book.line.tax
comodel_name='l10n.es.vat.book.line.tax'
copy=False
inverse_name='vat_book_line_id'
string='Tax Lines'
total_amount
Float
string='Total'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
vat_number
Char
string='NIF'
No public methods.
base_amount
Float
string='Base'
base_move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
relation='account_move_line_l10n_es_vat_book_line_tax_base_rel'
string='Move Lines (Base)'
deductible_amount
Float
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Move Lines'
special_tax_amount
Float
string='Special Tax fee'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=[('req', 'R.Eq.'), ('irpf', 'IRPF')]
string='Special group'
special_tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Special Tax'
tax_amount
Float
string='Tax fee'
tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Tax'
tax_rate
Float
compute='_compute_tax_rate'
string='Tax Rate (%)'
total_amount
Float
compute='_compute_total_amount'
store=True
string='Total'
total_amount_special_include
Float
compute='_compute_total_amount_special_include'
store=True
string='Total w/Special'
vat_book_line_id
Many2one → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
index=True
ondelete='cascade'
required=True
No public methods.
base_amount
Float
readonly='True'
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_amount
Float
readonly='True'
total_amount
Float
readonly='True'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
No public methods.
base_move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
relation='account_move_line_l10n_es_vat_book_tax_summary_base_rel'
string='Journal items (Base)'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Journal items'
tax_id
Many2one → account.tax
comodel_name='account.tax'
ondelete='cascade'
required=True
string='Account Tax'
view_move_lines_base(self)
view_move_lines_tax(self)
No new fields.
Public methods (6)create_issued_sheet(self, workbook, book, draft_export)
create_received_sheet(self, workbook, book, draft_export)
fill_issued_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
fill_received_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
format_boe_date(self, date)
generate_xlsx_report(self, workbook, data, objects)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/15.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 2.11.2 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, cubells, OCA Transbot, Víctor Martínez, Omar (Comunitea), Weblate, OCA-git-bot, oca-ci, Eduardo De Miguel, almumu, ldlafaurie@gmail.com |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:29 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat OCA/reporting-engine: - report_xlsx OCA/server-ux: - date_range odoo/odoo: - l10n_es - 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 |
cryptography unidecode xlrd xlsxwriter |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_vat_book_map_lines_view_tree |
aeat.vat.book.map.lines.view.tree | aeat.vat.book.map.line | tree | New |
l10n_es_vat_book.vat_book_contact |
l10n_es_vat_book.vat_book_contact | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_dates |
l10n_es_vat_book.vat_book_dates | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_invoices_head |
l10n_es_vat_book.vat_book_invoices_head | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_line |
l10n_es_vat_book.vat_book_line | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_summary |
l10n_es_vat_book.vat_book_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_tax_summary |
l10n_es_vat_book.vat_book_tax_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_taxes_head |
l10n_es_vat_book.vat_book_taxes_head | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_html |
report_vat_book_invoices_issued_html | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_pdf |
report_vat_book_invoices_issued_pdf | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_html |
report_vat_book_invoices_received_html | ir.ui.view | qweb | New |
report_vat_book_invoices_received_pdf |
report_vat_book_invoices_received_pdf | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_vat_book_tree |
l10n_es.vat.book.tree | l10n.es.vat.book | field | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_vat_book_line_form |
view.l10n_es_vat_book_line.form | l10n.es.vat.book.line | form | New |
view_vat_book_line_tree |
view.l10n_es_vat_book_line.tree | l10n.es.vat.book.line | tree | New |
view_vat_book_summary_form |
view.l10n_es_vat_book_summary.form | l10n.es.vat.book.summary | form | New |
view_vat_book_summary_tree |
view.l10n_es_vat_book_summary.tree | l10n.es.vat.book.summary | tree | New |
view_vat_book_tax_summary_form |
view.l10n_es_vat_book_tax_summary.form | l10n.es.vat.book.tax.summary | form | New |
view_vat_book_tax_summary_tree |
view.l10n_es_vat_book_tax_summary.tree | l10n.es.vat.book.tax.summary | tree | New |
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
fee_amount_xlsx_column
Char
string='Base xlsx column'
fee_type_xlsx_column
Char
string='Type xlsx column'
name
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_account_id
Many2one → account.account.template
comodel_name='account.account.template'
string='Tax Account Restriction'
tax_agency_ids
Many2many → aeat.tax.agency
string='Tax Agency'
args: 'aeat.tax.agency'
tax_tmpl_ids
Many2many → account.tax.template
comodel_name='account.tax.template'
string='Taxes'
get_taxes(self, report)
auto_renumber
Boolean
states={'draft': [('readonly', False)]}
args: 'Auto renumber invoices received'
calculation_date
Date
error_count
Integer
compute='_compute_error_count'
issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued invoices'
issued_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Summary'
issued_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Tax Summary'
line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
inverse_name='vat_book_id'
readonly='True'
string='Issued/Received invoices'
number
Char
default='vat_book'
readonly='True'
received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received invoices'
received_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Summary'
received_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Tax Summary'
rectification_issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Refund Invoices'
rectification_received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Refund Invoices'
summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
inverse_name='vat_book_id'
readonly='True'
string='Summary'
tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Tax Summary'
button_confirm(self)
calculate(self)
create_vat_book_lines(self, move_lines, line_type, taxes)
export_xlsx(self)
get_book_line_key(self, move_line)
get_book_line_tax_key(self, move_line, tax)
get_pos_partner_ids(self)
get_report_file_name(self)
get_special_taxes_dic(self)
upsert_book_line_tax(self, move_line, vat_book_line, implied_taxes)
view_issued_invoices(self)
view_received_invoices(self)
base_amount
Float
string='Base'
entry_number
Integer
exception_text
Char
external_ref
Char
invoice_date
Date
line_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received'), ('rectification_issued', 'Refund Issued'), ('rectification_received', 'Refund Received')]
move_id
Many2one → account.move
comodel_name='account.move'
string='Journal Entry'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
ref
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_line_ids
One2many → l10n.es.vat.book.line.tax
comodel_name='l10n.es.vat.book.line.tax'
copy=False
inverse_name='vat_book_line_id'
string='Tax Lines'
total_amount
Float
string='Total'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
vat_number
Char
string='NIF'
No public methods.
base_amount
Float
string='Base'
base_move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
relation='account_move_line_l10n_es_vat_book_line_tax_base_rel'
string='Move Lines (Base)'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Move Lines'
special_tax_amount
Float
string='Special Tax fee'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=[('req', 'R.Eq.'), ('irpf', 'IRPF')]
string='Special group'
special_tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Special Tax'
tax_amount
Float
string='Tax fee'
tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Tax'
tax_rate
Float
compute='_compute_tax_rate'
string='Tax Rate (%)'
total_amount
Float
compute='_compute_total_amount'
store=True
string='Total'
total_amount_special_include
Float
compute='_compute_total_amount_special_include'
store=True
string='Total w/Special'
vat_book_line_id
Many2one → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
index=True
ondelete='cascade'
required=True
No public methods.
base_amount
Float
readonly='True'
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_amount
Float
readonly='True'
total_amount
Float
readonly='True'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
No public methods.
base_move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
relation='account_move_line_l10n_es_vat_book_tax_summary_base_rel'
string='Journal items (Base)'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Journal items'
tax_id
Many2one → account.tax
comodel_name='account.tax'
ondelete='cascade'
required=True
string='Account Tax'
view_move_lines_base(self)
view_move_lines_tax(self)
No new fields.
Public methods (6)create_issued_sheet(self, workbook, book, draft_export)
create_received_sheet(self, workbook, book, draft_export)
fill_issued_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
fill_received_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
format_boe_date(self, date)
generate_xlsx_report(self, workbook, data, objects)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/14.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 2.8.2 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, cubells, OCA Transbot, Víctor Martínez, Ernesto Tejeda, Omar (Comunitea), oca-travis, Weblate, OCA-git-bot, oca-ci, Eduardo De Miguel, Valentin Vinagre Urteaga, Zar21 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat OCA/reporting-engine: - report_xlsx OCA/server-ux: - date_range odoo/odoo: - l10n_es - 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 |
cryptography<39 unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_vat_book_map_lines_view_tree |
aeat.vat.book.map.lines.view.tree | aeat.vat.book.map.line | tree | New |
l10n_es_vat_book.vat_book_contact |
l10n_es_vat_book.vat_book_contact | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_dates |
l10n_es_vat_book.vat_book_dates | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_invoices_head |
l10n_es_vat_book.vat_book_invoices_head | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_line |
l10n_es_vat_book.vat_book_line | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_summary |
l10n_es_vat_book.vat_book_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_tax_summary |
l10n_es_vat_book.vat_book_tax_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_taxes_head |
l10n_es_vat_book.vat_book_taxes_head | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_html |
report_vat_book_invoices_issued_html | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_pdf |
report_vat_book_invoices_issued_pdf | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_html |
report_vat_book_invoices_received_html | ir.ui.view | qweb | New |
report_vat_book_invoices_received_pdf |
report_vat_book_invoices_received_pdf | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_vat_book_line_form |
view.l10n_es_vat_book_line.form | l10n.es.vat.book.line | form | New |
view_vat_book_line_tree |
view.l10n_es_vat_book_line.tree | l10n.es.vat.book.line | tree | New |
view_vat_book_summary_form |
view.l10n_es_vat_book_summary.form | l10n.es.vat.book.summary | form | New |
view_vat_book_summary_tree |
view.l10n_es_vat_book_summary.tree | l10n.es.vat.book.summary | tree | New |
view_vat_book_tax_summary_form |
view.l10n_es_vat_book_tax_summary.form | l10n.es.vat.book.tax.summary | form | New |
view_vat_book_tax_summary_tree |
view.l10n_es_vat_book_tax_summary.tree | l10n.es.vat.book.tax.summary | tree | New |
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
string='Book type'
fee_amount_xlsx_column
Char
string='Base xlsx column'
fee_type_xlsx_column
Char
string='Type xlsx column'
name
Char
string='Name'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_account_id
Many2one → account.account.template
comodel_name='account.account.template'
string='Tax Account Restriction'
tax_tmpl_ids
Many2many → account.tax.template
comodel_name='account.tax.template'
string='Taxes'
get_taxes(self, report)
auto_renumber
Boolean
states={'draft': [('readonly', False)]}
args: 'Auto renumber invoices received'
calculation_date
Date
string='Calculation Date'
error_count
Integer
compute='_compute_error_count'
issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued invoices'
issued_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Summary'
issued_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Tax Summary'
line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
inverse_name='vat_book_id'
readonly='True'
string='Issued/Received invoices'
number
Char
default='vat_book'
readonly='True'
received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received invoices'
received_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Summary'
received_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Tax Summary'
rectification_issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Refund Invoices'
rectification_received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Refund Invoices'
summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
inverse_name='vat_book_id'
readonly='True'
string='Summary'
tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Tax Summary'
button_confirm(self)
calculate(self)
create_vat_book_lines(self, move_lines, line_type, taxes)
export_xlsx(self)
get_book_line_key(self, move_line)
get_book_line_tax_key(self, move_line, tax)
get_pos_partner_ids(self)
get_report_file_name(self)
get_special_taxes_dic(self)
upsert_book_line_tax(self, move_line, vat_book_line, implied_taxes)
view_issued_invoices(self)
view_received_invoices(self)
base_amount
Float
string='Base'
entry_number
Integer
exception_text
Char
string='Exception text'
external_ref
Char
invoice_date
Date
string='Invoice Date'
line_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received'), ('rectification_issued', 'Refund Issued'), ('rectification_received', 'Refund Received')]
string='Line type'
move_id
Many2one → account.move
comodel_name='account.move'
string='Journal Entry'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
ref
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_line_ids
One2many → l10n.es.vat.book.line.tax
comodel_name='l10n.es.vat.book.line.tax'
copy=False
inverse_name='vat_book_line_id'
string='Tax Lines'
total_amount
Float
string='Total'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
vat_number
Char
string='NIF'
No public methods.
base_amount
Float
string='Base'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Move Lines'
special_tax_amount
Float
string='Special Tax fee'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=[('req', 'R.Eq.'), ('irpf', 'IRPF')]
string='Special group'
special_tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Special Tax'
tax_amount
Float
string='Tax fee'
tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Tax'
tax_rate
Float
compute='_compute_tax_rate'
string='Tax Rate (%)'
total_amount
Float
compute='_compute_total_amount'
store=True
string='Total'
total_amount_special_include
Float
compute='_compute_total_amount_special_include'
store=True
string='Total w/Special'
vat_book_line_id
Many2one → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
index=True
ondelete='cascade'
required=True
No public methods.
base_amount
Float
readonly='True'
string='Base amount'
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
string='Book type'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_amount
Float
readonly='True'
string='Tax amount'
total_amount
Float
readonly='True'
string='Total amount'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
No public methods.
tax_id
Many2one → account.tax
comodel_name='account.tax'
ondelete='cascade'
required=True
string='Account Tax'
No public methods.
No new fields.
Public methods (6)create_issued_sheet(self, workbook, book, draft_export)
create_received_sheet(self, workbook, book, draft_export)
fill_issued_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
fill_received_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
format_boe_date(self, date)
generate_xlsx_report(self, workbook, data, objects)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/13.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 1.10.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow, PRAXYA |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, mreficent, Jordi Ballester Alomar, cubells, manu, OCA Transbot, Víctor Martínez, AaronHForgeFlow, Omar (Comunitea), oca-travis, Weblate, OCA-git-bot, oca-ci, Valentin Vinagre Urteaga, fromera, Javier Colmeiro |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:09 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat OCA/reporting-engine: - report_xlsx OCA/server-ux: - date_range odoo/odoo: - l10n_es - 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 |
pyOpenSSL unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_vat_book_map_lines_view_tree |
aeat.vat.book.map.lines.view.tree | aeat.vat.book.map.line | tree | New |
l10n_es_vat_book.vat_book_contact |
l10n_es_vat_book.vat_book_contact | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_dates |
l10n_es_vat_book.vat_book_dates | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_invoices_head |
l10n_es_vat_book.vat_book_invoices_head | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_line |
l10n_es_vat_book.vat_book_line | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_summary |
l10n_es_vat_book.vat_book_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_tax_summary |
l10n_es_vat_book.vat_book_tax_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_taxes_head |
l10n_es_vat_book.vat_book_taxes_head | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_html |
report_vat_book_invoices_issued_html | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_pdf |
report_vat_book_invoices_issued_pdf | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_html |
report_vat_book_invoices_received_html | ir.ui.view | qweb | New |
report_vat_book_invoices_received_pdf |
report_vat_book_invoices_received_pdf | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_vat_book_line_form |
view.l10n_es_vat_book_line.form | l10n.es.vat.book.line | form | New |
view_vat_book_line_tree |
view.l10n_es_vat_book_line.tree | l10n.es.vat.book.line | tree | New |
view_vat_book_summary_form |
view.l10n_es_vat_book_summary.form | l10n.es.vat.book.summary | form | New |
view_vat_book_summary_tree |
view.l10n_es_vat_book_summary.tree | l10n.es.vat.book.summary | tree | New |
view_vat_book_tax_summary_form |
view.l10n_es_vat_book_tax_summary.form | l10n.es.vat.book.tax.summary | form | New |
view_vat_book_tax_summary_tree |
view.l10n_es_vat_book_tax_summary.tree | l10n.es.vat.book.tax.summary | tree | New |
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
string='Book type'
fee_amount_xlsx_column
Char
string='Base xlsx column'
fee_type_xlsx_column
Char
string='Type xlsx column'
name
Char
string='Name'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_account_id
Many2one → account.account.template
comodel_name='account.account.template'
string='Tax Account Restriction'
tax_tmpl_ids
Many2many → account.tax.template
comodel_name='account.tax.template'
string='Taxes'
get_taxes(self, report)
auto_renumber
Boolean
states={'draft': [('readonly', False)]}
args: 'Auto renumber invoices received'
calculation_date
Date
string='Calculation Date'
issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued invoices'
issued_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Summary'
issued_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Tax Summary'
line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
inverse_name='vat_book_id'
readonly='True'
string='Issued/Received invoices'
number
Char
default='vat_book'
readonly='True'
received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received invoices'
received_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Summary'
received_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Tax Summary'
rectification_issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Refund Invoices'
rectification_received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Refund Invoices'
summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
inverse_name='vat_book_id'
readonly='True'
string='Summary'
tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Tax Summary'
button_confirm(self)
calculate(self)
create_vat_book_lines(self, move_lines, line_type, taxes)
export_xlsx(self)
get_book_line_key(self, move_line)
get_book_line_tax_key(self, move_line, tax)
get_pos_partner_ids(self)
get_report_file_name(self)
get_special_taxes_dic(self)
upsert_book_line_tax(self, move_line, vat_book_line, implied_taxes)
view_issued_invoices(self)
view_received_invoices(self)
base_amount
Float
string='Base'
entry_number
Integer
exception_text
Char
string='Exception text'
external_ref
Char
invoice_date
Date
string='Invoice Date'
line_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received'), ('rectification_issued', 'Refund Issued'), ('rectification_received', 'Refund Received')]
string='Line type'
move_id
Many2one → account.move
comodel_name='account.move'
string='Invoice'
move_id
Many2one → account.move
comodel_name='account.move'
string='Journal Entry'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
ref
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_line_ids
One2many → l10n.es.vat.book.line.tax
comodel_name='l10n.es.vat.book.line.tax'
copy=False
inverse_name='vat_book_line_id'
string='Tax Lines'
total_amount
Float
string='Total'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
vat_number
Char
string='NIF'
No public methods.
base_amount
Float
string='Base'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Move Lines'
special_tax_amount
Float
string='Special Tax fee'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=[('req', 'R.Eq.'), ('irpf', 'IRPF')]
string='Special group'
special_tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Special Tax'
tax_amount
Float
string='Tax fee'
tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Tax'
tax_rate
Float
compute='_compute_tax_rate'
string='Tax Rate (%)'
total_amount
Float
compute='_compute_total_amount'
store=True
string='Total'
total_amount_special_include
Float
compute='_compute_total_amount_special_include'
store=True
string='Total w/Special'
vat_book_line_id
Many2one → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
index=True
ondelete='cascade'
required=True
No public methods.
base_amount
Float
readonly='True'
string='Base amount'
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
string='Book type'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_amount
Float
readonly='True'
string='Tax amount'
total_amount
Float
readonly='True'
string='Total amount'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
No public methods.
tax_id
Many2one → account.tax
comodel_name='account.tax'
ondelete='cascade'
required=True
string='Account Tax'
No public methods.
No new fields.
Public methods (6)create_issued_sheet(self, workbook, book, draft_export)
create_received_sheet(self, workbook, book, draft_export)
fill_issued_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
fill_received_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
format_boe_date(self, date)
generate_xlsx_report(self, workbook, data, objects)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/12.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 1.7.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), PRAXYA, Eficent |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), PRAXYA, Eficent |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, mreficent, Carlos Dauden, david, cubells, OCA Transbot, oca-travis, Weblate, Gelu, OCA-git-bot, Jon Erik Ceberio, Ioan Galan |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:12 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat OCA/reporting-engine: - report_xlsx OCA/server-ux: - date_range odoo/odoo: - account - base_setup - base - web - product - decimal_precision - bus - web_tour - uom - analytic - portal - http_routing - digest - base_vat - l10n_es - base_iban |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
OpenSSL requests unidecode zeep xlrd xlsxwriter |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_vat_book_map_lines_view_tree |
aeat.vat.book.map.lines.view.tree | aeat.vat.book.map.line | tree | New |
l10n_es_vat_book.vat_book_contact |
l10n_es_vat_book.vat_book_contact | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_dates |
l10n_es_vat_book.vat_book_dates | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_invoices_head |
l10n_es_vat_book.vat_book_invoices_head | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_line |
l10n_es_vat_book.vat_book_line | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_summary |
l10n_es_vat_book.vat_book_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_tax_summary |
l10n_es_vat_book.vat_book_tax_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_taxes_head |
l10n_es_vat_book.vat_book_taxes_head | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_html |
report_vat_book_invoices_issued_html | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_pdf |
report_vat_book_invoices_issued_pdf | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_html |
report_vat_book_invoices_received_html | ir.ui.view | qweb | New |
report_vat_book_invoices_received_pdf |
report_vat_book_invoices_received_pdf | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_vat_book_line_form |
view.l10n_es_vat_book_line.form | l10n.es.vat.book.line | form | New |
view_vat_book_line_tree |
view.l10n_es_vat_book_line.tree | l10n.es.vat.book.line | tree | New |
view_vat_book_summary_form |
view.l10n_es_vat_book_summary.form | l10n.es.vat.book.summary | form | New |
view_vat_book_summary_tree |
view.l10n_es_vat_book_summary.tree | l10n.es.vat.book.summary | tree | New |
view_vat_book_tax_summary_form |
view.l10n_es_vat_book_tax_summary.form | l10n.es.vat.book.tax.summary | form | New |
view_vat_book_tax_summary_tree |
view.l10n_es_vat_book_tax_summary.tree | l10n.es.vat.book.tax.summary | tree | New |
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
string='Book type'
fee_amount_xlsx_column
Char
string='Base xlsx column'
fee_type_xlsx_column
Char
string='Type xlsx column'
name
Char
string='Name'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_tmpl_ids
Many2many → account.tax.template
comodel_name='account.tax.template'
string='Taxes'
No public methods.
auto_renumber
Boolean
states={'draft': [('readonly', False)]}
args: 'Auto renumber invoices received'
calculation_date
Date
string='Calculation Date'
issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued invoices'
issued_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Summary'
issued_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Tax Summary'
line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
inverse_name='vat_book_id'
readonly='True'
string='Issued/Received invoices'
number
Char
default='vat_book'
readonly='True'
received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received invoices'
received_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Summary'
received_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Tax Summary'
rectification_issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Refund Invoices'
rectification_received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Refund Invoices'
summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
inverse_name='vat_book_id'
readonly='True'
string='Summary'
tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Tax Summary'
button_confirm(self)
calculate(self)
create_vat_book_lines(self, move_lines, line_type, taxes)
export_xlsx(self)
get_book_line_key(self, move_line)
get_book_line_tax_key(self, move_line, tax)
get_pos_partner_ids(self)
get_report_file_name(self)
get_special_taxes_dic(self)
upsert_book_line_tax(self, move_line, vat_book_line, implied_taxes)
view_issued_invoices(self)
view_received_invoices(self)
base_amount
Float
string='Base'
entry_number
Integer
exception_text
Char
string='Exception text'
external_ref
Char
invoice_date
Date
string='Invoice Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
string='Invoice'
line_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received'), ('rectification_issued', 'Refund Issued'), ('rectification_received', 'Refund Received')]
string='Line type'
move_id
Many2one → account.move
comodel_name='account.move'
string='Journal Entry'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
ref
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_line_ids
One2many → l10n.es.vat.book.line.tax
comodel_name='l10n.es.vat.book.line.tax'
copy=False
inverse_name='vat_book_line_id'
string='Tax Lines'
total_amount
Float
string='Total'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
vat_number
Char
string='NIF'
No public methods.
base_amount
Float
string='Base'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Move Lines'
special_tax_amount
Float
string='Special Tax fee'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=[('req', 'R.Eq.'), ('irpf', 'IRPF')]
string='Special group'
special_tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Special Tax'
tax_amount
Float
string='Tax fee'
tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Tax'
tax_rate
Float
compute='_compute_tax_rate'
string='Tax Rate (%)'
total_amount
Float
string='Total'
total_amount_special_include
Float
string='Total w/Special'
vat_book_line_id
Many2one → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
index=True
ondelete='cascade'
required=True
No public methods.
base_amount
Float
readonly='True'
string='Base amount'
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
string='Book type'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_amount
Float
readonly='True'
string='Tax amount'
total_amount
Float
readonly='True'
string='Total amount'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
No public methods.
tax_id
Many2one → account.tax
comodel_name='account.tax'
ondelete='cascade'
required=True
string='Account Tax'
No public methods.
No new fields.
Public methods (6)create_issued_sheet(self, workbook, book, draft_export)
create_received_sheet(self, workbook, book, draft_export)
fill_issued_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
fill_received_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
format_boe_date(self, date)
generate_xlsx_report(self, workbook, data, objects)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/11.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 3.4.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), PRAXYA, Eficent |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), PRAXYA, Eficent |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Carlos Dauden, manu, OCA Transbot, Omar (Comunitea), oca-travis, OCA-git-bot, Rodrigo Bonilla, OCA Git Bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:55 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat OCA/reporting-engine: - report_xlsx OCA/server-ux: - date_range odoo/odoo: - account - base_setup - base - web - product - decimal_precision - bus - web_tour - analytic - web_planner - portal - http_routing - base_vat - l10n_es - base_iban - account_invoicing |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
unidecode xlrd xlsxwriter |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_vat_book_map_lines_view_tree |
aeat.vat.book.map.lines.view.tree | aeat.vat.book.map.line | tree | New |
l10n_es_vat_book.vat_book_contact |
l10n_es_vat_book.vat_book_contact | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_dates |
l10n_es_vat_book.vat_book_dates | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_invoices_head |
l10n_es_vat_book.vat_book_invoices_head | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_line |
l10n_es_vat_book.vat_book_line | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_summary |
l10n_es_vat_book.vat_book_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_tax_summary |
l10n_es_vat_book.vat_book_tax_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_taxes_head |
l10n_es_vat_book.vat_book_taxes_head | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_html |
report_vat_book_invoices_issued_html | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_pdf |
report_vat_book_invoices_issued_pdf | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_html |
report_vat_book_invoices_received_html | ir.ui.view | qweb | New |
report_vat_book_invoices_received_pdf |
report_vat_book_invoices_received_pdf | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_vat_book_line_form |
view.l10n_es_vat_book_line.form | l10n.es.vat.book.line | form | New |
view_vat_book_line_tree |
view.l10n_es_vat_book_line.tree | l10n.es.vat.book.line | tree | New |
view_vat_book_summary_form |
view.l10n_es_vat_book_summary.form | l10n.es.vat.book.summary | form | New |
view_vat_book_summary_tree |
view.l10n_es_vat_book_summary.tree | l10n.es.vat.book.summary | tree | New |
view_vat_book_tax_summary_form |
view.l10n_es_vat_book_tax_summary.form | l10n.es.vat.book.tax.summary | form | New |
view_vat_book_tax_summary_tree |
view.l10n_es_vat_book_tax_summary.tree | l10n.es.vat.book.tax.summary | tree | New |
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
string='Book type'
fee_amount_xlsx_column
Char
string='Base xlsx column'
fee_type_xlsx_column
Char
string='Type xlsx column'
name
Char
string='Name'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_tmpl_ids
Many2many → account.tax.template
comodel_name='account.tax.template'
string='Taxes'
get_taxes(self, report)
auto_renumber
Boolean
states={'draft': [('readonly', False)]}
args: 'Auto renumber invoices received'
calculation_date
Date
string='Calculation Date'
issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued invoices'
issued_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Summary'
issued_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Tax Summary'
line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
inverse_name='vat_book_id'
readonly='True'
string='Issued/Received invoices'
number
Char
default='vat_book'
readonly='True'
received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received invoices'
received_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Summary'
received_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Tax Summary'
rectification_issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Refund Invoices'
rectification_received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Refund Invoices'
summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
inverse_name='vat_book_id'
readonly='True'
string='Summary'
tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Tax Summary'
button_confirm(self)
calculate(self)
create_vat_book_lines(self, move_lines, line_type, taxes)
export_xlsx(self)
get_book_line_key(self, move_line)
get_book_line_tax_key(self, move_line, tax)
get_pos_partner_ids(self)
get_report_file_name(self)
get_special_taxes_dic(self)
upsert_book_line_tax(self, move_line, vat_book_line, implied_taxes)
view_issued_invoices(self)
view_received_invoices(self)
base_amount
Float
string='Base'
entry_number
Integer
exception_text
Char
string='Exception text'
external_ref
Char
invoice_date
Date
string='Invoice Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
string='Invoice'
line_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received'), ('rectification_issued', 'Refund Issued'), ('rectification_received', 'Refund Received')]
string='Line type'
move_id
Many2one → account.move
comodel_name='account.move'
string='Journal Entry'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
ref
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_line_ids
One2many → l10n.es.vat.book.line.tax
comodel_name='l10n.es.vat.book.line.tax'
copy=False
inverse_name='vat_book_line_id'
string='Tax Lines'
total_amount
Float
string='Total'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
vat_number
Char
string='NIF'
No public methods.
base_amount
Float
string='Base'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Move Lines'
special_tax_amount
Float
string='Special Tax fee'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=[('req', 'R.Eq.'), ('irpf', 'IRPF')]
string='Special group'
special_tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Special Tax'
tax_amount
Float
string='Tax fee'
tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Tax'
tax_rate
Float
compute='_compute_tax_rate'
string='Tax Rate (%)'
total_amount
Float
string='Total'
total_amount_special_include
Float
string='Total w/Special'
vat_book_line_id
Many2one → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
index=True
ondelete='cascade'
required=True
No public methods.
base_amount
Float
readonly='True'
string='Base amount'
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
string='Book type'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_amount
Float
readonly='True'
string='Tax amount'
total_amount
Float
readonly='True'
string='Total amount'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
No public methods.
tax_id
Many2one → account.tax
comodel_name='account.tax'
ondelete='cascade'
required=True
string='Account Tax'
No public methods.
No new fields.
Public methods (6)create_issued_sheet(self, workbook, book, draft_export)
create_received_sheet(self, workbook, book, draft_export)
fill_issued_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
fill_received_row_data(self, sheet, row, line, tax_line, with_total, draft_export)
format_boe_date(self, date)
generate_xlsx_report(self, workbook, data, objects)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/10.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 4.0.2 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), PRAXYA, Eficent, Punt Sistemes |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), PRAXYA, Eficent, Punt Sistemes |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Jordi Ballester Alomar, manu, OCA Transbot, oca-travis, OCA-git-bot, OCA Git Bot, Isaac Gallart Bochons, rgarnau, amcor |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:53 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es - l10n_es_aeat OCA/reporting-engine: - report_xlsx OCA/server-tools: - date_range odoo/odoo: - account - base_setup - base - web_kanban - web - product - decimal_precision - bus - web_tour - report - analytic - web_planner - base_vat - base_iban - l10n_es |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
unidecode xlsxwriter |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_vat_book_map_lines_view_tree |
aeat.vat.book.map.lines.view.tree | aeat.vat.book.map.line | tree | New |
l10n_es_vat_book.vat_book_contact |
l10n_es_vat_book.vat_book_contact | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_dates |
l10n_es_vat_book.vat_book_dates | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_invoices_head |
l10n_es_vat_book.vat_book_invoices_head | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_line |
l10n_es_vat_book.vat_book_line | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_summary |
l10n_es_vat_book.vat_book_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_tax_summary |
l10n_es_vat_book.vat_book_tax_summary | ir.ui.view | qweb | New |
l10n_es_vat_book.vat_book_taxes_head |
l10n_es_vat_book.vat_book_taxes_head | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_html |
report_vat_book_invoices_issued_html | ir.ui.view | qweb | New |
report_vat_book_invoices_issued_pdf |
report_vat_book_invoices_issued_pdf | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_html |
report_vat_book_invoices_received_html | ir.ui.view | qweb | New |
report_vat_book_invoices_received_pdf |
report_vat_book_invoices_received_pdf | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_vat_book_line_form |
view.l10n_es_vat_book_line.form | l10n.es.vat.book.line | form | New |
view_vat_book_line_tree |
view.l10n_es_vat_book_line.tree | l10n.es.vat.book.line | tree | New |
view_vat_book_summary_form |
view.l10n_es_vat_book_summary.form | l10n.es.vat.book.summary | form | New |
view_vat_book_summary_tree |
view.l10n_es_vat_book_summary.tree | l10n.es.vat.book.summary | tree | New |
view_vat_book_tax_summary_form |
view.l10n_es_vat_book_tax_summary.form | l10n.es.vat.book.tax.summary | form | New |
view_vat_book_tax_summary_tree |
view.l10n_es_vat_book_tax_summary.tree | l10n.es.vat.book.tax.summary | tree | New |
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
string='Book type'
fee_amount_xlsx_column
Char
string='Base xlsx column'
fee_type_xlsx_column
Char
string='Type xlsx column'
name
Char
string='Name'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_tmpl_ids
Many2many → account.tax.template
comodel_name='account.tax.template'
string='Taxes'
get_taxes(self, report)
auto_renumber
Boolean
states={'draft': [('readonly', False)]}
args: 'Auto renumber invoices received'
calculation_date
Date
string='Calculation Date'
issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued invoices'
issued_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Summary'
issued_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Tax Summary'
line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
inverse_name='vat_book_id'
readonly='True'
string='Issued/Received invoices'
number
Char
default='vat_book'
readonly='True'
received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received invoices'
received_summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Summary'
received_tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
domain=[('book_type', '=', 'received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Tax Summary'
rectification_issued_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_issued')]
inverse_name='vat_book_id'
readonly='True'
string='Issued Refund Invoices'
rectification_received_line_ids
One2many → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
copy=False
domain=[('line_type', '=', 'rectification_received')]
inverse_name='vat_book_id'
readonly='True'
string='Received Refund Invoices'
summary_ids
One2many → l10n.es.vat.book.summary
comodel_name='l10n.es.vat.book.summary'
inverse_name='vat_book_id'
readonly='True'
string='Summary'
tax_summary_ids
One2many → l10n.es.vat.book.tax.summary
comodel_name='l10n.es.vat.book.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Tax Summary'
button_confirm(self)
calculate(self)
create_vat_book_lines(self, move_lines, line_type, taxes)
export_xlsx(self)
get_book_line_key(self, move_line)
get_book_line_tax_key(self, move_line, tax)
get_pos_partner_ids(self)
get_report_file_name(self)
get_special_taxes_dic(self)
upsert_book_line_tax(self, move_line, vat_book_line, implied_taxes)
view_issued_invoices(self)
view_received_invoices(self)
base_amount
Float
string='Base'
entry_number
Integer
exception_text
Char
string='Exception text'
external_ref
Char
invoice_date
Date
string='Invoice Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
string='Invoice'
line_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received'), ('rectification_issued', 'Refund Issued'), ('rectification_received', 'Refund Received')]
string='Line type'
move_id
Many2one → account.move
comodel_name='account.move'
string='Journal Entry'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
ref
Char
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_line_ids
One2many → l10n.es.vat.book.line.tax
comodel_name='l10n.es.vat.book.line.tax'
copy=False
inverse_name='vat_book_line_id'
string='Tax Lines'
total_amount
Float
string='Total'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
vat_number
Char
string='NIF'
No public methods.
base_amount
Float
string='Base'
move_line_ids
Many2many → account.move.line
comodel_name='account.move.line'
string='Move Lines'
parent_special_tax_group
Selection
readonly=True
related='vat_book_line_id.special_tax_group'
special_tax_amount
Float
string='Special Tax fee'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=[('req', 'R.Eq.'), ('irpf', 'IRPF')]
string='Special group'
special_tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Special Tax'
tax_amount
Float
string='Tax fee'
tax_id
Many2one → account.tax
comodel_name='account.tax'
string='Tax'
tax_rate
Float
compute='_compute_tax_rate'
string='Tax Rate (%)'
total_amount
Float
string='Total'
total_amount_special_include
Float
string='Total w/Special'
vat_book_line_id
Many2one → l10n.es.vat.book.line
comodel_name='l10n.es.vat.book.line'
index=True
ondelete='cascade'
required=True
No public methods.
base_amount
Float
readonly='True'
string='Base amount'
book_type
Selection
selection=[('issued', 'Issued'), ('received', 'Received')]
string='Book type'
special_tax_group
Selection
help='Special tax group as R.Eq, IRPF, etc'
selection=_selection_special_tax_group
string='Special group'
tax_amount
Float
readonly='True'
string='Tax amount'
total_amount
Float
readonly='True'
string='Total amount'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
No public methods.
tax_id
Many2one → account.tax
comodel_name='account.tax'
ondelete='cascade'
required=True
string='Account Tax'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/8.0/l10n_es_vat_book |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), PRAXYA |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), PRAXYA |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, OCA Transbot, oca-travis, Daniel-CA |
| WEBSITE | |
| WEBSITE | http://www.praxya.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:11:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-tools: - account_invoice_currency OCA/l10n-spain: - l10n_es - l10n_es_aeat - account_refund_original odoo/odoo: - account - base_setup - base - web_kanban - web - product - decimal_precision - report - analytic - board - edi - email_template - base_vat - base_iban - l10n_es |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_vat_book_invoices_issued_document |
report_vat_book_invoices_issued_document | ir.ui.view | qweb | New |
report_vat_book_invoices_received_document |
report_vat_book_invoices_received_document | ir.ui.view | qweb | New |
report_vat_book_rectification_issued_invoices_document |
report_vat_book_rectification_issued_invoices_document | ir.ui.view | qweb | New |
report_vat_book_rectification_received_invoices_document |
report_vat_book_rectification_received_invoices_document | ir.ui.view | qweb | New |
tmp_report_vat_book_invoices_issued |
tmp_report_vat_book_invoices_issued | ir.ui.view | qweb | New |
tmp_report_vat_book_invoices_received |
tmp_report_vat_book_invoices_received | ir.ui.view | qweb | New |
tmp_report_vat_book_rectification_issued_invoices |
tmp_report_vat_book_rectification_issued_invoices | ir.ui.view | qweb | New |
tmp_report_vat_book_rectification_received_invoices |
tmp_report_vat_book_rectification_received_invoices | ir.ui.view | qweb | New |
view_l10n_es_vat_book_form |
l10n_es.vat.book.form | l10n.es.vat.book | xpath | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_vat_book_invoice_tax_lines_form |
view.l10n_es_vat_book_invoice_tax_lines.form | l10n.es.vat.book.invoice.tax.lines | form | New |
view_l10n_es_vat_book_invoice_tax_lines_tree |
view.l10n_es_vat_book_invoice_tax_lines.tree | l10n.es.vat.book.invoice.tax.lines | tree | New |
view_l10n_es_vat_book_issued_lines_form |
view.l10n_es_vat_book_issued_lines.form | l10n.es.vat.book.issued.lines | form | New |
view_l10n_es_vat_book_issued_lines_tree |
view.l10n_es_vat_book_issued_lines.tree | l10n.es.vat.book.issued.lines | tree | New |
view_l10n_es_vat_book_issued_tax_summary_form |
view.l10n_es_vat_book_issued_tax_summary.form | l10n.es.vat.book.issued.tax.summary | form | New |
view_l10n_es_vat_book_issued_tax_summary_tree |
view.l10n_es_vat_book_issued_tax_summary.tree | l10n.es.vat.book.issued.tax.summary | tree | New |
view_l10n_es_vat_book_received_lines_form |
view.l10n_es_vat_book_received_lines.form | l10n.es.vat.book.received.lines | form | New |
view_l10n_es_vat_book_received_lines_tree |
view.l10n_es_vat_book_received_lines.tree | l10n.es.vat.book.received.lines | tree | New |
view_l10n_es_vat_book_received_tax_summary_form |
view.l10n_es_vat_book_received_tax_summary.form | l10n.es.vat.book.received.tax.summary | form | New |
view_l10n_es_vat_book_received_tax_summary_tree |
view.l10n_es_vat_book_received_tax_summary.tree | l10n.es.vat.book.received.tax.summary | tree | New |
view_l10n_es_vat_book_rectification_issued_lines_form |
view.l10n_es_vat_book_rectification_issued_lines.form | l10n.es.vat.book.rectification.issued.lines | form | New |
view_l10n_es_vat_book_rectification_issued_lines_tree |
view.l10n_es_vat_book_rectification_issued_lines.tree | l10n.es.vat.book.rectification.issued.lines | tree | New |
view_l10n_es_vat_book_rectification_issued_tax_summary_form |
view.l10n_es_vat_book_rectification_issued_tax_summary.form | l10n.es.vat.book.rectification.issued.tax.summary | form | New |
view_l10n_es_vat_book_rectification_issued_tax_summary_tree |
view.l10n_es_vat_book_rectification_issued_tax_summary.tree | l10n.es.vat.book.rectification.issued.tax.summary | tree | New |
view_l10n_es_vat_book_rectification_received_lines_form |
view.l10n_es_vat_book_rectification_received_lines.form | l10n.es.vat.book.rectification.received.lines | form | New |
view_l10n_es_vat_book_rectification_received_lines_tree |
view.l10n_es_vat_book_rectification_received_lines.tree | l10n.es.vat.book.rectification.received.lines | tree | New |
view_l10n_es_vat_book_rectification_received_tax_summary_form |
view.l10n_es_vat_book_rectification_received_tax_summary.form | l10n.es.vat.book.rectification.received.tax.summary | form | New |
view_l10n_es_vat_book_rectification_received_tax_summary_tree |
view.l10n_es_vat_book_rectification_received_tax_summary.tree | l10n.es.vat.book.rectification.received.tax.summary | tree | New |
view_l10n_es_vat_book_tree |
view.l10n_es_vat_book.tree | l10n.es.vat.book | tree | New |
amount_tax_issued
Float
readonly='True'
string='Taxes'
amount_tax_received
Float
readonly='True'
string='Taxes'
amount_tax_rectification_issued
Float
readonly='True'
string='Taxes'
amount_tax_rectification_received
Float
readonly='True'
string='Taxes'
amount_total_issued
Float
readonly='True'
string='Total'
amount_total_received
Float
readonly='True'
string='Total'
amount_total_rectification_issued
Float
readonly='True'
string='Total'
amount_total_rectification_received
Float
readonly='True'
string='Total'
amount_without_tax_issued
Float
readonly='True'
string='Total without taxes'
amount_without_tax_received
Float
readonly='True'
string='Total without taxes'
amount_without_tax_rectification_issued
Float
readonly='True'
string='Total without taxes'
amount_without_tax_rectification_received
Float
readonly='True'
string='Total without taxes'
calculation_date
Date
string='Calculation Date'
issued_invoice_ids
One2many → l10n.es.vat.book.issued.lines
comodel_name='l10n.es.vat.book.issued.lines'
inverse_name='l10n_es_vat_book_id'
readonly='True'
string='Issued invoices'
issued_tax_summary
One2many → l10n.es.vat.book.issued.tax.summary
comodel_name='l10n.es.vat.book.issued.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Issued tax summary'
number
Char
default='vat_book'
readonly='True'
received_invoice_ids
One2many → l10n.es.vat.book.received.lines
comodel_name='l10n.es.vat.book.received.lines'
inverse_name='l10n_es_vat_book_id'
readonly='True'
string='Received received'
received_tax_summary
One2many → l10n.es.vat.book.received.tax.summary
comodel_name='l10n.es.vat.book.received.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Received tax summary'
rectification_issued_invoice_ids
One2many → l10n.es.vat.book.rectification.issued.lines
comodel_name='l10n.es.vat.book.rectification.issued.lines'
inverse_name='l10n_es_vat_book_id'
readonly='True'
string='Rectification issued'
rectification_issued_tax_summary
One2many → l10n.es.vat.book.rectification.issued.tax.summary
comodel_name='l10n.es.vat.book.rectification.issued.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Issued tax summary'
rectification_received_invoice_ids
One2many → l10n.es.vat.book.rectification.received.lines
comodel_name='l10n.es.vat.book.rectification.received.lines'
inverse_name='l10n_es_vat_book_id'
readonly='True'
string='Rectification received'
rectification_received_tax_summary
One2many → l10n.es.vat.book.rectification.received.tax.summary
comodel_name='l10n.es.vat.book.rectification.received.tax.summary'
inverse_name='vat_book_id'
readonly='True'
string='Received tax summary'
button_calculate(self)
nearby(self, final, numbers)
amount_without_tax
Float
string='Base'
issued_invoice_line_id
Many2one → l10n.es.vat.book.issued.lines
comodel_name='l10n.es.vat.book.issued.lines'
string='Issued invoice line'
name
Char
string='Tax Name'
received_invoice_line_id
Many2one → l10n.es.vat.book.received.lines
comodel_name='l10n.es.vat.book.received.lines'
string='Received invoice line'
rectification_issued_invoice_line_id
Many2one → l10n.es.vat.book.rectification.issued.lines
comodel_name='l10n.es.vat.book.rectification.issued.lines'
string='Received invoice line'
rectification_received_invoice_line_id
Many2one → l10n.es.vat.book.rectification.received.lines
comodel_name='l10n.es.vat.book.rectification.received.lines'
string='Received invoice line'
tax_amount
Float
string='Tax amount'
tax_percent
Float
string='Tax percent'
No public methods.
base
Float
string='Base'
exeption
Boolean
string='Exeption'
exeption_text
Char
string='Exeption text'
invoice_date
Date
string='Invoice Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
string='Invoice'
l10n_es_vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Vat Book id'
partner_id
Many2one → res.partner
comodel_name='res.partner'
string='Empresa'
tax_import
Float
string='Tax import'
tax_line_issued_ids
One2many → l10n.es.vat.book.invoice.tax.lines
comodel_name='l10n.es.vat.book.invoice.tax.lines'
inverse_name='issued_invoice_line_id'
string='Lineas de impuesto'
total
Float
string='Total'
vat_number
Char
string='NIF'
No public methods.
sum_base_amount
Float
string='Summary base amount'
sum_tax_amount
Float
string='Summary tax amount'
tax_code_id
Many2one → account.tax.code
comodel_name='account.tax.code'
ondelete='cascade'
required=True
string='Account Tax Code'
tax_percent
Float
string='Tax percent'
vat_book_id
Many2one → l10n.es.vat.book
comodel_name='l10n.es.vat.book'
string='Libro de IVA'
No public methods.
tax_lines_received_ids
One2many → l10n.es.vat.book.invoice.tax.lines
comodel_name='l10n.es.vat.book.invoice.tax.lines'
inverse_name='received_invoice_line_id'
string='Tax Lines'
No public methods.
No new fields.
Public methods (0)No public methods.
tax_lines_rectification_issued_ids
One2many → l10n.es.vat.book.invoice.tax.lines
comodel_name='l10n.es.vat.book.invoice.tax.lines'
inverse_name='rectification_issued_invoice_line_id'
string='Tax Lines'
No public methods.
No new fields.
Public methods (0)No public methods.
tax_lines_rectification_received_ids
One2many → l10n.es.vat.book.invoice.tax.lines
comodel_name='l10n.es.vat.book.invoice.tax.lines'
inverse_name='rectification_received_invoice_line_id'
string='Tax Lines'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.