Repository
OCA/l10n-spain · module folder · Try on Runboat
Module version
1.0.0
Category
Localisation/Accounting
Folder size
0.66 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-spain
Last tracking update
2026-08-07 09:06:22
Authors
Odoo Community Association (OCA), AvanzOSC, Tecnativa, Qubiq
Maintainers
Odoo Community Association (OCA), AvanzOSC, Tecnativa, Qubiq
Committers
Emilio Pascual, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
OCA/account-financial-reporting:
OCA/l10n-spain:
OCA/server-ux:
odoo/odoo:
- web
- bus
- uom
Python dependencies
unidecode
System dependencies
None
Required by
None
Description
Modelo 296 de la AEAT. Declaración Informativa. Retenciones e ingresos a
cuenta del Impuesto sobre la Renta de no Residentes (sin establecimiento
permanente). Resumen anual.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report form Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line list New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report list Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=False string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=False string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=False string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=False string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    comodel_name='l10n.es.aeat.mod296.report.line' inverse_name='mod296_id' string='Lines'
Public methods (2)
  • calculate(self)
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    selection=[('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')] string='Key'
  • codigo Selection
    selection=[('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')] string='Code'
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Code Account Values'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    selection=[('F', 'Physical person'), ('J', 'Legal person or entity')] string='F/J'
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    comodel_name='l10n.es.aeat.mod296.report' string='Mod 296'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' string='Move Lines'
  • naturaleza Selection
    selection=[('D', 'Money income'), ('E', 'Income in kind')] string='Nature'
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    selection=[('1', 'As transmitter'), ('2', 'As mediator')] string='Payment'
  • pais Many2one → res.country
    comodel_name='res.country' string='Country'
  • pais_nacimiento Many2one → res.country
    comodel_name='res.country' string='Country of birth'
  • pais_residencia_fiscal Many2one → res.country
    comodel_name='res.country' string='Country territory of fiscal residence'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    comodel_name='res.country.state' string='Province/Region/State'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    selection=[('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')] string='Subkey'
  • tipo_codigo Selection
    selection=[('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')] string='Code type'
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.onchange('partner_id')

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…