Ir para conteúdo
  • Cadastre-se

wagner_fix

Membros
  • Total de ítens

    184
  • Registro em

  • Última visita

Posts postados por wagner_fix

  1. Olá pessoal boa tarde,

    Meu cliente emitiu um ct-e incorreto, remetente no destinatário e vice e versa.

    Como tinha um MDF-e envolvido, não teve tempo de cancelar o ct-e.

    O tomador emitiu uma NF-e de desacordo, para substituir o CT-e, eu criei um ct-e de substituição, só que quando eu tento enviar. da o seguinte erro (em anexo).

    Li em vários fóruns da internet tem que primeiramente fazer um CT-e de anulação e depois de substituição.

    Mas para anular, tenho que receber uma declaração da empresa não contribuinte, que não é o caso.

    Alguém pode me ajudar com isso?

    Grato,

    Wagner

    erro 511.jpg

  2. Olá pessoal boa tarde,

    Meu cliente emitiu um ct-e incorreto, remetente no destinatário e vice e versa.

    Como tinha um MDF-e envolvido, não teve tempo de cancelar o ct-e.

    O tomador emitiu uma NF-e de desacordo, para substituir o CT-e, eu criei um ct-e de substituição, só que quando eu tento enviar. da o seguinte erro (em anexo).

    Li em vários fóruns da internet tem que primeiramente fazer um CT-e de anulação e depois de substituição.

    Mas para anular, tenho que receber uma declaração da empresa não contribuinte, que não é o caso.

    Alguém pode me ajudar com isso?

    Grato,

    Wagner

    erro 511.jpg

  3. Olá pessoal boa tarde tudo bem?

    Tenho um cliente que no dia 27/07 emitiu um ct-e com o tomador errado. Ai invés de ser o destinatário ele colocou o remetente, como era fora do estado e tinha um MDF-e não deu tempo de cancelar.

    O tomador emitiu uma NF-e com recusa de ct-e.

    O meu cliente emitiu um ct-e de anulação de valores, e agora está tentando emitiu um ct-e de substituição, só que nesse ct-e ela está colocando o tomador correto que é o destinatário.

    Só que quando vai emitir, volta um erro 738 (mensagem completa em anexo).

    A pergunta é, se ela está tentando corrigir o tomador, porque o erro diz que não pode?

    Alguém pode me explicar ou me dar alguma dica?

    Grato,

    Wagner 

    erro_cte.JPG

  4. Bom dia a todos...

    Quando precisei do CIOT o componente do ACBR ainda não estava pronto, e eu tive que desenvolver por conta própria...

    Lembro que nessa parte do PDF apanhei um pouco também.

    Acho que isso possa ajudar vocês...

    Fiz dessa forma.

    function Converter(P: TByteDynArray): string;
    var
      Buffer: AnsiString;
    begin
      SetLength(Buffer, Length(P));
      System.Move(P[0], Buffer[1], Length(P));
      Result := EncodeBase64(Buffer);
    end;

     

    var
      MStream : TMemoryStream;
      Decoder : TidDecoderMIME;
      Base64, AuxDtCIOT: string;
     

        Decoder   := TidDecoderMIME.Create(nil);
        MStream   := TMemoryStream.Create;
        Base64    := Converter(Retorno.Pdf);
        Decoder.DecodeStream(Base64,MStream);
        MStream.SaveToFile(xCamCIOT+'\'+AuxDtCIOT+'\'+TiraZeros(txtCod.Text)+'.pdf');
        FreeAndNil(Decoder);
        FreeAndNil(MStream);

     

    Grato,

    Wagner

    • Curtir 1
  5. 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

  6. 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

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

  8. 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
  9. 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

  10. 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
  11. 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

  12. 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

  13. 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;

     

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