Repository
OCA/l10n-spain · module folder · Try on Runboat
Module version
1.9.2
Category
Accounting & Finance
Folder size
1.11 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-spain
Last tracking update
2026-08-07 07:31:48
Authors
Odoo Community Association (OCA), Acysos S.L., Tecnativa, Comunitea, Diagram, Minorisa, Studio73, FactorLibre, Otherway, Javi Melendez
Maintainers
Odoo Community Association (OCA), Acysos S.L., Tecnativa, Comunitea, Diagram, Minorisa, Studio73, FactorLibre, Otherway, Javi Melendez
Committers
Pedro M. Baeza, mreficent, angelmoya, manu, Eric Antones, Isaac Gallart Bochons, Weblate, OCA Transbot, OCA-git-bot, oca-travis, Pablo Fuentes, Juanjo, oca-ci, xAdrianC
Odoo dependencies
OCA/account-financial-reporting:
OCA/account-invoicing:
OCA/l10n-spain:
OCA/queue:
OCA/server-ux:
odoo/odoo:
- web
- bus
- uom
Python dependencies
OpenSSL, requests, zeep, unidecode
System dependencies
None
Required by
l10n_es_aeat_sii_extra_data, l10n_es_aeat_sii_oss, l10n_es_dua_sii
Description

Code Analysis

Views touched (21)
XML IDNameModelTypeStatus
aeat_sii_map_view_form aeat.sii.map.view.form aeat.sii.map form New
aeat_sii_map_view_tree aeat.sii.map.view.tree aeat.sii.map tree New
aeat_sii_mapping_registration_keys_view_search aeat.sii.mapping.registration.keys.view.search aeat.sii.mapping.registration.keys search New
aeat_sii_mapping_registration_keys_view_tree aeat.sii.mapping.registration.keys.view.tree aeat.sii.mapping.registration.keys tree New
aeat_sii_tax_agency_form_view aeat.sii.tax.agency.form.view aeat.sii.tax.agency form New
aeat_sii_tax_agency_tree_view aeat.sii.tax.agency.tree,view aeat.sii.tax.agency tree New
invoice_sii_form account.invoice.sii.form account.invoice form Inherits account.invoice_form
invoice_sii_form_connector account.invoice.sii.form - Connector account.invoice form Inherits invoice_sii_form
invoice_supplier_sii_form account.invoice.supplier.sii.form account.invoice form Inherits account.invoice_supplier_form
invoice_supplier_sii_form_connector account.invoice.supplier.sii.form - Connector account.invoice form Inherits invoice_supplier_sii_form
l10n_es_aeat_sii_map_lines_view_tree aeat.sii.map.lines.view.tree aeat.sii.map.lines tree New
l10n_es_sii_form_view l10n.es.aeat.sii.form l10n.es.aeat.sii form New
l10n_es_sii_password_wizard_view l10n.es.aeat.sii.password.wizard l10n.es.aeat.sii.password form New
l10n_es_sii_tree_view l10n.es.aeat.sii.tree l10n.es.aeat.sii tree New
product_template_form_sii_view product.template.form.inherit.sii product.template form Inherits product.product_template_form_view
view_account_invoice_refund account.invoice.refund Inherits account.view_account_invoice_refund
view_account_invoice_sii_filter account.invoice.select.sii account.invoice Inherits account.view_account_invoice_filter
view_account_position_form account.fiscal.position.form account.fiscal.position form Inherits account.view_account_position_form
view_company_sii_form res.company.sii.form res.company form Inherits base.view_company_form
view_partner_form res.partner form Inherits base_vat.view_partner_form
view_queue_job_sii queue.job tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (14)

New fields (7)
  • sii_active Boolean
    copy=False default=True help='Enable SII for this fiscal position?' string='SII Active'
  • sii_enabled Boolean
    readonly=True related='company_id.sii_enabled'
  • sii_exempt_cause Selection
    default=default_sii_exempt_cause selection='_get_selection_sii_exempt_cause' string='SII Exempt Cause'
  • sii_no_taxable_cause Selection
    default='ImporteTAIReglasLocalizacion' oldname='no_taxable_cause' selection=[('ImportePorArticulos7_14_Otros', 'No sujeta - No sujeción artículo 7, 14, otros'), ('ImporteTAIReglasLocalizacion', 'Operaciones no sujetas en el TAI por reglas de localización')] string='SII No taxable cause'
  • sii_partner_identification_type Selection
    selection=[('1', 'National'), ('2', 'Intracom'), ('3', 'Export')] string='SII partner Identification Type'
  • sii_registration_key_purchase Many2one → aeat.sii.mapping.registration.keys
    domain=[('type', '=', 'purchase')] args: 'aeat.sii.mapping.registration.keys', 'Default SII Registration Key for Purchases'
  • sii_registration_key_sale Many2one → aeat.sii.mapping.registration.keys
    domain=[('type', '=', 'sale')] args: 'aeat.sii.mapping.registration.keys', 'Default SII Registration Key for Sales'
Public methods (1)
  • default_sii_exempt_cause(self)
    @api.model

New fields (22)
  • invoice_jobs_ids Many2many → queue.job
    column1='invoice_id' column2='job_id' comodel_name='queue.job' copy=False string='Connector Jobs'
  • sii_account_registration_date Date
    copy=False help='Indicates the account registration date set at the SII, which must be the date when the invoice is recorded in the system and is independent of the date of the accounting entry of the invoice' readonly=True string='SII account registration date'
  • sii_content_sent Text
    copy=False readonly=True string='SII last content sent'
  • sii_csv Char
    copy=False readonly=True string='SII CSV'
  • sii_description Text
    compute='_compute_sii_description' inverse='_inverse_sii_description' store=True string='SII computed description'
  • sii_description_method Selection
    readonly=True related='company_id.sii_description_method'
  • sii_enabled Boolean
    compute='_compute_sii_enabled' string='Enable SII'
  • sii_header_sent Text
    copy=False readonly=True string='SII last header sent'
  • sii_macrodata Boolean
    compute='_compute_macrodata' help='Check to confirm that the invoice has an absolute amount greater o equal to 100 000 000,00 euros.' string='MacroData'
  • sii_manual_description Text
    copy=False size=500 string='SII manual description'
  • sii_property_cadastrial_code Char
    copy=False size=25 string='Real property cadastrial code'
  • sii_property_location Selection
    copy=False selection=[('1', '[1]-Real property with cadastral code located within the Spanish territory except Basque Country or Navarra'), ('2', '[2]-Real property located in the Basque Country or Navarra'), ('3', '[3]-Real property in any of the above situations but without cadastral code'), ('4', '[4]-Real property located in a foreign country')] string='Real property location'
  • sii_refund_specific_invoice_type Selection
    help='Fill this field when the refund are one of the specific cases of article 80 of LIVA for notifying to SII with the proper invoice type.' selection=[('R1', 'Error based on law and Art. 80 One and Two LIVA (R1)'), ('R2', 'Art. 80 Three LIVA - Bankruptcy (R2)'), ('R3', 'Art. 80 Four LIVA - Bad debt (R3)'), ('R4', 'Rest of causes (R4)')]
  • sii_refund_type Selection
    default=<expr> oldname='refund_type' selection=[('I', 'By differences')] string='SII Refund Type'
  • sii_registration_key Many2one → aeat.sii.mapping.registration.keys
    comodel_name='aeat.sii.mapping.registration.keys' default=_default_sii_registration_key oldname='registration_key' string='SII registration key'
  • sii_registration_key_additional1 Many2one → aeat.sii.mapping.registration.keys
    comodel_name='aeat.sii.mapping.registration.keys' string='Additional SII registration key'
  • sii_registration_key_additional2 Many2one → aeat.sii.mapping.registration.keys
    comodel_name='aeat.sii.mapping.registration.keys' string='Additional 2 SII registration key'
  • sii_registration_key_code Char
    readonly=True related='sii_registration_key.code'
  • sii_return Text
    copy=False readonly=True string='SII Return'
  • sii_send_error Text
    copy=False readonly=True string='SII Send Error'
  • sii_send_failed Boolean
    copy=False help='Indicates that the last attempt to communicate this invoice to the SII has failed. See SII return for details' string='SII send failed'
  • sii_state Selection
    copy=False default='not_sent' help='Indicates the state of this invoice in relation with the presentation at the SII' readonly=True selection=SII_STATES string='SII send state'
Public methods (13)
  • action_cancel(self)
    @api.multi
  • action_cancel_draft(self)
    @api.multi
  • cancel_one_invoice(self)
    @job(default_channel='root.invoice_validate_sii')@api.multi
  • cancel_sii(self)
    @api.multi
  • confirm_one_invoice(self)
    @job(default_channel='root.invoice_validate_sii')@api.multi
  • create(self, vals)
    @api.model
    Complete registration key for auto-generated invoices.
  • invoice_validate(self)
    @api.multi
  • is_sii_invoice(self)
    Hook method to be overridden in additional modules to verify if the invoice must be sended trough SII system, for special cases. :param self: Single invoice record :return: bool value indicating if the invoice should be sent to SII.
  • onchange_fiscal_position_id_l10n_es_aeat_sii(self)
    @api.onchange('fiscal_position_id')
  • onchange_sii_refund_type(self)
    @api.onchange('sii_refund_type')
  • send_sii(self)
    @api.multi
  • unlink(self)
    @api.multi
    A registered invoice at the SII cannot be deleted
  • write(self, vals)
    @api.multi
    For supplier invoices the SII primary key is the supplier VAT/ID Otro and the supplier invoice number. Cannot let change these values in a SII registered supplier invoice

New fields (4)
  • sii_refund_type Selection
    selection=_selection_sii_refund_type string='SII Refund Type'
  • sii_refund_type_required Boolean
    default=_default_sii_refund_type_required string='Is SII Refund Type required?'
  • supplier_invoice_number_refund Char
    string='Supplier Invoice Number'
  • supplier_invoice_number_refund_required Boolean
    default=_default_supplier_invoice_number_refund_required string='Is Supplier Invoice Number Required?'
Public methods (1)
  • compute_refund(self, mode='refund')
    @api.multi

New fields (2)
  • amount_company Monetary
    compute='_compute_base_amount_company' string='Amount in company currency'
  • base_company Monetary
    compute='_compute_base_amount_company' string='Base in company currency'
Public methods (0)

No public methods.

New fields (4)
  • date_from Date
    string='Date from'
  • date_to Date
    string='Date to'
  • map_lines One2many → aeat.sii.map.lines
    comodel_name='aeat.sii.map.lines' inverse_name='sii_map_id' string='Lines'
  • name Char
    required=True string='Model'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True string='Code'
  • name Char
    string='Name'
  • sii_map_id Many2one → aeat.sii.map
    comodel_name='aeat.sii.map' ondelete='cascade' string='Aeat SII Map'
  • taxes Many2many → account.tax.template
    comodel_name='account.tax.template' string='Taxes'
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True size=2 string='Code'
  • name Char
    required=True string='Name'
  • type Selection
    required=True selection=[('sale', 'Sale'), ('purchase', 'Purchase')] string='Type'
Public methods (1)
  • name_get(self)
    @api.multi

New fields (15)
  • name Char
    required=True string='Tax Agency'
  • wsdl_ic Char
    required=True string='SuministroOpIntracomunitarias WSDL'
  • wsdl_ic_test_address Char
    string='SuministroOpIntracomunitarias Test Address'
  • wsdl_in Char
    required=True string='SuministroFactRecibidas WSDL'
  • wsdl_in_test_address Char
    string='SuministroFactRecibidas Test Address'
  • wsdl_ott Char
    required=True string='SuministroOpTrascendTribu WSDL'
  • wsdl_ott_test_address Char
    string='SuministroOpTrascendTribu Test Address'
  • wsdl_out Char
    required=True string='SuministroFactEmitidas WSDL'
  • wsdl_out_test_address Char
    string='SuministroFactEmitidas Test Address'
  • wsdl_pi Char
    required=True string='SuministroBienesInversion WSDL'
  • wsdl_pi_test_address Char
    string='SuministroBienesInversion Test Address'
  • wsdl_pr Char
    required=True string='SuministroCobrosEmitidas WSDL'
  • wsdl_pr_test_address Char
    string='SuministroCobrosEmitidas Test Address'
  • wsdl_ps Char
    required=True string='SuministroPagosRecibidas WSDL'
  • wsdl_ps_test_address Char
    string='SuministroPagosRecibidas Test Address'
Public methods (0)

No public methods.

New fields (8)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • date_end Date
    string='End Date'
  • date_start Date
    string='Start Date'
  • file Binary
    required=True string='File'
  • name Char
    string='Name'
  • private_key Char
    readonly=True string='Private Key'
  • public_key Char
    readonly=True string='Public Key'
  • state Selection
    default='draft' string='State' args: [('draft', 'Draft'), ('active', 'Active')]
Public methods (2)
  • action_activate(self)
    @api.multi
  • load_password_wizard(self)
    @api.multi

New fields (2)
  • folder Char
    required=True string='Folder Name'
  • password Char
    required=True string='Password'
Public methods (1)
  • get_keys(self)
    @api.multi

New fields (1)
  • sii_exempt_cause Selection
    selection=[('none', 'None'), ('E1', '[E1] Art. 20: Operaciones interiores exentas'), ('E2', '[E2] Art. 21: Exenciones en las exportaciones de bienes'), ('E3', '[E3] Art. 22: Exenciones en las operaciones asimiladas a las exportaciones'), ('E4', '[E4] Art. 23 y 24: Exenciones relativas a regímenes aduaneros y fiscales. Exenciones zonas francas, depósitos francos y otros depósitos.'), ('E5', '[E5] Art. 25: Exenciones en las entregas de bienes destinados a otro estado miembro.'), ('E6', '[E6] Otros')] string='SII Exempt Cause'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (3)
  • cancel_now(self)
    @api.multi
  • do_now(self)
    @api.multi
  • requeue_sudo(self)
    @api.multi

New fields (12)
  • delay_time Float
    string='Delay time'
  • send_mode Selection
    default='auto' selection=[('auto', 'On validate'), ('fixed', 'At fixed time'), ('delayed', 'With delay')] string='Send mode'
  • sent_time Float
    string='Sent time'
  • sii_description Char
    help="The description for invoices. Only used when the field SII Description Method is 'Fixed'." size=500 string='SII Description'
  • sii_description_method Selection
    default='manual' help="Method for the SII invoices description, can be one of these:\n- Automatic: the description will be the join of the invoice lines description\n- Fixed: the description write on the below field 'SII Description'\n- Manual (by default): It will be necessary to manually enter the description on each invoice\n\nFor all the options you can append a header text using the below fields 'SII Sale header' and 'SII Purchase header'" selection=[('auto', 'Automatic'), ('fixed', 'Fixed'), ('manual', 'Manual')] string='SII Description Method'
  • sii_enabled Boolean
    string='Enable SII'
  • sii_header_customer Char
    help='An optional header description for customer invoices. Applied on all the SII description methods' size=500 string='SII Customer header'
  • sii_header_supplier Char
    help='An optional header description for supplier invoices. Applied on all the SII description methods' size=500 string='SII Supplier header'
  • sii_method Selection
    default='auto' help="By default, the invoice is sent/queued in validation process. With manual method, there's a button to send the invoice." selection=[('auto', 'Automatic'), ('manual', 'Manual')] string='Method'
  • sii_tax_agency_id Many2one → aeat.sii.tax.agency
    string='Tax Agency' args: 'aeat.sii.tax.agency'
  • sii_test Boolean
    string='Is Test Environment?'
  • use_connector Boolean
    help="Check it to use connector instead of sending the invoice directly when it's validated" string='Use connector'
Public methods (0)

No public methods.

New fields (2)
  • sii_enabled Boolean
    compute='_compute_sii_enabled'
  • sii_simplified_invoice Boolean
    help='Checking this mark, invoices done to this partner will be sent to SII as simplified invoices.' string='Simplified invoices in SII?'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…