Ir para conteúdo
  • Cadastre-se

dev botao

Erros do componente ACBR SPED para correções


alfadesign
  • Este tópico foi criado há 4875 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Saudações amigos,

Encontrei alguns erros nos arquivos do AcbrSPED e estou postando aqui tanto

o erro quanto a solução para uma possível alteração nos arquivos do componente.

-ERRO 1-----------------------

Na unit:

ACBrEFDBloco_C_Class;

procedimento:

procedure TBloco_C.WriteRegistroC112(RegC110: TRegistroC110) ;

Ao inves de:

          Add( LFill('C112') +

               LFill( Integer(COD_DA), 0 ) +

               LFill( UF ) +

               LFill( NUM_DA ) +

               LFill( COD_AUT ) +

               LFill( VL_DA,0,2 ) ) ;
Usar:
          Add( LFill('C112') +

               LFill( Integer(COD_DA), 0 ) +

               LFill( UF ) +

               LFill( NUM_DA ) +

               LFill( COD_AUT ) +

               LFill( VL_DA,0,2 )+

               LFill(DT_VCTO) +

               LFill(DT_PGTO) ) ;
Justificativa: Estava faltando os campos DT_VCTO E DT_PGTO -ERRO 2----------------------- Na unit: ACBrEFDBloco_E_Class; procedimento: procedure TBloco_E.WriteRegistroE113(RegE111: TRegistroE111) ; Ao inves de:
          Add( LFill('E113') +

               LFill( COD_PART ) +

               LFill( COD_MOD ) +

               LFill( SER ) +

               LFill( SUB ) +

               LFill( NUM_DOC ) +

               LFill( DT_DOC ) +

               LFill( CHV_NFE ) +

               LFill( COD_ITEM ) +

               LFill( VL_AJ_ITEM,0 )) ;
Usar:
          Add( LFill('E113') +

               LFill( COD_PART ) +

               LFill( COD_MOD ) +

               LFill( SER ) +

               LFill( SUB ) +

               LFill( NUM_DOC ) +

               LFill( DT_DOC ) +

               LFill( COD_ITEM ) +

               LFill( VL_AJ_ITEM,0 )) ;
Justificativa: O campo CHV_NFE não existe mais, nem na versão 102 (que já está em vigor) nem na 103 que entrará em janeiro/2011 -ERRO 3----------------------- Na unit: ACBrEFDBloco_0_Class; procedimento: procedure TBloco_0.WriteRegistro0300(Reg0001: TRegistro0001) ; Ao inves de:
             Add( LFill('0300') +

                  LFill( COD_IND_BEM ) +

                  LFill( IDENT_MERC ) +

                  LFill( DESCR_ITEM ) +

                  LFill( COD_PRNC ) +

                  LFill( COD_CTA ) +

                  DFill( NR_PARC, 0 ) ) ;
Usar:
             Add( LFill('0300') +

                  LFill( COD_IND_BEM ) +

                  LFill( IDENT_MERC,0 ) +

                  LFill( DESCR_ITEM ) +

                  LFill( COD_PRNC ) +

                  LFill( COD_CTA ) +

                  DFill( NR_PARC, 0 ) ) ;
Justificativa O campo IDENT_MERC estava sendo intepretado e gravado como data, quando o correto é valor inteiro. -ERRO 4----------------------- Na unit: ACBrEFDBlocos; Ao invez de:
  TACBrVersaoLeiaute      = (vlVersao100,  // Código 001 - Versão 100 Ato COTEPE 01/01/2008

                             vlVersao101,  // Código 002 - Versão 101 Ato COTEPE 01/01/2009

                             vlVersao102   // Código 003 - Versão 102 Ato COTEPE 01/01/2010

                             );
Usar:
  TACBrVersaoLeiaute      = (vlVersao100,  // Código 001 - Versão 100 Ato COTEPE 01/01/2008

                             vlVersao101,  // Código 002 - Versão 101 Ato COTEPE 01/01/2009

                             vlVersao102,  // Código 003 - Versão 102 Ato COTEPE 01/01/2010

                             vlVersao103   // Código 004 - Versão 103 Ato COTEPE 01/01/2011

                             );
e na unit: ACBrEFDBloco_0_Class; ao invez de:
       case COD_VER of

         vlVersao100: strCOD_VER := '001';

         vlVersao101: strCOD_VER := '002';

         vlVersao102: strCOD_VER := '003';

       end;
usar:
       case COD_VER of

         vlVersao100: strCOD_VER := '001';

         vlVersao101: strCOD_VER := '002';

         vlVersao102: strCOD_VER := '003';

         vlVersao103: strCOD_VER := '004';

       end;

Justificativa:com estas alterações daremos o primeiro passo p/ começarmos a trabalhar na versão 103 que entra em vigor em janeiro de 2011

Vlw.

Link para o comentário
Compartilhar em outros sites

Saudações amigos,

Encontrei alguns erros nos arquivos do AcbrSPED e estou postando aqui tanto

o erro quanto a solução para uma possível alteração nos arquivos do componente.

-ERRO 1-----------------------

Na unit:

ACBrEFDBloco_C_Class;

procedimento:

procedure TBloco_C.WriteRegistroC112(RegC110: TRegistroC110) ;

Ao inves de:

          Add( LFill('C112') +
LFill( Integer(COD_DA), 0 ) +
LFill( UF ) +
LFill( NUM_DA ) +
LFill( COD_AUT ) +
LFill( VL_DA,0,2 ) ) ;[/code] Usar:
[code] Add( LFill('C112') +
LFill( Integer(COD_DA), 0 ) +
LFill( UF ) +
LFill( NUM_DA ) +
LFill( COD_AUT ) +
LFill( VL_DA,0,2 )+
LFill(DT_VCTO) +
LFill(DT_PGTO) ) ;
Justificativa: Estava faltando os campos DT_VCTO E DT_PGTO -ERRO 2----------------------- Na unit: ACBrEFDBloco_E_Class; procedimento: procedure TBloco_E.WriteRegistroE113(RegE111: TRegistroE111) ; Ao inves de:
          Add( LFill('E113') +
LFill( COD_PART ) +
LFill( COD_MOD ) +
LFill( SER ) +
LFill( SUB ) +
LFill( NUM_DOC ) +
LFill( DT_DOC ) +
LFill( CHV_NFE ) +
LFill( COD_ITEM ) +
LFill( VL_AJ_ITEM,0 )) ;[/code] Usar:
[code] Add( LFill('E113') +
LFill( COD_PART ) +
LFill( COD_MOD ) +
LFill( SER ) +
LFill( SUB ) +
LFill( NUM_DOC ) +
LFill( DT_DOC ) +
LFill( COD_ITEM ) +
LFill( VL_AJ_ITEM,0 )) ;
Justificativa: O campo CHV_NFE não existe mais, nem na versão 102 (que já está em vigor) nem na 103 que entrará em janeiro/2011 -ERRO 3----------------------- Na unit: ACBrEFDBloco_0_Class; procedimento: procedure TBloco_0.WriteRegistro0300(Reg0001: TRegistro0001) ; Ao inves de:
             Add( LFill('0300') +
LFill( COD_IND_BEM ) +
LFill( IDENT_MERC ) +
LFill( DESCR_ITEM ) +
LFill( COD_PRNC ) +
LFill( COD_CTA ) +
DFill( NR_PARC, 0 ) ) ;[/code] Usar:
[code] Add( LFill('0300') +
LFill( COD_IND_BEM ) +
LFill( IDENT_MERC,0 ) +
LFill( DESCR_ITEM ) +
LFill( COD_PRNC ) +
LFill( COD_CTA ) +
DFill( NR_PARC, 0 ) ) ;
Justificativa O campo IDENT_MERC estava sendo intepretado e gravado como data, quando o correto é valor inteiro. -ERRO 4----------------------- Na unit: ACBrEFDBlocos; Ao invez de:
  TACBrVersaoLeiaute      = (vlVersao100,  // Código 001 - Versão 100 Ato COTEPE 01/01/2008
vlVersao101, // Código 002 - Versão 101 Ato COTEPE 01/01/2009
vlVersao102 // Código 003 - Versão 102 Ato COTEPE 01/01/2010
);[/code] Usar:
[code] TACBrVersaoLeiaute = (vlVersao100, // Código 001 - Versão 100 Ato COTEPE 01/01/2008
vlVersao101, // Código 002 - Versão 101 Ato COTEPE 01/01/2009
vlVersao102, // Código 003 - Versão 102 Ato COTEPE 01/01/2010
vlVersao103 // Código 004 - Versão 103 Ato COTEPE 01/01/2011
);
e na unit: ACBrEFDBloco_0_Class; ao invez de:
       case COD_VER of
vlVersao100: strCOD_VER := '001';
vlVersao101: strCOD_VER := '002';
vlVersao102: strCOD_VER := '003';
end;[/code] usar:
[code] case COD_VER of
vlVersao100: strCOD_VER := '001';
vlVersao101: strCOD_VER := '002';
vlVersao102: strCOD_VER := '003';
vlVersao103: strCOD_VER := '004';
end;

Justificativa:com estas alterações daremos o primeiro passo p/ começarmos a trabalhar na versão 103 que entra em vigor em janeiro de 2011

Vlw.

Temos que ajustar, para que atenda as mudanças, mas que continue atendendo as versões anteriaores.

Terei que fazer com tempo, se alguem se dispuser, agradeço, senão teremos que esperar eu terminar o ACBrPisCofins

Desde já agradeço

Abs

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Isaque,

Mas as alterações sugeridas não atrapalham layouts anteriores, a inclusão da versão mais nova do layout é somente um item que será acrescentado, e nada será removido. A única duvida que tenho é quanto ao E113 - Chave NFE que deverá ser retirada, mas eu peguei o manual da versão 2.0.2 (Set/2010) então nao sei em versoes anteriores. Me disponho a ajudar nas alterações, mas como?

Abraço.

Adriano N.

Link para o comentário
Compartilhar em outros sites

Isaque,

Mas as alterações sugeridas não atrapalham layouts anteriores, a inclusão da versão mais nova do layout é somente um item que será acrescentado, e nada será removido. A única duvida que tenho é quanto ao E113 - Chave NFE que deverá ser retirada, mas eu peguei o manual da versão 2.0.2 (Set/2010) então nao sei em versoes anteriores. Me disponho a ajudar nas alterações, mas como?

Abraço.

Adriano N.

Ola Adriano, na unit ACBrEFDBlocos.pas tem o tipo TACBrVersaoLeiaute, onde podemos add, mais versões, o que temos que fazer é saber a diferença, do que já tem hoje para a nova versão e fazer um IF.

vamos pegar o E113, como base então:


/// Versão do leiaute do arquivo.
if FBloco_0.Registro0000.COD_VER = vlVersao102 then
begin
Add( LFill('E113') +
LFill( COD_PART ) +
LFill( COD_MOD ) +
LFill( SER ) +
LFill( SUB ) +
LFill( NUM_DOC ) +
LFill( DT_DOC ) +
LFill( CHV_NFE ) +
LFill( COD_ITEM ) +
LFill( VL_AJ_ITEM,0 )) ;
end
else
if FBloco_0.Registro0000.COD_VER = vlVersao103 then
begin
Add( LFill('E113') +
LFill( COD_PART ) +
LFill( COD_MOD ) +
LFill( SER ) +
LFill( SUB ) +
LFill( NUM_DOC ) +
LFill( DT_DOC ) +
LFill( COD_ITEM ) +
LFill( VL_AJ_ITEM,0 )) ;
end;
end;
[/code]

Fiz um IF, completo, mas se alguem tiver uma idéia que de para simplificar a escrita, validando as versões, será bem vinda.

Faça os ajusates e anexe as units, já com as modificações, que eu pego e subo para o SVN.

Grande abraço

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4875 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...