wagner_fix
Membros-
Total de ítens
218 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que wagner_fix postou
-
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
-
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
-
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
-
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
-
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
-
Liguei no suporte e ele resolveu. Obrigado desde já pela ajuda. Grato, Wagner
-
Fiz tudo isso e não funcionou, coloquei esse certificado na minha máquina e foi de primeira. Não sei mais o que eu faço com a maquina com problema. Grato, Wagner
-
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
-
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;
- 3 replies
-
- importação
- xml
-
(e 1 mais)
Tags:
-
Boa tarde @Juliomar Marchetti obrigado pela resposta... Segue em anexo o XML. Grato, Wagner 35181208220962000168580010000002131568585336-mdfe.pdf
-
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
-
@Italo Jurisato Junior como sempre muito obrigado pela resposta e me mostrar o meu erro. Realmente estou fazendo da forma que você citou acima... Vou alterar esse cMDF e cCT agora mesmo. Abraço, Wagner
-
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
-
@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
-
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
-
Coloquei zeros, para não expor o meu CPF.... Grato, Wagner
-
Fiz isso 2 vezes, quando abro o form e quando clico no botão para procurar o arquivo .ret. Grato
-
@Juliana Tamizou obrigado pela resposta... Já tentei colocar como True ou False e continua com o mesmo erro... E como disse acima, os meus boletos são feito no meu nome de pessoa física de cpf não emito pelo o cnpj... Grato, Wagner
-
Pessoal boa noite, já faz uns 8 meses que tenho gerado arquivo remessa C400 do itaú para enviar para os meus clientes e até hoje sem problemas... Mas para facilitar minha vida por falta de tempo queria ler o retorno para dar baixa automática, mas não estou conseguindo alguém poderia me ajudar? Antes de dar o comando eu preencho o componente assim: procedure TForm020BoletoRetorno.ConfiguraBoleto; begin ACBrBoleto.Cedente.Agencia := '2222'; ACBrBoleto.Cedente.AgenciaDigito := '0'; ACBrBoleto.Cedente.CaracTitulo := tcSimples; ACBrBoleto.Cedente.ResponEmissao := tbCliEmite; ACBrBoleto.Cedente.TipoCarteira := tctEletronica; ACBrBoleto.Cedente.TipoInscricao := pFisica; ACBrBoleto.Cedente.CodigoCedente := ''; ACBrBoleto.Cedente.Conta := '19999'; ACBrBoleto.Cedente.ContaDigito := '7'; ACBrBoleto.Cedente.Nome := Trim('MEU NOME COMPLETO'); ACBrBoleto.Cedente.CNPJCPF := '000.000.000-00'; end; E para fazer a leitura tenho feito assim... if AbrirRet.Execute then begin ConfiguraBoleto; ACBrBoleto.NomeArqRetorno := AbrirRet.FileName; ACBrBoleto.LerRetorno; for i := 0 to ACBrBoleto.ListadeBoletos.Count-1 do begin if ACBrBoleto.ListadeBoletos.Objects[i].ValorRecebido > 0 then begin if (nRow > 1) then sgBoleto.Rowcount := sgBoleto.Rowcount + 1; sgBoleto.Cells[0,nRow] := Trim('Sim'); sgBoleto.Cells[1,nRow] := DateToStr(ACBrBoleto.ListadeBoletos.Objects[i].DataBaixa); sgBoleto.Cells[2,nRow] := FloatToStr(ACBrBoleto.ListadeBoletos.Objects[i].ValorRecebido); sgBoleto.Cells[3,nRow] := ACBrBoleto.ListadeBoletos.Objects[i].NossoNumero; DM.SqlAux1.Next; sgBoleto.Refresh; end; Close; end; end; Ao ler o retorno, da a seguinte mensagem: CNPJ inválido... Ou seja, já informei para o meu componente que sou Pessoa Física, mas não tem jeito. Alguém tem uma luz? Grato, Wagner
-
Boa tarde, meu cliente foi multado sexta por esse mesmo motivo. Alterei o meu sistema para ele jogar os dados do seguro na observação. Abraço, Wagner (engraçado: No layout que o sefaz determina não tem os dados do seguro, e o pessoal multa o caminhão por não ter as informações. Típico brasil, ferrar o trabalhador!)
-
Obrigado @Fábio Eduardo de Souza irei usar essas configurações com o meu cliente... Muito obrigado, Abraco, Wagner
-
@Fábio Eduardo de Souza boa noite. Estou enfrentando o mesmo problema que você... Nas configurações dos Webservices você pode informar os valores que jogou para cada componente que mencionou acima? acbr.Configuracoes.WebServices.Tentativas? acbr.Configuracoes.WebServices.IntervaloTentativas? acbr.Configuracoes.WebServices.AguardarConsultaRet? acbr.Configuracoes.WebServices.AjustaAguardaConsultaRet? Desde já agradeço, Abraço, Wagner
-
@Italo Jurisato Junior Consegui resolver o problema, Minha carta de correção sempre funcionou, como disse, semana passada parou de funcionar... Comecei a comparar novamente o código e vi que o meu código não tinha essa linha: infevento.tpEvento := teCCe; Só não entendi como sempre funcionou, Desculpem pessoal falha minha. Grato, Wagner
-
Bom dia @Italo Jurisato Junior Segue em anexo os XML. 1-ped-eve.xml 1-ped-eve-soap.xml Grato, wagner
-
Obrigado Julio... Pessoal vocês tem emitido carta de correção normalmente? Emissão SP? Grato, Wagner
