Ir para conteúdo
  • Cadastre-se

wagner_fix

Membros
  • Total de ítens

    177
  • Registro em

  • Última visita

Posts postados por wagner_fix

  1. Bom dia pessoal tudo bem?

    Pesquisei aqui no fórum e não achei nada a respeito.

    Semana passada um cliente meu me questionou quando um caminhão quebra no meio do caminho, ele tem que enviar outro caminhão para terminar a entrega. Hoje no meu sistema tem que encerrar o MDF-e atual (com o local de onde parou) e fazer um novo MDF-e com os novos dados do caminhão.

    E segundo ele, um amigo transportador que não usa o meu sistema, disse que no sistema dele, ele encerra informando o dado do outro caminhão (fiquei bem confuso). Tentei entender e ele disse que é possível colocar outros dados de caminhão mas sem precisar encerrar o mdf-e.

    Dei uma boa pesquisada no google, acbr e o próprio manual do MDF-e diz que existe apenas esses eventos: Cancelamento / Encerramento / Inclusão de Condutor.

    Existe alguma outra forma de substituir o caminhão em precisar encerrar?

    Dessa forma que ele está fazendo (encerrando o mdf-e e fazendo um novo com os dados do caminhão substituto está correto?)

    Desde já agradeço a atenção de todos.

    Wagner

  2. Boa tarde,

    Eu faço assim!

     

        PathMensal                                     := ACBrCTe1.Configuracoes.Arquivos.GetPathCTe(StrToDate(txtEmissao.Text));
        ACBrCTe1.Configuracoes.Arquivos.PathSalvar       := PathMensal;
        ACBrCTe1.DACTe.PathPDF                           := PathMensal;
        ACBrCTe1.Configuracoes.Geral.Salvar              := True;
     

    Grato,

    Wagner

  3. Italo bom dia...

    Explico: As vezes (não é todos meus clientes), ele vai enviar o CT-e para o sefaz ele envia, mas não retorna o XML com o protocolo e da Timeout.

    O que acontece no meu sistema? Quando ele envia e me da o retorno de sucesso... Eu atualizo o meu banco de dados falando que foi enviado com protocolo, chave e etc...

    Mas quando da timeout (sem me retornar o xml atualizado do sefaz), o meu banco de dados não atualiza e ele fica pronto para enviar novamente, ai quando o usuário vai tentar enviar novamente (nesse momento ele gera um novo XML) e quando retorna o status de cte duplicado e eu tento corrigir pelo o consultar ele fala que o DigestValue está diferente.

    Consegui explicar?

    Grato,

    Wagner

  4. Italo realmente foi isso que aconteceu... 

    Então no caso se o sistema fizer uma nova tentativa de envio para ele checar o status (ele vai gerar um novo XML).

    O LoadFromFile e Consultar não vai funcionar né?

    Grato,

    Wagner

    • Curtir 1
  5. Bom dia a todos eu estou com o mesmo problema...

    E alguns minutos atrás recebi mais um e-mail de cliente falando que o contador reclamou de xml sem o número de protocolo...

    Eu segui a dica do Italo para fazer manualmente, funcionou perfeitamente aqui

     AbrirCte.Title      := 'Selecione o CTe';
     AbrirCte.DefaultExt := '*-cte.xml';
     AbrirCte.Filter     := 'Arquivos CTe (*-cte.xml)|*-cte.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
     AbrirCte.InitialDir := PathMensal;

     if AbrirCte.Execute then begin
       ACBrCTe1.Conhecimentos.Clear;
       ACBrCTe1.Conhecimentos.LoadFromFile(AbrirCte.FileName);
       ACBrCTe1.Consultar;
     end;
     

    Só que se eu quiser que o meu sistema detecta que está com o status 204 duplicidade e peço para o sistema arrumar sozinho ele dá um erro DigestValue do documento número do cte não confere.

    Alguém pode me dar uma dica como eu arrumo isso?

    Grato,

    Wagner

  6. Bom dia Italo, obrigado pela resposta...

    Pois é, os cliente colocam um padrão na empresa e para não perdemos temos que dar novas opções...

    Tive que fazer isso via programação fora do componente...

    Abraço,

    Wagner

    • Curtir 1
  7. Pessoal boa noite.

    Hoje uma cliente me ligou pedindo uma alteração no sistema que o cliente dela está exigindo receber o XML e PDF apenas com o número do ct-e e não com a chave complera.

    Por exemplo: se fosse o cte 10500... O arquivo tem que ser 10500.xml ew 10500.pdf

    Procurei no fórum e não encontrei nada, o componente me da essa possibilidade?

    Grato,

    Wagner

  8. Olá pessoal boa tarde tudo bem?

    Estou desde ontem a tarde tentando resolver um problema na minha cliente. Ela tinha um certificado A3 venceu e ela comprou o A1 da Valid.

    Eu instalei via site conforme contava no manual, pronto de lá pra cá não consigo mais emitir NF-e, sempre fica dando o mesmo erro: Falha ao obtrer a Chave Privada do Certificado para Assinatura.

    Pesquisei em vários fóruns, principalmente aqui e não encontrei nada, só um tópico com o mesmo assunto mas eu fiz os procedimentos e não funcionou.

    Passos que já fiz: Instalei toda a cadeia de certificado, instalei todas as atualizações do windows, java atualizado, tudo atualizado.

    Alguém tem mais alguma dica?

    Grato,

    Wagner

  9. Bom dia @andremelim tenho um exemplo aqui que eu uso no meu sistema... 

    É só adaptar pelo o que você precisa...  (Nesse meu caso estou pegando campos de uma NF-e, mas para o CT-e a lógica é a mesma só mudar os nomes dos campos)

    var
        vXMLDoc: TXMLDocument;
        NodePrim, NodePai, NodePriEmi, NodePaiEmi, NodeCabecalho, NodePrim2,
        NodePai2, NodePai3, Nocab2, NodePrim3, NodePai4, NodePai5, Nocab3,
        NodePrim4, NodePai6, NodePai7, NodePai8, NodePai9, Nocab4 : IXMLNode;
        AuxChave, AuxData, AuxPesoB, AuxVNF : String;
        AuxPeso : Boolean;
    begin
     vXMLDoc             := TXMLDocument.Create(self);
     AbrirXML.Title      := 'Selecione o XML';
     AbrirXML.DefaultExt := '*.xml';
     AbrirXML.Filter     := 'Arquivos XML (*.xml)|*.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
     if AbrirXML.Execute then begin
       if (Application.MessageBox('Deseja Pegar o Peso Bruto? (Sim = Peso Bruto - Não = Peso Líquido)','Pergunta',MB_YESNO+MB_ICONQUESTION) = IDNO) then
         AuxPeso := False
       else
         AuxPeso := True;
       vXMLDoc.LoadFromFile(AbrirXML.FileName); //Le Arquivo Recibo XML');
       vXMLDoc.Active     := True;
       NodePrim           := vXMLDoc.DocumentElement.ChildNodes.FindNode('protNFe');
       NodePai            := NodePrim.ChildNodes.FindNode('infProt');
       NodePriEmi         := vXMLDoc.DocumentElement.ChildNodes.FindNode('NFe');
       NodePaiEmi         := NodePriEmi.ChildNodes.FindNode('infNFe');
       NodeCabecalho      := NodePaiEmi.ChildNodes['ide'];
       NodePrim2          := vXMLDoc.DocumentElement.ChildNodes.FindNode('NFe');
       NodePai2           := NodePrim2.ChildNodes.FindNode('infNFe');
       NodePai3           := NodePai2.ChildNodes.FindNode('transp');
       Nocab2             := NodePai3.ChildNodes['vol'];
       NodePrim3          := vXMLDoc.DocumentElement.ChildNodes.FindNode('NFe');
       NodePai4           := NodePrim3.ChildNodes.FindNode('infNFe');
       NodePai5           := NodePai4.ChildNodes.FindNode('total');
       Nocab3             := NodePai5.ChildNodes['ICMSTot'];
       NodePrim4          := vXMLDoc.DocumentElement.ChildNodes.FindNode('NFe');
       NodePai6           := NodePrim4.ChildNodes.FindNode('infNFe');
       NodePai7           := NodePai6.ChildNodes.FindNode('transp');
       Nocab4             := NodePai7.ChildNodes.FindNode('vol');
    
       AuxChave           := NodePai.ChildNodes['chNFe'].text;
       AuxChave           := FormataChave(AuxChave);
       txtChave.Text      := Trim(AuxChave);
       txtChaveExit(Self);
       AuxData            := NodeCabecalho.ChildNodes['dhEmi'].text;
       txtEmissao.Text    := Copy(AuxData,9,2)+'/'+Copy(AuxData,6,2)+'/'+Copy(AuxData,1,4);
       if (AuxPeso = True) then
         AuxPesoB         := NoCab4.ChildNodes['pesoB'].text
       else
         AuxPesoB         := NoCab4.ChildNodes['pesoL'].text;
       AuxPesoB           := StringReplace(AuxPesoB, '.', ',', [rfReplaceAll]);
       txtPBruto.Text     := FormatFloat('###,##0.000', StringFloat(AuxPesoB));
       txtPCalc.Text      := Trim(txtPBruto.Text);
       AuxVNF             := Nocab3.ChildNodes['vNF'].text;
       AuxVNF             := StringReplace(AuxVNF, '.', ',', [rfReplaceAll]);
       txtVlNota.Text     := FormatFloat('###,##0.00', StringFloat(AuxVNF));
       txtVolume.Text     := FormatFloat('###,##0.000', StringFloat(Nocab4.ChildNodes['qVol'].text));
       txtDtPrev.SetFocus;

     

  10. Olá pessoal boa tarde tudo bem?

    Sexta 14/12 meu cliente me questionou sobre o damdfe que não está saindo o número do CIOT e os dados do vale pedágio, mas eu tenho passado os dados para alimentar o componente.

    Percebi que o campo do CIOT nem sai no layout do Damdfe, o vale pedágio chega a sair, mas não mostra os dados. (imagem em anexo).

    E o meu cliente está dizendo que os postos fiscais estão começando a exigir esses dados, atualizei o componente e continua da mesma forma, será que tenho feito algo de errado?

    Como estou alimentando o componente.

       {======== Dados do CIOT ===========================================}
       with DM.SqlAux5 do begin
         LimpaSQL(DM.SqlAux5);
         SQL.Add('SELECT * FROM CTE68 WHERE (CODC = :xCODC) ORDER BY ID');
         Parameters.ParamByName('xCODC').Value := sNrMDFe;
         Open;
         First;
       end;
       while not DM.SqlAux5.eof do begin
         with rodo.infANTT.infCIOT.Add do begin
           CIOT     := Trim(DM.SqlAux5.FieldByName('CIOT').AsString);
           CNPJCPF  := RetiraCarac(Trim(DM.SqlAux5.FieldByName('DOC').AsString));
         end;
         DM.SqlAux5.Next;
       end;

       {======== Dados dos Vale Pedagios =========================================}
       with DM.SqlAux5 do begin
         LimpaSQL(DM.SqlAux5);
         SQL.Add('SELECT * FROM CTE69 WHERE (CODC = :xCODC) ORDER BY ID');
         Parameters.ParamByName('xCODC').Value := StrToInt(sNrMDFe);
         Open;
         First;
       end;
       while not DM.SqlAux5.eof do begin
         with rodo.valePed.disp.Add do begin
           CNPJForn  := RetiraCarac(Trim(DM.SqlAux5.FieldByName('CNPJF').AsString));
           nCompra   := Trim(DM.SqlAux5.FieldByName('NUMC').AsString);
           vValePed  := DM.SqlAux5.FieldByName('VALOR').AsFloat;
           if (DM.SqlAux5.FieldByName('TIPO').AsInteger = 0) then
             CNPJPg    := RetiraCarac(Trim(DM.SqlAux5.FieldByName('CNPJR').AsString));
           if (DM.SqlAux5.FieldByName('TIPO').AsInteger = 1) then
             CNPJPg    := RetiraCarac(Trim(DM.SqlAux5.FieldByName('CNPJR').AsString));
         end;
         DM.SqlAux5.Next
       end;


    Delphi XE8
    Relatório Fortes Report.

    Agradeço dese já,

    Wagner

     

    Relatorio.JPG

  11. Achei o problema.

    Essa linha: Ide.cMDF estava comentada.

    Alterei o meu sistema para ela receber o número do mdfe e deu tudo certo.

    Obrigado pessoal pela ajuda.

    Grato,

    Wagner

    • Curtir 2
  12. @Italo Jurisato Junior obrigado pela resposta.

    Eu acho que não fui muito claro na minha pergunta.

    Vou tentar explicar um pouco a mais.

    Na verdade eu estou me referenciando ao número da chave aquele número de 44 dígitos.

    CT-e: Hoje no meu ct-e, na hora de tentar emitir. por exemplo coloquei o número do cnpj do destinatário incorreto, ele já gerou um XML para tentar emitir para o sefaz. Quando eu tento emitir novamente ele usa o mesmo número de chave.

    MDF-e: Vou tentar emitir, ele também gera um XML com a chave só que já erro de percurso por exemplo. Vou lá corrijo o percurso e tento emitir novamente. Quando eu vou tentar emitir novamente o meu programa gera uma nova chave e um novo XML. 

    Gostaria que ele não mudasse o número da chave para cada tentativa de emissão do MDF-e.

    Será que eu consegui explicar agora?

    Obrigado,

    Wagner

  13. Bom dia pessoal tudo bem? Desculpe se esse tópico for repetido mas na pesquisa eu não achei nada.

    No meu sistema quando tente emitir um MDF-e por exemplo: Quando da algum erro de emissão, e quando eu vou tentar novamente ele gera um novo número de XML, e isso não ocorre com o meu ct-e. 

    É possível evitar isso? Deixar um número sempre fixo que nem o ct-e?

    Grato,

    Wagner

×
×
  • 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.