| 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_aeat_mod349 |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, sergio, 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/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 |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Módulo para la presentación del Modelo AEAT 349 (Declaración Recapitulativa de Operaciones Intracomunitarias) Basado en la Orden EHA/769/2010 por el que se aprueban los diseños físicos y lógicos del 349. De acuerdo con la normativa de la Hacienda Española, están obligados a presentar el modelo 349: > - Todos aquellos sujetos pasivos del Impuesto sobre el Valor Añadido > que hayan realizado las operaciones previstas en el artículo 79 del > Reglamento del Impuesto sobre el Valor Añadido, es decir, quienes > adquieran o vendan bienes a empresas situadas en países miembros de > la UE, sino también aquellos que presten servicios a miembros de la > UE y cumplan con las siguientes condiciones: > > > - Que conforme a las reglas de la localización aplicables a las > > mismas, no se entiendan prestadas en el territorio de aplicación > > del impuesto. > > > > - Que estén sometidas efectivamente a gravamen de otro Estado > > miembro. > > > > - Que su destinatario sea un empresario o profesional actuando como > > tal y radique en dicho Estado miembro la sede de su actividad > > económica, o tenga en el mismo un establecimiento permanente o, en > > su defecto, el lugar de su domicilio o residencia habitual, o que > > dicho destinatario sea una persona jurídica que no actúe como > > empresario o profesional pero tenga asignado un número de > > identificación a efectos del Impuesto suministrado por ese Estado > > miembro. > > > > - Que el sujeto pasivo sea dicho destinatario. > > > > El período de declaración comprenderá, con carácter general las > > operaciones realizadas en cada mes natural, y se presentará > > durante los veinte primeros días naturales del mes inmediato > > siguiente al correspondiente período mensual. No obstante, la > > presentación podrá ser bimestral, trimestral o anual en los > > siguientes supuestos: > > - Bimestral: Si al final del segundo mes de un trimestre natural el > importe total de las entregas de bienes y prestaciones de servicios > que deban consignarse en la declaración recapitulativa supera > 100.000 euros (a partir de 2012, el umbral se fija en 50.000 euros). > - Trimestral: Cuando ni durante el trimestre de referencia ni en cada > uno de los cuatro trimestres naturales anteriores el importe total > de las entregas de bienes y prestaciones de servicios que deban > consignarse en la declaración recapitulativa sea superior a 100.000 > euros. > - Anual: En los treinta primeros días de enero del año siguiente ( la > primera sería en enero de 2011) si el importe total de las entregas > de bienes o prestaciones de servicios del año ( excluido IVA), no > supera los 35.000 € y el importe total de las entregas de bienes a > otro Estado Miembro (salvo medios de transporte nuevos) exentas de > IVA no sea superior a 15.000 €. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_349_map_lines_view_tree |
aeat.349.map.lines.view.list | aeat.349.map.line | list | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (list) | l10n.es.aeat.mod349.partner_record_detail | list | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (list) | l10n.es.aeat.mod349.partner_record | list | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (list) | l10n.es.aeat.mod349.partner_refund_detail | list | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (list) | l10n.es.aeat.mod349.partner_refund | list | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.list | l10n.es.aeat.mod349.report | list | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_form |
account.move | field | Inherits account.view_move_form | |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
string='EU Triangular deal'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
compute_sudo=True
search='_search_l10n_es_aeat_349_operation_key'
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
compute_sudo=True
search='_search_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_xmlid_ids
Many2many → l10n.es.aeat.map.tax.line.tax
comodel_name='l10n.es.aeat.map.tax.line.tax'
string='Taxes templates'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
error_text
Char
compute='_compute_partner_record_ok'
store=True
operation_key
Selection
selection=_selection_operation_key
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
store=True
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
No public methods.
amount_untaxed
Float
date
Date
readonly=True
related='move_line_id.move_id.invoice_date'
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='move_line_id.move_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
amount_untaxed
Float
date
Date
readonly=True
related='refund_line_id.date'
store=True
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='refund_line_id.move_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
frequency_change
Boolean
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
button_recover(self)
calculate(self)
| 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_aeat_mod349 |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, oca-ci, jorgeluislrpc |
| 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/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 para la presentación del Modelo AEAT 349 (Declaración Recapitulativa de Operaciones Intracomunitarias) Basado en la Orden EHA/769/2010 por el que se aprueban los diseños físicos y lógicos del 349. De acuerdo con la normativa de la Hacienda Española, están obligados a presentar el modelo 349: > - Todos aquellos sujetos pasivos del Impuesto sobre el Valor Añadido > que hayan realizado las operaciones previstas en el artículo 79 del > Reglamento del Impuesto sobre el Valor Añadido, es decir, quienes > adquieran o vendan bienes a empresas situadas en países miembros de > la UE, sino también aquellos que presten servicios a miembros de la > UE y cumplan con las siguientes condiciones: > > > - Que conforme a las reglas de la localización aplicables a las > > mismas, no se entiendan prestadas en el territorio de aplicación > > del impuesto. > > > > - Que estén sometidas efectivamente a gravamen de otro Estado > > miembro. > > > > - Que su destinatario sea un empresario o profesional actuando como > > tal y radique en dicho Estado miembro la sede de su actividad > > económica, o tenga en el mismo un establecimiento permanente o, en > > su defecto, el lugar de su domicilio o residencia habitual, o que > > dicho destinatario sea una persona jurídica que no actúe como > > empresario o profesional pero tenga asignado un número de > > identificación a efectos del Impuesto suministrado por ese Estado > > miembro. > > > > - Que el sujeto pasivo sea dicho destinatario. > > > > El período de declaración comprenderá, con carácter general las > > operaciones realizadas en cada mes natural, y se presentará > > durante los veinte primeros días naturales del mes inmediato > > siguiente al correspondiente período mensual. No obstante, la > > presentación podrá ser bimestral, trimestral o anual en los > > siguientes supuestos: > > - Bimestral: Si al final del segundo mes de un trimestre natural el > importe total de las entregas de bienes y prestaciones de servicios > que deban consignarse en la declaración recapitulativa supera > 100.000 euros (a partir de 2012, el umbral se fija en 50.000 euros). > - Trimestral: Cuando ni durante el trimestre de referencia ni en cada > uno de los cuatro trimestres naturales anteriores el importe total > de las entregas de bienes y prestaciones de servicios que deban > consignarse en la declaración recapitulativa sea superior a 100.000 > euros. > - Anual: En los treinta primeros días de enero del año siguiente ( la > primera sería en enero de 2011) si el importe total de las entregas > de bienes o prestaciones de servicios del año ( excluido IVA), no > supera los 35.000 € y el importe total de las entregas de bienes a > otro Estado Miembro (salvo medios de transporte nuevos) exentas de > IVA no sea superior a 15.000 €. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_349_map_lines_view_tree |
aeat.349.map.lines.view.list | aeat.349.map.line | list | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (list) | l10n.es.aeat.mod349.partner_record_detail | list | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (list) | l10n.es.aeat.mod349.partner_record | list | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (list) | l10n.es.aeat.mod349.partner_refund_detail | list | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (list) | l10n.es.aeat.mod349.partner_refund | list | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.list | l10n.es.aeat.mod349.report | list | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_form |
account.move | field | Inherits account.view_move_form | |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
string='EU Triangular deal'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
compute_sudo=True
search='_search_l10n_es_aeat_349_operation_key'
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
compute_sudo=True
search='_search_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_xmlid_ids
Many2many → l10n.es.aeat.map.tax.line.tax
comodel_name='l10n.es.aeat.map.tax.line.tax'
string='Taxes templates'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
error_text
Char
compute='_compute_partner_record_ok'
store=True
operation_key
Selection
selection=_selection_operation_key
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
store=True
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
No public methods.
amount_untaxed
Float
date
Date
readonly=True
related='move_line_id.move_id.invoice_date'
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='move_line_id.move_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
amount_untaxed
Float
date
Date
readonly=True
related='refund_line_id.date'
store=True
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='refund_line_id.move_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
frequency_change
Boolean
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
button_recover(self)
calculate(self)
| 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_aeat_mod349 |
| VERSION | |
| VERSION | 1.2.1 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Ignacio, jorgeluislrpc |
| 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/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 |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Módulo para la presentación del Modelo AEAT 349 (Declaración Recapitulativa de Operaciones Intracomunitarias) Basado en la Orden EHA/769/2010 por el que se aprueban los diseños físicos y lógicos del 349. De acuerdo con la normativa de la Hacienda Española, están obligados a presentar el modelo 349: > - Todos aquellos sujetos pasivos del Impuesto sobre el Valor Añadido > que hayan realizado las operaciones previstas en el artículo 79 del > Reglamento del Impuesto sobre el Valor Añadido, es decir, quienes > adquieran o vendan bienes a empresas situadas en países miembros de > la UE, sino también aquellos que presten servicios a miembros de la > UE y cumplan con las siguientes condiciones: > > > - Que conforme a las reglas de la localización aplicables a las > > mismas, no se entiendan prestadas en el territorio de aplicación > > del impuesto. > > > > - Que estén sometidas efectivamente a gravamen de otro Estado > > miembro. > > > > - Que su destinatario sea un empresario o profesional actuando como > > tal y radique en dicho Estado miembro la sede de su actividad > > económica, o tenga en el mismo un establecimiento permanente o, en > > su defecto, el lugar de su domicilio o residencia habitual, o que > > dicho destinatario sea una persona jurídica que no actúe como > > empresario o profesional pero tenga asignado un número de > > identificación a efectos del Impuesto suministrado por ese Estado > > miembro. > > > > - Que el sujeto pasivo sea dicho destinatario. > > > > El período de declaración comprenderá, con carácter general las > > operaciones realizadas en cada mes natural, y se presentará > > durante los veinte primeros días naturales del mes inmediato > > siguiente al correspondiente período mensual. No obstante, la > > presentación podrá ser bimestral, trimestral o anual en los > > siguientes supuestos: > > - Bimestral: Si al final del segundo mes de un trimestre natural el > importe total de las entregas de bienes y prestaciones de servicios > que deban consignarse en la declaración recapitulativa supera > 100.000 euros (a partir de 2012, el umbral se fija en 50.000 euros). > - Trimestral: Cuando ni durante el trimestre de referencia ni en cada > uno de los cuatro trimestres naturales anteriores el importe total > de las entregas de bienes y prestaciones de servicios que deban > consignarse en la declaración recapitulativa sea superior a 100.000 > euros. > - Anual: En los treinta primeros días de enero del año siguiente ( la > primera sería en enero de 2011) si el importe total de las entregas > de bienes o prestaciones de servicios del año ( excluido IVA), no > supera los 35.000 € y el importe total de las entregas de bienes a > otro Estado Miembro (salvo medios de transporte nuevos) exentas de > IVA no sea superior a 15.000 €. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_349_map_lines_view_tree |
aeat.349.map.lines.view.tree | aeat.349.map.line | tree | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_form |
account.move | field | Inherits account.view_move_form | |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
string='EU Triangular deal'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
compute_sudo=True
search='_search_l10n_es_aeat_349_operation_key'
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
compute_sudo=True
search='_search_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_xmlid_ids
Many2many → l10n.es.aeat.map.tax.line.tax
comodel_name='l10n.es.aeat.map.tax.line.tax'
string='Taxes templates'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
error_text
Char
compute='_compute_partner_record_ok'
store=True
operation_key
Selection
selection=_selection_operation_key
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
store=True
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
No public methods.
amount_untaxed
Float
date
Date
readonly=True
related='move_line_id.move_id.invoice_date'
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='move_line_id.move_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
amount_untaxed
Float
date
Date
readonly=True
related='refund_line_id.date'
store=True
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='refund_line_id.move_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
frequency_change
Boolean
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
button_recover(self)
calculate(self)
| 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_aeat_mod349 |
| VERSION | |
| VERSION | 1.4.3 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Jairo Llopis, cubells, Weblate, OCA-git-bot, Luis J. Salvatierra, oca-ci, Alejandro Ji Cheung, FernandoRomera, Segui-S73 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:40 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat 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_349_map_lines_view_tree |
aeat.349.map.lines.view.tree | aeat.349.map.line | tree | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_form |
account.move | field | Inherits account.view_move_form | |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
states={'draft': [('readonly', False)]}
string='EU Triangular deal'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
aeat_349_map_line
Many2one → aeat.349.map.line
comodel_name='aeat.349.map.line'
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_tmpl_ids
One2many → account.tax.template
comodel_name='account.tax.template'
inverse_name='aeat_349_map_line'
string='Taxes'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
error_text
Char
compute='_compute_partner_record_ok'
store=True
operation_key
Selection
selection=_selection_operation_key
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
store=True
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
No public methods.
amount_untaxed
Float
date
Date
readonly=True
related='move_line_id.move_id.invoice_date'
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='move_line_id.move_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
amount_untaxed
Float
date
Date
readonly=True
related='refund_line_id.date'
store=True
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='refund_line_id.move_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
frequency_change
Boolean
states={'confirmed': [('readonly', True)]}
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
states={'confirmed': [('readonly', True)]}
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
states={'confirmed': [('readonly', True)]}
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
button_recover(self)
calculate(self)
| 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_aeat_mod349 |
| VERSION | |
| VERSION | 1.5.3 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Jairo Llopis, manu, OCA Transbot, Miquel Raïch, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Valentin Vinagre Urteaga, LauraCForgeFlow |
| 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/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 |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
l10n_es_aeat_349_map_lines_view_tree |
aeat.349.map.lines.view.tree | aeat.349.map.line | tree | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_form |
account.move | field | Inherits account.view_move_form | |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
states={'draft': [('readonly', False)]}
string='EU Triangular deal'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
aeat_349_map_line
Many2one → aeat.349.map.line
comodel_name='aeat.349.map.line'
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_tmpl_ids
One2many → account.tax.template
comodel_name='account.tax.template'
inverse_name='aeat_349_map_line'
string='Taxes'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
error_text
Char
compute='_compute_partner_record_ok'
store=True
operation_key
Selection
selection=_selection_operation_key
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
store=True
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
No public methods.
amount_untaxed
Float
date
Date
readonly=True
related='move_line_id.move_id.invoice_date'
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='move_line_id.move_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
amount_untaxed
Float
date
Date
readonly=True
related='refund_line_id.date'
store=True
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='refund_line_id.move_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
frequency_change
Boolean
states={'confirmed': [('readonly', True)]}
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
states={'confirmed': [('readonly', True)]}
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
states={'confirmed': [('readonly', True)]}
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
button_recover(self)
calculate(self)
| 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_aeat_mod349 |
| VERSION | |
| VERSION | 1.4.3 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, manu, OCA Transbot, Miquel Raïch, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, Eric Antones, oca-ci, miguels73 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:49 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat 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_349_map_lines_view_tree |
aeat.349.map.lines.view.tree | aeat.349.map.line | tree | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_form |
account.move | field | Inherits account.view_move_form | |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
states={'draft': [('readonly', False)]}
string='EU Triangular deal'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
aeat_349_map_line
Many2one → aeat.349.map.line
comodel_name='aeat.349.map.line'
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_tmpl_ids
One2many → account.tax.template
comodel_name='account.tax.template'
inverse_name='aeat_349_map_line'
string='Taxes'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
error_text
Char
compute='_compute_partner_record_ok'
store=True
string='Error text'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
store=True
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total operation amount'
No public methods.
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='move_line_id.move_id.invoice_date'
string='Date'
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='move_line_id.move_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
string='Period type'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='refund_line_id.date'
store=True
string='Date'
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='refund_line_id.move_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
frequency_change
Boolean
states={'confirmed': [('readonly', True)]}
string='Frequency change'
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
states={'confirmed': [('readonly', True)]}
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
states={'confirmed': [('readonly', True)]}
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
button_recover(self)
calculate(self)
| 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_aeat_mod349 |
| VERSION | |
| VERSION | 1.3.0 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Eficent |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Eficent |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, manu, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci |
| 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/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_349_map_lines_view_tree |
aeat.349.map.lines.view.tree | aeat.349.map.line | tree | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_form |
account.move | field | Inherits account.view_move_form | |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
states={'draft': [('readonly', False)]}
string='EU Triangular deal'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
aeat_349_map_line
Many2one → aeat.349.map.line
comodel_name='aeat.349.map.line'
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_tmpl_ids
One2many → account.tax.template
comodel_name='account.tax.template'
inverse_name='aeat_349_map_line'
string='Taxes'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
error_text
Char
compute='_compute_partner_record_ok'
store=True
string='Error text'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
store=True
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total operation amount'
No public methods.
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='move_line_id.move_id.invoice_date'
string='Date'
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='move_line_id.move_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
string='Period type'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='refund_line_id.date'
string='Date'
move_id
Many2one → account.move
comodel_name='account.move'
readonly=True
related='refund_line_id.move_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.statement_type'
store=True
No public methods.
frequency_change
Boolean
states={'confirmed': [('readonly', True)]}
string='Frequency change'
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
ondelete='cascade'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
ondelete='cascade'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
button_recover(self)
calculate(self)
| 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_aeat_mod349 |
| VERSION | |
| VERSION | 1.3.4 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Eficent |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Eficent |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, sbejaoui, cubells, OCA Transbot, oca-travis, OCA-git-bot, Oihane Crucelaegui, Rubén Cerdà |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:13 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/l10n-spain: - l10n_es_aeat 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_iban - l10n_es - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
OpenSSL requests unidecode zeep |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_form |
account.invoice | field | Inherits account.invoice_form | |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | field | Inherits account.invoice_supplier_form |
l10n_es_aeat_349_map_lines_view_tree |
aeat.349.map.lines.view.tree | aeat.349.map.line | tree | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_invoice_line_form |
account.invoice.line | field | Inherits account.view_invoice_line_form | |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
states={'draft': [('readonly', False)]}
string='EU Triangular deal'
invoice_line_move_line_get(self)
line_get_convert(self, line, part)
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
aeat_349_map_line
Many2one → aeat.349.map.line
comodel_name='aeat.349.map.line'
oldname='aeat_349_operation_key'
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_tmpl_ids
One2many → account.tax.template
comodel_name='account.tax.template'
inverse_name='aeat_349_map_line'
string='Taxes'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total operation amount'
No public methods.
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='move_line_id.invoice_id.date_invoice'
string='Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
readonly=True
related='move_line_id.invoice_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
string='Period type'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='refund_line_id.date'
string='Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
readonly=True
related='refund_line_id.invoice_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.type'
store=True
No public methods.
frequency_change
Boolean
states={'confirmed': [('readonly', True)]}
string='Frequency change'
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
ondelete='cascade'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
ondelete='cascade'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
button_recover(self)
calculate(self)
| 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_aeat_mod349 |
| VERSION | |
| VERSION | 1.2.0 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Eficent |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Eficent |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), Jordi Ballester Alomar, cubells, OCA Transbot, oca-travis, OCA-git-bot, Eric Antones, maurocebria, Aitor Bouzas, David Gómez Quilón |
| 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/server-ux: - date_range odoo/odoo: - account_invoicing - account - base_setup - base - web - product - decimal_precision - bus - web_tour - analytic - web_planner - portal - http_routing - base_iban - l10n_es - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_form |
account.invoice | field | Inherits account.invoice_form | |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | field | Inherits account.invoice_supplier_form |
l10n_es_aeat_349_map_lines_view_tree |
aeat.349.map.lines.view.tree | aeat.349.map.line | tree | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_invoice_line_form |
account.invoice.line | field | Inherits account.view_invoice_line_form | |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
states={'draft': [('readonly', False)]}
string='EU Triangular deal'
invoice_line_move_line_get(self)
line_get_convert(self, line, part)
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
aeat_349_map_line
Many2one → aeat.349.map.line
comodel_name='aeat.349.map.line'
oldname='aeat_349_operation_key'
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_tmpl_ids
One2many → account.tax.template
comodel_name='account.tax.template'
inverse_name='aeat_349_map_line'
string='Taxes'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total operation amount'
onchange_format_partner_vat(self, partner_vat, country_id)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='move_line_id.invoice_id.date_invoice'
string='Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
readonly=True
related='move_line_id.invoice_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
string='Period type'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
onchange_format_partner_vat(self, partner_vat, country_id)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='refund_line_id.date'
string='Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
readonly=True
related='refund_line_id.invoice_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.type'
store=True
No public methods.
frequency_change
Boolean
states={'confirmed': [('readonly', True)]}
string='Frequency change'
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
ondelete='cascade'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
ondelete='cascade'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
calculate(self)
| 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_aeat_mod349 |
| VERSION | |
| VERSION | 2.2.6 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Pexego, Eficent, Top Consultant |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Pexego, Eficent, Top Consultant |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Cédric Pigeon, Carlos Dauden, OCA Transbot, oca-travis, Weblate |
| 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_aeat - l10n_es 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_iban - base_vat - l10n_es |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_form |
account.invoice | field | Inherits account.invoice_form | |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | field | Inherits account.invoice_supplier_form |
l10n_es_aeat_349_map_lines_view_tree |
aeat.349.map.lines.view.tree | aeat.349.map.line | tree | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_invoice_line_form |
account.invoice.line | field | Inherits account.view_invoice_line_form | |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
states={'draft': [('readonly', False)]}
string='EU Triangular deal'
invoice_line_move_line_get(self)
line_get_convert(self, line, part)
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
aeat_349_map_line
Many2one → aeat.349.map.line
comodel_name='aeat.349.map.line'
oldname='aeat_349_operation_key'
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_tmpl_ids
One2many → account.tax.template
comodel_name='account.tax.template'
inverse_name='aeat_349_map_line'
string='Taxes'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total operation amount'
onchange_format_partner_vat(self, partner_vat, country_id)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='move_line_id.invoice_id.date_invoice'
string='Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
readonly=True
related='move_line_id.invoice_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
string='Period type'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
onchange_format_partner_vat(self, partner_vat, country_id)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='refund_line_id.date'
string='Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
readonly=True
related='refund_line_id.invoice_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.type'
store=True
No public methods.
frequency_change
Boolean
states={'confirmed': [('readonly', True)]}
string='Frequency change'
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
ondelete='cascade'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
ondelete='cascade'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
calculate(self)
| 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/9.0/l10n_es_aeat_mod349 |
| VERSION | |
| VERSION | 2.1.6 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Pexego, Eficent, Top Consultant |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Pexego, Eficent, Top Consultant |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, OCA Transbot, oca-travis, Weblate, JesusVMayor |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:18 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/account-invoicing: - account_invoice_refund_link OCA/l10n-spain: - l10n_es_aeat - l10n_es OCA/server-tools: - date_range odoo/odoo: - account - base_setup - base - web_kanban - web - product - decimal_precision - bus - report - analytic - web_tip - web_planner - base_iban - base_vat - l10n_es |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_form |
account.invoice | field | Inherits account.invoice_form | |
invoice_supplier_form |
account.invoice.supplier.form | account.invoice | field | Inherits account.invoice_supplier_form |
l10n_es_aeat_349_map_lines_view_tree |
aeat.349.map.lines.view.tree | aeat.349.map.line | tree | New |
l10n_es_aeat_mod349.mod349_partner_record |
l10n_es_aeat_mod349.mod349_partner_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_record_head |
l10n_es_aeat_mod349.mod349_partner_record_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_partner_refund_head |
l10n_es_aeat_mod349.mod349_partner_refund_head | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_refund_record |
l10n_es_aeat_mod349.mod349_refund_record | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.mod349_summary |
l10n_es_aeat_mod349.mod349_summary | ir.ui.view | qweb | New |
l10n_es_aeat_mod349.report_aeat_mod349_document |
l10n_es_aeat_mod349.report_aeat_mod349_document | ir.ui.view | qweb | New |
report_l10n_es_mod349_pdf |
report_l10n_es_mod349_pdf | ir.ui.view | qweb | New |
view_account_tax_add_mod349_form |
Tax | add 'aeat_349_operation_key' field (form) | account.tax | field | Inherits account.view_tax_form |
view_invoice_line_form |
account.invoice.line | field | Inherits account.view_invoice_line_form | |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | group | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_move_line_form |
account.move.line | field | Inherits account.view_move_line_form |
eu_triangular_deal
Boolean
help='This invoice constitutes a triangular operation for the purposes of intra-community operations.'
readonly=True
states={'draft': [('readonly', False)]}
string='EU Triangular deal'
invoice_line_move_line_get(self)
line_get_convert(self, line, part)
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
selection=[('A', 'A - Intra-Community acquisition'), ('E', 'E - Intra-Community supplies'), ('I', 'I - Intra-Community services acquisitions'), ('S', 'S - Intra-Community services'), ('T', 'T - Triangular operations')]
string='AEAT 349 Operation key'
No public methods.
l10n_es_aeat_349_operation_key
Selection
compute='_compute_l10n_es_aeat_349_operation_key'
selection=_selection_operation_key
string='AEAT 349 Operation key'
No public methods.
aeat_349_map_line
Many2one → aeat.349.map.line
comodel_name='aeat.349.map.line'
oldname='aeat_349_operation_key'
string='AEAT 349 Operation key'
No public methods.
operation_key
Selection
required=True
selection=_selection_operation_key
physical_product
Boolean
string='Involves physical product'
tax_tmpl_ids
One2many → account.tax.template
comodel_name='account.tax.template'
inverse_name='aeat_349_map_line'
string='Taxes'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_compute_partner_record_ok'
help='Checked if partner record is OK'
string='Partner Record OK'
partner_vat
Char
index=True
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total operation amount'
onchange_format_partner_vat(self, partner_vat, country_id)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='move_line_id.invoice_id.date_invoice'
string='Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
readonly=True
related='move_line_id.invoice_id'
string='Invoice'
move_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='partner_record_id.partner_id'
string='Partner'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
index=True
ondelete='set null'
string='Partner record'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.type'
store=True
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
selection=_selection_operation_key
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
partner_refund_ok
Boolean
compute='_compute_partner_refund_ok'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
selection='get_period_type_selection'
string='Period type'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
compute='_compute_total_operation_amount'
store=True
string='Total rectified amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
year
Integer
get_period_type_selection(self)
onchange_format_partner_vat(self, partner_vat, country_id)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='refund_line_id.date'
string='Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
readonly=True
related='refund_line_id.invoice_id'
string='Invoice'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
related='refund_id.partner_id'
string='Partner'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='set null'
string='Partner refund ID'
refund_line_id
Many2one → account.move.line
comodel_name='account.move.line'
required=True
string='Journal Item'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
required=True
string='AEAT 349 Report ID'
report_type
Selection
readonly=True
related='report_id.type'
store=True
No public methods.
frequency_change
Boolean
states={'confirmed': [('readonly', True)]}
string='Frequency change'
number
Char
default='349'
partner_record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner record details'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
ondelete='cascade'
readonly=True
string='Partner records'
partner_refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner refund details'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
ondelete='cascade'
readonly=True
string='Partner refund IDS'
total_partner_records
Integer
compute='_compute_report_regular_totals'
store=True
string='Partners records'
total_partner_records_amount
Float
compute='_compute_report_regular_totals'
store=True
string='Partners records amount'
total_partner_refunds
Integer
compute='_compute_report_refund_totals'
store=True
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_compute_report_refund_totals'
store=True
string='Partners refunds amount'
button_confirm(self)
calculate(self)
| 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_aeat_mod349 |
| VERSION | |
| VERSION | 2.2.0 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Pexego, Antiun Ingeniería S.L., Serv. Tecnol. Avanzados - Pedro M. Baeza, Top Consultant |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Pexego, Antiun Ingeniería S.L., Serv. Tecnol. Avanzados - Pedro M. Baeza, Top Consultant |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Pedro M. Baeza, Stéphane Bidoul (ACSONE), Omar (Pexego), OCA Transbot, PabloCM, Santi Argüeso, oca-travis, agaldona, Weblate, Antonio Espinosa |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:11:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-tools: - account_invoice_currency OCA/l10n-spain: - account_refund_original - l10n_es - l10n_es_aeat 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 |
|---|---|---|---|---|
view_account_fiscal_position_add_mod349_form |
Fiscal position | add 'include in AEAT 349' field (form) | account.fiscal.position | field | Inherits account.view_account_position_form |
view_account_fiscal_position_add_mod349_tree |
Fiscal position | add 'include in AEAT 349' field (tree) | account.fiscal.position | field | Inherits account.view_account_position_tree |
view_customer_account_invoice_form__add_operation_key |
Account invoice (customer) | add 'operation_key' field (form) | account.invoice | field | Inherits account.invoice_form |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_supplier_account_invoice_form__add_operation_key |
Account invoice (supplier) | add 'operation_key' field (form) | account.invoice | field | Inherits account.invoice_supplier_form |
intracommunity_operations
Boolean
No public methods.
operation_key
Selection
selection=OPERATION_KEYS
string='Operation key'
create(self, vals)
onchange_fiscal_position_l10n_es_aeat_mod349(self)
No new fields.
Public methods (0)No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
operation_key
Selection
required=True
selection=OPERATION_KEYS
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
partner_record_ok
Boolean
compute='_check_partner_record_line'
help='Checked if partner record is OK'
string='Partner Record OK'
partner_vat
Char
select=1
size=15
string='VAT'
record_detail_ids
One2many → l10n.es.aeat.mod349.partner_record_detail
comodel_name='l10n.es.aeat.mod349.partner_record_detail'
inverse_name='partner_record_id'
string='Partner record detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
string='Total operation amount'
onchange_format_partner_vat(self, partner_vat, country_id)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='invoice_id.date_invoice'
string='Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
required=True
string='Invoice'
partner_record_id
Many2one → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
default=<expr>
ondelete='cascade'
required=True
select=1
string='Partner record'
No public methods.
country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
fiscalyear_id
Many2one → account.fiscalyear
comodel_name='account.fiscalyear'
string='Fiscal year'
operation_key
Selection
required=True
selection=OPERATION_KEYS
string='Operation key'
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=1
select=1
string='Partner'
partner_refund_ok
Boolean
compute='_check_partner_refund_line'
help='Checked if refund record is OK'
string='Partner refund OK'
partner_vat
Char
size=15
string='VAT'
period_type
Selection
required=True
selection='get_period_type_selection'
string='Period type'
refund_detail_ids
One2many → l10n.es.aeat.mod349.partner_refund_detail
comodel_name='l10n.es.aeat.mod349.partner_refund_detail'
inverse_name='refund_id'
string='Partner refund detail IDS'
report_id
Many2one → l10n.es.aeat.mod349.report
comodel_name='l10n.es.aeat.mod349.report'
ondelete='cascade'
string='AEAT 349 Report ID'
total_operation_amount
Float
string='Total operation amount'
total_origin_amount
Float
help='Refund original amount'
string='Original amount'
get_period_type_selection(self)
onchange_format_partner_vat(self, partner_vat, country_id)
amount_untaxed
Float
string='Amount untaxed'
date
Date
readonly=True
related='invoice_id.date_invoice'
string='Date'
invoice_id
Many2one → account.invoice
comodel_name='account.invoice'
required=True
string='Invoice ID'
refund_id
Many2one → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
ondelete='cascade'
string='Partner refund ID'
No public methods.
calculate_date
Boolean
help='Warning!: With this checkbox selected, the declaration will be computed selecting invoices based in periods and dates in selected Period Type not only by period'
states={'confirmed': [('readonly', True)]}
string='Calculate by days'
frequency_change
Boolean
states={'confirmed': [('readonly', True)]}
string='Frequency change'
number
Char
default='349'
partner_record_ids
One2many → l10n.es.aeat.mod349.partner_record
comodel_name='l10n.es.aeat.mod349.partner_record'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner records'
partner_refund_ids
One2many → l10n.es.aeat.mod349.partner_refund
comodel_name='l10n.es.aeat.mod349.partner_refund'
inverse_name='report_id'
ondelete='cascade'
states={'confirmed': [('readonly', True)]}
string='Partner refund IDS'
total_partner_records
Integer
compute='_get_report_totals'
string='Partners records'
total_partner_records_amount
Float
compute='_get_report_totals'
string='Partners records amount'
total_partner_refunds
Integer
compute='_get_report_totals'
string='Partners refunds'
total_partner_refunds_amount
Float
compute='_get_report_totals'
string='Partners refunds amount'
button_confirm(self)
calculate(self)
| 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/7.0/l10n_es_aeat_mod349 |
| VERSION | |
| VERSION | 2.0 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Pexego |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Pexego |
| COMMITTERS | |
| COMMITTERS | Alexandre Fayolle, Pedro M. Baeza, Stéphane Bidoul (ACSONE), Alejandro Santana, Ignacio Ibeas - Acysos S.L., Omar (Pexego), unknown, OCA Transbot, Launchpad Translations on behalf of openerp-spain-team |
| WEBSITE | |
| WEBSITE | http://www.pexego.es |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:07:13 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-tools: - account_invoice_currency OCA/l10n-spain: - account_refund_original - l10n_es - l10n_es_aeat odoo/odoo: - account - base_setup - base - web_kanban - web - product - process - decimal_precision - analytic - board - edi - email_template - base_vat - base_iban - l10n_es |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Módulo para la presentación del Modelo AEAT 349 (Declaración Recapitulativa de
Operaciones Intracomunitarias)
Basado en la Orden EHA/769/2010 por el que se aprueban los diseños físicos y
lógicos del 349.
De acuerdo con la normativa de la Hacienda Española, están obligados a
presentar el modelo 349:
* Todos aquellos sujetos pasivos del Impuesto sobre el Valor Añadido que hayan
realizado las operaciones previstas en el artículo 79 del Reglamento del
Impuesto sobre el Valor Añadido, es decir, quienes adquieran o vendan bienes
a empresas situadas en países miembros de la UE, sino también aquellos que
presten servicios a miembros de la UE y cumplan con las siguientes
condiciones:
- Que conforme a las reglas de la localización aplicables a las
mismas, no se entiendan prestadas en el territorio de aplicación del
impuesto.
- Que estén sometidas efectivamente a gravamen de otro Estado miembro.
- Que su destinatario sea un empresario o profesional actuando como
tal y radique en dicho Estado miembro la sede de su actividad
económica, o tenga en el mismo un establecimiento permanente o, en su
defecto, el lugar de su domicilio o residencia habitual, o que dicho
destinatario sea una persona jurídica que no actúe como empresario o
profesional pero tenga asignado un número de identificación a efectos
del Impuesto suministrado por ese Estado miembro.
- Que el sujeto pasivo sea dicho destinatario.
El período de declaración comprenderá, con carácter general las
operaciones realizadas en cada mes natural, y se presentará durante los
veinte primeros días naturales del mes inmediato siguiente al
correspondiente período mensual. No obstante, la presentación podrá ser
bimestral, trimestral o anual en los siguientes supuestos:
* Bimestral: Si al final del segundo mes de un trimestre natural el
importe total de las entregas de bienes y prestaciones de servicios que
deban consignarse en la declaración recapitulativa supera 100.000 euros
(a partir de 2012, el umbral se fija en 50.000 euros).
* Trimestral: Cuando ni durante el trimestre de referencia ni en cada uno
de los cuatro trimestres naturales anteriores el importe total de las
entregas de bienes y prestaciones de servicios que deban consignarse en la
declaración recapitulativa sea superior a 100.000 euros.
* Anual: En los treinta primeros días de enero del año siguiente ( la
primera sería en enero de 2011) si el importe total de las entregas de
bienes o prestaciones de servicios del año ( excluido IVA), no supera los
35.000 € y el importe total de las entregas de bienes a otro Estado
Miembro (salvo medios de transporte nuevos) exentas de IVA no sea superior
a 15.000 €.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_fiscal_position_add_mod349_form |
Fiscal position | add 'include in AEAT 349' field (form) | account.fiscal.position | field | Inherits account.view_account_position_form |
view_account_fiscal_position_add_mod349_tree |
Fiscal position | add 'include in AEAT 349' field (tree) | account.fiscal.position | field | Inherits account.view_account_position_tree |
view_customer_account_invoice_form__add_operation_key |
Account invoice (customer) | add 'operation_key' field (form) | account.invoice | field | Inherits view_customer_account_invoice_form__replace_fiscal_position |
view_customer_account_invoice_form__replace_fiscal_position |
Account invoice (customer) | replace 'fiscal position' field (form) | account.invoice | field | Inherits account.invoice_form |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
l10n_es.aeat.mod349.report.form | l10n.es.aeat.mod349.report | button | Inherits l10n_es_aeat.view_l10n_es_aeat_report_form |
view_l10n_es_aeat_mod349_report_tree |
l10n_es.aeat.mod349.report.tree | l10n.es.aeat.mod349.report | tree | Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree |
view_supplier_account_invoice_form__add_operation_key |
Account invoice (supplier) | add 'operation_key' field (form) | account.invoice | field | Inherits view_supplier_account_invoice_form__replace_fiscal_position |
view_supplier_account_invoice_form__replace_fiscal_position |
Account invoice (supplier) | replace 'fiscal position' field (form) | account.invoice | field | Inherits account.invoice_supplier_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (3)clean_refund_invoices(self, cr, uid, ids, partner_id, fiscalyear_id=None, period_id=None, month=None, period_selection=None, context=None)
create(self, cr, uid, vals, context=None)
on_change_fiscal_position(self, cr, uid, ids, fiscal_position, invoice_type, context=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (2)get_record_name(self, cr, uid, ids, field_name, args, context=None)
onchange_format_partner_vat(self, cr, uid, ids, partner_vat, country_id, context=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)onchange_format_partner_vat(self, cr, uid, ids, partner_vat, country_id, context=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (3)button_confirm(self, cr, uid, ids, context=None)
calculate(self, cr, uid, ids, context=None)
onchange_period_selection(self, cr, uid, ids, period_selection, fiscalyear_id, context=None)
| 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/6.1/l10n_es_aeat_mod349 |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Localisation/Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Pexego |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Pexego |
| COMMITTERS | |
| COMMITTERS | Alexandre Fayolle, Pedro M. Baeza, Omar (pexego), Mikel, Ignacio Ibeas - Acysos S.L., Jordi Ballester |
| WEBSITE | |
| WEBSITE | http://www.pexego.es |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:04:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-spain: - l10n_es_aeat odoo/odoo: - account - base_setup - base - product - process - decimal_precision - analytic - board - edi - email_template - base_tools |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Módulo para la presentación del Modelo AEAT 349 (Declaración Recapitulativa de Operaciones Intracomunitarias)
Basado en la Orden EHA/769/2010 por el que se aprueban los diseños físicos y lógicos del 349.
De acuerdo con la normativa de la Hacienda Española, están obligados a presentar el modelo 349:
* Todos aquellos sujetos pasivos del Impuesto sobre el Valor Añadido que hayan realizado las operaciones previstas en el artículo 79 del Reglamento del Impuesto sobre el Valor Añadido, es decir, quienes adquieran o vendan bienes a empresas situadas en países miembros de la UE, sino también aquellos que presten servicios a miembros de la UE y cumplan con las siguientes condiciones:
- Que conforme a las reglas de la localización aplicables a las mismas, no se entiendan prestadas en el territorio de aplicación del Impuesto.
- Que estén sometidas efectivamente a gravamen de otro Estado miembro.
- Que su destinatario sea un empresario o profesional actuando como tal y radique en dicho Estado miembro la sede de su actividad económica, o tenga en el mismo un establecimiento permanente o, en su defecto, el lugar de su domicilio o residencia habitual, o que dicho destinatario sea una persona jurídica que no actúe como empresario o profesional pero tenga asignado un número de identificación a efectos del Impuesto suministrado por ese Estado miembro.
- Que el sujeto pasivo sea dicho destinatario.
El período de declaración comprenderá, con carácter general las operaciones realizadas en cada mes natural, y se presentará durante los veinte primeros días naturales del mes inmediato siguiente al correspondiente período mensual. No obstante, la presentación podrá ser bimestral, trimestral o anual en los siguientes supuestos:
* Bimestral: Si al final del segundo mes de un trimestre natural el importe total de las entregas de bienes y prestaciones de servicios que deban consignarse en la declaración recapitulativa supera 100.000 euros (a partir de 2012, el umbral se fija en 50.000 euros).
* Trimestral: Cuando ni durante el trimestre de referencia ni en cada uno de los cuatro trimestres naturales anteriores el importe total de las entregas de bienes y prestaciones de servicios que deban consignarse en la declaración recapitulativa sea superior a 100.000 euros.
* Anual: En los treinta primeros días de enero del año siguiente ( la primera sería en enero de 2011) si el importe total de las entregas de bienes o prestaciones de servicios del año ( excluido IVA), no supera los 35.000 € y el importe total de las entregas de bienes a otro Estado Miembro (salvo medios de transporte nuevos) exentas de IVA no sea superior a 15.000 €.
Desarrollado por Pexego (www.pexego.es) en colaboración con Borja López Soilán y Jordi Esteve (Zikzakmedia, www.zikzakmedia.com) |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_fiscal_position_add_mod349_form |
Fiscal position | add 'include in AEAT 349' field (form) | account.fiscal.position | field | Inherits account.view_account_position_form |
view_account_fiscal_position_add_mod349_tree |
Fiscal position | add 'include in AEAT 349' field (tree) | account.fiscal.position | field | Inherits account.view_account_position_tree |
view_customer_account_invoice_form__add_operation_key |
Account invoice (customer) | add 'operation_key' field (form) | account.invoice | field | Inherits view_customer_account_invoice_form__replace_fiscal_position |
view_customer_account_invoice_form__replace_fiscal_position |
Account invoice (customer) | replace 'fiscal position' field (form) | account.invoice | field | Inherits account.invoice_form |
view_l10n_ES_aeat_mod349_partner_record_detail_form |
AEAT 349 Partner record detail (form) | l10n.es.aeat.mod349.partner_record_detail | form | New |
view_l10n_ES_aeat_mod349_partner_record_detail_tree |
AEAT 349 Partner record detail (tree) | l10n.es.aeat.mod349.partner_record_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_record_form |
AEAT 349 Partner record (form) | l10n.es.aeat.mod349.partner_record | form | New |
view_l10n_ES_aeat_mod349_partner_record_tree |
AEAT 349 Partner record (tree) | l10n.es.aeat.mod349.partner_record | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_form |
AEAT 349 Partner refund detail (form) | l10n.es.aeat.mod349.partner_refund_detail | form | New |
view_l10n_ES_aeat_mod349_partner_refund_detail_tree |
AEAT 349 Partner refund detail (tree) | l10n.es.aeat.mod349.partner_refund_detail | tree | New |
view_l10n_ES_aeat_mod349_partner_refund_form |
AEAT 349 Partner refund (form) | l10n.es.aeat.mod349.partner_refund | form | New |
view_l10n_ES_aeat_mod349_partner_refund_tree |
AEAT 349 Partner refund (tree) | l10n.es.aeat.mod349.partner_refund | tree | New |
view_l10n_es_aeat_mod349_report_form |
AEAT Model 349 (form) | l10n.es.aeat.mod349.report | form | New |
view_l10n_es_aeat_mod349_report_search |
AEAT Model 349 (search) | l10n.es.aeat.mod349.report | search | New |
view_l10n_es_aeat_mod349_report_tree |
AEAT Model 349 (tree) | l10n.es.aeat.mod349.report | tree | New |
view_supplier_account_invoice_form__add_operation_key |
Account invoice (supplier) | add 'operation_key' field (form) | account.invoice | field | Inherits view_supplier_account_invoice_form__replace_fiscal_position |
view_supplier_account_invoice_form__replace_fiscal_position |
Account invoice (supplier) | replace 'fiscal position' field (form) | account.invoice | field | Inherits account.invoice_supplier_form |
No models found for this module.