AEAT modelo 369

l10n_es_aeat_mod369
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/18.0/l10n_es_aeat_mod369
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSPedro M. Baeza, Weblate, OCA-git-bot, sergio, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-fiscal-rule:
    - l10n_eu_oss_oca
    - account_fiscal_position_partner_type
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - 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 para la presentación del modelo 369 (IVA. Regímenes especiales
aplicables a las prestaciones de servicios y ventas a distancia de
bienes.) de la Agencia Española de Administración Tributaria.

Instrucciones del modelo:
<https://sede.agenciatributaria.gob.es/static_files/Sede/Consultas_Inf/Presentacion_declaraciones/IVA_mensuales_trimestrales/Modelo_369/Descripcion_PresentacionFichero369_v1.pdf>

Ayuda técnica, incluye fichero Excel de config:
<https://sede.agenciatributaria.gob.es/Sede/ayuda/consultas-informaticas/presentacion-declaraciones-ayuda-tecnica/modelo-369.html>

Incluye la exportación al formato BOE para su uso telemático y la
creación del asiento de regularización de las cuentas de impuestos.

- Por ahora, solo contempla el caso de una declaración de Unión que usa
  la pestaña de 4. Entregas de bienes expedidos o transportados desde
  EMID España.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod369_line_grouped_page7_tree l10n_es.aeat.mod369.line.grouped.page7.list l10n.es.aeat.mod369.line.grouped list New
view_l10n_es_aeat_mod369_line_grouped_tree l10n_es.aeat.mod369.line.grouped.list l10n.es.aeat.mod369.line.grouped list New
view_l10n_es_aeat_mod369_report_form l10n_es.aeat.mod369.report.form l10n.es.aeat.mod369.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod369_report_tree l10n_es.aeat.mod369.report.list l10n.es.aeat.mod369.report list Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
view_tax_form account.tax.form account.tax field Inherits account.view_tax_form
Models touched (6)

New fields (2)
  • service_type Selection
    default='goods' selection=[('goods', 'Goods'), ('services', 'Services')] string='Service type'
  • tax_reduction_type Selection
    selection=[('S', 'Standard'), ('R', 'Reduced')] string='Tax type'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_taxes_for_company(self, company)

New fields (11)
  • amount Float
    related='tax_line_id.amount' string='Amount'
  • country_id Many2one → res.country
    comodel_name='res.country' string='Country'
  • field_number Integer
    related='tax_line_id.field_number' string='Field number'
  • group_ids Many2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' string='Group'
  • map_line_id Many2one → l10n.es.aeat.map.tax.line
    comodel_name='l10n.es.aeat.map.tax.line' related='tax_line_id.map_line_id' string='Map line'
  • oss_country_id Many2one → res.country
    comodel_name='res.country' string='OSS Country'
  • oss_name Char
    string='OSS Name'
  • oss_sequence Integer
    string='OSS Sequence'
  • oss_tax_id Many2one → account.tax
    comodel_name='account.tax' string='OSS Tax'
  • service_type Selection
    related='oss_tax_id.service_type' string='Service type'
  • tax_line_id Many2one → l10n.es.aeat.tax.line
    comodel_name='l10n.es.aeat.tax.line' ondelete='cascade' string='Report tax line'
Public methods (0)

No public methods.

New fields (31)
  • amount Float
    compute='_compute_totals' string='Amount total'
  • amount_str Char
    compute='_compute_amount_str'
  • base Float
    compute='_compute_totals' string='Base total'
  • base_str Char
    compute='_compute_base_str'
  • country_code Char
    compute='_compute_country_code' store=True string='Country code'
  • country_id Many2one → res.country
    comodel_name='res.country' string='Country'
  • is_page_8_line Boolean
    help='Used to filter for grouped lines for page 8' string='Is part of page 8'
  • is_refund Boolean
  • mod369_line_ids Many2many → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' string='Mod369 lines'
  • neg_corrections Float
    string='Negative corrections'
  • oss_country_id Many2one → res.country
    comodel_name='res.country' string='OSS Country'
  • page_3_4_total Float
    compute='_compute_totals' string='Spanish services and goods'
  • page_3_total Float
    compute='_compute_totals' string='Spanish services'
  • page_4_total Float
    compute='_compute_totals' string='Spanish goods'
  • page_5_6_total Float
    compute='_compute_totals' string='Non-Spanish services and goods'
  • page_5_total Float
    compute='_compute_totals' string='Non-Spanish services'
  • page_6_total Float
    compute='_compute_totals' string='Non-Spanish goods'
  • pos_corrections Float
    string='Positive corrections'
  • refund_fiscal_year Integer
  • refund_line_ids Many2many → account.move.line
    comodel_name='account.move.line' relation='refund_line_id_rel' string='Refund lines'
  • refund_period Char
  • report_id Many2one → l10n.es.aeat.mod369.report
    comodel_name='l10n.es.aeat.mod369.report' string='Mod369 report'
  • result_total Float
    string='Total result'
  • service_type Selection
    related='tax_id.service_type' string='Service type'
  • tax_correction Float
  • tax_correction_str Char
    compute='_compute_tax_correction_str'
  • tax_id Many2one → account.tax
    comodel_name='account.tax' string='Tax'
  • total_deposit Float
    string='Total to deposit ES'
  • total_return Float
    string='Total to return EM'
  • vat_type Float
    related='tax_id.amount' string='VAT Type'
  • vat_type_str Char
    compute='_compute_vat_type_str'
Public methods (2)
  • get_calculated_move_lines(self)
  • get_calculated_refund_move_lines(self)

New fields (11)
  • declaration_inactive Boolean
    readonly=True string='Declaration without activity'
  • declaration_type Selection
    default='union' readonly=True selection=[('union', 'Union'), ('export', 'Export'), ('import', 'Import')] string='Declaration type'
  • goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods'), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Goods 369 lines'
  • nrc_reference Char
    copy=False readonly=True string='NRC Reference'
  • payment_type Selection
    default='I' readonly=True selection=[('O', '[O] Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('S', '[S] Ingreso parcial y Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('I', '[I] A ingresar'), ('N', '[N] Negativa'), ('T', '[T] Ingreso por transferencia desde el extranjero')] string='Payment type'
  • refund_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('is_refund', '=', True)] inverse_name='report_id' readonly=True string='Refunds from other periods 369 lines'
  • services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services'), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Services 369 lines'
  • spain_goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods'), ('country_id.code', '=', 'ES'), ('is_page_8_line', '=', False), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Spanish goods 369 lines'
  • spain_services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services'), ('country_id.code', '=', 'ES'), ('is_page_8_line', '=', False), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Spanish services 369 lines'
  • total_amount Float
    compute='_compute_total_amount' string='Total amount'
  • total_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('is_page_8_line', '=', True)] inverse_name='report_id' readonly=True string='Total 369 lines'
Public methods (2)
  • calculate(self)
  • create_regularization_move(self)

New fields (1)
  • mod369_line_id Many2one → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' string='369 extra info'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/17.0/l10n_es_aeat_mod369
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, eugenio
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-fiscal-rule:
    - l10n_eu_oss_oca
    - account_fiscal_position_partner_type
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - 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
Módulo para la presentación del modelo 369 (IVA. Regímenes especiales
aplicables a las prestaciones de servicios y ventas a distancia de
bienes.) de la Agencia Española de Administración Tributaria.

Instrucciones del modelo:
<https://sede.agenciatributaria.gob.es/static_files/Sede/Consultas_Inf/Presentacion_declaraciones/IVA_mensuales_trimestrales/Modelo_369/Descripcion_PresentacionFichero369_v1.pdf>

Ayuda técnica, incluye fichero Excel de config:
<https://sede.agenciatributaria.gob.es/Sede/ayuda/consultas-informaticas/presentacion-declaraciones-ayuda-tecnica/modelo-369.html>

Incluye la exportación al formato BOE para su uso telemático y la
creación del asiento de regularización de las cuentas de impuestos.

- Por ahora, solo contempla el caso de una declaración de Unión que usa
  la pestaña de 4. Entregas de bienes expedidos o transportados desde
  EMID España.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod369_line_grouped_page7_tree l10n_es.aeat.mod369.line.grouped.page7.tree l10n.es.aeat.mod369.line.grouped tree New
view_l10n_es_aeat_mod369_line_grouped_tree l10n_es.aeat.mod369.line.grouped.tree l10n.es.aeat.mod369.line.grouped tree New
view_l10n_es_aeat_mod369_report_form l10n_es.aeat.mod369.report.form l10n.es.aeat.mod369.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod369_report_tree l10n_es.aeat.mod369.report.tree l10n.es.aeat.mod369.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
view_tax_form account.tax.form account.tax field Inherits account.view_tax_form
Models touched (6)

New fields (2)
  • service_type Selection
    default='goods' selection=[('goods', 'Goods'), ('services', 'Services')] string='Service type'
  • tax_reduction_type Selection
    selection=[('S', 'Standard'), ('R', 'Reduced')] string='Tax type'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_taxes_for_company(self, company)

New fields (11)
  • amount Float
    related='tax_line_id.amount' string='Amount'
  • country_id Many2one → res.country
    comodel_name='res.country' string='Country'
  • field_number Integer
    related='tax_line_id.field_number' string='Field number'
  • group_ids Many2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' string='Group'
  • map_line_id Many2one → l10n.es.aeat.map.tax.line
    comodel_name='l10n.es.aeat.map.tax.line' related='tax_line_id.map_line_id' string='Map line'
  • oss_country_id Many2one → res.country
    comodel_name='res.country' string='OSS Country'
  • oss_name Char
    string='OSS Name'
  • oss_sequence Integer
    string='OSS Sequence'
  • oss_tax_id Many2one → account.tax
    comodel_name='account.tax' string='OSS Tax'
  • service_type Selection
    related='oss_tax_id.service_type' string='Service type'
  • tax_line_id Many2one → l10n.es.aeat.tax.line
    comodel_name='l10n.es.aeat.tax.line' ondelete='cascade' string='Report tax line'
Public methods (0)

No public methods.

New fields (31)
  • amount Float
    compute='_compute_totals' string='Amount total'
  • amount_str Char
    compute='_compute_amount_str'
  • base Float
    compute='_compute_totals' string='Base total'
  • base_str Char
    compute='_compute_base_str'
  • country_code Char
    compute='_compute_country_code' store=True string='Country code'
  • country_id Many2one → res.country
    comodel_name='res.country' string='Country'
  • is_page_8_line Boolean
    help='Used to filter for grouped lines for page 8' string='Is part of page 8'
  • is_refund Boolean
  • mod369_line_ids Many2many → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' string='Mod369 lines'
  • neg_corrections Float
    string='Negative corrections'
  • oss_country_id Many2one → res.country
    comodel_name='res.country' string='OSS Country'
  • page_3_4_total Float
    compute='_compute_totals' string='Spanish services and goods'
  • page_3_total Float
    compute='_compute_totals' string='Spanish services'
  • page_4_total Float
    compute='_compute_totals' string='Spanish goods'
  • page_5_6_total Float
    compute='_compute_totals' string='Non-Spanish services and goods'
  • page_5_total Float
    compute='_compute_totals' string='Non-Spanish services'
  • page_6_total Float
    compute='_compute_totals' string='Non-Spanish goods'
  • pos_corrections Float
    string='Positive corrections'
  • refund_fiscal_year Integer
  • refund_line_ids Many2many → account.move.line
    comodel_name='account.move.line' relation='refund_line_id_rel' string='Refund lines'
  • refund_period Char
  • report_id Many2one → l10n.es.aeat.mod369.report
    comodel_name='l10n.es.aeat.mod369.report' string='Mod369 report'
  • result_total Float
    string='Total result'
  • service_type Selection
    related='tax_id.service_type' string='Service type'
  • tax_correction Float
  • tax_correction_str Char
    compute='_compute_tax_correction_str'
  • tax_id Many2one → account.tax
    comodel_name='account.tax' string='Tax'
  • total_deposit Float
    string='Total to deposit ES'
  • total_return Float
    string='Total to return EM'
  • vat_type Float
    related='tax_id.amount' string='VAT Type'
  • vat_type_str Char
    compute='_compute_vat_type_str'
Public methods (2)
  • get_calculated_move_lines(self)
  • get_calculated_refund_move_lines(self)

New fields (11)
  • declaration_inactive Boolean
    readonly=True string='Declaration without activity'
  • declaration_type Selection
    default='union' readonly=True selection=[('union', 'Union'), ('export', 'Export'), ('import', 'Import')] string='Declaration type'
  • goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods'), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Goods 369 lines'
  • nrc_reference Char
    copy=False readonly=True string='NRC Reference'
  • payment_type Selection
    default='I' readonly=True selection=[('O', '[O] Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('S', '[S] Ingreso parcial y Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('I', '[I] A ingresar'), ('N', '[N] Negativa'), ('T', '[T] Ingreso por transferencia desde el extranjero')] string='Payment type'
  • refund_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('is_refund', '=', True)] inverse_name='report_id' readonly=True string='Refunds from other periods 369 lines'
  • services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services'), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Services 369 lines'
  • spain_goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods'), ('country_id.code', '=', 'ES'), ('is_page_8_line', '=', False), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Spanish goods 369 lines'
  • spain_services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services'), ('country_id.code', '=', 'ES'), ('is_page_8_line', '=', False), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Spanish services 369 lines'
  • total_amount Float
    compute='_compute_total_amount' string='Total amount'
  • total_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('is_page_8_line', '=', True)] inverse_name='report_id' readonly=True string='Total 369 lines'
Public methods (2)
  • calculate(self)
  • create_regularization_move(self)

New fields (1)
  • mod369_line_id Many2one → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' string='369 extra info'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/16.0/l10n_es_aeat_mod369
VERSION
VERSION 1.1.2
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Aritz Olea, Sergio Bustamante
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:40
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-fiscal-rule:
    - l10n_eu_oss_oca
    - account_fiscal_position_partner_type
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod369_line_grouped_page7_tree l10n_es.aeat.mod369.line.grouped.page7.tree l10n.es.aeat.mod369.line.grouped tree New
view_l10n_es_aeat_mod369_line_grouped_tree l10n_es.aeat.mod369.line.grouped.tree l10n.es.aeat.mod369.line.grouped tree New
view_l10n_es_aeat_mod369_report_form l10n_es.aeat.mod369.report.form l10n.es.aeat.mod369.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod369_report_tree l10n_es.aeat.mod369.report.tree l10n.es.aeat.mod369.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
view_tax_form account.tax.form account.tax field Inherits account.view_tax_form
Models touched (5)

New fields (2)
  • service_type Selection
    default='goods' selection=[('goods', 'Goods'), ('services', 'Services')] string='Service type'
  • tax_reduction_type Selection
    selection=[('S', 'Standard'), ('R', 'Reduced')] string='Tax type'
Public methods (0)

No public methods.

New fields (11)
  • amount Float
    related='tax_line_id.amount' string='Amount'
  • country_id Many2one → res.country
    comodel_name='res.country' string='Country'
  • field_number Integer
    related='tax_line_id.field_number' string='Field number'
  • group_ids Many2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' string='Group'
  • map_line_id Many2one → l10n.es.aeat.map.tax.line
    comodel_name='l10n.es.aeat.map.tax.line' related='tax_line_id.map_line_id' string='Map line'
  • oss_country_id Many2one → res.country
    comodel_name='res.country' string='OSS Country'
  • oss_name Char
    string='OSS Name'
  • oss_sequence Integer
    string='OSS Sequence'
  • oss_tax_id Many2one → account.tax
    comodel_name='account.tax' string='OSS Tax'
  • service_type Selection
    related='oss_tax_id.service_type' string='Service type'
  • tax_line_id Many2one → l10n.es.aeat.tax.line
    comodel_name='l10n.es.aeat.tax.line' ondelete='cascade' string='Report tax line'
Public methods (0)

No public methods.

New fields (31)
  • amount Float
    compute='_compute_totals' string='Amount total'
  • amount_str Char
    compute='_compute_amount_str'
  • base Float
    compute='_compute_totals' string='Base total'
  • base_str Char
    compute='_compute_base_str'
  • country_code Char
    compute='_compute_country_code' store=True string='Country code'
  • country_id Many2one → res.country
    comodel_name='res.country' string='Country'
  • is_page_8_line Boolean
    help='Used to filter for grouped lines for page 8' string='Is part of page 8'
  • is_refund Boolean
  • mod369_line_ids Many2many → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' string='Mod369 lines'
  • neg_corrections Float
    string='Negative corrections'
  • oss_country_id Many2one → res.country
    comodel_name='res.country' string='OSS Country'
  • page_3_4_total Float
    compute='_compute_totals' string='Spanish services and goods'
  • page_3_total Float
    compute='_compute_totals' string='Spanish services'
  • page_4_total Float
    compute='_compute_totals' string='Spanish goods'
  • page_5_6_total Float
    compute='_compute_totals' string='Non-Spanish services and goods'
  • page_5_total Float
    compute='_compute_totals' string='Non-Spanish services'
  • page_6_total Float
    compute='_compute_totals' string='Non-Spanish goods'
  • pos_corrections Float
    string='Positive corrections'
  • refund_fiscal_year Integer
  • refund_line_ids Many2many → account.move.line
    comodel_name='account.move.line' relation='refund_line_id_rel' string='Refund lines'
  • refund_period Char
  • report_id Many2one → l10n.es.aeat.mod369.report
    comodel_name='l10n.es.aeat.mod369.report' string='Mod369 report'
  • result_total Float
    string='Total result'
  • service_type Selection
    related='tax_id.service_type' string='Service type'
  • tax_correction Float
  • tax_correction_str Char
    compute='_compute_tax_correction_str'
  • tax_id Many2one → account.tax
    comodel_name='account.tax' string='Tax'
  • total_deposit Float
    string='Total to deposit ES'
  • total_return Float
    string='Total to return EM'
  • vat_type Float
    related='tax_id.amount' string='VAT Type'
  • vat_type_str Char
    compute='_compute_vat_type_str'
Public methods (2)
  • get_calculated_move_lines(self)
  • get_calculated_refund_move_lines(self)

New fields (11)
  • declaration_inactive Boolean
    readonly=True states={'draft': [('readonly', False)]} string='Declaration without activity'
  • declaration_type Selection
    default='union' readonly=True selection=[('union', 'Union'), ('export', 'Export'), ('import', 'Import')] states={'draft': [('readonly', False)]} string='Declaration type'
  • goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods'), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Goods 369 lines'
  • nrc_reference Char
    copy=False readonly=True states={'draft': [('readonly', False)]} string='NRC Reference'
  • payment_type Selection
    default='I' readonly=True selection=[('O', '[O] Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('S', '[S] Ingreso parcial y Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('I', '[I] A ingresar'), ('N', '[N] Negativa'), ('T', '[T] Ingreso por transferencia desde el extranjero')] states={'draft': [('readonly', False)]} string='Payment type'
  • refund_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('is_refund', '=', True)] inverse_name='report_id' readonly=True string='Refunds from other periods 369 lines'
  • services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services'), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Services 369 lines'
  • spain_goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods'), ('country_id.code', '=', 'ES'), ('is_page_8_line', '=', False), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Spanish goods 369 lines'
  • spain_services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services'), ('country_id.code', '=', 'ES'), ('is_page_8_line', '=', False), ('is_refund', '=', False)] inverse_name='report_id' readonly=True string='Spanish services 369 lines'
  • total_amount Float
    compute='_compute_total_amount' string='Total amount'
  • total_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('is_page_8_line', '=', True)] inverse_name='report_id' readonly=True string='Total 369 lines'
Public methods (3)
  • calculate(self)
  • create_regularization_move(self)
  • get_taxes_from_map(self, map_line)

New fields (1)
  • mod369_line_id Many2one → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' string='369 extra info'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/15.0/l10n_es_aeat_mod369
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, JuanjoA
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-fiscal-rule:
    - l10n_eu_oss_oca
    - account_fiscal_position_partner_type
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES cryptography
unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod369_line_grouped_tree l10n_es.aeat.mod369.line.grouped.tree l10n.es.aeat.mod369.line.grouped tree New
view_l10n_es_aeat_mod369_report_form l10n_es.aeat.mod369.report.form l10n.es.aeat.mod369.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod369_report_tree l10n_es.aeat.mod369.report.tree l10n.es.aeat.mod369.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
view_tax_form account.tax.form account.tax field Inherits account.view_tax_form
Models touched (5)

New fields (2)
  • service_type Selection
    default='goods' selection=[('goods', 'Goods'), ('services', 'Services')] string='Service type'
  • tax_reduction_type Selection
    selection=[('S', 'Standard'), ('R', 'Reduced')] string='Tax type'
Public methods (0)

No public methods.

New fields (10)
  • amount Float
    related='tax_line_id.amount' string='Amount'
  • field_number Integer
    related='tax_line_id.field_number' string='Field number'
  • group_ids Many2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' string='Group'
  • map_line_id Many2one → l10n.es.aeat.map.tax.line
    comodel_name='l10n.es.aeat.map.tax.line' related='tax_line_id.map_line_id' string='Map line'
  • oss_country_id Many2one → res.country
    comodel_name='res.country' string='OSS Country'
  • oss_name Char
    string='OSS Name'
  • oss_sequence Integer
    string='OSS Sequence'
  • oss_tax_id Many2one → account.tax
    comodel_name='account.tax' string='OSS Tax'
  • service_type Selection
    related='oss_tax_id.service_type' string='Service type'
  • tax_line_id Many2one → l10n.es.aeat.tax.line
    comodel_name='l10n.es.aeat.tax.line' ondelete='cascade' string='Report tax line'
Public methods (0)

No public methods.

New fields (16)
  • amount Float
    compute='_compute_totals' string='Amount total'
  • base Float
    compute='_compute_totals' string='Base total'
  • country_code Char
    related='country_id.code' string='Country code'
  • country_id Many2one → res.country
    comodel_name='res.country' string='Country'
  • is_page_8_line Boolean
    help='Used to filter for grouped lines for page 8' string='Is part of page 8'
  • mod369_line_ids Many2many → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' inverse_name='group_id' string='Mod369 lines'
  • page_3_4_total Float
    compute='_compute_totals' string='Spanish services and goods'
  • page_3_total Float
    compute='_compute_totals' string='Spanish services'
  • page_4_total Float
    compute='_compute_totals' string='Spanish goods'
  • page_5_6_total Float
    compute='_compute_totals' string='Non-Spanish services and goods'
  • page_5_total Float
    compute='_compute_totals' string='Non-Spanish services'
  • page_6_total Float
    compute='_compute_totals' string='Non-Spanish goods'
  • report_id Many2one → l10n.es.aeat.mod369.report
    comodel_name='l10n.es.aeat.mod369.report' string='Mod369 report'
  • service_type Selection
    related='tax_id.service_type' string='Service type'
  • tax_id Many2one → account.tax
    comodel_name='account.tax' string='Tax'
  • vat_type Float
    related='tax_id.amount' string='VAT Type'
Public methods (1)
  • get_calculated_move_lines(self)

New fields (10)
  • declaration_inactive Boolean
    readonly=True states={'draft': [('readonly', False)]} string='Declaration without activity'
  • declaration_type Selection
    readonly=True selection=[('union', 'Union'), ('export', 'Export'), ('import', 'Import')] states={'draft': [('readonly', False)]} string='Declaration type'
  • goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods')] inverse_name='report_id' readonly=True string='Goods 369 lines'
  • nrc_reference Char
    copy=False readonly=True states={'draft': [('readonly', False)]} string='NRC Reference'
  • payment_type Selection
    default='I' readonly=True selection=[('O', '[O] Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('S', '[S] Ingreso parcial y Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('I', '[I] A ingresar'), ('N', '[N] Negativa'), ('T', '[T] Ingreso por transferencia desde el extranjero')] states={'draft': [('readonly', False)]} string='Payment type'
  • services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services')] inverse_name='report_id' readonly=True string='Services 369 lines'
  • spain_goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods'), ('country_id.code', '=', 'ES')] inverse_name='report_id' readonly=True string='Spanish goods 369 lines'
  • spain_services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services'), ('country_id.code', '=', 'ES')] inverse_name='report_id' readonly=True string='Spanish services 369 lines'
  • total_amount Float
    compute='_compute_total_amount' string='Total amount'
  • total_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('is_page_8_line', '=', True)] inverse_name='report_id' readonly=True string='Total 369 lines'
Public methods (2)
  • calculate(self)
  • get_taxes_from_map(self, map_line)

New fields (1)
  • mod369_line_id Many2one → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' string='369 extra info'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/14.0/l10n_es_aeat_mod369
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSPedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-fiscal-rule:
    - l10n_eu_oss
    - account_fiscal_position_partner_type
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES cryptography<39
unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod369_line_grouped_tree l10n_es.aeat.mod369.line.grouped.tree l10n.es.aeat.mod369.line.grouped tree New
view_l10n_es_aeat_mod369_report_form l10n_es.aeat.mod369.report.form l10n.es.aeat.mod369.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod369_report_tree l10n_es.aeat.mod369.report.tree l10n.es.aeat.mod369.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
view_tax_form account.tax.form account.tax field Inherits account.view_tax_form
Models touched (5)

New fields (2)
  • service_type Selection
    default='goods' selection=[('goods', 'Goods'), ('services', 'Services')] string='Service type'
  • tax_reduction_type Selection
    selection=[('S', 'Standard'), ('R', 'Reduced')] string='Tax type'
Public methods (0)

No public methods.

New fields (10)
  • amount Float
    related='tax_line_id.amount' string='Amount'
  • field_number Integer
    related='tax_line_id.field_number' string='Field number'
  • group_ids Many2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' string='Group'
  • map_line_id Many2one → l10n.es.aeat.map.tax.line
    comodel_name='l10n.es.aeat.map.tax.line' related='tax_line_id.map_line_id' string='Map line'
  • oss_country_id Many2one → res.country
    comodel_name='res.country' string='OSS Country'
  • oss_name Char
    string='OSS Name'
  • oss_sequence Integer
    string='OSS Sequence'
  • oss_tax_id Many2one → account.tax
    comodel_name='account.tax' string='OSS Tax'
  • service_type Selection
    related='oss_tax_id.service_type' string='Service type'
  • tax_line_id Many2one → l10n.es.aeat.tax.line
    comodel_name='l10n.es.aeat.tax.line' ondelete='cascade' string='Report tax line'
Public methods (0)

No public methods.

New fields (16)
  • amount Float
    compute='_compute_totals' string='Amount'
  • base Float
    compute='_compute_totals' string='Base'
  • country_code Char
    related='country_id.code' string='Country code'
  • country_id Many2one → res.country
    comodel_name='res.country' string='Country'
  • is_page_8_line Boolean
    help='Used to filter for grouped lines for page 8' string='Is part of page 8'
  • mod369_line_ids Many2many → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' inverse_name='group_id' string='Mod369 lines'
  • page_3_4_total Float
    compute='_compute_totals' string='Spanish services and goods'
  • page_3_total Float
    compute='_compute_totals' string='Spanish services'
  • page_4_total Float
    compute='_compute_totals' string='Spanish goods'
  • page_5_6_total Float
    compute='_compute_totals' string='Non-Spanish services and goods'
  • page_5_total Float
    compute='_compute_totals' string='Non-Spanish services'
  • page_6_total Float
    compute='_compute_totals' string='Non-Spanish goods'
  • report_id Many2one → l10n.es.aeat.mod369.report
    comodel_name='l10n.es.aeat.mod369.report' string='Mod369 report'
  • service_type Selection
    related='tax_id.service_type' string='Service type'
  • tax_id Many2one → account.tax
    comodel_name='account.tax' string='Tax'
  • vat_type Float
    related='tax_id.amount' string='VAT Type'
Public methods (1)
  • get_calculated_move_lines(self)

New fields (10)
  • declaration_inactive Boolean
    readonly=True states={'draft': [('readonly', False)]} string='Declaration without activity'
  • declaration_type Selection
    readonly=True selection=[('union', 'Union'), ('export', 'Export'), ('import', 'Import')] states={'draft': [('readonly', False)]} string='Declaration type'
  • goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods')] inverse_name='report_id' readonly=True string='Goods 369 lines'
  • nrc_reference Char
    copy=False readonly=True states={'draft': [('readonly', False)]} string='NRC Reference'
  • payment_type Selection
    default='I' readonly=True selection=[('O', '[O] Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('S', '[S] Ingreso parcial y Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('I', '[I] A ingresar'), ('N', '[N] Negativa'), ('T', '[T] Ingreso por transferencia desde el extranjero')] states={'draft': [('readonly', False)]} string='Payment type'
  • services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services')] inverse_name='report_id' readonly=True string='Services 369 lines'
  • spain_goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods'), ('country_id.code', '=', 'ES')] inverse_name='report_id' readonly=True string='Spanish goods 369 lines'
  • spain_services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services'), ('country_id.code', '=', 'ES')] inverse_name='report_id' readonly=True string='Spanish services 369 lines'
  • total_amount Float
    compute='_compute_total_amount' string='Total amount'
  • total_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('is_page_8_line', '=', True)] inverse_name='report_id' readonly=True string='Total 369 lines'
Public methods (2)
  • calculate(self)
  • get_taxes_from_map(self, map_line)

New fields (1)
  • mod369_line_id Many2one → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' string='369 extra info'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/12.0/l10n_es_aeat_mod369
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, JuanjoA
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-fiscal-rule:
    - l10n_eu_oss
    - account_fiscal_position_partner_type
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - base_iban
    - l10n_es
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES OpenSSL
requests
unidecode
zeep
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
invoice_form_aeat369 account.invoice.form.aeat369 account.invoice xpath Inherits account.invoice_form
view_account_position_form account.fiscal.position.form account.fiscal.position field Inherits account.view_account_position_form
view_country_form res.country.form res.country field Inherits base.view_country_form
view_l10n_es_aeat_mod369_line_grouped_tree l10n_es.aeat.mod369.line.grouped.tree l10n.es.aeat.mod369.line.grouped tree New
view_l10n_es_aeat_mod369_report_form l10n_es.aeat.mod369.report.form l10n.es.aeat.mod369.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod369_report_tree l10n_es.aeat.mod369.report.tree l10n.es.aeat.mod369.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
view_tax_form account.tax.form account.tax field Inherits account.view_tax_form
Models touched (9)

New fields (2)
  • oss_regimen Selection
    help='Used to specify which page it will be used in the 369 model' selection=[('union', 'Union'), ('exterior', 'Exterior'), ('import', 'Import')] string='OSS Regimen'
  • outside_spain Boolean
    help='This field is to differentiate moves for the 369 model (union)' string='Outside of Spain'
Public methods (0)

No public methods.

New fields (2)
  • fp_outside_spain Boolean
    related='fiscal_position_id.outside_spain' string='Outside of Spain'
  • origin_country_id Many2one → res.country
    comodel_name='res.country' string='Origin country'
Public methods (0)

No public methods.

New fields (1)
  • tax_reduction_type Selection
    selection=[('S', 'Standard'), ('R', 'Reduced')] string='Tax type'
Public methods (0)

No public methods.

New fields (2)
  • outside_spain Boolean
    string='Outside of Spain'
  • service_type Selection
    selection=[('goods', 'Goods'), ('services', 'Services')] string='Service type'
Public methods (0)

No public methods.

New fields (12)
  • amount Float
    related='tax_line_id.amount' string='Amount'
  • field_number Integer
    related='tax_line_id.field_number' string='Field number'
  • group_ids Many2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' string='Group'
  • map_line_id Many2one → l10n.es.aeat.map.tax.line
    comodel_name='l10n.es.aeat.map.tax.line' related='tax_line_id.map_line_id' string='Map line'
  • oss_country_id Many2one → res.country
    comodel_name='res.country' string='OSS Country'
  • oss_name Char
    string='OSS Name'
  • oss_regimen Selection
    selection=[('union', 'Union'), ('exterior', 'Exterior'), ('import', 'Import')] string='OSS Regimen'
  • oss_sequence Integer
    string='OSS Sequence'
  • oss_tax_id Many2one → account.tax
    comodel_name='account.tax' string='OSS Tax'
  • outside_spain Boolean
    string='Outside of Spain'
  • service_type Selection
    selection=[('goods', 'Goods'), ('services', 'Services')] string='Service type'
  • tax_line_id Many2one → l10n.es.aeat.tax.line
    comodel_name='l10n.es.aeat.tax.line' ondelete='cascade' string='Report tax line'
Public methods (0)

No public methods.

New fields (17)
  • amount Float
    compute='_compute_totals' string='Amount'
  • base Float
    compute='_compute_totals' string='Base'
  • country_code Char
    related='country_id.code' string='Country code'
  • country_id Many2one → res.country
    comodel_name='res.country' string='Country'
  • is_page_8_line Boolean
    help='Used to filter for grouped lines for page 8' string='Is part of page 8'
  • mod369_line_ids Many2many → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' inverse_name='group_id' string='Mod369 lines'
  • outside_spain Boolean
    string='Outside of Spain'
  • page_3_4_total Float
    compute='_compute_totals' string='Spanish services and goods'
  • page_3_total Float
    compute='_compute_totals' string='Spanish services'
  • page_4_total Float
    compute='_compute_totals' string='Spanish goods'
  • page_5_6_total Float
    compute='_compute_totals' string='Non-Spanish services and goods'
  • page_5_total Float
    compute='_compute_totals' string='Non-Spanish services'
  • page_6_total Float
    compute='_compute_totals' string='Non-Spanish goods'
  • report_id Many2one → l10n.es.aeat.mod369.report
    comodel_name='l10n.es.aeat.mod369.report' string='Mod369 report'
  • service_type Selection
    selection=[('goods', 'Goods'), ('services', 'Services')] string='Service type'
  • tax_id Many2one → account.tax
    comodel_name='account.tax' string='Tax'
  • vat_type Float
    related='tax_id.amount' string='VAT Type'
Public methods (1)
  • get_calculated_move_lines(self)

New fields (8)
  • declaration_inactive Boolean
    readonly=True states={'draft': [('readonly', False)]} string='Declaration without activity'
  • declaration_type Selection
    readonly=True selection=[('union', 'Union'), ('export', 'Export'), ('import', 'Import')] states={'draft': [('readonly', False)]} string='Declaration type'
  • nrc_reference Char
    copy=False readonly=True states={'draft': [('readonly', False)]} string='NRC Reference'
  • payment_type Selection
    default='I' readonly=True selection=[('O', '[O] Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('S', '[S] Ingreso parcial y Reconocimiento de deuda con los Estados Miembros de Consumo con imposibilidad de pago'), ('I', '[I] A ingresar'), ('N', '[N] Negativa'), ('T', '[T] Ingreso por transferencia desde el extranjero')] states={'draft': [('readonly', False)]} string='Payment type'
  • spain_goods_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'goods'), ('outside_spain', '=', False)] inverse_name='report_id' readonly=True string='Spanish goods 369 lines'
  • spain_services_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('service_type', '=', 'services'), ('outside_spain', '=', False)] inverse_name='report_id' readonly=True string='Spanish services 369 lines'
  • total_amount Float
    compute='_compute_total_amount' string='Total amount'
  • total_line_ids One2many → l10n.es.aeat.mod369.line.grouped
    comodel_name='l10n.es.aeat.mod369.line.grouped' copy=False domain=[('is_page_8_line', '=', True)] inverse_name='report_id' readonly=True string='Total 369 lines'
Public methods (2)
  • calculate(self)
  • get_taxes_from_map(self, map_line)

New fields (1)
  • mod369_line_id Many2one → l10n.es.aeat.mod369.line
    comodel_name='l10n.es.aeat.mod369.line' string='369 extra info'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (1)
  • country_vat Char
    company_dependent=True help="Your company's VAT number in this country" string='VAT'
Public methods (0)

No public methods.