Ir para conteúdo
  • Cadastre-se

ubaltino

Membros
  • Total de ítens

    62
  • Registro em

  • Última visita

Tudo que ubaltino postou

  1. Pedi a um contador de um cliente que verifique isto junto a SEFAZ. Goias é um pesadelo. Quando a Empresa se habilita, o usuário pede se é para Homologação ou Produção. Dependendo do ambiente que selecionou o outro não funciona. Mas pelo que sei, isto vale apenas para o inicio, apos a solicitação para NFe. Pois, na versão 1.10 consigo enviar tanto em Produção quanto em Homologação. Mas na versão 2.0 ta um pesadelo. Isto para GO. Ubaltino Faleiro
  2. Pessoal, Resolvi o problema anterior.Estava faltando o Número do Recibo. Agora, a SEFAZ me retorna isto: http://www.portalfiscal.inf.br/nfe'> 2 GO2.0 521000003941486 104 Lote processado 52 2 GO2.0 52110302275017000268550010000087671000087679 2011-03-15T12:07:59 203 Rejeição: Emissor não habilitado para emissão da NF-e Detalhe: O CNPJ em questão esta em Produção a 2 anos emitindo nota diariamente em 4 estados. Alguem já passou por isto? Ubaltino Faleiro
  3. Pessoal, To quebrando a cabeça até agora com isto. Descobri num site que tem MUITA diferença entre consultar a resposta de uma NFe pela a Chave e pelo Recibo. GO na versão 2.00 só da uma resposta coerente se for pelo recibo. Mas vamos ao meu problema atual. Envio a nota, o lote e recebido com sucesso. Depois consulto pelo recibo. A mensagem é a seguinte: http://www.portalfiscal.inf.br/nfe'> 2 GO2.0 215 Rejeição: Falha no schema XML 52 215 cvc-pattern-valid: Value '' is not facet-valid with respect to pattern '[0-9]{15}' for type 'TRec'. Não consegui identificar qual a bendita TAG que esta provocando isto. Algum saberia me dizer. Ubaltino Faleiro
  4. Acredito que no ZEOS tem como você salvar no HD e depois ler. Mais ou menos assim: Q_QueryZEOS_Campo_LOGO.SaveToFile('Caminho_Nome_Arquivo.bmp'). E no Logo: ACBrNfE1.DANFE.LoadFromStream.... Não funciona assim? Outra alteranitava e carregar o Logo num MemoryStream e usar o AssingTo. Ubaltino Faleiro
  5. Walter, Também uso o FireBird. 1 - Na Tabela de NFe, defini um campo para armazenar o XML da NFe assim: XML_NFE BLOB SUB_TYPE 1 SEGMENT SIZE 80 Na verdade é um campo Memo. 2 – No Sistema eu tenho uma rotina que gera, assina e valida o XML, usando o ACBrNFe. Mais ou menos assim: 2.1 - Eu gero assim: // Inicializa ACBrNFe.NotasFiscais.Clear; // Monta e Envia try with ACBrNFe.NotasFiscais.Add.NFe do begin // Lote begin // NFe (Dados da Nota Fiscal eletrônica) begin // Identificação infNFe.ID := IntToStr(Numero_NFe); Ide.cUF := GetCodigoIBGEEstado(Q_DivisoesESTADO.Value); Ide.cNF := Numero_NFe; … No final da Geração, eu salvo o XML (na pasta definida do ACBrNFe) e pego a Chave. Assim: ACBrNFe.NotasFiscais.Items[0].SaveToFile; //(CaminhoNomeXML); ChaveNFe := ACBrNFe.NotasFiscais.Items[0].NFe.infNFe.ID; if UpperCase(Copy(ChaveNFe,1,3)) = 'NFE' then ChaveNFe := Copy(ChaveNFe,4,Length(ChaveNFe)); 2.2 – Depois eu Assino assim: try ACBrNFe.NotasFiscais.Assinar; except on E:Exception do begin MensagemErro := gAlocaSalvaPChar('Na Assinatura da NFe!'+#13#10+ 'Verifique se o Certificado Carregado na Divisão'+#13#10+ 'e Informado a Senha!'+#13#10+ 'Detalhes do Erro: "'+E.Message+'"', MensagemErro); Exit; end; end; 2.3 – Valido assim: try ACBrNFe.NotasFiscais.Valida; except on E:Exception do begin MensagemErro := gAlocaSalvaPChar(E.Message,MensagemErro); Exit; end; end; 3 – Salvo o XML no BD assim, considerando que Q_NotaFiscalXML_NFE é o campo memo que criei como mencionado acima: // Salva XML no BD (Salva, mesmo ainda não tendo enviado, para o caso se Contigencia) try Q_NotaFiscal.Edit; Q_NotaFiscalXML_NFE.Value := ACBrNFe.NotasFiscais.Items[0].XML; // XML da Nota Assinada sem Envelope if Q_NotaFiscalCHAVE_NFE.IsNull then Q_NotaFiscalCHAVE_NFE.Value := ChaveNFe; if (Q_NotaFiscalFORMA_EMISSAO_NFE.IsNull) then Q_NotaFiscalFORMA_EMISSAO_NFE.Value := Q_DivisoesFORMA_EMISSAO_NFE.Value; Q_NotaFiscal.Post; except on E:Exception do begin Q_NotaFiscal.Cancel; MensagemErro := gAlocaSalvaPChar('No Armazenamento do XML da NFe no Banco de Dados!'+#13#10+ 'O Erro foi o Seguinte:'+#13#10+ '"'+E.Message+'"', MensagemErro); Exit; end; end; 4 – Em seguida eu Envio para o WS, assim: // Envia para WS try ACBrNFe.WebServices.Enviar.Lote := IntToStr(NumeroLote); //NFe2 if (Q_DivisoesFORMA_EMISSAO_NFE.Value = cFormaEmissaoNFeContigenciaDPEC) then ResultadoWS := ACBrNFe.WebServices.EnviarDPEC.Executar else ResultadoWS := ACBrNFe.WebServices.Enviar.Executar; //NFe2 if ResultadoWS = False then begin MensagemErro := gAlocaSalvaPChar('O WebService Retornou o Seguinte Erro ao Enviar a NFe:'+#13#10+ ACBrNFe.WebServices.Enviar.Msg, MensagemErro); Exit; end; // if (Q_DivisoesFORMA_EMISSAO_NFE.Value = cFormaEmissaoNFeContigenciaDPEC) then // begin // ACBrNFe.DANFE.ProtocoloNFe := ACBrNFe.WebServices.EnviarDPEC.nRegDPEC+' '+ // DateTimeToStr(ACBrNFe.WebServices.EnviarDPEC.DhRegDPEC); // end; except on E:Exception do begin if UpperCase(E.Message) <> UpperCase('Lote em Processamento') then begin MensagemErro := gAlocaSalvaPChar('Ocorreu a Seguinte Exceção ao Enviar a NFe:'+#13#10+ TraduzXML(E.Message), MensagemErro); Exit; end; end; end; 4.1 – ATENÇÃO AQUI: Não envio o XML como esta no demo do componente. Esta forma que envio é usados por outros desenvolvedores. Desta forma não entra no loop aguardando a resposta. Evitando assim aquele congelamento da tela, problema de lentidão da SEFAZ, etc. Assim eu tenho que pegar a resposta (se a NFe foi autorizada) em outra etapa. 4.2 5 – Salvo o XML de autorização assim: // Salva XML de Autorização no BD (NFes em Contigencia, terão que passar por isto) try CaminhoNomeXML := CaminhoTemporario+'\XMLs\'+IntToStr(NumeroLote)+'-env-lot'+'.XML'; Q_NotaFiscal.Edit; if (Q_DivisoesFORMA_EMISSAO_NFE.Value = cFormaEmissaoNFeNormalOnLine) then Q_NotaFiscalXML_NFE.LoadFromFile(CaminhoNomeXML); // XML da Nota Assinada e Envelopada Q_NotaFiscalXML_AUTORIZACAO_NFE.Value := ACBrNFe.WebServices.Retorno.RetWS; if (Q_DivisoesFORMA_EMISSAO_NFE.Value = cFormaEmissaoNFeContigenciaDPEC) then begin Q_NotaFiscalNUMERO_PROTOCOLO_NFE_DPEC.Value := ACBrNFe.WebServices.EnviarDPEC.nRegDPEC; Q_NotaFiscalDATA_HORA_PROTOCOLO_NFE_DPEC.Value := ACBrNFe.WebServices.EnviarDPEC.DhRegDPEC; end; Q_NotaFiscalSITUACAO_NFE.Value := 'Enviada'; Q_NotaFiscal.Post; except on E:Exception do begin Q_NotaFiscal.Cancel; MensagemErro := gAlocaSalvaPChar('No Armazenamento do XML de Retorno no Banco de Dados!'+#13#10+ 'O Erro foi o Seguinte:'+#13#10+ '"'+E.Message+'"', MensagemErro); Exit; end; end; 6 – Num botão chamado DNAFE, eu pego a resposta da NFe e se autorizada, visualizo ou imprimo o DANFE para o usuário. 6.1 – Pegando a Resposta pela Chave da NFe: // Consulta NFe try ACBrNFe.WebServices.Consulta.NFeChave := Q_NotaFiscalCHAVE_NFE.Value; //Chave ACBrNFe.WebServices.Consulta.Executar; //Chave except on E:Exception do begin MensagemErro := gAlocaSalvaPChar('Ocorreu o Seguinte Erro ao Consultar a NFe:'+#13#10+ TraduzXML(E.Message), MensagemErro); Exit; end; end; 6.2 – Carregando o Status da NFe: var NFeRetorno: TretConsSitNFe; begin …. // Le XML NFeRetorno := TRetConsSitNFe.Create; NFeRetorno.Leitor.Arquivo := TraduzXML(ACBrNFe.WebServices.Consulta.RetWS); NfeRetorno.LerXml; …. 6.3 – Salvando no BD // Salva no BD if (NFeRetorno.CStat = 100) or (NFeRetorno.CStat = 101) then begin begin try CaminhoNomeXML := CaminhoTemporario+'\XMLs\'+Q_NotaFiscalCHAVE_NFE.Value+'-nfe'+'.XML'; Q_NotaFiscal.Edit; Q_NotaFiscalXML_NFE.LoadFromFile(CaminhoNomeXML); // XML da Nota Assinada, Envelopada e com Protocolo if (Q_NotaFiscalXML_AUTORIZACAO_NFE.IsNull) then Q_NotaFiscalXML_AUTORIZACAO_NFE.Value := ACBrNFe.WebServices.Consulta.RetWS; if NFeRetorno.CStat = 100 then Q_NotaFiscalSITUACAO_NFE.Value := 'Enviada' else if NFeRetorno.CStat = 101 then Q_NotaFiscalSITUACAO_NFE.Value := 'Cancelada'; {$IFDEF NFe1} Q_NotaFiscalNUMERO_PROTOCOLO_NFE_NORMAL.Value := NFeRetorno.NProt; // NFe2 {$ENDIF} {$IFDEF NFe2} Q_NotaFiscalNUMERO_PROTOCOLO_NFE_NORMAL.Value := NFeRetorno.ProtNFe.NProt; {$ENDIF} Q_NotaFiscal.Post; except Q_NotaFiscal.Cancel; end; end; end; 7 – Para imprimir/visualizar a DANFE: 7.1 – Salvo XML no HD assim: Q_NotaFiscalXML_NFE.SaveToFile(CaminhoNomeXML); 7.2 – Carrego XML para o Componente, assim: // Carrega XML ACBrNFe.NotasFiscais.Clear; ACBrNFe.NotasFiscais.LoadFromFile(CaminhoNomeXML); 7.3 – Imprimo o DANFE assim: ACBrNFe.NotasFiscais.ImprimirPDF; Não sei qual componente você usa para acessar o FireBird. Eu uso o IBObjects. O exemplo aqui mostrado pode ajudar a salvar e recuperar o XML usando qualquer suite de acesso ao FireBird e até mesmo para outros SGBD. Ubaltino Faleiro
  6. Tem várias maneias de consultar uma NFe. No seu caso eu consultaria pela Chave. Veja o Demo do componente, a parte sobre consulta pela chave. Ubaltino Faleiro
  7. Bom dia. Qual estado Origem da NFe? Estou com problema parecido em GO. A SEFAZ na versão 2.00 esta uma porcaria. No seu caso, parece que você conseguiu resolver o problema da Rejeição. E sua nota foi autorizada. Mas demorou para autorizar. Por isto que agora esta dando erro de duplicidade. Neste caso, eu simplesmente pegaria a resposta da NFe (Consulta). A resposta consta o Protocolo de Autorização. E em seguida imprimiria a DANFE. Se você não for mais enviar o produto ao cliente, esta nota também pode ser cancelada. Ubaltino Faleiro
  8. ubaltino

    Nfe 2.0

    Não uso o Monitor, mas pelo que vi é só atualizar seu componente. Esta na pasta ...\ACBr\Projetos\ACBrNFeMonitor2 É só compilar e usar, pelo que vi. Ubaltino Faleiro
  9. Pelo que sei, o componente não faz isto. Mas é fácil fazer isto, apos a operação com cada nota. Você mesmo pode copiar e/ou mover o XML para a pasta que desejar, dependendo da Operação. A maioria do pessoal salva o XML na Tabela de Nota Fiscal em campo blob ou text, dependendo do SGBD. Isto ajuda, no caso de o HD ser formatado. Ubaltino Faleiro
  10. 1 - Atualize seu componente. 2 - A versão 2.00 fica na pasta ...\ACBr\Fontes\ACBrNFe2 3 - Leia o Instala.txt e siga os procedimentos dele. Ubaltino Faleiro
  11. André, Não estou conseguindo pegar uma resposta agora. Na Unit ACBrNFeWebServices.pas, na linha 747 esta comentada. Onde tem: //'<?xml version="1.0" encoding="UTF-8" standalone="no"?>'+ Descomentei só para fazer um teste. Enviei uma nota, e o componente gerou uma excessão ao enviar. Acho que isto foi no momento de pegar o recibo. Em seguida, peguei a resposta e a nota estava Autorizada com sucesso. Foi a primeira nota que consigo isto na versão 2.0 origem GO. É verdade que o WebSevice de GO para Homologação esta uma porcaria. Estes são dados que tenho até agora. Vou continuar fazendo testes para ver no que da. Ubaltino Faleiro
  12. Boa tarde, pessoal. Ambiente: Delphi 7, ACBrNFe com OpenSSL, Windows 7 64 Bits. NFe: Homologação, origem GO, SP, MA e MG. Para notas com origem SP e MG, tudo Ok. Envio e tem a resposta de Autorizada. Mas para origem GO e MA, sempre acusa NFe não consta na base de dados. Tem algum segredo que não estou sabendo? Alguém já passou por isto? Outro dúvida quue notei. Todo XML enviado a sefaz não tem que iniciar com "<?xml version="1.0" encoding="UTF-8"?>" ? Os meus na versão 2.00 não tem isto. Ubaltino Faleiro
×
×
  • 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.