SPED Base

l10n_br_sped_base
REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/18.0/l10n_br_sped_base
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSRaphaël Valyi, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_fiscal
    - l10n_br_base
OCA/product-attribute:
    - uom_alias
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - base_address_extended
    - contacts
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Este módulo contém algumas abstrações utilizadas pelos módulos de SPED

Ele não faz nada sozinho, mas serve dentro dos 4 módulos:

- l10n_br_sped_ecd
- l10n_br_sped_efd_icms_ipi
- l10n_br_sped_efd_pis_cofins
- l10n_br_sped_ecf

Em especial, cada registro dos módulos de SPED herda do objeto abstrato
l10n_br_sped.mixin que conta com visões automáticas e metodos para
importar ou escrever registros dos SPED de forma recursiva.

Para cada tipo de arquivo SPED, o registro de abertura 0000 herda também
do objeto abstrato l10n_br_sped.declaration que conta com métodos para
popular os registros do SPED a partir das transações do Odoo entre as datas
DT_INI e DT_FIN e permite assim gerir os arquivos do SPED.

Para gerir o SPED, basta criar uma declaração do SPED no menu
apropriado. Depois clicar em Puxar os Dados do Odoo. Isso vai percorrer a
arvore dos registros do SPED e para cada registro vai usar `_odoo_domain`
ou `_odoo_query` para ver se tem records Odoo para mapear. Caso tiver vai
chamar o método `_map_from_odoo` do registro. Depois vai repetir a
operação com os registros filhos. Na declaração é possível escolher se você
quer um único arquivo SPED ou se você quer quebrar o arquivo bloco por
bloco.

Em cada módulo de SPED, existe 2 arquivos principais:

- um arquivo com o número do leiaute que contém **os modelos abstratos
  de todos os registros do SPED com todos os campos**. Este arquivo é gerido
  gerido pela ferramenta
  [spedextractor](https://github.com/akretion/sped-extractor) a partir dos pdf
  das especificações e **não deve ser editado manualmente**.
- um segundo arquivo que contém a **lista de todos registros
  concretos** que herdam desses primeiros modelos abstratos e contém
  assim todos os campos. Como o mixin de cada registro contém a versão
  do leiaute dentro do nome dele, temos uma forma de suportar
  várias versões dos leiautes. Esse arquivo dos registros concretos
  deve sim ser editado manualmente para completar os mappings. Para
  mapear um registro, deve se implementar o override desses 3 métodos:
  - `def _odoo_domain(self, parent_record, declaration):` deve
    retornar um domain que permite a seleção dos records Odoo a serem
    mapeados de acordo com o record parente e os dados da declaração
    (onde tem as datas e a empresa por exemplo). Para usar esse método
    `_odoo_domain`, deve se definir também o atributo `_odoo_model`
  - `def _odoo_query(self, parent_record, declaration): ` caso a
    seleção dos records a serem mapeados não pode ser obtida por um
    domain, pode ser implementado esse override para retornar a query
    SQL para selecionar um result set a mapear. Neste caso, o record
    do método `_map_from_odoo` é um result set do query Postgres. Se
    você não implementar nem `_odoo_domain` nem `_odoo_query` e
    implementar o método `_map_from_odoo`, o registro vai ter uma
    instância gerida para cada declaração. É o caso do registro I010
    da ECD por exemplo.
  - `_map_from_odoo(self, record, parent_record, declaration, index=0)`
    para facilitar, os overrides dos metodos `_map_from_odoo` de
    todos os registros, esse já vem geridos de forma comentada com
    todos os campos do registro. Assim basta descomentar or método e
    implementar como é mapeado cada campo a partir do record,
    parent_record e dos dados da declaração.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
partner_form l10n_br_sped_base.res.partner.form res.partner group Inherits l10n_br_base.l10n_br_base_partner_form
Models touched (3)

New fields (13)
  • DT_FIN Date
    default=_get_default_dt_fin string='End Date'
  • DT_INI Date
    default=_get_default_dt_ini string='Start Date'
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • debug Boolean
    help='If True, will pull draft account moves and draft fiscal documents from a larger date period to help developpers develop and debug the mappings'
  • fiscal_comment_ids One2many → l10n_br_fiscal.comment
    comodel_name='l10n_br_fiscal.comment' compute='_compute_fiscal_documents'
  • fiscal_document_ids One2many → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' compute='_compute_fiscal_documents'
  • fiscal_document_line_ids One2many → l10n_br_fiscal.document.line
    comodel_name='l10n_br_fiscal.document.line' compute='_compute_fiscal_documents'
  • fiscal_document_partner_ids One2many → res.partner
    comodel_name='res.partner' compute='_compute_fiscal_documents'
  • fiscal_operation_ids One2many → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' compute='_compute_fiscal_documents'
  • fiscal_product_ids One2many → product.product
    comodel_name='product.product' compute='_compute_fiscal_documents'
  • fiscal_uom_ids One2many → uom.uom
    comodel_name='uom.uom' compute='_compute_fiscal_documents'
  • split_sped_by_bloco Boolean
  • state Selection
    copy=False default='draft' help="State of the declaration. When the state is set to 'Done', the parameters become read-only." readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] tracking=True
Public methods (7)
  • button_create_sped_files(self)
    Generate and attach the SPED file.
  • button_done(self)
  • button_draft(self)
  • button_flush_registers(self)
  • button_populate_sped_from_odoo(self)
    Populate SPED registers from Odoo.
  • name_get(self)
  • onchange_company_id(self)
    @api.onchange('company_id')

New fields (7)
  • brl_currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_currency_id' default=<expr> string='Moeda'
  • company_id Many2one → res.company
    default=<expr> index=True required=True args: 'res.company', 'Company'
  • is_generated_from_odoo Boolean
  • is_imported Boolean
  • reference Char
    compute='_compute_reference' readonly=True store=False string='Odoo Reference'
  • res_id Many2oneReference
    help='ID of the target record in the database' model_field='res_model' string='Record ID'
  • res_model Char
    string='Odoo Model'
Public methods (0)

No public methods.

New fields (3)
  • crc_code Char
    size=18 string='CRC Code'
  • crc_state_id Many2one → res.country.state
    comodel_name='res.country.state' string='CRC State'
  • is_accountant Boolean
    string='Is accountant?'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/17.0/l10n_br_sped_base
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSRaphaël Valyi, OCA-git-bot, oca-ci, CristianoMafraJunior
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:04
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_fiscal
    - l10n_br_base
OCA/product-attribute:
    - uom_alias
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - base_address_extended
    - contacts
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Este módulo contém algumas abstrações utilizadas pelos módulos de SPED

Ele não faz nada sozinho, mas serve dentro dos 4 módulos:

- l10n_br_sped_ecd
- l10n_br_sped_efd_icms_ipi
- l10n_br_sped_efd_pis_cofins
- l10n_br_sped_ecf

Em especial, cada registro dos módulos de SPED herda do objeto abstrato
l10n_br_sped.mixin que conta com visões automáticas e metodos para
importar ou escrever registros dos SPED de forma recursiva.

Para cada tipo de arquivo SPED, o registro de abertura 0000 herda também
do objeto abstrato l10n_br_sped.declaration que conta com métodos para
popular os registros do SPED a partir das transações do Odoo entre as datas
DT_INI e DT_FIN e permite assim gerir os arquivos do SPED.

Para gerir o SPED, basta criar uma declaração do SPED no menu
apropriado. Depois clicar em Puxar os Dados do Odoo. Isso vai percorrer a
arvore dos registros do SPED e para cada registro vai usar `_odoo_domain`
ou `_odoo_query` para ver se tem records Odoo para mapear. Caso tiver vai
chamar o método `_map_from_odoo` do registro. Depois vai repetir a
operação com os registros filhos. Na declaração é possível escolher se você
quer um único arquivo SPED ou se você quer quebrar o arquivo bloco por
bloco.

Em cada módulo de SPED, existe 2 arquivos principais:

- um arquivo com o número do leiaute que contém **os modelos abstratos
  de todos os registros do SPED com todos os campos**. Este arquivo é gerido
  gerido pela ferramenta
  [spedextractor](https://github.com/akretion/sped-extractor) a partir dos pdf
  das especificações e **não deve ser editado manualmente**.
- um segundo arquivo que contém a **lista de todos registros
  concretos** que herdam desses primeiros modelos abstratos e contém
  assim todos os campos. Como o mixin de cada registro contém a versão
  do leiaute dentro do nome dele, temos uma forma de suportar
  várias versões dos leiautes. Esse arquivo dos registros concretos
  deve sim ser editado manualmente para completar os mappings. Para
  mapear um registro, deve se implementar o override desses 3 métodos:
  - `def _odoo_domain(self, parent_record, declaration):` deve
    retornar um domain que permite a seleção dos records Odoo a serem
    mapeados de acordo com o record parente e os dados da declaração
    (onde tem as datas e a empresa por exemplo). Para usar esse método
    `_odoo_domain`, deve se definir também o atributo `_odoo_model`
  - `def _odoo_query(self, parent_record, declaration): ` caso a
    seleção dos records a serem mapeados não pode ser obtida por um
    domain, pode ser implementado esse override para retornar a query
    SQL para selecionar um result set a mapear. Neste caso, o record
    do método `_map_from_odoo` é um result set do query Postgres. Se
    você não implementar nem `_odoo_domain` nem `_odoo_query` e
    implementar o método `_map_from_odoo`, o registro vai ter uma
    instância gerida para cada declaração. É o caso do registro I010
    da ECD por exemplo.
  - `_map_from_odoo(self, record, parent_record, declaration, index=0)`
    para facilitar, os overrides dos metodos `_map_from_odoo` de
    todos os registros, esse já vem geridos de forma comentada com
    todos os campos do registro. Assim basta descomentar or método e
    implementar como é mapeado cada campo a partir do record,
    parent_record e dos dados da declaração.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
partner_form l10n_br_sped_base.res.partner.form res.partner group Inherits l10n_br_base.l10n_br_base_partner_form
Models touched (3)

New fields (13)
  • DT_FIN Date
    default=_get_default_dt_fin string='End Date'
  • DT_INI Date
    default=_get_default_dt_ini string='Start Date'
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • debug Boolean
    help='If True, will pull draft account moves and draft fiscal documents from a larger date period to help developpers develop and debug the mappings'
  • fiscal_comment_ids One2many → l10n_br_fiscal.comment
    comodel_name='l10n_br_fiscal.comment' compute='_compute_fiscal_documents'
  • fiscal_document_ids One2many → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' compute='_compute_fiscal_documents'
  • fiscal_document_line_ids One2many → l10n_br_fiscal.document.line
    comodel_name='l10n_br_fiscal.document.line' compute='_compute_fiscal_documents'
  • fiscal_document_partner_ids One2many → res.partner
    comodel_name='res.partner' compute='_compute_fiscal_documents'
  • fiscal_operation_ids One2many → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' compute='_compute_fiscal_documents'
  • fiscal_product_ids One2many → product.product
    comodel_name='product.product' compute='_compute_fiscal_documents'
  • fiscal_uom_ids One2many → uom.uom
    comodel_name='uom.uom' compute='_compute_fiscal_documents'
  • split_sped_by_bloco Boolean
  • state Selection
    copy=False default='draft' help="State of the declaration. When the state is set to 'Done', the parameters become read-only." readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] tracking=True
Public methods (7)
  • button_create_sped_files(self)
    Generate and attach the SPED file.
  • button_done(self)
  • button_draft(self)
  • button_flush_registers(self)
  • button_populate_sped_from_odoo(self)
    Populate SPED registers from Odoo.
  • name_get(self)
  • onchange_company_id(self)
    @api.onchange('company_id')

New fields (7)
  • brl_currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_currency_id' default=<expr> string='Moeda'
  • company_id Many2one → res.company
    default=<expr> index=True required=True args: 'res.company', 'Company'
  • is_generated_from_odoo Boolean
  • is_imported Boolean
  • reference Char
    compute='_compute_reference' readonly=True store=False string='Odoo Reference'
  • res_id Many2oneReference
    help='ID of the target record in the database' model_field='res_model' string='Record ID'
  • res_model Char
    string='Odoo Model'
Public methods (0)

No public methods.

New fields (3)
  • crc_code Char
    size=18 string='CRC Code' unaccent=False
  • crc_state_id Many2one → res.country.state
    comodel_name='res.country.state' string='CRC State'
  • is_accountant Boolean
    string='Is accountant?'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/16.0/l10n_br_sped_base
VERSION
VERSION 3.2.1
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSRaphaël Valyi, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_fiscal
    - l10n_br_base
OCA/product-attribute:
    - uom_alias
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - base_address_extended
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Este módulo contém algumas abstrações utilizadas pelos módulos de SPED

Ele não faz nada sozinho, mas serve dentro dos 4 módulos:

- l10n_br_sped_ecd
- l10n_br_sped_efd_icms_ipi
- l10n_br_sped_efd_pis_cofins
- l10n_br_sped_ecf

Em especial, cada registro dos módulos de SPED herda do objeto abstrato
l10n_br_sped.mixin que conta com visões automáticas e metodos para
importar ou escrever registros dos SPED de forma recursiva.

Para cada tipo de arquivo SPED, o registro de abertura 0000 herda também
do objeto abstrato l10n_br_sped.declaration que conta com métodos para
popular os registros do SPED a partir das transações do Odoo entre as datas
DT_INI e DT_FIN e permite assim gerir os arquivos do SPED.

Para gerir o SPED, basta criar uma declaração do SPED no menu
apropriado. Depois clicar em Puxar os Dados do Odoo. Isso vai percorrer a
arvore dos registros do SPED e para cada registro vai usar `_odoo_domain`
ou `_odoo_query` para ver se tem records Odoo para mapear. Caso tiver vai
chamar o método `_map_from_odoo` do registro. Depois vai repetir a
operação com os registros filhos. Na declaração é possível escolher se você
quer um único arquivo SPED ou se você quer quebrar o arquivo bloco por
bloco.

Em cada módulo de SPED, existe 2 arquivos principais:

- um arquivo com o número do leiaute que contém **os modelos abstratos
  de todos os registros do SPED com todos os campos**. Este arquivo é gerido
  gerido pela ferramenta
  [spedextractor](https://github.com/akretion/sped-extractor) a partir dos pdf
  das especificações e **não deve ser editado manualmente**.
- um segundo arquivo que contém a **lista de todos registros
  concretos** que herdam desses primeiros modelos abstratos e contém
  assim todos os campos. Como o mixin de cada registro contém a versão
  do leiaute dentro do nome dele, temos uma forma de suportar
  várias versões dos leiautes. Esse arquivo dos registros concretos
  deve sim ser editado manualmente para completar os mappings. Para
  mapear um registro, deve se implementar o override desses 3 métodos:
  - `def _odoo_domain(self, parent_record, declaration):` deve
    retornar um domain que permite a seleção dos records Odoo a serem
    mapeados de acordo com o record parente e os dados da declaração
    (onde tem as datas e a empresa por exemplo). Para usar esse método
    `_odoo_domain`, deve se definir também o atributo `_odoo_model`
  - `def _odoo_query(self, parent_record, declaration): ` caso a
    seleção dos records a serem mapeados não pode ser obtida por um
    domain, pode ser implementado esse override para retornar a query
    SQL para selecionar um result set a mapear. Neste caso, o record
    do método `_map_from_odoo` é um result set do query Postgres. Se
    você não implementar nem `_odoo_domain` nem `_odoo_query` e
    implementar o método `_map_from_odoo`, o registro vai ter uma
    instância gerida para cada declaração. É o caso do registro I010
    da ECD por exemplo.
  - `_map_from_odoo(self, record, parent_record, declaration, index=0)`
    para facilitar, os overrides dos metodos `_map_from_odoo` de
    todos os registros, esse já vem geridos de forma comentada com
    todos os campos do registro. Assim basta descomentar or método e
    implementar como é mapeado cada campo a partir do record,
    parent_record e dos dados da declaração.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
partner_form l10n_br_sped_base.res.partner.form res.partner group Inherits l10n_br_base.l10n_br_base_partner_form
Models touched (3)

New fields (13)
  • DT_FIN Date
    default=_get_default_dt_fin string='End Date'
  • DT_INI Date
    default=_get_default_dt_ini string='Start Date'
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True states={'done': [('readonly', True)]} string='Company'
  • debug Boolean
    help='If True, will pull draft account moves and draft fiscal documents from a larger date period to help developpers develop and debug the mappings'
  • fiscal_comment_ids One2many → l10n_br_fiscal.comment
    comodel_name='l10n_br_fiscal.comment' compute='_compute_fiscal_documents'
  • fiscal_document_ids One2many → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' compute='_compute_fiscal_documents'
  • fiscal_document_line_ids One2many → l10n_br_fiscal.document.line
    comodel_name='l10n_br_fiscal.document.line' compute='_compute_fiscal_documents'
  • fiscal_document_partner_ids One2many → res.partner
    comodel_name='res.partner' compute='_compute_fiscal_documents'
  • fiscal_operation_ids One2many → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' compute='_compute_fiscal_documents'
  • fiscal_product_ids One2many → product.product
    comodel_name='product.product' compute='_compute_fiscal_documents'
  • fiscal_uom_ids One2many → uom.uom
    comodel_name='uom.uom' compute='_compute_fiscal_documents'
  • split_sped_by_bloco Boolean
  • state Selection
    copy=False default='draft' help="State of the declaration. When the state is set to 'Done', the parameters become read-only." readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] tracking=True
Public methods (7)
  • button_create_sped_files(self)
    Generate and attach the SPED file.
  • button_done(self)
  • button_draft(self)
  • button_flush_registers(self)
  • button_populate_sped_from_odoo(self)
    Populate SPED registers from Odoo.
  • name_get(self)
  • onchange_company_id(self)
    @api.onchange('company_id')

New fields (7)
  • brl_currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_currency_id' default=<expr> string='Moeda'
  • company_id Many2one → res.company
    default=<expr> index=True required=True args: 'res.company', 'Company'
  • is_generated_from_odoo Boolean
  • is_imported Boolean
  • reference Char
    compute='_compute_reference' readonly=True store=False string='Odoo Reference'
  • res_id Many2oneReference
    help='ID of the target record in the database' model_field='res_model' string='Record ID'
  • res_model Char
    string='Odoo Model'
Public methods (0)

No public methods.

New fields (3)
  • crc_code Char
    size=18 string='CRC Code' unaccent=False
  • crc_state_id Many2one → res.country.state
    comodel_name='res.country.state' string='CRC State'
  • is_accountant Boolean
    string='Is accountant?'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/14.0/l10n_br_sped_base
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSRaphaël Valyi, Weblate, OCA-git-bot, oca-ci, Wesley Oliveira
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_fiscal
    - l10n_br_base
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - base_address_city
    - base_address_extended
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (2)

New fields (13)
  • DT_FIN Date
    default=_get_default_dt_fin string='End Date'
  • DT_INI Date
    default=_get_default_dt_ini string='Start Date'
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True states={'done': [('readonly', True)]} string='Company'
  • debug Boolean
    help='If True, will pull draft account moves and draft fiscal documents from a larger date period to help developpers develop and debug the mappings'
  • fiscal_comment_ids One2many → l10n_br_fiscal.comment
    comodel_name='l10n_br_fiscal.comment' compute='_compute_fiscal_documents'
  • fiscal_document_ids One2many → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' compute='_compute_fiscal_documents'
  • fiscal_document_line_ids One2many → l10n_br_fiscal.document.line
    comodel_name='l10n_br_fiscal.document.line' compute='_compute_fiscal_documents'
  • fiscal_document_partner_ids One2many → res.partner
    comodel_name='res.partner' compute='_compute_fiscal_documents'
  • fiscal_operation_ids One2many → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' compute='_compute_fiscal_documents'
  • fiscal_product_ids One2many → product.product
    comodel_name='product.product' compute='_compute_fiscal_documents'
  • fiscal_uom_ids One2many → uom.uom
    comodel_name='uom.uom' compute='_compute_fiscal_documents'
  • split_sped_by_bloco Boolean
  • state Selection
    copy=False default='draft' help="State of the declaration. When the state is set to 'Done', the parameters become read-only." readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] tracking=True
Public methods (7)
  • button_create_sped_files(self)
    Generate and attach the SPED file.
  • button_done(self)
  • button_draft(self)
  • button_flush_registers(self)
  • button_populate_sped_from_odoo(self)
    Populate SPED registers from Odoo.
  • name_get(self)
  • onchange_company_id(self)
    @api.onchange('company_id')

New fields (7)
  • brl_currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_currency_id' default=<expr> string='Moeda'
  • company_id Many2one → res.company
    default=<expr> index=True required=True args: 'res.company', 'Company'
  • is_generated_from_odoo Boolean
  • is_imported Boolean
  • reference Char
    compute='_compute_reference' readonly=True store=False string='Odoo Reference'
  • res_id Many2oneReference
    help='ID of the target record in the database' model_field='res_model' string='Record ID'
  • res_model Char
    string='Odoo Model'
Public methods (0)

No public methods.