From 60294577293cc48f7f8cd937a51ad63c7301b232 Mon Sep 17 00:00:00 2001 From: Felipe Correa Date: Thu, 3 Mar 2022 19:07:37 -0300 Subject: [PATCH 1/2] Add registro C191 ao EFD ICMS IPI --- sped/efd/icms_ipi/registros.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sped/efd/icms_ipi/registros.py b/sped/efd/icms_ipi/registros.py index ba56a19..4918874 100644 --- a/sped/efd/icms_ipi/registros.py +++ b/sped/efd/icms_ipi/registros.py @@ -775,6 +775,16 @@ class RegistroC190(Registro): Campo(11, 'VL_IPI'), Campo(12, 'COD_OBS'), ] +class RegistroC191(Registro): + """ + INFORMAÇÕES DO FUNDO DE COMBATE À POBREZA – FCP – NA NFe (CÓDIGO 55) E NA NFC-E (CÓDIGO 65) + """ + campos = [ + CampoFixo(1, 'REG', 'C191'), + CampoNumerico(2, 'VL_FCP_OP'), + CampoNumerico(3, 'VL_FCP_ST'), + CampoNumerico(4, 'VL_FCP_RET'), + ] class RegistroC195(Registro): From 6edce3e642ca3d47d23cac2cb20529a41c7a348d Mon Sep 17 00:00:00 2001 From: Felipe Correa Date: Thu, 3 Mar 2022 19:29:36 -0300 Subject: [PATCH 2/2] =?UTF-8?q?Add=20exibi=C3=A7=C3=A3o=20do=20valor=20qua?= =?UTF-8?q?ndo=20der=20alguma=20exception?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sped/campos.py | 14 +++++++------- sped/erros.py | 5 +++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/sped/campos.py b/sped/campos.py index 9c9f575..01ff291 100644 --- a/sped/campos.py +++ b/sped/campos.py @@ -58,9 +58,9 @@ def set(self, registro, valor): registro.valores[self._indice] = '' return if valor and not self.__class__.validar(valor): - raise FormatoInvalidoError(registro, self.nome) + raise FormatoInvalidoError(registro, self.nome, valor) if not isinstance(valor, str): - raise FormatoInvalidoError(registro, self.nome) + raise FormatoInvalidoError(registro, self.nome, valor) registro.valores[self._indice] = valor or '' @staticmethod @@ -97,7 +97,7 @@ def get(self, registro): def set(self, registro, valor): if valor != self._valor: - raise CampoFixoError(registro, self.nome) + raise CampoFixoError(registro, self.nome, valor) class CampoAlfanumerico(Campo): @@ -134,7 +134,7 @@ def set(self, registro, valor): elif valor is None: super().set(registro, None) else: - raise FormatoInvalidoError(registro, self.nome) + raise FormatoInvalidoError(registro, self.nome, valor) class CampoNumerico(Campo): @@ -174,7 +174,7 @@ def set(self, registro, valor): elif not valor: super().set(registro, '0') else: - raise FormatoInvalidoError(registro, self.nome) + raise FormatoInvalidoError(registro, self.nome, valor) class CampoData(Campo): @@ -193,7 +193,7 @@ def set(self, registro, valor): elif not valor: super().set(registro, None) else: - raise FormatoInvalidoError(registro, self.nome) + raise FormatoInvalidoError(registro, self.nome, valor) class CampoRegex(Campo): @@ -207,7 +207,7 @@ def set(self, registro, valor): if not valor or self._regex.match(valor): super().set(registro, valor) else: - raise FormatoInvalidoError(registro, str(self)) + raise FormatoInvalidoError(registro, str(self), valor) # def __repr__(self): # return '' f'{self.__class__.__name__}({self.indice}, {self.nome}, {self._obrigatorio}, {self._regex})' diff --git a/sped/erros.py b/sped/erros.py index 1e3b3d0..f13c02e 100644 --- a/sped/erros.py +++ b/sped/erros.py @@ -10,12 +10,13 @@ def __str__(self): class CampoError(RegistroError): - def __init__(self, registro, campo): + def __init__(self, registro, campo, valor = None): super(CampoError, self).__init__(registro) self._campo = campo + self._valor = valor def __str__(self): - return u'{0} -> {1}'.format(self._registro.__class__.__name__, self._campo) + return u'{0} -> {1}. Valor: {2}'.format(self._registro.__class__.__name__, self._campo, str(self._valor)) class CampoFixoError(CampoError):