Jump to content

Assista click.png tectoy.png

C6 chamada_c6.png botao.png

Convênio 115/03 - Erro na validação dos dados


Go to solution Solved by EMBarbosa,
  • Este tópico foi criado há 1075 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia,

Estou com problemas alguns dias para validar os arquivos gerados pelo componente ACBrConvenio115. Os arquivos são gerados aparentemente sem nenhum problema, mas quando vou utilizar o Validador 3.00e ele dá mensagem de erro (imagem em anexo).

Segue abaixo o conteúdo do fonte para Delphi 7 que estou utilizando.

with convenio115 do
  begin
    SalvarEm := qrconfig.fieldbyname('CN115_CAMINHO_ARQUIVOS').asstring;

    UF := qrconfig.fieldbyname('cn115_uf').AsString;
    Serie := qrnotafiscal.fieldbyname('c115_serie').asstring;
    Ano := NumeroInteiro(formatdatetime('yyyy',qrnotafiscal.fieldbyname('c115_emissao').AsDateTime));
    Mes := NumeroInteiro(formatdatetime('mm',qrnotafiscal.fieldbyname('c115_emissao').AsDateTime));
    CnpjEmitente := sonumero(qrconfig.fieldbyname('cn115_cnpj').AsString);
    Modelo := NumeroInteiro(qrnotafiscal.fieldbyname('c115_modelo').AsString);
  end;

N:=0;

while not qrnotafiscal.eof do
  begin
    if (qrnotafiscal.FieldByName('c115_emissao').AsDate>Periodo1) and (qrnotafiscal.FieldByName('c115_emissao').AsDate<Periodo2) then
      begin
        with Convenio115 do
          begin
            OMestre := TACBrConvenio115Mestre.Create;
            OMestre.Destinatario.CnpjCpf := EspacosDireita(sonumero(qrcliente.fieldbyname('doc1').AsString),14);
            OMestre.Destinatario.InscricaoEstadual := EspacosDireita(sonumero(qrcliente.fieldbyname('doc2').AsString),14);
            OMestre.Destinatario.RazaoSocial := EspacosDireita(qrcliente.fieldbyname('razaosocial').AsString,35);
            OMestre.Destinatario.Logradouro := EspacosDireita(qrcliente.fieldbyname('endereco').AsString,45);
            OMestre.Destinatario.Numero := EspacosDireita(qrcliente.fieldbyname('numero').AsString,5);
            OMestre.Destinatario.Complemento := EspacosDireita(qrcliente.fieldbyname('complemento').AsString,15);
            OMestre.Destinatario.CEP := EspacosDireita(qrcliente.fieldbyname('cep').AsString,8);
            OMestre.Destinatario.Bairro := EspacosDireita(qrcliente.fieldbyname('bairro').AsString,15);
            OMestre.Destinatario.Municipio := EspacosDireita(qrcliente.fieldbyname('cidade').AsString,30);
            OMestre.Destinatario.UF := EspacosDireita(qrcliente.fieldbyname('uf').AsString,2);
            OMestre.Destinatario.Telefone := EspacosDireita(qrcliente.fieldbyname('fone1').AsString,10);
            OMestre.Destinatario.CodigoConsumidor := IntToStr(qrcliente.fieldbyname('codigo').asinteger);

            if qrnotafiscal.FieldByName('C115_TIPO_ASSINANTE').AsString='A' then
              OMestre.TipoAssinante:=tac1182None;

            if qrnotafiscal.FieldByName('C115_TIPO_ASSINANTE').AsString='B' then
              OMestre.TipoAssinante:=tac11182Comercial;

            if qrnotafiscal.FieldByName('C115_TIPO_ASSINANTE').AsString='C' then
              OMestre.TipoAssinante:=tac11182Industrial;

            if qrnotafiscal.FieldByName('C115_TIPO_ASSINANTE').AsString='D' then
              OMestre.TipoAssinante:=tac11182PessoaFisicaResidencial;;

            if qrnotafiscal.FieldByName('C115_TIPO_ASSINANTE').AsString='E' then
              OMestre.TipoAssinante:=tac11182ProdutorRural;

            if qrnotafiscal.FieldByName('C115_TIPO_ASSINANTE').AsString='F' then
              OMestre.TipoAssinante:=tac11182AdmPublicaEstadualConvICMS107_95;

            if qrnotafiscal.FieldByName('C115_TIPO_ASSINANTE').AsString='G' then
              OMestre.TipoAssinante:=tac11182PrestServicoTelecomConvIcms17_13;

            if qrnotafiscal.FieldByName('C115_TIPO_ASSINANTE').AsString='H' then
              OMestre.TipoAssinante:=tac11182MissoesDiplomConvIcms158_94;

            if qrnotafiscal.FieldByName('C115_TIPO_ASSINANTE').AsString='I' then
              OMestre.TipoAssinante:=tac11182Igrejas;

            if qrnotafiscal.FieldByName('C115_TIPO_ASSINANTE').AsString='J' then
              OMestre.TipoAssinante:=tac11182Outros;

            if qrnotafiscal.FieldByName('C115_TIPO_UTILIZACAO').AsString='A' then
              OMestre.TipoUtilizacao:=pc112None;

            if qrnotafiscal.FieldByName('C115_TIPO_UTILIZACAO').AsString='B' then
              OMestre.TipoUtilizacao:=pc112Telefonia;

            if qrnotafiscal.FieldByName('C115_TIPO_UTILIZACAO').AsString='C' then
              OMestre.TipoUtilizacao:=pc112ComunicacaoDados;

            if qrnotafiscal.FieldByName('C115_TIPO_UTILIZACAO').AsString='D' then
              OMestre.TipoUtilizacao:=pc112TVAssinatura;

            if qrnotafiscal.FieldByName('C115_TIPO_UTILIZACAO').AsString='E' then
              OMestre.TipoUtilizacao:=pc112ProvimentoAcessoInternet;

            if qrnotafiscal.FieldByName('C115_TIPO_UTILIZACAO').AsString='F' then
              OMestre.TipoUtilizacao:=pc112Multimidia;

            if qrnotafiscal.FieldByName('C115_TIPO_UTILIZACAO').AsString='G' then
              OMestre.TipoUtilizacao:=pc112Outros;

            OMestre.DataEmissao := qrnotafiscal.fieldbyname('c115_emissao').AsDateTime;
            OMestre.Modelo := NumeroInteiro(qrnotafiscal.fieldbyname('c115_modelo').AsString);
            OMestre.Serie := qrnotafiscal.fieldbyname('c115_serie').AsString;
            OMestre.NumeroNF := NumeroInteiro(qrnotafiscal.fieldbyname('c115_numero').AsString);
            OMestre.ValorTotal := qrnotafiscal.fieldbyname('C115_VALOR_TOTAL').AsFloat;
            OMestre.ICMS_BaseCalculo := qrnotafiscal.fieldbyname('C115_BASE_CALCULO').AsFloat;
            OMestre.ICMS_Valor := qrnotafiscal.fieldbyname('C115_VALOR_ICMS').AsFloat;
            OMestre.IsentosNaoTributadas := qrnotafiscal.fieldbyname('C115_ISENTOS_ICMS').AsFloat;
            OMestre.OutrosValores := qrnotafiscal.fieldbyname('C115_OUTROS_ICMS').AsFloat;
            OMestre.AnoMesRefencia := FormatDateTime('yymm',qrnotafiscal.fieldbyname('c115_emissao').asdatetime); // AAMM

            qritens.Refresh;
            qritens.First;

            A:=0;

            While not qritens.Eof do
              begin
                A:=A+1;

                ODetalhe := TACBrConvenio115Item.Create;
                ODetalhe.CFOP := qritens.fieldbyname('C115D_CFOP').AsString;
                ODetalhe.Item := A;
                ODetalhe.CodigoServico := IntToStr(qrservico.fieldbyname('srcodigo').AsInteger);
                ODetalhe.DescricaoServico := qrservico.fieldbyname('srdescricao').AsString;
                ODetalhe.Unidade := qritens.fieldbyname('C115D_MEDIDA').AsString;
                ODetalhe.ClassificacaoItem := qritens.fieldbyname('C115D_CLASSIFICACAO').AsString;
                ODetalhe.QtdeContratada := qritens.fieldbyname('C115D_CONTRATADA').asfloat;
                ODetalhe.QtdePrestada := qritens.fieldbyname('C115D_PRESTADA').asfloat;
                ODetalhe.ValorTotal := qritens.fieldbyname('C115D_VALOR_TOTAL').asfloat;
                ODetalhe.Desconto := 0;
                ODetalhe.AcrescimosDespAcessorias := 0;

                ODetalhe.ICMSBaseCalculo := qritens.fieldbyname('C115D_BASE_CALCULO').AsFloat;
                ODetalhe.ICMSValor := qritens.fieldbyname('C115D_VALOR_ICMS').AsFloat;
                ODetalhe.ICMSAliquota := qritens.fieldbyname('C115D_ALIQUOTA').AsFloat;

                ODetalhe.IsentoNaoTributados := qritens.fieldbyname('C115D_ISENTOS_ICMS').AsFloat;

                ODetalhe.OutrosValores := qritens.fieldbyname('C115D_OUTROS_ICMS').AsFloat;

                ODetalhe.AnoMesApuracao := FormatDateTime('yymm',qrnotafiscal.fieldbyname('c115_emissao').asdatetime); // AAMM
                OMestre.Detalhes.Add(ODetalhe);

                qritens.Next;
              end;

            Mestre.Add(OMestre);

            if TamanhoString(qrnotafiscal.fieldbyname('c115_md5').AsString)=0 then
              begin
                chavemd5:=Convenio115.Mestre[0].AutenticacaoDocumentoFiscal;

                qrnotafiscal.Edit;
                qrnotafiscal.fieldbyname('c115_md5').AsString:=chavemd5;
                qrnotafiscal.Post;
                qrnotafiscal.CommitUpdates;
              end;

            N:=N+1;
          end;
      end;

    qrnotafiscal.Next;
  end;

Convenio115.Gerar;
 

Imagem_do_Erro_Validador_300e.png

Link to comment
Share on other sites

  • Daniel Simoes changed the title to Convênio 115/03 - Erro na validação dos dados
  • Administradores

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Bom dia.

Pelo visto falta  caractere no arquivo.

Att.

  • Like 1
Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link to comment
Share on other sites

Sim, eu entendi isto também.

Porém este tipo de arquivo que o convênio gera é complicadissimo pois é uma compactação de arquivos diferente dos compactadores padrão, ou seja, ao meu ver é quase impossível ler o conteudo gerado pelo componente.

Eu já analisei o meu código e revisei diversas vezes e não conseguiu encontrar a razão.

Link to comment
Share on other sites

  • Consultores
45 minutos atrás, Juliano Otaviano Barreto disse:

Sim, eu entendi isto também.

Porém este tipo de arquivo que o convênio gera é complicadissimo pois é uma compactação de arquivos diferente dos compactadores padrão, ou seja, ao meu ver é quase impossível ler o conteudo gerado pelo componente. 

Eu já analisei o meu código e revisei diversas vezes e não conseguiu encontrar a razão.

A princípio tinha achado que poderia ser uma desatualização do componente. Mas olhando o manual do arquivo e o código, eu não encontrei nada que aparentemente geraria essa diferença apontada pelo validador.

Poderia por favor me mandar o arquivo que você está tentando validar?

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • Consultores
3 horas atrás, Juliano Otaviano Barreto disse:

É um arquivo ASCII. Basta abrir no Notepad++, Visual Studio Code, bloco de notas, ou qualquer editor de texto.

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • Consultores
  • Solution

O arquivo destinatário ("MG22843710000116211  1905N01D.001"), parece que está incompleto mesmo. Veja o conteúdo:

66259110000261ISENTO        00000000                           00                                           00360               38930000                                                           12                        20190509211  000000001     929E54F4C44D3857748F1E529498E44E

Não tem dados de razão social, endereço, código de município, etc...

Você precisa verificar se no seu banco de dados esses dados existem e depois se estão sendo informados ao componente.

Uma coisa que notei agora no seu código é que você está usando funções para colocar espaços a direita. Como aqui:

5 horas atrás, Juliano Otaviano Barreto disse:

while not qrnotafiscal.eof do
  begin
    if (qrnotafiscal.FieldByName('c115_emissao').AsDate>Periodo1) and (qrnotafiscal.FieldByName('c115_emissao').AsDate<Periodo2) then
      begin
        with Convenio115 do
          begin
            OMestre := TACBrConvenio115Mestre.Create;
            OMestre.Destinatario.CnpjCpf := EspacosDireita(sonumero(qrcliente.fieldbyname('doc1').AsString),14);
            OMestre.Destinatario.InscricaoEstadual := EspacosDireita(sonumero(qrcliente.fieldbyname('doc2').AsString),14);
            OMestre.Destinatario.RazaoSocial := EspacosDireita(qrcliente.fieldbyname('razaosocial').AsString,35);

Não é necessário fazer isso. O componente já faz os tratamentos de tamanhos de campos na hora de gerar os arquivos.

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • Este tópico foi criado há 1075 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.