Ir para conteúdo
  • Cadastre-se

Afonso Junior

Membros
  • Total de ítens

    34
  • Registro em

  • Última visita

Últimos Visitantes

132 visualizações

Afonso Junior's Achievements

Explorer

Explorer (4/14)

  • Conversation Starter
  • Collaborator Rare
  • First Post
  • Week One Done
  • One Month Later

Recent Badges

3

Reputação

2

Community Answers

  1. Vê se te ajuda esse é meu código: procedure TDMGeral.EconfEnviar(id:String); var voACBrNFe: TACBrNFe; iLote, cStat: Integer; vStat, xMotivo, vSucess, vErro, vid, vWeb, vProt :String; vbOK, vResult :boolean; begin qryEconf.Close; qryEconf.Params.ParamByName('ECONF_ID').AsString := id; qryEconf.Open; if qryEconf.RecordCount > 0 then begin voACBrNFe := TACBrNFe.Create(Self); LerIniAcbr(voACBrNFe); if qryEconf.FieldByName('MOVI_MODELO_NOTA_FISCAL').AsString = '65' then begin voACBrNFe.Configuracoes.Geral.VersaoDF := ve400; voACBrNFe.Configuracoes.Geral.ModeloDF := moNFCe; end; with voACBrNFe.EventoNFe.Evento.New do begin infEvento.tpAmb := voACBrNFe.Configuracoes.WebServices.Ambiente; infEvento.CNPJ := v_UnidadeEmpresarial.cnpj; infEvento.id := qryEconf.FieldByName('id').AsString; infEvento.nSeqEvento := qryEconf.FieldByName('nSeqEvento').AsInteger; infEvento.chNFe := qryEconf.FieldByName('chNFe').AsString; infEvento.dhEvento := qryEconf.FieldByName('dhEvento').AsDateTime; infEvento.cOrgao := qryEconf.FieldByName('cOrgao').AsInteger; infEvento.tpEvento := teConcFinanceira; infEvento.detEvento.verAplic := '4.7.0.0'; with InfEvento.detEvento.detPag.New do begin indPag := StrToIndpagEX(qryEconf.FieldByName('indPag').AsString); tPag := StrToFormaPagamento(vbOK,qryEconf.FieldByName('tPag').AsString); xPag := qryEconf.FieldByName('xPag').AsString; vPag := qryEconf.FieldByName('vPag').AsCurrency; dPag := qryEconf.FieldByName('dPag').AsDateTime; CNPJPag := qryEconf.FieldByName('CNPJPag').AsString; UFPag := qryEconf.FieldByName('UFPag').AsString; CNPJIF := qryEconf.FieldByName('CNPJIF').AsString; tBand := StrToBandeiraCartao(vbOK,qryEconf.FieldByName('tBand').AsString); cAut := qryEconf.FieldByName('cAut').AsString; CNPJReceb := qryEconf.FieldByName('CNPJReceb').AsString; UFReceb := qryEconf.FieldByName('UFReceb').AsString; end; end; iLote := qryEconf.FieldByName('MOVI_NR_NOTA_FISCAL').AsInteger; try voACBrNFe.EnviarEvento(iLote); except on E:exception do begin vErro := E.Message; vid := qryEconf.FieldByName('id').AsString; vErro := vErro+'|'+voACBrNFe.WebServices.EnvEvento.URL+'|'; Logger('Econf|Erro Envio|'+vid+'|'+vErro+'|'); Logger('Econf|Erro Envio|'+vid+'|'+vErro+'|'); end; end; if vErro = '' then begin cStat := voACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento[0].RetInfEvento.cStat; vStat := DescricaoCStatECONF(cStat); xMotivo := voACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento[0].RetInfEvento.xMotivo+'|'+voACBrNFe.WebServices.EnvEvento.URL+'|'; vProt := voACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento[0].RetInfEvento.nProt; vSucess := EnvioEConfComSucesso(cStat); end else begin cStat := 0; vStat := ''; xMotivo := ''; vProt := ''; vSucess := 'Nao'; end; EconfSalvar(id, vSucess, IntToStr(cStat), vStat, xMotivo, vErro, vProt); end else Logger('Econf|Nenhum reguistro encontrado |'+id+'|'); end;
  2. Essa é a questão, em GO na base de homologação está dando erro, e uns erros sem pé nem cabeça. Mas no ambiente de produção os clientes estão enviando. <envEvento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00"> <idLote>7001101</idLote> <evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00"> <infEvento Id="ID1107505225111420509100010665033007001101100059804901"> <cOrgao>52</cOrgao> <tpAmb>2</tpAmb> <CNPJ>14205091000106</CNPJ> <chNFe>52251114205091000106650330070011011000598049</chNFe> <dhEvento>2026-03-04T08:14:18-03:00</dhEvento> <tpEvento>110750</tpEvento> <nSeqEvento>1</nSeqEvento> <verEvento>1.00</verEvento> <detEvento versao="1.00"> <descEvento>ECONF</descEvento> <verAplic>4.7.0.0</verAplic> <detPag> <indPag>1</indPag> <tPag>03</tPag> <xPag>CARTAO CREDITO</xPag> <vPag>117.55</vPag> <dPag>2025-11-24</dPag> <CNPJPag>14205091000106</CNPJPag> <UFPag>GO</UFPag> <CNPJIF>04823603000144</CNPJIF> <tBand>99</tBand> <cAut>2534523452345</cAut> <CNPJReceb>14205091000106</CNPJReceb> <UFReceb>GO</UFReceb> </detPag> </detEvento> </infEvento> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <Reference URI="#ID1107505225111420509100010665033007001101100059804901"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>Ll9z+f3RTs8RagX6hBEzvUZp2wM=</DigestValue> </Reference> </SignedInfo> <SignatureValue>g3WJedIH8kqlmEvm/kJsWBpZQjTphYqP056AVjfJBthOJGpcFzp0eKU1+Sd/0psXQySSesiABMxY3vM6JIAYCiYXOHsM9AvgLAw6cHPykbwl0xN0uwwNGEHjdcL/AcVZkzdhWasy9Oav8s7hcz4Crc+BfjHqbdw+Ly5IJaa/CvmzCB85/tPn79Q+bDZTgddPkLZAfuhUYbL2kU+1yHuIZ8JNkwkLxYPjQsPb+w3IoPlQtlOPE5rjh7G+D2nfMtlACqi8F7ktkO3prTkiT/mLNhFvDbNCoVYjGARXUcblWVqhHWJlRQT219vrGIMRTnHa2EEgfdsqETYkxo08whWPMA==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>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</X509Certificate> </X509Data> </KeyInfo> </Signature> </evento> </envEvento>
  3. Estou fazendo dessa forma a questão do cOrgao lembrando que modelo 55 é NFE e modelo 65 NFCE. case when ME.MOVI_MODELO_NOTA_FISCAL = '55' then 92 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'AM' then 13 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'BA' then 29 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'CE' then 23 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'GO' then 52 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'MA' then 21 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'MG' then 31 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'MS' then 50 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'MT' then 51 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'PE' then 26 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'PR' then 41 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'RS' then 43 when ME.MOVI_MODELO_NOTA_FISCAL = '65' and VP.UFPAG = 'SP' then 35 else 92 end cOrgao,
  4. Após a seguinte alteração sugerida não tive mais reclamações mas como é um caso esporádico estou aguardando para saber se isso resolveu em definitivo. Código sugerido: NF.ACBrNFe.NotasFiscais.Clear; NF.ACBrNFe.NotasFiscais.LoadFromString(vsXMLDadosBinario);
  5. "porque maquina virtual para uso de sistema? " O cliente fez dessa forma, infelizmente isso foge do meu controle, o cliente instala o sistema na maquina que ele quiser, nesse caso ele quis criar uma maquina virtual e instalar o programa de envio de nfe nela. Mas ocorreu também em outras máquinas que não eram virtuais. "sugestão é fazer log dentro do gerarxml pra tu pegar" Vou ver como posso implementar isso. Obrigado.
  6. Estou com 5 clientes que reclamaram, mas todos bem esporádicos os casos, só tem um cliente que ocorre com mais frequência uma por dia (mas emite 100/200 NFE dia) esse usa maquina virtual o que é diferente dele para os demais. Mas tenho clientes que emite 300 NFE por dia e ocorre um caso a cada 3 dias até menos.
  7. Não consigo simular para debugar, pq isso não ocorre todas as vezes, o que dificulta a solução. E um universo de 100 NFE ocorre em 1 . Por isso coloquei os loggers capturando os xmls pq não conseguia entender o que estava acontecendo.
  8. Para melhor entendimento. Dois XML um antes e o outro depois capturado pelo logger:xml-Errado.xmlxml-Correto.xml Um errado com os itens dos produtos duplicados e o outro correto. é isso que acontece apos o codigo: NF.ACBrNFe.NotasFiscais.Items[0].GerarXML;
  9. "está no delphi preenche o objeto NFe e manda assinar e enviar." Sim isso é bem melhor trabalho dessa forma. Isso eu só faço de carregar um XML pronto quando envio o XML para o SEFAZ e no meio do caminho ocorre um time out. Então como já gerei ele guardei no banco não sei se o SEFAZ já aceitou ou não, pego o mesmo XML carrego consulto e se estiver tudo OK eu mando imprimir. Agora se tiver uma outra forma de fazer e puder me explicar eu lhe agradeço.
  10. Então devo alterar para: NF.ACBrNFe.NotasFiscais.Clear; NF.ACBrNFe.NotasFiscais.LoadFromString(vsXMLDadosBinario); E remover a linha de codigo: NF.ACBrNFe.NotasFiscais.Items[0].GerarXML; é isso?
  11. vou fazer essa alteração. Mas eu pego o XML logo após passar o valor e está normal. Codigo abaixo: NF.ACBrNFe.NotasFiscais.Items[0].XML := vsXMLDadoBinario; logger(NF.ACBrNFe.NotasFiscais.Items[0].XML); faço isso em vários pontos do código e nesse ponto que duplica. logger(NF.ACBrNFe.NotasFiscais.Items[0].XML); // XML NORMAL NF.ACBrNFe.NotasFiscais.Items[0].GerarXML; logger(NF.ACBrNFe.NotasFiscais.Items[0].XML); // XML DUPLICADO NF.ACBrNFe.NotasFiscais.Items[0].XML := vsXMLDadoBinario; logger(NF.ACBrNFe.NotasFiscais.Items[0].XML); // XML NORMAL NF.ACBrNFe.NotasFiscais.Items[0].XML := vsXMLDadoBinario; logger(NF.ACBrNFe.NotasFiscais.Items[0].XML); // XML NORMAL logger(NF.ACBrNFe.NotasFiscais.Items[0].XML); // XML NORMAL NF.ACBrNFe.NotasFiscais.Items[0].GerarXML; logger(NF.ACBrNFe.NotasFiscais.Items[0].XML); // XML DUPLICADO
  12. Coloquei vários logs e sei o momento exato que duplica. NF.ACBrNFe.NotasFiscais.Items[0].XML := vsXMLDadoBinario; // Pego o xml já montado e coloco nessa variavel vsXMLDadoBinario NF.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.tpAmb := NF.ACBrNFe.WebServices.Consulta.protNFe.tpAmb; NF.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.verAplic := NF.ACBrNFe.WebServices.Consulta.protNFe.verAplic; NF.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.nProt := NF.ACBrNFe.WebServices.Consulta.protNFe.nProt; NF.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.digVal := NF.ACBrNFe.WebServices.Consulta.protNFe.digVal; // nf.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.cStat := nf.ACBrNFe.WebServices.Consulta.protNFe.cStat; NF.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.xMotivo := NF.ACBrNFe.WebServices.Consulta.protNFe.xMotivo; NF.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.cStat := NF.ACBrNFe.WebServices.Consulta.protNFe.cStat; NF.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.chNFe := NF.ACBrNFe.WebServices.Consulta.protNFe.chNFe; // nf.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.nProt := nf.ACBrNFe.WebServices.Consulta.protNFe.nProt; NF.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.dhRecbto := NF.ACBrNFe.WebServices.Consulta.protNFe.dhRecbto; if NF.ACBrNFe.NotasFiscais.Items[0].NFe.signature.DigestValue <> NF.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.digVal then NF.ACBrNFe.NotasFiscais.Items[0].NFe.signature.DigestValue := NF.ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.digVal ; // Nesse momento duplica os items.... NF.ACBrNFe.NotasFiscais.Items[0].GerarXML; Estou fazendo algo errado? NF.ACBrNFe.NotasFiscais.Items[0].GerarXML; // Essa linha faz duplicar os itens NF.ACBrNFe.NotasFiscais.Items[0].GerarXML; // Essa linha faz duplicar os itens
  13. Obrigado pela resposta, eu entrei em contato com o SEFAZ de GO estou aguardando uma resposta. Quando tiver uma resposta deles posto aqui a resposta para caso alguém passe por isso também tenha essa informação.
  14. Instalei um monte de logs para pegar os xml antes e depois. Quando monto um xml que guardo ele, então se der time out pego esse mesmo xml passo para a variável vsXMLDadoBinario e executo o comando abaixo. NF.ACBrNFe.NotasFiscais.Clear; NF.ACBrNFe.NotasFiscais.LoadFromString(vsXMLDadoBinario); NF.ACBrNFe.Configuracoes.Geral.ValidarDigest := ValidarDigest(); Coloquei um log antes para capturar o XML e ter certeza que estou enviando corretamente, sim ele está correto. Mas o XML que vem depois vem com os itens duplicados. Ai vem meu questionamento o XML que monta após a execução do comando vem do SEFAZ ou é montado pelo componente?
  15. Eu faço um por produto, mas o o xml vai correto, tanto que a NFE é enviada e validada. Consulto ela no SEFAZ está correta é só o xml que retorna após executar o envio que vem com os itens duplicados. Isso é esporádico, em um universo de 100 NFE acontece um caso ou dois.
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...