Skip to content

Commit 59e911b

Browse files
[IMP] l10n_br_sped_efd_icms_ipi: add Registro0200 to SPED
1 parent 124bad6 commit 59e911b

File tree

1 file changed

+35
-16
lines changed

1 file changed

+35
-16
lines changed

l10n_br_sped_efd_icms_ipi/models/sped_efd_icms_ipi.py

+35-16
Original file line numberDiff line numberDiff line change
@@ -301,23 +301,42 @@ class Registro0200(models.Model):
301301
_description = textwrap.dedent(" %s" % (__doc__,))
302302
_name = "l10n_br_sped.efd_icms_ipi.0200"
303303
_inherit = "l10n_br_sped.efd_icms_ipi.17.0200"
304+
_odoo_model = "product.product"
304305

305-
# @api.model
306-
# def _map_from_odoo(self, record, parent_record, declaration, index=0):
307-
# return {
308-
# "COD_ITEM": 0, # Código do item
309-
# "DESCR_ITEM": 0, # Descrição do item
310-
# "COD_BARRA": 0, # Representação alfanumérico do código de barra do p...
311-
# "COD_ANT_ITEM": 0, # Código anterior do item com relação à última in...
312-
# "UNID_INV": 0, # Unidade de medida utilizada na quantificação de est...
313-
# "TIPO_ITEM": 0, # Tipo do item – Atividades Industriais, Comerciais ...
314-
# "COD_NCM": 0, # Código da Nomenclatura Comum do Mercosul
315-
# "EX_IPI": 0, # Código EX, conforme a TIPI
316-
# "COD_GEN": 0, # Código do gênero do item, conforme a Tabela 4.2.1
317-
# "COD_LST": 0, # Código do serviço conforme lista do Anexo I da Lei C...
318-
# "ALIQ_ICMS": 0, # Alíquota de ICMS aplicável ao item nas operações i...
319-
# "CEST": 0, # Código Especificador da Substituição Tributária
320-
# }
306+
@api.model
307+
def _odoo_domain(self, parent_record, declaration):
308+
to_date = "%s 23:59:00" % (datetime.strftime(declaration.DT_FIN, "%Y-%m-%d"))
309+
context = dict(self.env.context, to_date=to_date)
310+
product = self.env["product.product"].with_context(context)
311+
records = product.search([("qty_available", ">", 0)])
312+
return [
313+
("id", "in", records.ids),
314+
]
315+
316+
@api.model
317+
def _map_from_odoo(self, record, parent_record, declaration, index=0):
318+
state_id = record.company_id.state_id or self.env.company.state_id
319+
tax_definition_id = env["l10n_br_fiscal.tax.definition"].search([
320+
("tax_group_id.name", "ilike", "ICMS"),
321+
("state_from_id", "=", state_id.id),
322+
("state_to_ids", "ilike", state_id.id),
323+
("ncm_ids", "ilike", record.ncm_id.id),
324+
])
325+
aliq_icms = tax_definition_id.tax_id.percent_amount
326+
return {
327+
"COD_ITEM": record.default_code, # Código do item
328+
"DESCR_ITEM": record.name, # Descrição do item
329+
"COD_BARRA": record.barcode or "", # Representação alfanumérico do códi...
330+
"COD_ANT_ITEM": "", # Código anterior do item com relação à última in...
331+
"UNID_INV": record.uom_id.code, # Unidade de medida utilizada na quanti...
332+
"TIPO_ITEM": record.fiscal_type, # Tipo do item – Atividades Industriai...
333+
"COD_NCM": record.ncm_id.code, # Código da Nomenclatura Comum do Mercosul
334+
"EX_IPI": "", # Código EX, conforme a TIPI
335+
"COD_GEN": record.fiscal_genre_id.code, # Código do gênero do item
336+
"COD_LST": record.service_type_id.code or "", # Código do serviço
337+
"ALIQ_ICMS": aliq_icms or "", # Alíquota de ICMS
338+
"CEST": record.cest_id.code or "", # Código Especificador da Substituiç...
339+
}
321340

322341

323342
class Registro0205(models.Model):

0 commit comments

Comments
 (0)