TicketBAI - Batuz - declaración de todas las operaciones de venta realizadas por las personas y entidades que desarrollan actividades económicas en Bizkaia

l10n_es_ticketbai_batuz
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/16.0/l10n_es_ticketbai_batuz
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Binovo, Digital5
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Binovo, Digital5
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Aritz Olea, bilbonet
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:40
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_ticketbai_api_batuz
    - l10n_es_ticketbai_api
    - l10n_es_ticketbai
    - l10n_es_aeat
OCA/queue:
    - queue_job
OCA/server-ux:
    - date_range
odoo/odoo:
    - base
    - base_setup
    - web
    - base_vat
    - account
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_es
    - base_iban
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests_pkcs12==1.22
xmltodict
qrcode
xmlsig
unidecode
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
lroe_operation_form_view_inherit_batuz lroe.operation.form.view lroe.operation xpath Inherits l10n_es_ticketbai_api_batuz.lroe_operation_form_view
lroe_operation_search_view_inherit_batuz lroe.operation.search.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_search_view
lroe_operation_tree_view_inherit_batuz lroe.operation.tree.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_tree_view
move_supplier_form_inherit_l10n_es_ticketbai_batuz account.move.supplier.form account.move button Inherits account.view_move_form
tbai_vat_regime_key_view_search_inherit_batuz tbai.vat.regime.key.view.search tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_search
tbai_vat_regime_key_view_tree_inherit_batuz tbai.vat.regime.key.view.tree tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_tree
view_account_move_filter_inherit_l10n_es_ticketbai_batuz account.move.select.batuz account.move filter Inherits account.view_account_invoice_filter
view_account_move_reversal_inherit_batuz account.move.reversal.batuz.form account.move.reversal field Inherits account.view_account_move_reversal
view_account_position_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.form.batuz account.fiscal.position xpath Inherits account.view_account_position_form
view_account_position_template_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.template.form.batuz account.fiscal.position.template field Inherits account.view_account_position_template_form
view_company_form_inherit_batuz view_company_form_inherit_batuz res.company xpath Inherits l10n_es_ticketbai_api.view_company_form_inherit
view_move_form_tbai_batuz view.move.form.tbai.batuz account.move xpath Inherits l10n_es_ticketbai.view_move_form_inherit
view_partner_form_inherit_l10n_es_ticketbai_batuz res.partner group Inherits account.view_partner_property_form
Models touched (10)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (7)
  • lroe_invoice_dict Text
    copy=False readonly=True string='LROE last content sent'
  • lroe_operation_ids Many2many → lroe.operation
    column1='invoice_id' column2='lroe_operation_id' comodel_name='lroe.operation' copy=False relation='account_invoice_lroe_operation_rel' string='LROE Operations'
  • lroe_response_line_ids Many2many → lroe.operation.response.line
    comodel_name='lroe.operation.response.line' compute='_compute_lroe_response_line_ids' string='LROE Responses'
  • lroe_state Selection
    copy=False default='not_sent' help='Indicates the state of this invoice in relation with LROE/Batuz' selection=LROE_STATES string='LROE state'
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime Key'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 2nd Key'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 3rd Key'
Public methods (14)
  • action_invoice_draft(self)
  • action_send_lroe_manually(self)
  • batuz_get_supplier_num_factura(self)
  • batuz_get_supplier_serie_factura(self)
    Consultamos a hacienda cómo extraer la serie de una factura de proveedor. Al no ser posible en algunos casos, decidimos tomar ciertos caracteres como serie y el resto como número. Aunque la serie no es obligatoria en facturas recibidas, sí lo es en las rectificativas, por lo que es necesario informarla siempre.
  • button_cancel(self)
  • create(self, vals_list)
    @api.model_create_multi
  • onchange_fiscal_position_id_lroe_vat_regime_key(self)
    @api.onchange('fiscal_position_id', 'partner_id')
  • set_lroe_state_cancel(self)
  • set_lroe_state_cancel_modified(self)
  • set_lroe_state_error(self)
  • set_lroe_state_pending(self)
  • set_lroe_state_recorded(self)
  • set_lroe_state_recorded_modified(self)
  • set_lroe_state_recorded_warning(self)

New fields (2)
  • batuz_supplier_invoice_number Char
    string='Supplier Invoice Number'
  • batuz_supplier_invoice_number_required Boolean
    default=_default_batuz_supplier_invoice_number_required string='Is Supplier Invoice Number Required?'
Public methods (1)
  • reverse_moves(self)

New fields (3)
  • api_url Char
    compute='_compute_api_url' args: 'LROE API URL'
  • invoice_ids Many2many → account.move
    column1='lroe_operation_id' column2='invoice_id' comodel_name='account.move' relation='account_invoice_lroe_operation_rel' string='Invoices'
  • jobs_ids Many2many → queue.job
    column1='lroe_operation_id' column2='job_id' comodel_name='queue.job' copy=False string='Connector Jobs'
Public methods (9)
  • create(self, vals_list)
    @api.model_create_multi
  • get_lroe_api(self, **kwargs)
  • mark_as_error(self)
  • mark_as_recorded(self)
  • mark_as_warning(self)
  • process(self)
  • send(self, **kwargs)
  • send_one_operation(self)
  • send_one_operation_job(self)

New fields (4)
  • delay_time Float
    help='In hours'
  • send_mode Selection
    default='auto' selection=[('auto', 'On validate'), ('fixed', 'At fixed time'), ('delayed', 'With delay'), ('end_quarter', 'At the end of the quarter')]
  • sent_time Float
    help='In hours'
  • use_connector Boolean
    help="Check it to use connector instead of sending the invoice directly when it's validated"
Public methods (0)

No public methods.

New fields (1)
  • lroe_simplified_invoice Boolean
    help='Checking this mark, invoices done to this partner will be sent to LROE as simplified invoices.' string='Simplified invoices in LROE?'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_lroe_ticketbai_api(self, **kwargs)
  • send(self, **kwargs)

New fields (1)
  • type Selection
    required=True selection=[('sale', 'Sale'), ('purchase', 'Purchase')]
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/15.0/l10n_es_ticketbai_batuz
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Binovo, Digital5
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Binovo, Digital5
COMMITTERS
COMMITTERSOCA Transbot, Weblate, OCA-git-bot, JesusVMayor, oca-ci, Aritz Olea, xAdrianC, bilbonet
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_ticketbai_api_batuz
    - l10n_es_ticketbai_api
    - l10n_es_ticketbai
    - l10n_es_aeat
OCA/queue:
    - queue_job
OCA/server-ux:
    - date_range
odoo/odoo:
    - base
    - base_setup
    - web
    - base_vat
    - account
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_es
    - base_iban
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests_pkcs12
xmltodict
cryptography
qrcode
xmlsig
unidecode
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
lroe_operation_form_view_inherit_batuz lroe.operation.form.view lroe.operation xpath Inherits l10n_es_ticketbai_api_batuz.lroe_operation_form_view
lroe_operation_search_view_inherit_batuz lroe.operation.search.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_search_view
lroe_operation_tree_view_inherit_batuz lroe.operation.tree.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_tree_view
move_supplier_form_inherit_l10n_es_ticketbai_batuz account.move.supplier.form account.move button Inherits account.view_move_form
tbai_vat_regime_key_view_search_inherit_batuz tbai.vat.regime.key.view.search tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_search
tbai_vat_regime_key_view_tree_inherit_batuz tbai.vat.regime.key.view.tree tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_tree
view_account_move_filter_inherit_l10n_es_ticketbai_batuz account.move.select.batuz account.move filter Inherits account.view_account_invoice_filter
view_account_move_reversal_inherit_batuz account.move.reversal.batuz.form account.move.reversal field Inherits account.view_account_move_reversal
view_account_position_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.form.batuz account.fiscal.position xpath Inherits account.view_account_position_form
view_account_position_template_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.template.form.batuz account.fiscal.position.template field Inherits account.view_account_position_template_form
view_company_form_inherit_batuz view_company_form_inherit_batuz res.company xpath Inherits l10n_es_ticketbai_api.view_company_form_inherit
view_move_form_tbai_batuz view.move.form.tbai.batuz account.move xpath Inherits l10n_es_ticketbai.view_move_form_inherit
view_partner_form_inherit_l10n_es_ticketbai_batuz res.partner group Inherits account.view_partner_property_form
Models touched (10)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (7)
  • lroe_invoice_dict Text
    copy=False readonly=True string='LROE last content sent'
  • lroe_operation_ids Many2many → lroe.operation
    column1='invoice_id' column2='lroe_operation_id' comodel_name='lroe.operation' copy=False relation='account_invoice_lroe_operation_rel' string='LROE Operations'
  • lroe_response_line_ids Many2many → lroe.operation.response.line
    comodel_name='lroe.operation.response.line' compute='_compute_lroe_response_line_ids' string='Responses'
  • lroe_state Selection
    copy=False default='not_sent' help='Indicates the state of this invoice in relation with LROE/Batuz' selection=LROE_STATES string='LROE state'
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime Key'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 2nd Key'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 3rd Key'
Public methods (14)
  • action_invoice_draft(self)
  • action_send_lroe_manually(self)
  • batuz_get_supplier_num_factura(self)
  • batuz_get_supplier_serie_factura(self)
    Consultamos a hacienda cómo extraer la serie de una factura de proveedor. Al no ser posible en algunos casos, decidimos tomar ciertos caracteres como serie y el resto como número. Aunque la serie no es obligatoria en facturas recibidas, sí lo es en las rectificativas, por lo que es necesario informarla siempre.
  • button_cancel(self)
  • create(self, vals)
    @api.model
  • onchange_fiscal_position_id_lroe_vat_regime_key(self)
    @api.onchange('fiscal_position_id', 'partner_id')
  • set_lroe_state_cancel(self)
  • set_lroe_state_cancel_modified(self)
  • set_lroe_state_error(self)
  • set_lroe_state_pending(self)
  • set_lroe_state_recorded(self)
  • set_lroe_state_recorded_modified(self)
  • set_lroe_state_recorded_warning(self)

New fields (2)
  • batuz_supplier_invoice_number Char
    string='Supplier Invoice Number'
  • batuz_supplier_invoice_number_required Boolean
    default=_default_batuz_supplier_invoice_number_required string='Is Supplier Invoice Number Required?'
Public methods (1)
  • reverse_moves(self)

New fields (3)
  • api_url Char
    compute='_compute_api_url' args: 'LROE API URL'
  • invoice_ids Many2many → account.move
    column1='lroe_operation_id' column2='invoice_id' comodel_name='account.move' relation='account_invoice_lroe_operation_rel' string='Invoices'
  • jobs_ids Many2many → queue.job
    column1='lroe_operation_id' column2='job_id' comodel_name='queue.job' copy=False string='Connector Jobs'
Public methods (9)
  • create(self, vals)
    @api.model
  • get_lroe_api(self, **kwargs)
  • mark_as_error(self)
  • mark_as_recorded(self)
  • mark_as_warning(self)
  • process(self)
  • send(self, **kwargs)
  • send_one_operation(self)
  • send_one_operation_job(self)

New fields (4)
  • delay_time Float
    help='In hours'
  • send_mode Selection
    default='auto' selection=[('auto', 'On validate'), ('fixed', 'At fixed time'), ('delayed', 'With delay'), ('end_quarter', 'At the end of the quarter')]
  • sent_time Float
    help='In hours'
  • use_connector Boolean
    help="Check it to use connector instead of sending the invoice directly when it's validated"
Public methods (0)

No public methods.

New fields (1)
  • lroe_simplified_invoice Boolean
    help='Checking this mark, invoices done to this partner will be sent to LROE as simplified invoices.' string='Simplified invoices in LROE?'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_lroe_ticketbai_api(self, **kwargs)
  • send(self, **kwargs)

New fields (1)
  • type Selection
    required=True selection=[('sale', 'Sale'), ('purchase', 'Purchase')]
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/14.0/l10n_es_ticketbai_batuz
VERSION
VERSION 1.2.3
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Binovo, Digital5
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Binovo, Digital5
COMMITTERS
COMMITTERSPedro M. Baeza, Enric Tobella, OCA Transbot, Weblate, OCA-git-bot, oca-ci, Enrique Martín, Aritz Olea, xAdrianC, jfernandezbusman, tomassainz
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_ticketbai_api_batuz
    - l10n_es_ticketbai_api
    - l10n_es_ticketbai
    - l10n_es_aeat
OCA/queue:
    - queue_job
OCA/server-ux:
    - date_range
odoo/odoo:
    - base
    - base_setup
    - web
    - base_vat
    - account
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_es
    - base_iban
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests_pkcs12
xmltodict
cryptography<39
pyOpenSSL
qrcode
xmlsig
unidecode
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
lroe_operation_form_view_inherit_batuz lroe.operation.form.view lroe.operation xpath Inherits l10n_es_ticketbai_api_batuz.lroe_operation_form_view
lroe_operation_search_view_inherit_batuz lroe.operation.search.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_search_view
lroe_operation_tree_view_inherit_batuz lroe.operation.tree.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_tree_view
move_supplier_form_inherit_l10n_es_ticketbai_batuz account.move.supplier.form account.move button Inherits account.view_move_form
tbai_vat_regime_key_view_search_inherit_batuz tbai.vat.regime.key.view.search tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_search
tbai_vat_regime_key_view_tree_inherit_batuz tbai.vat.regime.key.view.tree tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_tree
view_account_journal_form_inherit_batuz account.journal xpath Inherits account.view_account_journal_form
view_account_move_filter_inherit_l10n_es_ticketbai_batuz account.move.select.batuz account.move filter Inherits account.view_account_invoice_filter
view_account_move_reversal_inherit_batuz account.move.reversal.batuz.form account.move.reversal field Inherits account.view_account_move_reversal
view_account_position_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.form.batuz account.fiscal.position xpath Inherits account.view_account_position_form
view_account_position_template_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.template.form.batuz account.fiscal.position.template field Inherits account.view_account_position_template_form
view_company_form_inherit_batuz view_company_form_inherit_batuz res.company xpath Inherits l10n_es_ticketbai_api.view_company_form_inherit
view_move_form_tbai_batuz view.move.form.tbai.batuz account.move xpath Inherits l10n_es_ticketbai.view_move_form_inherit
view_partner_form_inherit_l10n_es_ticketbai_batuz res.partner group Inherits account.view_partner_property_form
Models touched (10)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (7)
  • lroe_invoice_dict Text
    copy=False readonly=True string='LROE last content sent'
  • lroe_operation_ids Many2many → lroe.operation
    column1='invoice_id' column2='lroe_operation_id' comodel_name='lroe.operation' copy=False relation='account_invoice_lroe_operation_rel' string='LROE Operations'
  • lroe_response_line_ids Many2many → lroe.operation.response.line
    comodel_name='lroe.operation.response.line' compute='_compute_lroe_response_line_ids' string='Responses'
  • lroe_state Selection
    copy=False default='not_sent' help='Indicates the state of this invoice in relation with LROE/Batuz' selection=LROE_STATES string='LROE state'
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime Key'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 2nd Key'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 3rd Key'
Public methods (14)
  • action_invoice_draft(self)
  • action_send_lroe_manually(self)
  • batuz_get_supplier_num_factura(self)
  • batuz_get_supplier_serie_factura(self)
    Consultamos a hacienda cómo extraer la serie de una factura de proveedor. Al no ser posible en algunos casos, decidimos tomar ciertos caracteres como serie y el resto como número. Aunque la serie no es obligatoria en facturas recibidas, sí lo es en las rectificativas, por lo que es necesario informarla siempre.
  • button_cancel(self)
  • create(self, vals)
    @api.model
  • onchange_fiscal_position_id_lroe_vat_regime_key(self)
    @api.onchange('fiscal_position_id', 'partner_id')
  • set_lroe_state_cancel(self)
  • set_lroe_state_cancel_modified(self)
  • set_lroe_state_error(self)
  • set_lroe_state_pending(self)
  • set_lroe_state_recorded(self)
  • set_lroe_state_recorded_modified(self)
  • set_lroe_state_recorded_warning(self)

New fields (2)
  • batuz_supplier_invoice_number Char
    string='Supplier Invoice Number'
  • batuz_supplier_invoice_number_required Boolean
    default=_default_batuz_supplier_invoice_number_required string='Is Supplier Invoice Number Required?'
Public methods (1)
  • reverse_moves(self)

New fields (3)
  • api_url Char
    compute='_compute_api_url' args: 'LROE API URL'
  • invoice_ids Many2many → account.move
    column1='lroe_operation_id' column2='invoice_id' comodel_name='account.move' relation='account_invoice_lroe_operation_rel' string='Invoices'
  • jobs_ids Many2many → queue.job
    column1='lroe_operation_id' column2='job_id' comodel_name='queue.job' copy=False string='Connector Jobs'
Public methods (9)
  • create(self, vals)
    @api.model
  • get_lroe_api(self, **kwargs)
  • mark_as_error(self)
  • mark_as_recorded(self)
  • mark_as_warning(self)
  • process(self)
  • send(self, **kwargs)
  • send_one_operation(self)
  • send_one_operation_job(self)

New fields (4)
  • delay_time Float
    help='In hours' string='Delay time'
  • send_mode Selection
    default='auto' selection=[('auto', 'On validate'), ('fixed', 'At fixed time'), ('delayed', 'With delay'), ('end_quarter', 'At the end of the quarter')] string='Send mode'
  • sent_time Float
    help='In hours' string='Sent time'
  • 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 (1)
  • lroe_simplified_invoice Boolean
    help='Checking this mark, invoices done to this partner will be sent to LROE as simplified invoices.' string='Simplified invoices in LROE?'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_lroe_ticketbai_api(self, **kwargs)
  • send(self, **kwargs)

New fields (1)
  • type Selection
    required=True selection=[('sale', 'Sale'), ('purchase', 'Purchase')] string='Type'
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/13.0/l10n_es_ticketbai_batuz
VERSION
VERSION 1.2.2
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Binovo, Digital5
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Binovo, Digital5
COMMITTERS
COMMITTERSGitHub, Weblate, OCA-git-bot, JesusVMayor, oca-ci, Aritz Olea, xAdrianC, bilbonet
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_ticketbai_api_batuz
    - l10n_es_ticketbai_api
    - l10n_es_ticketbai
    - l10n_es_aeat
OCA/queue:
    - queue_job
OCA/server-ux:
    - date_range
odoo/odoo:
    - base
    - base_setup
    - web
    - base_vat
    - account
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_es
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests_pkcs12
xmltodict
OpenSSL
cryptography<39
qrcode
xmlsig
pyOpenSSL
unidecode
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
lroe_operation_form_view_inherit_batuz lroe.operation.form.view lroe.operation xpath Inherits l10n_es_ticketbai_api_batuz.lroe_operation_form_view
lroe_operation_search_view_inherit_batuz lroe.operation.search.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_search_view
lroe_operation_tree_view_inherit_batuz lroe.operation.tree.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_tree_view
move_supplier_form_inherit_l10n_es_ticketbai_batuz account.move.supplier.form account.move button Inherits account.view_move_form
tbai_vat_regime_key_view_search_inherit_batuz tbai.vat.regime.key.view.search tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_search
tbai_vat_regime_key_view_tree_inherit_batuz tbai.vat.regime.key.view.tree tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_tree
view_account_move_filter_inherit_l10n_es_ticketbai_batuz account.move.select.batuz account.move filter Inherits account.view_account_invoice_filter
view_account_move_reversal_inherit_batuz account.move.reversal.batuz.form account.move.reversal field Inherits account.view_account_move_reversal
view_account_position_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.form.batuz account.fiscal.position xpath Inherits account.view_account_position_form
view_account_position_template_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.template.form.batuz account.fiscal.position.template field Inherits account.view_account_position_template_form
view_company_form_inherit_batuz view_company_form_inherit_batuz res.company xpath Inherits l10n_es_ticketbai_api.view_company_form_inherit
view_move_form_tbai_batuz view.move.form.tbai.batuz account.move xpath Inherits l10n_es_ticketbai.view_move_form_inherit
view_partner_form_inherit_l10n_es_ticketbai_batuz res.partner group Inherits account.view_partner_property_form
Models touched (10)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (7)
  • lroe_invoice_dict Text
    copy=False readonly=True string='LROE last content sent'
  • lroe_operation_ids Many2many → lroe.operation
    column1='invoice_id' column2='lroe_operation_id' comodel_name='lroe.operation' copy=False relation='account_invoice_lroe_operation_rel' string='LROE Operations'
  • lroe_response_line_ids Many2many → lroe.operation.response.line
    comodel_name='lroe.operation.response.line' compute='_compute_lroe_response_line_ids' string='Responses'
  • lroe_state Selection
    copy=False default='not_sent' help='Indicates the state of this invoice in relation with LROE/Batuz' selection=LROE_STATES string='LROE state'
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime Key'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 2nd Key'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 3rd Key'
Public methods (15)
  • action_invoice_draft(self)
  • action_send_lroe_manually(self)
  • batuz_get_supplier_num_factura(self)
  • batuz_get_supplier_serie_factura(self)
    Consultamos a hacienda cómo extraer la serie de una factura de proveedor. Al no ser posible en algunos casos, decidimos tomar ciertos caracteres como serie y el resto como número. Aunque la serie no es obligatoria en facturas recibidas, sí lo es en las rectificativas, por lo que es necesario informarla siempre.
  • button_cancel(self)
  • create(self, vals)
    @api.model
  • onchange_fiscal_position_id_lroe_vat_regime_key(self)
    @api.onchange('fiscal_position_id', 'partner_id')
  • post(self)
  • set_lroe_state_cancel(self)
  • set_lroe_state_cancel_modified(self)
  • set_lroe_state_error(self)
  • set_lroe_state_pending(self)
  • set_lroe_state_recorded(self)
  • set_lroe_state_recorded_modified(self)
  • set_lroe_state_recorded_warning(self)

New fields (2)
  • batuz_supplier_invoice_number Char
    string='Supplier Invoice Number'
  • batuz_supplier_invoice_number_required Boolean
    default=_default_batuz_supplier_invoice_number_required string='Is Supplier Invoice Number Required?'
Public methods (1)
  • reverse_moves(self)

New fields (3)
  • api_url Char
    compute='_compute_api_url' args: 'LROE API URL'
  • invoice_ids Many2many → account.move
    column1='lroe_operation_id' column2='invoice_id' comodel_name='account.move' relation='account_invoice_lroe_operation_rel' string='Invoices'
  • jobs_ids Many2many → queue.job
    column1='lroe_operation_id' column2='job_id' comodel_name='queue.job' copy=False string='Connector Jobs'
Public methods (9)
  • create(self, vals)
    @api.model
  • get_lroe_api(self, **kwargs)
  • mark_as_error(self)
  • mark_as_recorded(self)
  • mark_as_warning(self)
  • process(self)
  • send(self, **kwargs)
  • send_one_operation(self)
  • send_one_operation_job(self)
    @job(default_channel='root.invoice_send_lroe')

New fields (4)
  • delay_time Float
    help='In hours' string='Delay time'
  • send_mode Selection
    default='auto' selection=[('auto', 'On validate'), ('fixed', 'At fixed time'), ('delayed', 'With delay'), ('end_quarter', 'At the end of the quarter')] string='Send mode'
  • sent_time Float
    help='In hours' string='Sent time'
  • 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 (1)
  • lroe_simplified_invoice Boolean
    help='Checking this mark, invoices done to this partner will be sent to LROE as simplified invoices.' string='Simplified invoices in LROE?'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_lroe_ticketbai_api(self, **kwargs)
  • send(self, **kwargs)

New fields (1)
  • type Selection
    required=True selection=[('sale', 'Sale'), ('purchase', 'Purchase')] string='Type'
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/12.0/l10n_es_ticketbai_batuz
VERSION
VERSION 1.3.4
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Binovo, Digital5
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Binovo, Digital5
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, OCA-git-bot, JesusVMayor, oca-ci, Aritz Olea, bilbonet
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_ticketbai_api_batuz
    - l10n_es_ticketbai_api
    - l10n_es_ticketbai
    - l10n_es_aeat
OCA/queue:
    - queue_job
OCA/server-ux:
    - date_range
odoo/odoo:
    - base
    - base_setup
    - web
    - base_vat
    - account
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - l10n_es
    - base_iban
    - account_cancel
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests_pkcs12
xmltodict
OpenSSL
cryptography
qrcode
xmlsig
requests
unidecode
zeep
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
invoice_supplier_form_inherit_l10n_es_ticketbai_batuz account.invoice.supplier.form account.invoice button Inherits account.invoice_supplier_form
lroe_operation_form_view_inherit_batuz lroe.operation.form.view lroe.operation xpath Inherits l10n_es_ticketbai_api_batuz.lroe_operation_form_view
lroe_operation_search_view_inherit_batuz lroe.operation.search.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_search_view
lroe_operation_tree_view_inherit_batuz lroe.operation.tree.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_tree_view
tbai_vat_regime_key_view_search_inherit_batuz tbai.vat.regime.key.view.search tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_search
tbai_vat_regime_key_view_tree_inherit_batuz tbai.vat.regime.key.view.tree tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_tree
view_account_invoice_filter_inherit_l10n_es_ticketbai_batuz account.invoice.select.batuz account.invoice filter Inherits account.view_account_invoice_filter
view_account_invoice_refund_inherit_batuz account.invoice.refund.batuz.form account.invoice.refund field Inherits account.view_account_invoice_refund
view_account_journal_form_batuz account.journal xpath Inherits l10n_es_ticketbai.view_account_journal_form_inherit
view_account_position_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.form.batuz account.fiscal.position xpath Inherits account.view_account_position_form
view_account_position_template_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.template.form.batuz account.fiscal.position.template field Inherits account.view_account_position_template_form
view_company_form_inherit_batuz view_company_form_inherit_batuz res.company xpath Inherits l10n_es_ticketbai_api.view_company_form_inherit
view_invoice_form_tbai_batuz view.invoice.form.tbai.batuz account.invoice xpath Inherits l10n_es_ticketbai.invoice_form_inherit
view_partner_form_inherit_l10n_es_ticketbai_batuz res.partner group Inherits account.view_partner_property_form
Models touched (10)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (7)
  • lroe_invoice_dict Text
    copy=False readonly=True string='LROE last content sent'
  • lroe_operation_ids Many2many → lroe.operation
    column1='invoice_id' column2='lroe_operation_id' comodel_name='lroe.operation' copy=False relation='account_invoice_lroe_operation_rel' string='LROE Operations'
  • lroe_response_line_ids Many2many → lroe.operation.response.line
    comodel_name='lroe.operation.response.line' compute='_compute_lroe_response_line_ids' string='LROE Responses'
  • lroe_state Selection
    copy=False default='not_sent' help='Indicates the state of this invoice in relation with LROE/Batuz' selection=LROE_STATES string='LROE state'
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime Key'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 2nd Key'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 3rd Key'
Public methods (16)
  • action_cancel(self)
    @api.multi
  • action_invoice_draft(self)
    @api.multi
  • action_send_lroe_manually(self)
    @api.multi
  • batuz_get_supplier_num_factura(self)
  • batuz_get_supplier_serie_factura(self)
    Consultamos a hacienda cómo extraer la serie de una factura de proveedor. Al no ser posible en algunos casos, decidimos tomar ciertos caracteres como serie y el resto como número. Aunque la serie no es obligatoria en facturas recibidas, sí lo es en las rectificativas, por lo que es necesario informarla siempre.
  • create(self, vals)
    @api.model
  • invoice_validate(self)
    @api.multi
  • onchange_fiscal_position_id_lroe_vat_regime_key(self)
    @api.onchange('fiscal_position_id')
  • set_lroe_state_cancel(self)
    @api.multi
  • set_lroe_state_cancel_modified(self)
    @api.multi
  • set_lroe_state_error(self)
    @api.multi
  • set_lroe_state_not_sent(self)
    @api.multi
  • set_lroe_state_pending(self)
    @api.multi
  • set_lroe_state_recorded(self)
    @api.multi
  • set_lroe_state_recorded_modified(self)
    @api.multi
  • set_lroe_state_recorded_warning(self)
    @api.multi

New fields (2)
  • batuz_supplier_invoice_number Char
    string='Supplier Invoice Number'
  • batuz_supplier_invoice_number_required Boolean
    default=_default_batuz_supplier_invoice_number_required string='Is Supplier Invoice Number Required?'
Public methods (1)
  • compute_refund(self, mode='refund')
    @api.multi

New fields (3)
  • api_url Char
    compute='_compute_api_url' args: 'LROE API URL'
  • invoice_ids Many2many → account.invoice
    column1='lroe_operation_id' column2='invoice_id' comodel_name='account.invoice' relation='account_invoice_lroe_operation_rel' string='Invoices'
  • jobs_ids Many2many → queue.job
    column1='lroe_operation_id' column2='job_id' comodel_name='queue.job' copy=False string='Connector Jobs'
Public methods (9)
  • create(self, vals)
    @api.model
  • get_lroe_api(self, **kwargs)
    @api.multi
  • mark_as_error(self)
    @api.multi
  • mark_as_recorded(self)
    @api.multi
  • mark_as_warning(self)
    @api.multi
  • process(self)
    @api.multi
  • send(self, **kwargs)
    @api.multi
  • send_one_operation(self)
    @api.multi
  • send_one_operation_job(self)
    @job(default_channel='root.invoice_send_lroe')@api.multi

New fields (4)
  • delay_time Float
    help='In hours' string='Delay time'
  • send_mode Selection
    default='auto' selection=[('auto', 'On validate'), ('fixed', 'At fixed time'), ('delayed', 'With delay'), ('end_quarter', 'At the end of the quarter')] string='Send mode'
  • sent_time Float
    help='In hours' string='Sent time'
  • 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 (1)
  • lroe_simplified_invoice Boolean
    help='Checking this mark, invoices done to this partner will be sent to LROE as simplified invoices.' string='Simplified invoices in LROE?'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_lroe_ticketbai_api(self, **kwargs)
    @api.multi
  • send(self, **kwargs)
    @api.multi

New fields (1)
  • type Selection
    required=True selection=[('sale', 'Sale'), ('purchase', 'Purchase')] string='Type'
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/11.0/l10n_es_ticketbai_batuz
VERSION
VERSION 2.2.2
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Binovo, Digital5
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Binovo, Digital5
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, OCA-git-bot, Victor Laskurain, Enrique Martín, Aritz Olea
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-invoicing:
    - account_invoice_tax_required
OCA/l10n-spain:
    - l10n_es_ticketbai_api_batuz
    - l10n_es_ticketbai_api
    - l10n_es_ticketbai
    - l10n_es_aeat
    - l10n_es_aeat_certificate
OCA/queue:
    - queue_job
OCA/server-ux:
    - date_range
odoo/odoo:
    - base
    - base_setup
    - web
    - base_vat
    - account
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - analytic
    - web_planner
    - portal
    - http_routing
    - l10n_es
    - base_iban
    - account_invoicing
    - account_cancel
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests_pkcs12
xmltodict
OpenSSL
cryptography
qrcode
xmlsig
unidecode
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
invoice_supplier_form_inherit_l10n_es_ticketbai_batuz account.invoice.supplier.form account.invoice button Inherits account.invoice_supplier_form
lroe_operation_form_view_inherit_batuz lroe.operation.form.view lroe.operation xpath Inherits l10n_es_ticketbai_api_batuz.lroe_operation_form_view
lroe_operation_search_view_inherit_batuz lroe.operation.search.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_search_view
lroe_operation_tree_view_inherit_batuz lroe.operation.tree.view lroe.operation field Inherits l10n_es_ticketbai_api_batuz.lroe_operation_tree_view
tbai_vat_regime_key_view_search_inherit_batuz tbai.vat.regime.key.view.search tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_search
tbai_vat_regime_key_view_tree_inherit_batuz tbai.vat.regime.key.view.tree tbai.vat.regime.key field Inherits l10n_es_ticketbai.tbai_vat_regime_key_view_tree
view_account_invoice_filter_inherit_l10n_es_ticketbai_batuz account.invoice.select.batuz account.invoice filter Inherits account.view_account_invoice_filter
view_account_invoice_refund_inherit_batuz account.invoice.refund.batuz.form account.invoice.refund field Inherits account.view_account_invoice_refund
view_account_position_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.form.batuz account.fiscal.position xpath Inherits account.view_account_position_form
view_account_position_template_form_inherit_l10n_es_ticketbai_batuz account.fiscal.position.template.form.batuz account.fiscal.position.template field Inherits account.view_account_position_template_form
view_company_form_inherit_batuz view_company_form_inherit_batuz res.company xpath Inherits l10n_es_ticketbai_api.view_company_form_inherit
view_invoice_form_tbai_batuz view.invoice.form.tbai.batuz account.invoice xpath Inherits l10n_es_ticketbai.invoice_form_inherit
view_partner_form_inherit_l10n_es_ticketbai_batuz res.partner group Inherits account.view_partner_property_form
Models touched (10)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (6)
  • tbai_vat_regime_key Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key2 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_key3 Many2one
    domain=[('type', '=', 'sale')]
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime Key for purchases'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 2nd Key for purchases'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=False domain=[('type', '=', 'purchase')] string='VAT Regime 3rd Key for purchases'
Public methods (0)

No public methods.

New fields (7)
  • lroe_invoice_dict Text
    copy=False readonly=True string='LROE last content sent'
  • lroe_operation_ids Many2many → lroe.operation
    column1='invoice_id' column2='lroe_operation_id' comodel_name='lroe.operation' copy=False relation='account_invoice_lroe_operation_rel' string='LROE Operations'
  • lroe_response_line_ids Many2many → lroe.operation.response.line
    comodel_name='lroe.operation.response.line' compute='_compute_lroe_response_line_ids' string='Responses'
  • lroe_state Selection
    copy=False default='not_sent' help='Indicates the state of this invoice in relation with LROE/Batuz' selection=LROE_STATES string='LROE state'
  • tbai_vat_regime_purchase_key Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime Key'
  • tbai_vat_regime_purchase_key2 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 2nd Key'
  • tbai_vat_regime_purchase_key3 Many2one → tbai.vat.regime.key
    comodel_name='tbai.vat.regime.key' copy=True domain=[('type', '=', 'purchase')] string='Purchase VAT Regime 3rd Key'
Public methods (15)
  • action_cancel(self)
    @api.multi
  • action_invoice_draft(self)
    @api.multi
  • action_send_lroe_manually(self)
    @api.multi
  • batuz_get_supplier_num_factura(self)
  • batuz_get_supplier_serie_factura(self)
    Consultamos a hacienda cómo extraer la serie de una factura de proveedor. Al no ser posible en algunos casos, decidimos tomar ciertos caracteres como serie y el resto como número. Aunque la serie no es obligatoria en facturas recibidas, sí lo es en las rectificativas, por lo que es necesario informarla siempre.
  • create(self, vals)
    @api.model
  • invoice_validate(self)
    @api.multi
  • onchange_fiscal_position_id_lroe_vat_regime_key(self)
    @api.onchange('fiscal_position_id')
  • set_lroe_state_cancel(self)
    @api.multi
  • set_lroe_state_cancel_modified(self)
    @api.multi
  • set_lroe_state_error(self)
    @api.multi
  • set_lroe_state_pending(self)
    @api.multi
  • set_lroe_state_recorded(self)
    @api.multi
  • set_lroe_state_recorded_modified(self)
    @api.multi
  • set_lroe_state_recorded_warning(self)
    @api.multi

New fields (2)
  • batuz_supplier_invoice_number Char
    string='Supplier Invoice Number'
  • batuz_supplier_invoice_number_required Boolean
    default=_default_batuz_supplier_invoice_number_required string='Is Supplier Invoice Number Required?'
Public methods (1)
  • compute_refund(self, mode='refund')
    @api.multi

New fields (3)
  • api_url Char
    compute='_compute_api_url' args: 'LROE API URL'
  • invoice_ids Many2many → account.invoice
    column1='lroe_operation_id' column2='invoice_id' comodel_name='account.invoice' relation='account_invoice_lroe_operation_rel' string='Invoices'
  • jobs_ids Many2many → queue.job
    column1='lroe_operation_id' column2='job_id' comodel_name='queue.job' copy=False string='Connector Jobs'
Public methods (9)
  • create(self, vals)
    @api.model
  • get_lroe_api(self, **kwargs)
    @api.multi
  • mark_as_error(self)
    @api.multi
  • mark_as_recorded(self)
    @api.multi
  • mark_as_warning(self)
    @api.multi
  • process(self)
    @api.multi
  • send(self, **kwargs)
    @api.multi
  • send_one_operation(self)
    @api.multi
  • send_one_operation_job(self)
    @job(default_channel='root.invoice_send_lroe')@api.multi

New fields (4)
  • delay_time Float
    help='In hours' string='Delay time'
  • send_mode Selection
    default='auto' selection=[('auto', 'On validate'), ('fixed', 'At fixed time'), ('delayed', 'With delay'), ('end_quarter', 'At the end of the quarter')] string='Send mode'
  • sent_time Float
    help='In hours' string='Sent time'
  • 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 (1)
  • lroe_simplified_invoice Boolean
    help='Checking this mark, invoices done to this partner will be sent to LROE as simplified invoices.' string='Simplified invoices in LROE?'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_lroe_ticketbai_api(self, **kwargs)
    @api.multi
  • send(self, **kwargs)
    @api.multi

New fields (1)
  • type Selection
    required=True selection=[('sale', 'Sale'), ('purchase', 'Purchase')] string='Type'
Public methods (0)

No public methods.