Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom Dia, Tudo Certo?

Estou tendo problemas ao gerar o arquivo ADRC-ST quando se refere a atributos numéricos do manual, que por sua vez nas classes da ACBR estão como Tipo Integer.
como exemplo vamos tomar como nota o registro 1110 que possuí os atributos CST_CSOSN e N_NF que ambos estão sendo gerados no arquivo de texto como data,
conforme segue em anexo o arquivo com nome Arquivo Gerado pelo Exemplo.

Problema,
Como nas classes do ADRC-ST os atributos numéricos foram declarados como Integer no momento de gerar os dados chama o método LFill da classe ACBrTXTClass e não tem um método desse sobrescrito com o tipo de dados Integer está caindo no método sobrescrito de data.
1381436699_ArquivoGeradopeloExemplo.thumb.jpg.8d7937ee4a6b67a7061b73b68f2cf697.jpg
Desde já Agradeço.

Postado (editado)

Aproveitando o tópico e ajuste do Sergio, estou colocando aqui também alguns ajustes que realizei no componente para ser validado estruturalmente no ambiente de teste da RECEITA PR.

  • Contém o mesmo ajuste do Sergio, só o campo CST_CSOSN esta diferente, pois não pode ser completado com 0, nem cortado quando for 00, então mudei para string;
  • Corrigida a conversão da versão;
  • Adicionado o enumerador ADRCSTIndicadorReaverRecolherImposto para ser usados nas opções do registro 0000;
  • Mudei o enumerador do layout de "lyCD" para "lyADRCSTCD" (mesmo nome usado no site da receita para envio do arquivo);
  • Removi o delimitador do começo e do fim de todas as linhas geradas. Com o delimitador no começo não validava em nada o arquivo ("O primeiro registro deve ser o cabecalho (detectado: [????], esperado: [0000])"), e com o delimitador no fim apresentava mais campos que o layout ("Muitos campos no registro, informado: 15 (esperado: 14 )");
  • Ajustado o campo VL_ICMSST_UNIT_ENTR do registro 1500 para 4 casas decimais, conforme verão 1.3 do manual;
  • Adicionada a geração do arquivo para Centro de Distribuição ADRC-ST CD (Registros: 0001, 1001, 1101, 1111), junto com exemplo de geração. Foi feito seguindo o que já existia dentro das mesmas classes existentes. (Ainda não validado, pois meu cliente com certificado não possui movimento para esse caso);

Validei o ADRC-ST estruturalmente com essas alterações no ambiente de testes (O status "Processando" da imagem indica que foi validada a estrutura e que serão processadas as informações), estou validando agora as informações e cálculos, porém os arquivos são processados apenas de um dia para o outro, tornando o teste demorado.image.thumb.png.5d57c69743048160f3061cec065a73ea.png

 

Exemplo: ufrmPrincipal.dfmufrmPrincipal.pas

 

Fontes:ACBrADRCSTConversao.pasACBrADRCST_Bloco9_Class.pasACBrADRCST_Bloco1_Class.pasACBrADRCST_Bloco1.pasACBrADRCST_Bloco0_Class.pasACBrADRCST_Bloco0.pasACBrADRCST.pas

 

Conforme vou testando, coloco aqui os ajustes, se houver.

Espero ter ajudado!

Obrigado!

Editado por matheuslc
  • Curtir 1
  • Obrigado 1
Postado

@Juliomar Marchetti Colocando LFill no campo REG, vai preencher com delimitador o começo da linha, por isso eu removi o LFill desse campo. Com delimitador no começo apresenta erro de estrutura.

Errado com delimitador no começo e no fim:

|0000|100|012020|00000000000100|0123456789|Nome Empresarial até 100|0||||0|0|0|0|

Correto sem delimitador no começo e no fim:

0000|100|012020|00000000000100|0123456789|Nome Empresarial até 100|0||||0|0|0|0

 

  • Curtir 1
Postado

@Juliomar Marchetti Encontrei mais alguns problemas:

  • Contagem incorreta das linhas. Os registros 1200, 1300, 1400 e 1500 estão sendo contados 2x a cada geração.
  • A lista de registros não esta sendo limpa a cada geração. Se você clicar varias vezes para gerar vai ver que nunca é limpo.
  • O registro 9000 e 1999 não podem ser contabilizados para o layout ADRC-ST CD.

Os erros foram corrigidos, porém vou esperar até amanha para verificar a validação da receita, pois estou em dúvida se o registro 0000 deve ser contabilizado ou não. No manual esta confuso, pois no exemplo o registro 0000 foi contabilizado dentro do 1999, sendo que o 1999 é apenas para o bloco 1.  

Postado

@Juliomar Marchetti Segue o componente com as correções:

  • Remoção do LFill dos campos REG;
  • Correção na contagem das linhas dos registros 1200, 1300, 1400 e 1500;
  • Contagem do registro 0000 junto ao registro 1999, apenas se o mesmo for gerado pelo layout ADRC-ST. Quando gerado o layout ADRC-ST CD não será contabilizado o registro 1999;
  • Adicionada a função clear da lista dos objetos 1000 e 1001 dentro da procedure IniciaGeracao. Junto ao clear, o objeto FRegistro1999 é destruído e recriado para reiniciar a contagem de linhas.

 

Realizei a validação e o erro que é apresentado refere aos cálculos, ou seja, não é problema de estrutura do componente.

  • Esse foi o arquivo processado onde a contagem do registro 0000 ficou junto ao 1999 e NÃO apresentou erros de contagem de linha:

image.thumb.png.023e6da470aaf4dfe38a5c8db94a6ffa.png

 

  • Esse foi o arquivo processado onde a contagem do registro 0000 ficou junto ao 9999 e APRESENTOU erros de contagem de linha: 

image.thumb.png.f993058b7661fac3c924f36741923d2f.png

 

Obrigado.

ACBrADRCST.pas ACBrADRCST_Bloco0_Class.pas ACBrADRCST_Bloco1.pas ACBrADRCST_Bloco1_Class.pas ACBrADRCST_Bloco9_Class.pas

  • Este tópico foi criado há 1447 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.