From 24cf31210e507e819370d58571f4ba2da3f56ce8 Mon Sep 17 00:00:00 2001 From: "Carlos R. Silveira" Date: Thu, 21 May 2020 11:16:54 -0300 Subject: [PATCH 1/4] Adicionado o Registro 9900 e o def prepare(self) --- sped/efd/pis_cofins/arquivos.py | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/sped/efd/pis_cofins/arquivos.py b/sped/efd/pis_cofins/arquivos.py index 20641bf..cc4e848 100644 --- a/sped/efd/pis_cofins/arquivos.py +++ b/sped/efd/pis_cofins/arquivos.py @@ -14,6 +14,7 @@ from .blocos import BlocoM from .blocos import BlocoP from .registros import Registro0000 +from .registros import Registro9900 from .registros import Registro9999 @@ -35,3 +36,43 @@ def __init__(self): self._blocos['P'] = BlocoP() self._blocos['1'] = Bloco1() self._blocos['9'] = Bloco9() + + def prepare(self): + bloco_9 = self._blocos['9'] = Bloco9() + for bloco in self._blocos.values(): + regs = {} + for reg in bloco.registros: + if reg.REG not in regs: + regs[reg.REG] = 0 + regs[reg.REG] += 1 + total = sum([x for x in regs.values()]) + bloco.registro_abertura.IND_MOV = '1' if total <= 2 else '0' + if bloco == self._blocos['0']: + bloco.registro_encerramento.QTD_LIN_0 = total + 1 + regs['0000'] = 1 + if bloco == self._blocos['A']: + bloco.registro_encerramento.QTD_LIN_A = total + if bloco == self._blocos['C']: + bloco.registro_encerramento.QTD_LIN_C = total + if bloco == self._blocos['D']: + bloco.registro_encerramento.QTD_LIN_D = total + if bloco == self._blocos['F']: + bloco.registro_encerramento.QTD_LIN_F = total + if bloco == self._blocos['I']: + bloco.registro_encerramento.QTD_LIN_I = total + if bloco == self._blocos['M']: + bloco.registro_encerramento.QTD_LIN_M = total + if bloco == self._blocos['P']: + bloco.registro_encerramento.QTD_LIN_P = total + if bloco == self._blocos['1']: + bloco.registro_encerramento.QTD_LIN_1 = total + if bloco == self._blocos['9']: + bloco.registro_encerramento.QTD_LIN_9 = total + 5 + if bloco == bloco_9: + regs['9999'] = 1 + regs['9900'] += len(regs.keys()) + for reg in regs.keys(): + registro = Registro9900() + registro.REG_BLC = reg + registro.QTD_REG_BLC = str(regs[reg]) + bloco_9.add(registro) From 59c200facc62d35f4cdda53f5769ccb89e15b1fe Mon Sep 17 00:00:00 2001 From: "Carlos R. Silveira" Date: Thu, 21 May 2020 11:17:22 -0300 Subject: [PATCH 2/4] Adicionado Encerramento --- sped/efd/pis_cofins/blocos.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/sped/efd/pis_cofins/blocos.py b/sped/efd/pis_cofins/blocos.py index 5246afa..2a54c89 100644 --- a/sped/efd/pis_cofins/blocos.py +++ b/sped/efd/pis_cofins/blocos.py @@ -30,6 +30,13 @@ class Bloco0(Bloco): registro_abertura = Registro0001() registro_encerramento = Registro0990() + @property + def encerramento(self): + registro = self.__class__.registro_encerramento + # Define a quantidade de registros + registro[2] = len(self._registros) + 3 + return registro + class BlocoA(Bloco): """ @@ -99,5 +106,12 @@ class Bloco9(Bloco): """ Controle e Encerramento do Arquivo Digital """ - registro_abertura = Registro0001() - registro_encerramento = Registro0990() + registro_abertura = Registro9001() + registro_encerramento = Registro9990() + + @property + def encerramento(self): + registro = self.__class__.registro_encerramento + # Define a quantidade de registros + registro[2] = len(self._registros) + 3 + return registro From ecccfc398033d0e5e1efac0aa6c03c9a06b4f190 Mon Sep 17 00:00:00 2001 From: "Carlos R. Silveira" Date: Thu, 21 May 2020 11:28:52 -0300 Subject: [PATCH 3/4] Adicionado precisao=2 nos campos de valores --- sped/efd/pis_cofins/registros.py | 370 ++++++++++++++++--------------- 1 file changed, 188 insertions(+), 182 deletions(-) diff --git a/sped/efd/pis_cofins/registros.py b/sped/efd/pis_cofins/registros.py index fc1762b..cf40ada 100644 --- a/sped/efd/pis_cofins/registros.py +++ b/sped/efd/pis_cofins/registros.py @@ -339,7 +339,7 @@ class RegistroA100(Registro): CampoData(10, 'DT_DOC', obrigatorio=True), CampoData(11, 'DT_EXE_SERV', obrigatorio=True), CampoNumerico(12, 'VL_DOC'), - Campo(13, 'IND_PGTO', obrigatorio=True), + CampoNumerico(13, 'IND_PGTO', obrigatorio=True), CampoNumerico(14, 'VL_DESC'), CampoNumerico(15, 'VL_BC_PIS', obrigatorio=True), CampoNumerico(16, 'VL_PIS', obrigatorio=True), @@ -458,30 +458,30 @@ class RegistroC100(Registro): Campo(3, 'IND_EMIT', obrigatorio=True), Campo(4, 'COD_PART', obrigatorio=True), Campo(5, 'COD_MOD', obrigatorio=True), - Campo(6, 'COD_SIT;', obrigatorio=True), + Campo(6, 'COD_SIT', obrigatorio=True), Campo(7, 'SER'), Campo(8, 'NUM_DOC', obrigatorio=True), - Campo(9, 'CHV_NFE'), - Campo(10, 'CHV_NFE', obrigatorio=True), - CampoData(11, 'DT_DOC'), - CampoData(12, 'DT_E_S', obrigatorio=True), - CampoNumerico(13, 'VL_DOC', obrigatorio=True), - CampoNumerico(14, 'VL_DESC'), - CampoNumerico(15, 'VL_ABAT_NT'), - CampoNumerico(16, 'VL_MERC'), + Campo(9, 'CHV_NFE', obrigatorio=True), + CampoData(10, 'DT_DOC'), + CampoData(11, 'DT_E_S', obrigatorio=True), + CampoNumerico(12, 'VL_DOC', obrigatorio=True, precisao=2), + CampoNumerico(13, 'IND_PGTO', obrigatorio=True), + CampoNumerico(14, 'VL_DESC', precisao=2), + CampoNumerico(15, 'VL_ABAT_NT', precisao=2), + CampoNumerico(16, 'VL_MERC', precisao=2), Campo(17, 'IND_FRT', obrigatorio=True), - CampoNumerico(18, 'VL_FRT'), - CampoNumerico(19, 'VL_SEG'), - CampoNumerico(20, 'VL_OUT_DA'), - CampoNumerico(21, 'VL_BC_ICMS'), - CampoNumerico(22, 'VL_ICMS'), - CampoNumerico(23, 'VL_BC_ICMS_ST'), - CampoNumerico(24, 'VL_ICMS_ST'), - CampoNumerico(25, 'VL_IPI'), - CampoNumerico(26, 'VL_PIS'), - CampoNumerico(27, 'VL_COFINS'), - CampoNumerico(28, 'VL_PIS_ST'), - CampoNumerico(29, 'VL_COFINS_ST'), + CampoNumerico(18, 'VL_FRT', precisao=2), + CampoNumerico(19, 'VL_SEG', precisao=2), + CampoNumerico(20, 'VL_OUT_DA', precisao=2), + CampoNumerico(21, 'VL_BC_ICMS', precisao=2), + CampoNumerico(22, 'VL_ICMS', precisao=2), + CampoNumerico(23, 'VL_BC_ICMS_ST', precisao=2), + CampoNumerico(24, 'VL_ICMS_ST', precisao=2), + CampoNumerico(25, 'VL_IPI', precisao=2), + CampoNumerico(26, 'VL_PIS', precisao=2), + CampoNumerico(27, 'VL_COFINS', precisao=2), + CampoNumerico(28, 'VL_PIS_ST', precisao=2), + CampoNumerico(29, 'VL_COFINS_ST', precisao=2), ] @@ -515,8 +515,8 @@ class RegistroC120(Registro): CampoFixo(1, 'REG', 'C120'), Campo(2, 'COD_DOC_IMP', obrigatorio=True), Campo(3, 'NUM_DOC_IMP', obrigatorio=True), - CampoNumerico(4, 'VL_PIS_IMP'), - CampoNumerico(5, 'VL_COFINS_IMP'), + CampoNumerico(4, 'VL_PIS_IMP', precisao=2), + CampoNumerico(5, 'VL_COFINS_IMP', precisao=2), Campo(6, 'NUM_ACDRAW'), ] @@ -532,36 +532,36 @@ class RegistroC170(Registro): Campo(4, 'DESCR_COMPL'), Campo(5, 'QTD'), Campo(6, 'UNID'), - CampoNumerico(7, 'VL_ITEM', obrigatorio=True), - CampoNumerico(8, 'VL_DESC'), + CampoNumerico(7, 'VL_ITEM', obrigatorio=True, precisao=2), + CampoNumerico(8, 'VL_DESC', precisao=2), Campo(9, 'IND_MOV'), Campo(10, 'CST_ICMS'), Campo(11, 'CFOP', obrigatorio=True), Campo(12, 'COD_NAT'), - CampoNumerico(13, 'VL_BC_ICMS'), - CampoNumerico(14, 'ALIQ_ICMS'), - CampoNumerico(15, 'VL_ICMS'), - CampoNumerico(16, 'VL_BC_ICMS_ST'), - CampoNumerico(17, 'ALIQ_ST'), - CampoNumerico(18, 'VL_ICMS_ST'), + CampoNumerico(13, 'VL_BC_ICMS', precisao=2), + CampoNumerico(14, 'ALIQ_ICMS', precisao=2), + CampoNumerico(15, 'VL_ICMS', precisao=2), + CampoNumerico(16, 'VL_BC_ICMS_ST', precisao=2), + CampoNumerico(17, 'ALIQ_ST', precisao=2), + CampoNumerico(18, 'VL_ICMS_ST', precisao=2), Campo(19, 'IND_APUR'), Campo(20, 'CST_IPI'), Campo(21, 'COD_ENQ'), - CampoNumerico(22, 'VL_BC_IPI'), - CampoNumerico(23, 'ALIQ_IPI'), - CampoNumerico(24, 'VL_IPI'), + CampoNumerico(22, 'VL_BC_IPI', precisao=2), + CampoNumerico(23, 'ALIQ_IPI', precisao=2), + CampoNumerico(24, 'VL_IPI', precisao=2), Campo(25, 'CST_PIS', obrigatorio=True), - CampoNumerico(26, 'VL_BC_PIS'), - CampoNumerico(27, 'ALIQ_PIS'), + CampoNumerico(26, 'VL_BC_PIS', precisao=2), + CampoNumerico(27, 'ALIQ_PIS', precisao=2), Campo(28, 'QUANT_BC_PIS'), - CampoNumerico(29, 'ALIQ_PIS_QUANT'), - CampoNumerico(30, 'VL_PIS'), + CampoNumerico(29, 'ALIQ_PIS_QUANT', precisao=2), + CampoNumerico(30, 'VL_PIS', precisao=2), Campo(31, 'CST_COFINS', obrigatorio=True), - CampoNumerico(32, 'VL_BC_COFINS'), - CampoNumerico(33, 'ALIQ_COFINS'), + CampoNumerico(32, 'VL_BC_COFINS', precisao=2), + CampoNumerico(33, 'ALIQ_COFINS', precisao=2), Campo(34, 'QUANT_BC_COFINS'), - CampoNumerico(35, 'ALIQ_COFINS_QUANT'), - CampoNumerico(36, 'VL_COFINS'), + CampoNumerico(35, 'ALIQ_COFINS_QUANT', precisao=2), + CampoNumerico(36, 'VL_COFINS', precisao=2), Campo(37, 'COD_CTA'), ] @@ -573,20 +573,20 @@ class RegistroC175(Registro): campos = [ CampoFixo(1, 'REG', 'C175'), Campo(2, 'CFOP', obrigatorio=True), - CampoNumerico(3, 'VL_OPR', obrigatorio=True), - CampoNumerico(4, 'VL_DESC'), + CampoNumerico(3, 'VL_OPR', obrigatorio=True, precisao=2), + CampoNumerico(4, 'VL_DESC', precisao=2), Campo(5, 'CST_PIS'), - CampoNumerico(6, 'VL_BC_PIS'), - CampoNumerico(7, 'ALIQ_PIS'), + CampoNumerico(6, 'VL_BC_PIS', precisao=2), + CampoNumerico(7, 'ALIQ_PIS', precisao=2), Campo(8, 'QUANT_BC_PIS'), - CampoNumerico(9, 'ALIQ_PIS_QUANT'), - CampoNumerico(10, 'VL_PIS'), + CampoNumerico(9, 'ALIQ_PIS_QUANT', precisao=2), + CampoNumerico(10, 'VL_PIS', precisao=2), Campo(11, 'CST_COFINS', obrigatorio=True), - CampoNumerico(12, 'VL_BC_COFINS'), - CampoNumerico(13, 'ALIQ_COFINS'), + CampoNumerico(12, 'VL_BC_COFINS', precisao=2), + CampoNumerico(13, 'ALIQ_COFINS', precisao=2), Campo(14, 'QUANT_BC_COFINS'), - CampoNumerico(15, 'ALIQ_COFINS_QUANT'), - CampoNumerico(16, 'VL_COFINS'), + CampoNumerico(15, 'ALIQ_COFINS_QUANT', precisao=2), + CampoNumerico(16, 'VL_COFINS', precisao=2), Campo(17, 'COD_CTA'), Campo(18, 'INFO_COMPL'), ] @@ -604,7 +604,7 @@ class RegistroC180(Registro): Campo(5, 'COD_ITEM', obrigatorio=True), Campo(6, 'COD_NCM'), Campo(7, 'EX_IPI'), - CampoNumerico(8, 'VL_TOT_ITEM', obrigatorio=True), + CampoNumerico(8, 'VL_TOT_ITEM', obrigatorio=True, precisao=2), ] @@ -616,13 +616,13 @@ class RegistroC181(Registro): CampoFixo(1, 'REG', 'C181'), Campo(2, 'CST_PIS', obrigatorio=True), Campo(3, 'CFOP', obrigatorio=True), - CampoNumerico(4, 'VL_ITEM', obrigatorio=True), - CampoNumerico(5, 'VL_DESC'), - CampoNumerico(6, 'VL_BC_PIS'), - CampoNumerico(7, 'ALIQ_PIS'), + CampoNumerico(4, 'VL_ITEM', obrigatorio=True, precisao=2), + CampoNumerico(5, 'VL_DESC', precisao=2), + CampoNumerico(6, 'VL_BC_PIS', precisao=2), + CampoNumerico(7, 'ALIQ_PIS', precisao=2), Campo(8, 'QUANT_BC_PIS'), - CampoNumerico(9, 'ALIQ_PIS_QUANT'), - CampoNumerico(10, 'VL_PIS'), + CampoNumerico(9, 'ALIQ_PIS_QUANT', precisao=2), + CampoNumerico(10, 'VL_PIS', precisao=2), Campo(11, 'COD_CTA'), ] @@ -635,13 +635,13 @@ class RegistroC185(Registro): CampoFixo(1, 'REG', 'C185'), Campo(2, 'CST_COFINS', obrigatorio=True), Campo(3, 'CFOP', obrigatorio=True), - CampoNumerico(4, 'VL_ITEM', obrigatorio=True), - CampoNumerico(5, 'VL_DESC'), - CampoNumerico(6, 'VL_BC_COFINS'), - CampoNumerico(7, 'ALIQ_COFINS'), + CampoNumerico(4, 'VL_ITEM', obrigatorio=True, precisao=2), + CampoNumerico(5, 'VL_DESC', precisao=2), + CampoNumerico(6, 'VL_BC_COFINS', precisao=2), + CampoNumerico(7, 'ALIQ_COFINS', precisao=2), Campo(8, 'QUANT_BC_COFINS'), - CampoNumerico(9, 'ALIQ_COFINS_QUANT'), - CampoNumerico(10, 'VL_COFINS'), + CampoNumerico(9, 'ALIQ_COFINS_QUANT', precisao=2), + CampoNumerico(10, 'VL_COFINS', precisao=2), Campo(11, 'COD_CTA'), ] @@ -670,7 +670,7 @@ class RegistroC190(Registro): Campo(5, 'COD_ITEM', obrigatorio=True), Campo(6, 'COD_NCM'), Campo(7, 'EX_IPI'), - CampoNumerico(8, 'VL_TOT_ITEM', obrigatorio=True), + CampoNumerico(8, 'VL_TOT_ITEM', obrigatorio=True, precisao=2), ] @@ -684,13 +684,13 @@ class RegistroC191(Registro): Campo(2, 'CNPJ_CPF_PART', obrigatorio=True), Campo(3, 'CST_PIS', obrigatorio=True), Campo(4, 'CFOP', obrigatorio=True), - CampoNumerico(5, 'VL_ITEM', obrigatorio=True), - CampoNumerico(6, 'VL_DESC'), - CampoNumerico(7, 'VL_BC_PIS'), - CampoNumerico(8, 'ALIQ_PIS'), + CampoNumerico(5, 'VL_ITEM', obrigatorio=True, precisao=2), + CampoNumerico(6, 'VL_DESC', precisao=2), + CampoNumerico(7, 'VL_BC_PIS', precisao=2), + CampoNumerico(8, 'ALIQ_PIS', precisao=2), Campo(9, 'QUANT_BC_PIS'), - CampoNumerico(10, 'ALIQ_PIS_QUANT'), - CampoNumerico(11, 'VL_PIS'), + CampoNumerico(10, 'ALIQ_PIS_QUANT', precisao=2), + CampoNumerico(11, 'VL_PIS', precisao=2), Campo(12, 'COD_CTA'), ] @@ -705,13 +705,13 @@ class RegistroC195(Registro): Campo(2, 'CNPJ_CPF_PART', obrigatorio=True), Campo(3, 'CST_COFINS', obrigatorio=True), Campo(4, 'CFOP', obrigatorio=True), - CampoNumerico(5, 'VL_ITEM', obrigatorio=True), - CampoNumerico(6, 'VL_DESC'), - CampoNumerico(7, 'VL_BC_COFINS'), - CampoNumerico(8, 'ALIQ_COFINS'), + CampoNumerico(5, 'VL_ITEM', obrigatorio=True, precisao=2), + CampoNumerico(6, 'VL_DESC', precisao=2), + CampoNumerico(7, 'VL_BC_COFINS', precisao=2), + CampoNumerico(8, 'ALIQ_COFINS', precisao=2), Campo(9, 'QUANT_BC_COFINS'), - CampoNumerico(10, 'ALIQ_COFINS_QUANT'), - CampoNumerico(11, 'VL_COFINS'), + CampoNumerico(10, 'ALIQ_COFINS_QUANT', precisao=2), + CampoNumerico(11, 'VL_COFINS', precisao=2), Campo(12, 'COD_CTA'), ] @@ -735,8 +735,8 @@ class RegistroC199(Registro): CampoFixo(1, 'REG', 'C199'), Campo(2, 'COD_DOC_IMP', obrigatorio=True), Campo(3, 'NUM_DOC__IMP', obrigatorio=True), - CampoNumerico(4, 'VL_PIS_IMP'), - CampoNumerico(5, 'VL_COFINS_IMP'), + CampoNumerico(4, 'VL_PIS_IMP', precisao=2), + CampoNumerico(5, 'VL_COFINS_IMP', precisao=2), Campo(6, 'NUM_ACDRAW'), ] @@ -982,11 +982,11 @@ class RegistroC500(Registro): Campo(7, 'NUM_DOC', obrigatorio=True), CampoData(8, 'DT_DOC', obrigatorio=True), CampoData(9, 'DT_ENT'), - CampoNumerico(10, 'VL_DOC', obrigatorio=True), - CampoNumerico(11, 'VL_ICMS'), + CampoNumerico(10, 'VL_DOC', obrigatorio=True, precisao=2), + CampoNumerico(11, 'VL_ICMS', precisao=2), Campo(12, 'COD_INF'), - CampoNumerico(13, 'VL_PIS'), - CampoNumerico(14, 'VL_COFINS'), + CampoNumerico(13, 'VL_PIS', precisao=2), + CampoNumerico(14, 'VL_COFINS', precisao=2), ] @@ -997,11 +997,11 @@ class RegistroC501(Registro): campos = [ CampoFixo(1, 'REG', 'C501'), Campo(2, 'CST_PIS', obrigatorio=True), - CampoNumerico(3, 'VL_ITEM', obrigatorio=True), + CampoNumerico(3, 'VL_ITEM', obrigatorio=True, precisao=2), Campo(4, 'NAT_BC_CRED'), - CampoNumerico(5, 'VL_BC_PIS', obrigatorio=True), - CampoNumerico(6, 'ALIQ_PIS', obrigatorio=True), - CampoNumerico(7, 'VL_PIS', obrigatorio=True), + CampoNumerico(5, 'VL_BC_PIS', obrigatorio=True, precisao=2), + CampoNumerico(6, 'ALIQ_PIS', obrigatorio=True, precisao=2), + CampoNumerico(7, 'VL_PIS', obrigatorio=True, precisao=2), Campo(8, 'COD_CTA'), ] @@ -1013,11 +1013,11 @@ class RegistroC505(Registro): campos = [ CampoFixo(1, 'REG', 'C505'), Campo(2, 'CST_COFINS', obrigatorio=True), - CampoNumerico(3, 'VL_ITEM', obrigatorio=True), + CampoNumerico(3, 'VL_ITEM', obrigatorio=True, precisao=2), Campo(4, 'NAT_BC_CRED'), - CampoNumerico(5, 'VL_BC_COFINS', obrigatorio=True), - CampoNumerico(6, 'ALIQ_COFINS', obrigatorio=True), - CampoNumerico(7, 'VL_COFINS', obrigatorio=True), + CampoNumerico(5, 'VL_BC_COFINS', obrigatorio=True, precisao=2), + CampoNumerico(6, 'ALIQ_COFINS', obrigatorio=True, precisao=2), + CampoNumerico(7, 'VL_COFINS', obrigatorio=True, precisao=2), Campo(8, 'COD_CTA'), ] @@ -2326,18 +2326,18 @@ class RegistroM200(Registro): """ campos = [ CampoFixo(1, 'REG', 'M200'), - CampoNumerico(2, 'VL_TOT_CONT_NC_PER', obrigatorio=True), - CampoNumerico(3, 'VL_TOT_CRED_DESC', obrigatorio=True), - CampoNumerico(4, 'VL_TOT_CRED_DESC_ANT', obrigatorio=True), - CampoNumerico(5, 'VL_TOT_CONT_NC_DEV', obrigatorio=True), - CampoNumerico(6, 'VL_RET_NC', obrigatorio=True), - CampoNumerico(7, 'VL_OUT_DED_NC', obrigatorio=True), - CampoNumerico(8, 'VL_CONT_NC_REC', obrigatorio=True), - CampoNumerico(9, 'VL_TOT_CONT_CUM_PER', obrigatorio=True), - CampoNumerico(10, 'VL_RET_CUM', obrigatorio=True), - CampoNumerico(11, 'VL_OUT_DED_CUM', obrigatorio=True), - CampoNumerico(12, 'VL_CONT_CUM_REC', obrigatorio=True), - CampoNumerico(13, 'VL_TOT_CONT_REC', obrigatorio=True), + CampoNumerico(2, 'VL_TOT_CONT_NC_PER', obrigatorio=True, precisao=2), + CampoNumerico(3, 'VL_TOT_CRED_DESC', obrigatorio=True, precisao=2), + CampoNumerico(4, 'VL_TOT_CRED_DESC_ANT', obrigatorio=True, precisao=2), + CampoNumerico(5, 'VL_TOT_CONT_NC_DEV', obrigatorio=True, precisao=2), + CampoNumerico(6, 'VL_RET_NC', obrigatorio=True, precisao=2), + CampoNumerico(7, 'VL_OUT_DED_NC', obrigatorio=True, precisao=2), + CampoNumerico(8, 'VL_CONT_NC_REC', obrigatorio=True, precisao=2), + CampoNumerico(9, 'VL_TOT_CONT_CUM_PER', obrigatorio=True, precisao=2), + CampoNumerico(10, 'VL_RET_CUM', obrigatorio=True, precisao=2), + CampoNumerico(11, 'VL_OUT_DED_CUM', obrigatorio=True, precisao=2), + CampoNumerico(12, 'VL_CONT_CUM_REC', obrigatorio=True, precisao=2), + CampoNumerico(13, 'VL_TOT_CONT_REC', obrigatorio=True, precisao=2), ] @@ -2349,7 +2349,7 @@ class RegistroM205(Registro): CampoFixo(1, 'REG', 'M205'), Campo(2, 'NUM_CAMPO', obrigatorio=True), Campo(3, 'COD_REC', obrigatorio=True), - CampoNumerico(4, 'VL_DEBITO', obrigatorio=True), + CampoNumerico(4, 'VL_DEBITO', obrigatorio=True, precisao=2), ] @@ -2360,17 +2360,20 @@ class RegistroM210(Registro): campos = [ CampoFixo(1, 'REG', 'M210'), Campo(2, 'COD_CONT', obrigatorio=True), - CampoNumerico(3, 'VL_REC_BRT', obrigatorio=True), - CampoNumerico(4, 'VL_BC_CONT', obrigatorio=True), - CampoNumerico(5, 'ALIQ_PIS'), - Campo(6, 'QUANT_BC_PIS'), - CampoNumerico(7, 'ALIQ_PIS_QUANT'), - CampoNumerico(8, 'VL_CONT_APUR', obrigatorio=True), - CampoNumerico(9, 'VL_AJUS_ACRES', obrigatorio=True), - CampoNumerico(10, 'VL_AJUS_REDUC', obrigatorio=True), - CampoNumerico(11, 'VL_CONT_DIFER'), - CampoNumerico(12, 'VL_CONT_DIFER_ANT'), - CampoNumerico(13, 'VL_CONT_PER', obrigatorio=True), + Campo(3, 'VL_REC_BRT', obrigatorio=True), + CampoNumerico(4, 'VL_BC_CONT', obrigatorio=True, precisao=2), + CampoNumerico(5, 'VL_AJUS_ACRES_BC_PIS', precisao=2), + CampoNumerico(6, 'VL_AJUS_REDUC_BC_PIS', precisao=2), + CampoNumerico(7, 'VL_BC_CONT_AJUS', precisao=2), + CampoNumerico(8, 'ALIQ_PIS', precisao=2), + Campo(9, 'QUANT_BC_PIS'), + CampoNumerico(10, 'ALIQ_PIS_QUANT', precisao=2), + CampoNumerico(11, 'VL_CONT_APUR', obrigatorio=True, precisao=2), + CampoNumerico(12, 'VL_AJUS_ACRES', obrigatorio=True, precisao=2), + CampoNumerico(13, 'VL_AJUS_REDUC', obrigatorio=True, precisao=2), + CampoNumerico(14, 'VL_CONT_DIFER', precisao=2), + CampoNumerico(15, 'VL_CONT_DIFER_ANT', precisao=2), + CampoNumerico(16, 'VL_CONT_PER', obrigatorio=True, precisao=2), ] @@ -2381,10 +2384,10 @@ class RegistroM211(Registro): campos = [ CampoFixo(1, 'REG', 'M211'), Campo(2, 'IND_TIP_COOP', obrigatorio=True), - CampoNumerico(3, 'VL_BC_CONT_ANT_EXC_COOP', obrigatorio=True), - CampoNumerico(4, 'VL_EXC_COOP_GER'), - CampoNumerico(5, 'VL_EXC_ESP_COOP'), - CampoNumerico(6, 'VL_BC_CONT', obrigatorio=True), + CampoNumerico(3, 'VL_BC_CONT_ANT_EXC_COOP', obrigatorio=True, precisao=2), + CampoNumerico(4, 'VL_EXC_COOP_GER', precisao=2), + CampoNumerico(5, 'VL_EXC_ESP_COOP', precisao=2), + CampoNumerico(6, 'VL_BC_CONT', obrigatorio=True, precisao=2), ] @@ -2395,7 +2398,7 @@ class RegistroM220(Registro): campos = [ CampoFixo(1, 'REG', 'M220'), Campo(2, 'IND_AJ', obrigatorio=True), - CampoNumerico(3, 'VL_AJ', obrigatorio=True), + CampoNumerico(3, 'VL_AJ', obrigatorio=True, precisao=2), Campo(4, 'COD_AJ', obrigatorio=True), Campo(5, 'NUM_DOC'), Campo(6, 'DESCR_AJ'), @@ -2427,10 +2430,10 @@ class RegistroM230(Registro): campos = [ CampoFixo(1, 'REG', 'M230'), CampoCNPJ(2, 'CNPJ', obrigatorio=True), - CampoNumerico(3, 'VL_VEND', obrigatorio=True), - CampoNumerico(4, 'VL_NAO_RECEB', obrigatorio=True), - CampoNumerico(5, 'VL_CONT_DIF', obrigatorio=True), - CampoNumerico(6, 'VL_CRED_DIF'), + CampoNumerico(3, 'VL_VEND', obrigatorio=True, precisao=2), + CampoNumerico(4, 'VL_NAO_RECEB', obrigatorio=True, precisao=2), + CampoNumerico(5, 'VL_CONT_DIF', obrigatorio=True, precisao=2), + CampoNumerico(6, 'VL_CRED_DIF', precisao=2), Campo(7, 'COD_CRED'), ] @@ -2442,10 +2445,10 @@ class RegistroM300(Registro): campos = [ CampoFixo(1, 'REG', 'M300'), Campo(2, 'COD_CONT', obrigatorio=True), - CampoNumerico(3, 'VL_CONT_APUR_DIFER', obrigatorio=True), + CampoNumerico(3, 'VL_CONT_APUR_DIFER', obrigatorio=True, precisao=2), Campo(4, 'NAT_CRED_DESC'), - CampoNumerico(5, 'VL_CRED_DESC_DIFER'), - CampoNumerico(6, 'VL_CONT_DIFER_ANT', obrigatorio=True), + CampoNumerico(5, 'VL_CRED_DESC_DIFER', precisao=2), + CampoNumerico(6, 'VL_CONT_DIFER_ANT', obrigatorio=True, precisao=2), Campo(7, 'PER_APUR', obrigatorio=True), CampoData(8, 'DT_RECEB'), ] @@ -2487,7 +2490,7 @@ class RegistroM410(Registro): campos = [ CampoFixo(1, 'REG', 'M410'), Campo(2, 'NAT_REC', obrigatorio=True), - CampoNumerico(3, 'VL_REC', obrigatorio=True), + CampoNumerico(3, 'VL_REC', obrigatorio=True, precisao=2), Campo(4, 'COD_CTA', obrigatorio=True), Campo(5, 'DESC_COMPL', obrigatorio=True), ] @@ -2501,17 +2504,17 @@ class RegistroM500(Registro): CampoFixo(1, 'REG', 'M500'), Campo(2, 'COD_CRED', obrigatorio=True), Campo(3, 'IND_CRED_ORI', obrigatorio=True), - CampoNumerico(4, 'VL_BC_COFINS'), - CampoNumerico(5, 'ALIQ_COFINS'), + CampoNumerico(4, 'VL_BC_COFINS', precisao=2), + CampoNumerico(5, 'ALIQ_COFINS', precisao=2), Campo(6, 'QUANT_BC_COFINS'), - CampoNumerico(7, 'ALIQ_COFINS_QUANT'), - CampoNumerico(8, 'VL_CRED', obrigatorio=True), - CampoNumerico(9, 'VL_AJUS_ACRES', obrigatorio=True), - CampoNumerico(10, 'VL_AJUS_REDUC', obrigatorio=True), - CampoNumerico(11, 'VL_CRED_DIFER', obrigatorio=True), - CampoNumerico(12, 'VL_CRED_DISP', obrigatorio=True), + CampoNumerico(7, 'ALIQ_COFINS_QUANT', precisao=2), + CampoNumerico(8, 'VL_CRED', obrigatorio=True, precisao=2), + CampoNumerico(9, 'VL_AJUS_ACRES', obrigatorio=True, precisao=2), + CampoNumerico(10, 'VL_AJUS_REDUC', obrigatorio=True, precisao=2), + CampoNumerico(11, 'VL_CRED_DIFER', obrigatorio=True, precisao=2), + CampoNumerico(12, 'VL_CRED_DISP', obrigatorio=True, precisao=2), Campo(13, 'IND_DESC_CRED', obrigatorio=True), - CampoNumerico(14, 'VL_CRED_DESC'), + CampoNumerico(14, 'VL_CRED_DESC', precisao=2), Campo(15, 'SLD_CRED', obrigatorio=True), ] @@ -2524,10 +2527,10 @@ class RegistroM505(Registro): CampoFixo(1, 'REG', 'M505'), Campo(2, 'NAT_BC_CRED', obrigatorio=True), Campo(3, 'CST_COFINS', obrigatorio=True), - CampoNumerico(4, 'VL_BC_COFINS_TOT'), - CampoNumerico(5, 'VL_BC_COFINS_CUM'), - CampoNumerico(6, 'VL_BC_COFINS_NC'), - CampoNumerico(7, 'VL_BC_COFINS'), + CampoNumerico(4, 'VL_BC_COFINS_TOT', precisao=2), + CampoNumerico(5, 'VL_BC_COFINS_CUM', precisao=2), + CampoNumerico(6, 'VL_BC_COFINS_NC', precisao=2), + CampoNumerico(7, 'VL_BC_COFINS', precisao=2), Campo(8, 'QUANT_BC_COFINS_TOT'), Campo(9, 'QUANT_BC_COFINS'), Campo(10, 'DESC_CRED'), @@ -2541,7 +2544,7 @@ class RegistroM510(Registro): campos = [ CampoFixo(1, 'REG', 'M510'), Campo(2, 'IND_AJ', obrigatorio=True), - CampoNumerico(3, 'VL_AJ', obrigatorio=True), + CampoNumerico(3, 'VL_AJ', obrigatorio=True, precisao=2), Campo(4, 'COD_AJ', obrigatorio=True), Campo(5, 'NUM_DOC'), Campo(6, 'DESCR_AJ'), @@ -2572,18 +2575,18 @@ class RegistroM600(Registro): """ campos = [ CampoFixo(1, 'REG', 'M600'), - CampoNumerico(2, 'VL_TOT_CONT_NC_PER', obrigatorio=True), - CampoNumerico(3, 'VL_TOT_CRED_DESC', obrigatorio=True), - CampoNumerico(4, 'VL_TOT_CRED_DESC_ANT', obrigatorio=True), - CampoNumerico(5, 'VL_TOT_CONT_NC_DEV', obrigatorio=True), - CampoNumerico(6, 'VL_RET_NC', obrigatorio=True), - CampoNumerico(7, 'VL_OUT_DED_NC', obrigatorio=True), - CampoNumerico(8, 'VL_CONT_NC_REC', obrigatorio=True), - CampoNumerico(9, 'VL_TOT_CONT_CUM_PER', obrigatorio=True), - CampoNumerico(10, 'VL_RET_CUM', obrigatorio=True), - CampoNumerico(11, 'VL_OUT_DED_CUM', obrigatorio=True), - CampoNumerico(12, 'VL_CONT_CUM_REC', obrigatorio=True), - CampoNumerico(13, 'VL_TOT_CONT_REC', obrigatorio=True), + CampoNumerico(2, 'VL_TOT_CONT_NC_PER', obrigatorio=True, precisao=2), + CampoNumerico(3, 'VL_TOT_CRED_DESC', obrigatorio=True, precisao=2), + CampoNumerico(4, 'VL_TOT_CRED_DESC_ANT', obrigatorio=True, precisao=2), + CampoNumerico(5, 'VL_TOT_CONT_NC_DEV', obrigatorio=True, precisao=2), + CampoNumerico(6, 'VL_RET_NC', obrigatorio=True, precisao=2), + CampoNumerico(7, 'VL_OUT_DED_NC', obrigatorio=True, precisao=2), + CampoNumerico(8, 'VL_CONT_NC_REC', obrigatorio=True, precisao=2), + CampoNumerico(9, 'VL_TOT_CONT_CUM_PER', obrigatorio=True, precisao=2), + CampoNumerico(10, 'VL_RET_CUM', obrigatorio=True, precisao=2), + CampoNumerico(11, 'VL_OUT_DED_CUM', obrigatorio=True, precisao=2), + CampoNumerico(12, 'VL_CONT_CUM_REC', obrigatorio=True, precisao=2), + CampoNumerico(13, 'VL_TOT_CONT_REC', obrigatorio=True, precisao=2), ] @@ -2595,7 +2598,7 @@ class RegistroM605(Registro): CampoFixo(1, 'REG', 'M605'), Campo(2, 'NUM_CAMPO', obrigatorio=True), Campo(3, 'COD_REC', obrigatorio=True), - CampoNumerico(4, 'VL_DEBITO', obrigatorio=True), + CampoNumerico(4, 'VL_DEBITO', obrigatorio=True, precisao=2), ] @@ -2606,17 +2609,20 @@ class RegistroM610(Registro): campos = [ CampoFixo(1, 'REG', 'M610'), Campo(2, 'COD_CONT', obrigatorio=True), - CampoNumerico(3, 'VL_REC_BRT', obrigatorio=True), - CampoNumerico(4, 'VL_BC_CONT', obrigatorio=True), - CampoNumerico(5, 'ALIQ_COFINS'), - Campo(6, 'QUANT_BC_COFINS'), - CampoNumerico(7, 'ALIQ_COFINS_QUANT'), - CampoNumerico(8, 'VL_CONT_APUR', obrigatorio=True), - CampoNumerico(9, 'VL_AJUS_ACRES', obrigatorio=True), - CampoNumerico(10, 'VL_AJUS_REDUC', obrigatorio=True), - CampoNumerico(11, 'VL_CONT_DIFER'), - CampoNumerico(12, 'VL_CONT_DIFER_ANT'), - CampoNumerico(13, 'VL_CONT_PER', obrigatorio=True), + CampoNumerico(3, 'VL_REC_BRT', obrigatorio=True, precisao=2), + CampoNumerico(4, 'VL_BC_CONT', obrigatorio=True, precisao=2), + CampoNumerico(5, 'VL_AJUS_ACRES_BC_COFINS', precisao=2), + CampoNumerico(6, 'VL_AJUS_REDUC_BC_COFINS', precisao=2), + CampoNumerico(7, 'VL_BC_CONT_AJUS', precisao=2), + CampoNumerico(8, 'ALIQ_COFINS', precisao=2), + Campo(9, 'QUANT_BC_COFINS'), + CampoNumerico(10, 'ALIQ_COFINS_QUANT', precisao=2), + CampoNumerico(11, 'VL_CONT_APUR', obrigatorio=True, precisao=2), + CampoNumerico(12, 'VL_AJUS_ACRES', obrigatorio=True, precisao=2), + CampoNumerico(13, 'VL_AJUS_REDUC', obrigatorio=True, precisao=2), + CampoNumerico(14, 'VL_CONT_DIFER', precisao=2), + CampoNumerico(15, 'VL_CONT_DIFER_ANT', precisao=2), + CampoNumerico(16, 'VL_CONT_PER', obrigatorio=True, precisao=2), ] @@ -2627,10 +2633,10 @@ class RegistroM611(Registro): campos = [ CampoFixo(1, 'REG', 'M611'), Campo(2, 'IND_TIP_COOP', obrigatorio=True), - CampoNumerico(3, 'VL_BC_CONT_ANT_EXC_COOP', obrigatorio=True), - CampoNumerico(4, 'VL_EXC_COOP_GER'), - CampoNumerico(5, 'VL_EXC_ESP_COOP'), - CampoNumerico(6, 'VL_BC_CONT', obrigatorio=True), + CampoNumerico(3, 'VL_BC_CONT_ANT_EXC_COOP', obrigatorio=True, precisao=2), + CampoNumerico(4, 'VL_EXC_COOP_GER', precisao=2), + CampoNumerico(5, 'VL_EXC_ESP_COOP', precisao=2), + CampoNumerico(6, 'VL_BC_CONT', obrigatorio=True, precisao=2), ] @@ -2641,7 +2647,7 @@ class RegistroM620(Registro): campos = [ CampoFixo(1, 'REG', 'M620'), Campo(2, 'IND_AJ', obrigatorio=True), - CampoNumerico(3, 'VL_AJ', obrigatorio=True), + CampoNumerico(3, 'VL_AJ', obrigatorio=True, precisao=2), Campo(4, 'COD_AJ', obrigatorio=True), Campo(5, 'NUM_DOC'), Campo(6, 'DESCR_AJ'), @@ -2673,10 +2679,10 @@ class RegistroM630(Registro): campos = [ CampoFixo(1, 'REG', 'M630'), CampoCNPJ(2, 'CNPJ', obrigatorio=True), - CampoNumerico(3, 'VL_VEND', obrigatorio=True), - CampoNumerico(4, 'VL_NAO_RECEB', obrigatorio=True), - CampoNumerico(5, 'VL_CONT_DIF', obrigatorio=True), - CampoNumerico(6, 'VL_CRED_DIF'), + CampoNumerico(3, 'VL_VEND', obrigatorio=True, precisao=2), + CampoNumerico(4, 'VL_NAO_RECEB', obrigatorio=True, precisao=2), + CampoNumerico(5, 'VL_CONT_DIF', obrigatorio=True, precisao=2), + CampoNumerico(6, 'VL_CRED_DIF', precisao=2), Campo(7, 'COD_CRED'), ] @@ -2688,10 +2694,10 @@ class RegistroM700(Registro): campos = [ CampoFixo(1, 'REG', 'M700'), Campo(2, 'COD_CONT', obrigatorio=True), - CampoNumerico(3, 'VL_CONT_APUR_DIFER', obrigatorio=True), + CampoNumerico(3, 'VL_CONT_APUR_DIFER', obrigatorio=True, precisao=2), Campo(4, 'NAT_CRED_DESC'), - CampoNumerico(5, 'VL_CRED_DESC_DIFER'), - CampoNumerico(6, 'VL_CONT_DIFER_ANT', obrigatorio=True), + CampoNumerico(5, 'VL_CRED_DESC_DIFER', precisao=2), + CampoNumerico(6, 'VL_CONT_DIFER_ANT', obrigatorio=True, precisao=2), Campo(7, 'PER_APUR', obrigatorio=True), CampoData(8, 'DT_RECEB'), ] @@ -2705,7 +2711,7 @@ class RegistroM800(Registro): campos = [ CampoFixo(1, 'REG', 'M800'), Campo(2, 'CST_COFINS', obrigatorio=True), - CampoNumerico(3, 'VL_TOT_REC', obrigatorio=True), + CampoNumerico(3, 'VL_TOT_REC', obrigatorio=True, precisao=2), Campo(4, 'COD_CTA'), Campo(5, 'DESC_COMPL'), ] @@ -2719,7 +2725,7 @@ class RegistroM810(Registro): campos = [ CampoFixo(1, 'REG', 'M810'), Campo(2, 'NAT_REC', obrigatorio=True), - CampoNumerico(3, 'VL_REC', obrigatorio=True), + CampoNumerico(3, 'VL_REC', obrigatorio=True, precisao=2), Campo(4, 'COD_CTA'), Campo(5, 'DESC_COMPL'), ] From 8d0bf5bf7ee90d2824b35d24c35930e6bb5df895 Mon Sep 17 00:00:00 2001 From: "Carlos R. Silveira" Date: Sat, 23 May 2020 15:32:09 -0300 Subject: [PATCH 4/4] Update registros.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Atualizado conforme Guia Prático EFD-ICMS/IPI – Versão 3.0.3 Atualização: 14 de outubro de 2019 --- sped/efd/icms_ipi/registros.py | 280 ++++++++++++++++++--------------- 1 file changed, 152 insertions(+), 128 deletions(-) diff --git a/sped/efd/icms_ipi/registros.py b/sped/efd/icms_ipi/registros.py index 78d3032..5b1fc93 100644 --- a/sped/efd/icms_ipi/registros.py +++ b/sped/efd/icms_ipi/registros.py @@ -40,6 +40,16 @@ class Registro0001(Registro): ] +class Registro0002(Registro): + """ + ABERTURA DO BLOCO 0 + """ + campos = [ + CampoFixo(1, 'REG', '0002'), + Campo(2, 'CLAS_ESTAB_IND'), + ] + + class Registro0005(Registro): """ DADOS COMPLEMENTARES DA ENTIDADE @@ -198,7 +208,7 @@ class Registro0220(Registro): campos = [ CampoFixo(1, 'REG', '0220'), Campo(2, 'UNID_CONV'), - Campo(3, 'FAT_CONV'), + CampoNumerico(3, 'FAT_CONV'), ] @@ -345,24 +355,24 @@ class RegistroC100(Registro): Campo(9, 'CHV_NFE'), CampoData(10, 'DT_DOC'), CampoData(11, 'DT_E_S'), - CampoNumerico(12, 'VL_DOC'), + CampoNumerico(12, 'VL_DOC', precisao=2), Campo(13, 'IND_PGTO'), - CampoNumerico(14, 'VL_DESC'), - CampoNumerico(15, 'VL_ABAT_NT'), - CampoNumerico(16, 'VL_MERC'), + CampoNumerico(14, 'VL_DESC', precisao=2), + CampoNumerico(15, 'VL_ABAT_NT', precisao=2), + CampoNumerico(16, 'VL_MERC', precisao=2), Campo(17, 'IND_FRT'), - CampoNumerico(18, 'VL_FRT'), - CampoNumerico(19, 'VL_SEG'), - CampoNumerico(20, 'VL_OUT_DA'), - CampoNumerico(21, 'VL_BC_ICMS'), - CampoNumerico(22, 'VL_ICMS'), - CampoNumerico(23, 'VL_BC_ICMS_ST'), - CampoNumerico(24, 'VL_ICMS_ST'), - CampoNumerico(25, 'VL_IPI'), - CampoNumerico(26, 'VL_PIS'), - CampoNumerico(27, 'VL_COFINS'), - CampoNumerico(28, 'VL_PIS_ST'), - CampoNumerico(29, 'VL_COFINS_ST'), + CampoNumerico(18, 'VL_FRT', precisao=2), + CampoNumerico(19, 'VL_SEG', precisao=2), + CampoNumerico(20, 'VL_OUT_DA', precisao=2), + CampoNumerico(21, 'VL_BC_ICMS', precisao=2), + CampoNumerico(22, 'VL_ICMS', precisao=2), + CampoNumerico(23, 'VL_BC_ICMS_ST', precisao=2), + CampoNumerico(24, 'VL_ICMS_ST', precisao=2), + CampoNumerico(25, 'VL_IPI', precisao=2), + CampoNumerico(26, 'VL_PIS', precisao=2), + CampoNumerico(27, 'VL_COFINS', precisao=2), + CampoNumerico(28, 'VL_PIS_ST', precisao=2), + CampoNumerico(29, 'VL_COFINS_ST', precisao=2), ] @@ -374,9 +384,9 @@ class RegistroC101(Registro): """ campos = [ CampoFixo(1, 'REG', 'C101'), - Campo(2, 'VL_FCP_UF_DEST'), - Campo(3, 'VL_ICMS_UF_DEST'), - Campo(4, 'VL_ICMS_UF_REM'), + CampoNumerico(2, 'VL_FCP_UF_DEST', precisao=2), + CampoNumerico(3, 'VL_ICMS_UF_DEST', precisao=2), + CampoNumerico(4, 'VL_ICMS_UF_REM', precisao=2), ] @@ -594,40 +604,40 @@ class RegistroC170(Registro): CampoNumerico(2, 'NUM_ITEM'), Campo(3, 'COD_ITEM'), Campo(4, 'DESCR_COMPL'), - CampoNumerico(5, 'QTD'), + CampoNumerico(5, 'QTD', precisao=2), Campo(6, 'UNID'), - CampoNumerico(7, 'VL_ITEM'), - CampoNumerico(8, 'VL_DESC'), + CampoNumerico(7, 'VL_ITEM', precisao=2), + CampoNumerico(8, 'VL_DESC', precisao=2), Campo(9, 'IND_MOV'), Campo(10, 'CST_ICMS'), Campo(11, 'CFOP'), Campo(12, 'COD_NAT'), - CampoNumerico(13, 'VL_BC_ICMS'), - CampoNumerico(14, 'ALIQ_ICMS'), - CampoNumerico(15, 'VL_ICMS'), - CampoNumerico(16, 'VL_BC_ICMS_ST'), - CampoNumerico(17, 'ALIQ_ST'), - CampoNumerico(18, 'VL_ICMS_ST'), + CampoNumerico(13, 'VL_BC_ICMS', precisao=2), + CampoNumerico(14, 'ALIQ_ICMS', precisao=2), + CampoNumerico(15, 'VL_ICMS', precisao=2), + CampoNumerico(16, 'VL_BC_ICMS_ST', precisao=2), + CampoNumerico(17, 'ALIQ_ST', precisao=2), + CampoNumerico(18, 'VL_ICMS_ST', precisao=2), Campo(19, 'IND_APUR'), Campo(20, 'CST_IPI'), Campo(21, 'COD_ENQ'), - CampoNumerico(22, 'VL_BC_IPI'), - CampoNumerico(23, 'ALIQ_IPI'), - CampoNumerico(24, 'VL_IPI'), + CampoNumerico(22, 'VL_BC_IPI', precisao=2), + CampoNumerico(23, 'ALIQ_IPI', precisao=2), + CampoNumerico(24, 'VL_IPI', precisao=2), Campo(25, 'CST_PIS'), - CampoNumerico(26, 'VL_BC_PIS'), - CampoNumerico(27, 'ALIQ_PIS'), - CampoNumerico(28, 'QUANT_BC_PIS'), - CampoNumerico(29, 'ALIQ_PIS'), - CampoNumerico(30, 'VL_PIS'), + CampoNumerico(26, 'VL_BC_PIS', precisao=2), + CampoNumerico(27, 'ALIQ_PIS', precisao=2), + CampoNumerico(28, 'QUANT_BC_PIS', precisao=2), + CampoNumerico(29, 'ALIQ_PIS', precisao=2), + CampoNumerico(30, 'VL_PIS', precisao=2), Campo(31, 'CST_COFINS'), - CampoNumerico(32, 'VL_BC_COFINS'), - CampoNumerico(33, 'ALIQ_COFINS'), - CampoNumerico(34, 'QUANT_BC_COFINS'), - CampoNumerico(35, 'ALIQ_COFINS'), - CampoNumerico(36, 'VL_COFINS'), + CampoNumerico(32, 'VL_BC_COFINS', precisao=2), + CampoNumerico(33, 'ALIQ_COFINS', precisao=2), + CampoNumerico(34, 'QUANT_BC_COFINS', precisao=2), + CampoNumerico(35, 'ALIQ_COFINS', precisao=2), + CampoNumerico(36, 'VL_COFINS', precisao=2), Campo(37, 'COD_CTA'), - CampoNumerico(38, 'VL_ABAT_NT'), + CampoNumerico(38, 'VL_ABAT_NT', precisao=2), ] @@ -757,18 +767,31 @@ class RegistroC190(Registro): CampoFixo(1, 'REG', 'C190'), Campo(2, 'CST_ICMS'), Campo(3, 'CFOP'), - Campo(4, 'ALIQ_ICMS'), - Campo(5, 'VL_OPR'), - Campo(6, 'VL_BC_ICMS'), - Campo(7, 'VL_ICMS'), - Campo(8, 'VL_BC_ICMS_ST'), - Campo(9, 'VL_ICMS_ST'), - Campo(10, 'VL_RED_BC'), - Campo(11, 'VL_IPI'), + CampoNumerico(4, 'ALIQ_ICMS', precisao=2), + CampoNumerico(5, 'VL_OPR', precisao=2), + CampoNumerico(6, 'VL_BC_ICMS', precisao=2), + CampoNumerico(7, 'VL_ICMS', precisao=2), + CampoNumerico(8, 'VL_BC_ICMS_ST', precisao=2), + CampoNumerico(9, 'VL_ICMS_ST', precisao=2), + CampoNumerico(10, 'VL_RED_BC', precisao=2), + CampoNumerico(11, 'VL_IPI', precisao=2), Campo(12, 'COD_OBS'), ] +class RegistroC191(Registro): + """ + REGISTRO C191: INFORMAÇÕES DO FUNDO DE COMBATE À POBREZA – FCP – NA NF- + e (CÓDIGO 55) E NA NFC-E (CÓDIGO 65) + """ + campos = [ + CampoFixo(1, 'REG', 'C191'), + CampoNumerico(2, 'VL_FCP_OP', precisao=2), + CampoNumerico(3, 'VL_FCP_ST', precisao=2), + CampoNumerico(4, 'VL_FCP_RET', precisao=2), + ] + + class RegistroC195(Registro): """ OBSERVAÇÕES DO LANÇAMENTO FISCAL (CÓDIGO 01, 1B E 55) @@ -1384,17 +1407,17 @@ class RegistroD100(Registro): Campo(8, 'SUB'), Campo(9, 'NUM_DOC'), Campo(10, 'CHV_CTE'), - Campo(11, 'DT_DOC'), - Campo(12, 'DT_A_P'), + CampoData(11, 'DT_DOC'), + CampoData(12, 'DT_A_P'), Campo(13, 'TP_CT-e'), Campo(14, 'CHV_CTE_REF'), - Campo(15, 'VL_DOC'), - Campo(16, 'VL_DESC'), + CampoNumerico(15, 'VL_DOC', precisao=2), + CampoNumerico(16, 'VL_DESC', precisao=2), Campo(17, 'IND_FRT'), - Campo(18, 'VL_SERV'), - Campo(19, 'VL_BC_ICMS'), - Campo(20, 'VL_ICMS'), - Campo(21, 'VL_NT'), + CampoNumerico(18, 'VL_SERV', precisao=2), + CampoNumerico(19, 'VL_BC_ICMS', precisao=2), + CampoNumerico(20, 'VL_ICMS', precisao=2), + CampoNumerico(21, 'VL_NT', precisao=2), Campo(22, 'COD_INF'), Campo(23, 'COD_CTA'), Campo(24, 'COD_MUN_ORIG'), @@ -1596,11 +1619,11 @@ class RegistroD190(Registro): CampoFixo(1, 'REG', 'D190'), Campo(2, 'CST_ICMS'), Campo(3, 'CFOP'), - Campo(4, 'ALIQ_ICMS'), - Campo(5, 'VL_OPR'), - Campo(6, 'VL_BC_ICMS'), - Campo(7, 'VL_ICMS'), - Campo(8, 'VL_RED_BC'), + CampoNumerico(4, 'ALIQ_ICMS', precisao=2), + CampoNumerico(5, 'VL_OPR', precisao=2), + CampoNumerico(6, 'VL_BC_ICMS', precisao=2), + CampoNumerico(7, 'VL_ICMS', precisao=2), + CampoNumerico(8, 'VL_RED_BC', precisao=2), Campo(9, 'COD_OBS'), ] @@ -2092,20 +2115,20 @@ class RegistroE110(Registro): """ campos = [ CampoFixo(1, 'REG', 'E110'), - Campo(2, 'VL_TOT_DEBITOS'), - Campo(3, 'VL_AJ_DEBITOS'), - Campo(4, 'VL_TOT_AJ_DEBITOS'), - Campo(5, 'VL_ESTORNOS_CRED'), - Campo(6, 'VL_TOT_CREDITOS'), - Campo(7, 'VL_AJ_CREDITOS'), - Campo(8, 'VL_TOT_AJ_CREDITOS'), - Campo(9, 'VL_ESTORNOS_DEB'), - Campo(10, 'VL_SLD_CREDOR_ANT'), - Campo(11, 'VL_SLD_APURADO'), - Campo(12, 'VL_TOT_DED'), - Campo(13, 'VL_ICMS_RECOLHER'), - Campo(14, 'VL_SLD_CREDOR_TRANSPORTAR'), - Campo(15, 'DEB_ESP'), + CampoNumerico(2, 'VL_TOT_DEBITOS', precisao=2), + CampoNumerico(3, 'VL_AJ_DEBITOS', precisao=2), + CampoNumerico(4, 'VL_TOT_AJ_DEBITOS', precisao=2), + CampoNumerico(5, 'VL_ESTORNOS_CRED', precisao=2), + CampoNumerico(6, 'VL_TOT_CREDITOS', precisao=2), + CampoNumerico(7, 'VL_AJ_CREDITOS', precisao=2), + CampoNumerico(8, 'VL_TOT_AJ_CREDITOS', precisao=2), + CampoNumerico(9, 'VL_ESTORNOS_DEB', precisao=2), + CampoNumerico(10, 'VL_SLD_CREDOR_ANT', precisao=2), + CampoNumerico(11, 'VL_SLD_APURADO', precisao=2), + CampoNumerico(12, 'VL_TOT_DED', precisao=2), + CampoNumerico(13, 'VL_ICMS_RECOLHER', precisao=2), + CampoNumerico(14, 'VL_SLD_CREDOR_TRANSPORTAR', precisao=2), + CampoNumerico(15, 'DEB_ESP', precisao=2), ] @@ -2171,8 +2194,8 @@ class RegistroE116(Registro): campos = [ CampoFixo(1, 'REG', 'E116'), Campo(2, 'COD_OR'), - Campo(3, 'VL_OR'), - Campo(4, 'DT_VCTO'), + CampoNumerico(3, 'VL_OR', precisao=2), + CampoData(4, 'DT_VCTO'), Campo(5, 'COD_REC'), Campo(6, 'NUM_PROC'), Campo(7, 'IND_PROC'), @@ -2201,19 +2224,19 @@ class RegistroE210(Registro): campos = [ CampoFixo(1, 'REG', 'E210'), Campo(2, 'IND_MOV_ST'), - Campo(3, 'VL_SLD_CRED_ANT_ST'), - Campo(4, 'VL_DEVOL_ST'), - Campo(5, 'VL_RESSARC_ST'), - Campo(6, 'VL_OUT_CRED_ST'), - Campo(7, 'VL_AJ_CREDITOS_ST'), - Campo(8, 'VL_RETENÇAO_ST'), - Campo(9, 'VL_OUT_DEB_ST'), - Campo(10, 'VL_AJ_DEBITOS_ST'), - Campo(11, 'VL_SLD_DEV_ANT_ST'), - Campo(12, 'VL_DEDUÇÕES_ST'), - Campo(13, 'VL_ICMS_RECOL_ST'), - Campo(14, 'VL_SLD_CRED_ST_TRAN SPORTAR'), - Campo(15, 'DEB_ESP_ST'), + CampoNumerico(3, 'VL_SLD_CRED_ANT_ST', precisao=2), + CampoNumerico(4, 'VL_DEVOL_ST', precisao=2), + CampoNumerico(5, 'VL_RESSARC_ST', precisao=2), + CampoNumerico(6, 'VL_OUT_CRED_ST', precisao=2), + CampoNumerico(7, 'VL_AJ_CREDITOS_ST', precisao=2), + CampoNumerico(8, 'VL_RETENÇAO_ST', precisao=2), + CampoNumerico(9, 'VL_OUT_DEB_ST', precisao=2), + CampoNumerico(10, 'VL_AJ_DEBITOS_ST', precisao=2), + CampoNumerico(11, 'VL_SLD_DEV_ANT_ST', precisao=2), + CampoNumerico(12, 'VL_DEDUÇÕES_ST', precisao=2), + CampoNumerico(13, 'VL_ICMS_RECOL_ST', precisao=2), + CampoNumerico(14, 'VL_SLD_CRED_ST_TRAN SPORTAR', precisao=2), + CampoNumerico(15, 'DEB_ESP_ST', precisao=2), ] @@ -2225,7 +2248,7 @@ class RegistroE220(Registro): CampoFixo(1, 'REG', 'E220'), Campo(2, 'COD_AJ_APUR'), Campo(3, 'DESCR_COMPL_AJ'), - Campo(4, 'VL_AJ_APUR'), + CampoNumerico(4, 'VL_AJ_APUR', precisao=2), ] @@ -2257,7 +2280,7 @@ class RegistroE240(Registro): Campo(6, 'NUM_DOC'), Campo(7, 'DT_DOC'), Campo(8, 'COD_ITEM'), - Campo(9, 'VL_AJ_ITEM'), + CampoNumerico(9, 'VL_AJ_ITEM', precisao=2), ] @@ -2268,7 +2291,7 @@ class RegistroE250(Registro): campos = [ CampoFixo(1, 'REG', 'E250'), Campo(2, 'COD_OR'), - Campo(3, 'VL_OR'), + CampoNumerico(3, 'VL_OR', precisao=2), Campo(4, 'DT_VCTO'), Campo(5, 'COD_REC'), Campo(6, 'NUM_PROC'), @@ -2301,26 +2324,26 @@ class RegistroE310(Registro): campos = [ CampoFixo(1, 'REG', 'E310'), Campo(2, 'IND_MOV_FCP_DIFAL'), - Campo(3, 'VL_SLD_CRED_ANT_DIFAL'), - Campo(4, 'VL_TOT_DEBITOS_DIFAL'), - Campo(5, 'VL_OUT_DEB_DIFAL'), - Campo(6, 'VL_TOT_CREDITOS_DIFAL'), - Campo(7, 'VL_OUT_CRED_DIFAL'), - Campo(8, 'VL_SLD_DEV_ANT_DIFAL'), - Campo(9, 'VL_DEDUCOES_DIFAL'), - Campo(10, 'VL_RECOL_DIFAL'), - Campo(11, 'VL_SLD_CRED_TRANSPORTAR_DIFAL'), - Campo(12, 'DEB_ESP_DIFAL'), - Campo(13, 'VL_SLD_CRED_ANT_FCP'), - Campo(14, 'VL_TOT_DEB_FCP'), - Campo(15, 'VL_OUT_DEB_FCP'), - Campo(16, 'VL_TOT_CRED_FCP'), - Campo(17, 'VL_OUT_CRED_FCP'), - Campo(18, 'VL_SLD_DEV_ANT_FCP'), - Campo(19, 'VL_DEDUCOES_FCP'), - Campo(20, 'VL_RECOL_FCP'), - Campo(21, 'VL_SLD_CRED_TRANSPORTAR_FCP'), - Campo(22, 'DEB_ESP_FCP'), + CampoNumerico(3, 'VL_SLD_CRED_ANT_DIFAL', precisao=2), + CampoNumerico(4, 'VL_TOT_DEBITOS_DIFAL', precisao=2), + CampoNumerico(5, 'VL_OUT_DEB_DIFAL', precisao=2), + CampoNumerico(6, 'VL_TOT_CREDITOS_DIFAL', precisao=2), + CampoNumerico(7, 'VL_OUT_CRED_DIFAL', precisao=2), + CampoNumerico(8, 'VL_SLD_DEV_ANT_DIFAL', precisao=2), + CampoNumerico(9, 'VL_DEDUCOES_DIFAL', precisao=2), + CampoNumerico(10, 'VL_RECOL_DIFAL', precisao=2), + CampoNumerico(11, 'VL_SLD_CRED_TRANSPORTAR_DIFAL', precisao=2), + CampoNumerico(12, 'DEB_ESP_DIFAL', precisao=2), + CampoNumerico(13, 'VL_SLD_CRED_ANT_FCP', precisao=2), + CampoNumerico(14, 'VL_TOT_DEB_FCP', precisao=2), + CampoNumerico(15, 'VL_OUT_DEB_FCP', precisao=2), + CampoNumerico(16, 'VL_TOT_CRED_FCP', precisao=2), + CampoNumerico(17, 'VL_OUT_CRED_FCP', precisao=2), + CampoNumerico(18, 'VL_SLD_DEV_ANT_FCP', precisao=2), + CampoNumerico(19, 'VL_DEDUCOES_FCP', precisao=2), + CampoNumerico(20, 'VL_RECOL_FCP', precisao=2), + CampoNumerico(21, 'VL_SLD_CRED_TRANSPORTAR_FCP', precisao=2), + CampoNumerico(22, 'DEB_ESP_FCP', precisao=2), ] class RegistroE316(Registro): @@ -2332,7 +2355,7 @@ class RegistroE316(Registro): campos = [ CampoFixo(1, 'REG', 'E316'), Campo(2, 'COD_OR'), - Campo(3, 'VL_OR'), + CampoNumerico(3, 'VL_OR', precisao=2), Campo(4, 'DT_VCTO'), Campo(5, 'COD_REC'), Campo(6, 'NUM_PROC'), @@ -2363,9 +2386,9 @@ class RegistroE510(Registro): CampoFixo(1, 'REG', 'E510'), Campo(2, 'CFOP'), Campo(3, 'CST_IPI'), - Campo(4, 'VL_CONT_IPI'), - Campo(5, 'VL_BC_IPI'), - Campo(6, 'VL_IPI'), + CampoNumerico(4, 'VL_CONT_IPI', precisao=2), + CampoNumerico(5, 'VL_BC_IPI', precisao=2), + CampoNumerico(6, 'VL_IPI', precisao=2), ] @@ -2375,13 +2398,13 @@ class RegistroE520(Registro): """ campos = [ CampoFixo(1, 'REG', 'E520'), - Campo(2, 'VL_SD_ANT_IPI'), - Campo(3, 'VL_DEB_IPI'), - Campo(4, 'VL_CRED_IPI'), - Campo(5, 'VL_OD_IPI'), - Campo(6, 'VL_OC_IPI'), - Campo(7, 'VL_SC_IPI'), - Campo(8, 'VL_SD_IPI'), + CampoNumerico(2, 'VL_SD_ANT_IPI', precisao=2), + CampoNumerico(3, 'VL_DEB_IPI', precisao=2), + CampoNumerico(4, 'VL_CRED_IPI', precisao=2), + CampoNumerico(5, 'VL_OD_IPI', precisao=2), + CampoNumerico(6, 'VL_OC_IPI', precisao=2), + CampoNumerico(7, 'VL_SC_IPI', precisao=2), + CampoNumerico(8, 'VL_SD_IPI', precisao=2), ] @@ -2392,7 +2415,7 @@ class RegistroE530(Registro): campos = [ CampoFixo(1, 'REG', 'E530'), Campo(2, 'IND_AJ'), - Campo(3, 'VL_AJ'), + CampoNumerico(3, 'VL_AJ', precisao=2), Campo(4, 'COD_AJ'), Campo(5, 'IND_DOC'), Campo(6, 'NUM_DOC'), @@ -2711,6 +2734,7 @@ class Registro1010(Registro): Campo(11, 'IND_GIAF1'), Campo(12, 'IND_GIAF3'), Campo(13, 'IND_GIAF4'), + Campo(14, 'IND_REST_RESSARC_COMPL_ICMS'), ]