Repository
OCA/l10n-spain · module folder · Try on Runboat
Module version
1.0.0
Category
Accounting & Finance
Folder size
2.1 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), ASR-OSS, Tecnativa, Comunitea, FactorLibre, Tecon, Dixmit
Maintainers
Odoo Community Association (OCA), ASR-OSS, Tecnativa, Comunitea, FactorLibre, Tecon, Dixmit
Committers
OCA-git-bot, oca-ci, AlexGarS73
Odoo dependencies
OCA/account-financial-reporting:
OCA/bank-payment:
OCA/community-data-files:
OCA/l10n-spain:
OCA/reporting-engine:
OCA/server-ux:
odoo/odoo:
- web
- bus
- uom
Python dependencies
pycountry, xmlsig, schwifty==2024.4.0, unidecode
System dependencies
None
Required by
None
Description
En virtud de la Ley 25/2013, de 27 de diciembre, de impulso de la
factura electrónica y creación del registro contable de facturas en el
Sector Público, desde el día 15 de enero de 2015 todas las facturas
remitidas a las administraciones públicas tienen que ser electrónicas.
Téngase en cuenta, no obstante, que muchas Administraciones Públicas, y
entre ellas la Administración General del Estado, han hecho uso de la
potestad de exonerar de esta obligación a las facturas de hasta 5.000
euros. Estas facturas electrónicas se enviarán a través de los puntos
generales de entrada de facturas electrónicas de la administración
correspondiente. Estos puntos generales le permitirán consultar
electrónicamente el estado de tramitación de su factura, una vez
remitida. El de la Administración General del Estado se denomina FACe
(www.face.gob.es). En estas facturas electrónicas habrá que indicar la
oficina contable, el órgano gestor y la unidad tramitadora, para que
llegue correctamente a su destino. La administración le proporcionará
estos datos.

Información sobre el formato:

- <https://www.facturae.gob.es/formato/Versiones/Esquema_castellano_v3_2_x_06_06_2017_unificado.pdf>

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
address_contact address_contact ir.ui.view qweb New
administrative_center administrative_center ir.ui.view qweb New
entity entity ir.ui.view qweb New
facturae_header facturae_header ir.ui.view qweb New
facturae_signed facturae_signed ir.ui.view qweb New
template_facturae template_facturae ir.ui.view qweb New
view_account_journal_thirdparty_form account.journal form Inherits l10n_es_aeat.view_account_journal_form
view_account_move_reversal account.move.reversal.form account.move.reversal form Inherits account.view_account_move_reversal
view_company_form res.company.form res.company form Inherits base.view_company_form
view_facturae_fields account.move.line.form (in l10n_es_facturae_fields) account.move.line form New
view_move_form account.move.form account.move form Inherits l10n_es_aeat.view_move_form
view_partner_form res.partner.form res.partner form Inherits account.view_partner_property_form
view_payment_mode_form_add_face_code payment.mode.form.add_face_code account.payment.mode form Inherits account_payment_mode.account_payment_mode_form
view_tax_form account.tax.search account.tax form Inherits account.view_tax_form
wizard_create_facturae create.facturae.form create.facturae form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (13)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (12)
  • correction_method Selection
    selection=[('01', 'Rectificación íntegra'), ('02', 'Rectificación por diferencias'), ('03', 'Rectificación por descuento por volumen de operaciones durante un periodo'), ('04', 'Autorizadas por la Agencia Tributaria')]
  • facturae Boolean
    compute='_compute_facturae'
  • facturae_end_date Date
    readonly=True
  • facturae_file_reference Char
  • facturae_receiver_contract_reference Char
  • facturae_receiver_transaction_reference Char
  • facturae_refund_reason Selection
    selection=[('01', 'Número de la factura'), ('02', 'Serie de la factura'), ('03', 'Fecha expedición'), ('04', 'Nombre y apellidos/Razón social - Emisor'), ('05', 'Nombre y apellidos/Razón social - Receptor'), ('06', 'Identificación fiscal Emisor/Obligado'), ('07', 'Identificación fiscal Receptor'), ('08', 'Domicilio Emisor/Obligado'), ('09', 'Domicilio Receptor'), ('10', 'Detalle Operación'), ('11', 'Porcentaje impositivo a aplicar'), ('12', 'Cuota tributaria a aplicar'), ('13', 'Fecha/Periodo a aplicar'), ('14', 'Clase de factura'), ('15', 'Literales legales'), ('16', 'Base imponible'), ('80', 'Cálculo de cuotas repercutidas'), ('81', 'Cálculo de cuotas retenidas'), ('82', 'Base imponible modificada por devolución de envases/embalajes'), ('83', 'Base imponible modificada por descuentos y bonificaciones'), ('84', 'Base imponible modificada por resolución firme, judicial o administrativa'), ('85', 'Base imponible modificada cuotas repercutidas no satisfechas. Auto de declaración de concurso')]
  • facturae_start_date Date
    readonly=True
  • facturae_withheld_amount Monetary
    compute='_compute_facturae_withheld_amount' readonly=False store=True string='Withheld Amount'
  • facturae_withheld_percent Float
    string='Withheld Percent'
  • facturae_withheld_reason Char
    string='Withheld Reason'
  • l10n_es_facturae_attachment_ids One2many → l10n.es.facturae.attachment
    copy=False inverse_name='move_id' args: 'l10n.es.facturae.attachment'
Public methods (8)
  • get_correction_method_string(self)
  • get_exchange_rate(self, euro_rate, currency_rate)
  • get_facturae_hide_discount(self)
  • get_facturae_version(self)
  • get_narration(self)
  • get_refund_reason_string(self)
  • validate_company_facturae_fields(self, company_id)
  • validate_facturae_fields(self)

New fields (13)
  • facturae_end_date Date
  • facturae_file_date Date
  • facturae_file_reference Char
  • facturae_issuer_contract_date Date
  • facturae_issuer_contract_reference Char
  • facturae_issuer_transaction_date Date
  • facturae_issuer_transaction_reference Char
  • facturae_receiver_contract_date Date
  • facturae_receiver_contract_reference Char
  • facturae_receiver_transaction_date Date
  • facturae_receiver_transaction_reference Char
  • facturae_start_date Date
  • facturae_transaction_date Date
Public methods (1)
  • button_edit_facturae_fields(self)

New fields (2)
  • correction_method Selection
    default='02' selection=[('01', 'Rectificación íntegra'), ('02', 'Rectificación por diferencias'), ('03', 'Rectificación por descuento por volumen de operaciones durante un periodo'), ('04', 'Autorizadas por la Agencia Tributaria')]
  • refund_reason Selection
    default='10' selection=[('01', 'Número de la factura'), ('02', 'Serie de la factura'), ('03', 'Fecha expedición'), ('04', 'Nombre y apellidos/Razón social - Emisor'), ('05', 'Nombre y apellidos/Razón social - Receptor'), ('06', 'Identificación fiscal Emisor/Obligado'), ('07', 'Identificación fiscal Receptor'), ('08', 'Domicilio Emisor/Obligado'), ('09', 'Domicilio Receptor'), ('10', 'Detalle Operación'), ('11', 'Porcentaje impositivo a aplicar'), ('12', 'Cuota tributaria a aplicar'), ('13', 'Fecha/Periodo a aplicar'), ('14', 'Clase de factura'), ('15', 'Literales legales'), ('16', 'Base imponible'), ('80', 'Cálculo de cuotas repercutidas'), ('81', 'Cálculo de cuotas retenidas'), ('82', 'Base imponible modificada por devolución de envases/embalajes'), ('83', 'Base imponible modificada por descuentos y bonificaciones'), ('84', 'Base imponible modificada por resolución firme, judicial o administrativa'), ('85', 'Base imponible modificada cuotas repercutidas no satisfechas. Auto de declaración de concurso')]
Public methods (1)
  • reverse_moves(self, is_modify=False)
    Inject in the context the Facturae refund values for being later added to the dictionary values for creating the refund.

New fields (1)
  • facturae_code Selection
    default='04' selection=[('01', '[01] Al contado'), ('02', '[02] Recibo Domiciliado'), ('03', '[03] Recibo'), ('04', '[04] Transferencia'), ('05', '[05] Letra Aceptada'), ('06', '[06] Crédito Documentario'), ('07', '[07] Contrato Adjudicación'), ('08', '[08] Letra de cambio'), ('09', '[09] Pagaré a la Orden'), ('10', '[10] Pagaré No a la Orden'), ('11', '[11] Cheque'), ('12', '[12] Reposición'), ('13', '[13] Especiales'), ('14', '[14] Compensación'), ('15', '[15] Giro postal'), ('16', '[16] Cheque conformado'), ('17', '[17] Cheque bancario'), ('18', '[18] Pago contra reembolso'), ('19', '[19] Pago mediante tarjeta')]
Public methods (0)

No public methods.

New fields (1)
  • facturae_code Selection
    selection=[('01', 'IVA: Impuesto sobre el valor añadido'), ('02', 'IPSI: Impuesto sobre la producción, los servicios y la importación'), ('03', 'IGIC: Impuesto general indirecto de Canarias'), ('04', 'IRPF: Impuesto sobre la Renta de las personas físicas'), ('05', 'Otro'), ('06', 'ITPAJD: Impuesto sobre transmisiones patrimoniales y actos jurídicos documentados'), ('07', 'IE: Impuestos especiales'), ('08', 'Ra: Renta aduanas'), ('09', 'IGTECM: Impuesto general sobre el tráfico de empresas que se aplica en Ceuta y Melilla'), ('10', 'IECDPCAC: Impuesto especial sobre los combustibles derivados del petróleo en la Comunidad Autonoma Canaria'), ('11', 'IIIMAB: Impuesto sobre las instalaciones que inciden sobre el medio ambiente en la Baleares'), ('12', 'ICIO: Impuesto sobre las construcciones, instalaciones y obras'), ('13', 'IMVDN: Impuesto municipal sobre las viviendas desocupadas en Navarra'), ('14', 'IMSN: Impuesto municipal sobre solares en Navarra'), ('15', 'IMGSN: Impuesto municipal sobre gastos suntuarios en Navarra'), ('16', 'IMPN: Impuesto municipal sobre publicidad en Navarra'), ('17', 'REIVA: Régimen especial de IVA para agencias de viajes'), ('18', 'REIGIC: Régimen especial de IGIC: para agencias de viajes'), ('19', 'REIPSI: Régimen especial de IPSI para agencias de viajes')]
Public methods (0)

No public methods.

New fields (5)
  • facturae Binary
    readonly=True args: 'Facturae file'
  • facturae_fname Char
    size=64 args: 'File name'
  • firmar_facturae Boolean
    default=True help='Requires certificate in the company file' args: 'Do you want to digitally sign the generated file?'
  • note Text
    args: 'Log'
  • state Selection
    default='first' readonly=True args: [('first', 'First'), ('second', 'Second')]
Public methods (1)
  • create_facturae_file(self)

New fields (3)
  • file Binary
    required=True
  • filename Char
  • move_id Many2one → account.move
    ondelete='cascade' required=True args: 'account.move'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • generate_report(self, ir_report, docids, data=None)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • generate_report(self, ir_report, docids, data=None)
    @api.model

New fields (9)
  • facturae_hide_discount Boolean
    help='The unit price will be recalculated applying the discount' string='Hide Facturae discount'
  • facturae_registration_additional Char
    size=20
  • facturae_registration_book Char
    size=20
  • facturae_registration_folio Char
    size=20
  • facturae_registration_location Char
    size=20
  • facturae_registration_section Char
    size=20
  • facturae_registration_sheet Char
    size=20
  • facturae_registration_volume Char
    size=20
  • facturae_version Selection
    args: [('3_2', '3.2'), ('3_2_1', '3.2.1'), ('3_2_2', '3.2.2')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_current_rate(self)

New fields (8)
  • attach_invoice_as_annex Boolean
  • facturae Boolean
    copy=False args: 'Factura electrónica'
  • facturae_hide_discount Boolean
    help='The unit price will be recalculated applying the discount' string='Hide Facturae discount'
  • facturae_version Selection
    args: [('3_2', '3.2'), ('3_2_1', '3.2.1'), ('3_2_2', '3.2.2')]
  • oficina_contable Char
    size=10
  • organo_gestor Char
    size=10
  • organo_proponente Char
    size=10 args: 'Órgano proponente'
  • unidad_tramitadora Char
    size=10
Public methods (2)
  • check_facturae(self)
    @api.constrains('facturae', 'vat', 'city', 'state_id', 'country_id', 'street')
  • get_facturae_residence(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…