Punto de venta adaptado a la legislación española

l10n_es_pos_oca
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/18.0/l10n_es_pos_oca
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYSales/Point Of Sale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Acysos S.L., Aselcis Consulting, Alia Technologies
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Acysos S.L., Aselcis Consulting, Alia Technologies
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, christian-ramos-tecnativa, cesar
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
    - phone_validation
    - l10n_es
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
- Adapta el terminal punto de venta a la legislación Española (no se permite la emisión
  de tiquets, todo deben ser facturas o facturas simplificadas con numeración)
- Adapta el ticket de venta a la factura simplificada, añadiendo una secuencia
  correlativa y el NIF del emisor.
- Incluye los datos del cliente (nombre, NIF y dirección) si hay uno asignado.
- Chequea que no se realice una factura simplificada con valor superior a 3.000 euros
  (la cantidad es configurable por TPV).

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form res.config.settings xpath Inherits point_of_sale.res_config_settings_view_form
view_pos_order_filter_simplified_invoice POS Order (add filters for simplified field) pos.order field Inherits point_of_sale.view_pos_order_filter
view_pos_order_tree pos.order field Inherits point_of_sale.view_pos_order_tree
view_pos_pos_form_simplified_invoice pos.order.form pos.order field Inherits point_of_sale.view_pos_pos_form
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • check_simplified_invoice_unique_prefix(self)
    @api.constrains('prefix', 'code')

New fields (9)
  • iface_l10n_es_simplified_invoice Boolean
    string='Use simplified invoices for this POS'
  • is_simplified_config Boolean
    compute='_compute_simplified_config' store=False
  • l10n_es_simplified_invoice_limit Float
    default=3000 digits='Account' help='Over this amount is not legally posible to create a simplified invoice' string='Sim.Inv limit amount'
  • l10n_es_simplified_invoice_number Integer
    compute='_compute_simplified_invoice_sequence' args: 'Sim.Inv number'
  • l10n_es_simplified_invoice_padding Integer
    compute='_compute_simplified_invoice_sequence' args: 'Simplified Invoice padding'
  • l10n_es_simplified_invoice_prefix Char
    compute='_compute_simplified_invoice_sequence' args: 'Simplified Invoice prefix'
  • l10n_es_simplified_invoice_sequence_id Many2one → ir.sequence
    copy=False help='Autogenerate for each POS created' string='Simplified Invoice IDs Sequence' args: 'ir.sequence'
  • prevent_offline_validation Boolean
    help='Prevent order validation when the POS is offline. This helps ensure data integrity and prevents synchronization issues.'
  • simplified_partner_id Many2one → res.partner
    comodel_name='res.partner' compute='_compute_simplified_partner_id' string='Simplified invoice partner'
Public methods (4)
  • copy(self, default=None)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
  • write(self, vals)

New fields (3)
  • is_l10n_es_simplified_invoice Boolean
    copy=False default=False args: 'Simplified invoice'
  • l10n_es_simplified_number Integer
    copy=False args: 'Simplified invoice sequence number'
  • l10n_es_unique_id Char
    copy=False args: 'Simplified invoice number'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • pos_iface_l10n_es_simplified_invoice Boolean
    readonly=False related='pos_config_id.iface_l10n_es_simplified_invoice'
  • pos_iface_prevent_offline_validation Boolean
    readonly=False related='pos_config_id.prevent_offline_validation'
  • pos_l10n_es_simplified_invoice_limit Float
    readonly=False related='pos_config_id.l10n_es_simplified_invoice_limit'
  • pos_l10n_es_simplified_invoice_number Integer
    related='pos_config_id.l10n_es_simplified_invoice_number'
  • pos_l10n_es_simplified_invoice_padding Integer
    related='pos_config_id.l10n_es_simplified_invoice_padding'
  • pos_l10n_es_simplified_invoice_prefix Char
    related='pos_config_id.l10n_es_simplified_invoice_prefix'
  • pos_l10n_es_simplified_invoice_sequence_id Many2one
    related='pos_config_id.l10n_es_simplified_invoice_sequence_id'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/17.0/l10n_es_pos_oca
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYSales/Point Of Sale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Acysos S.L., Aselcis Consulting
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Acysos S.L., Aselcis Consulting
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Antoni Marroig Campomar, christian-ramos-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
    - l10n_es
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
- Adapta el terminal punto de venta a la legislación Española (no se
  permite la emisión de tiquets, todo deben ser facturas o facturas
  simplificadas con numeración)
- Adapta el ticket de venta a la factura simplificada, añadiendo una
  secuencia correlativa y el NIF del emisor.
- Incluye los datos del cliente (nombre, NIF y dirección) si hay uno
  asignado.
- Chequea que no se realice una factura simplificada con valor superior
  a 3.000 euros (la cantidad es configurable por TPV).

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form res.config.settings xpath Inherits point_of_sale.res_config_settings_view_form
view_pos_order_filter_simplified_invoice POS Order (add filters for simplified field) pos.order field Inherits point_of_sale.view_pos_order_filter
view_pos_order_tree pos.order field Inherits point_of_sale.view_pos_order_tree
view_pos_pos_form_simplified_invoice pos.order.form pos.order field Inherits point_of_sale.view_pos_pos_form
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • check_simplified_invoice_unique_prefix(self)
    @api.constrains('prefix', 'code')

New fields (9)
  • iface_l10n_es_simplified_invoice Boolean
    string='Use simplified invoices for this POS'
  • is_simplified_config Boolean
    compute='_compute_simplified_config' store=False
  • l10n_es_simplified_invoice_limit Float
    default=3000 digits='Account' help='Over this amount is not legally posible to create a simplified invoice' string='Sim.Inv limit amount'
  • l10n_es_simplified_invoice_number Integer
    compute='_compute_simplified_invoice_sequence' args: 'Sim.Inv number'
  • l10n_es_simplified_invoice_padding Integer
    compute='_compute_simplified_invoice_sequence' args: 'Simplified Invoice padding'
  • l10n_es_simplified_invoice_prefix Char
    compute='_compute_simplified_invoice_sequence' args: 'Simplified Invoice prefix'
  • l10n_es_simplified_invoice_sequence_id Many2one → ir.sequence
    copy=False help='Autogenerate for each POS created' string='Simplified Invoice IDs Sequence' args: 'ir.sequence'
  • prevent_offline_validation Boolean
    help='Prevent order validation when the POS is offline. This helps ensure data integrity and prevents synchronization issues.'
  • simplified_partner_id Many2one → res.partner
    comodel_name='res.partner' compute='_compute_simplified_partner_id' string='Simplified invoice partner'
Public methods (4)
  • copy(self, default=None)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
  • write(self, vals)

New fields (2)
  • is_l10n_es_simplified_invoice Boolean
    copy=False default=False args: 'Simplified invoice'
  • l10n_es_unique_id Char
    copy=False args: 'Simplified invoice number'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • pos_iface_l10n_es_simplified_invoice Boolean
    readonly=False related='pos_config_id.iface_l10n_es_simplified_invoice'
  • pos_iface_prevent_offline_validation Boolean
    readonly=False related='pos_config_id.prevent_offline_validation'
  • pos_l10n_es_simplified_invoice_limit Float
    readonly=False related='pos_config_id.l10n_es_simplified_invoice_limit'
  • pos_l10n_es_simplified_invoice_number Integer
    related='pos_config_id.l10n_es_simplified_invoice_number'
  • pos_l10n_es_simplified_invoice_padding Integer
    related='pos_config_id.l10n_es_simplified_invoice_padding'
  • pos_l10n_es_simplified_invoice_prefix Char
    related='pos_config_id.l10n_es_simplified_invoice_prefix'
  • pos_l10n_es_simplified_invoice_sequence_id Many2one
    related='pos_config_id.l10n_es_simplified_invoice_sequence_id'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/l10n-spain
PULL REQUEST
PULL REQUEST[MIG] l10n_es_pos_oca: Migration to Odoo 19.0 (#4804)