Ir para conteúdo
  • Cadastre-se

Pesquisar na Comunidade

Showing results for tags 'baixar xml'.

  • Search By Tags

    Digite tags separadas por vírgulas
  • Search By Author

Tipo de Conteúdo


Fóruns

  • Fórum Aberto - ACBr
    • Notícias do ACBr
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrDFe
    • Dúvidas sobre TEF
    • Dúvidas sobre PIX
    • ACBrMonitor PLUS
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
  • ACBr Pro
    • Dúvidas gerais
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • Outros Assuntos
    • Boteco do ACBr
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Banco de Dados
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categorias

  • ACBr Pro
    • ACBrLib - PRO
    • ACBrMonitorPLUS - PRO
    • Utilitários - PRO
    • Dia do ACBr 1a edição
    • Dia do ACBr 2a edição
    • ACBrLib Android - Pro
  • Download Livre
    • ACBrLib - DEMO
    • ACBrMonitorPLUS - DEMO
    • Demos / Testes / Utilitários
    • Apresentações - Palestras
    • ACBrLib Android - Demo

Calendários

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Calendário da Comunidade
  • ACBr Papo Pro
  • Feriados Nacionais

Find results in...

Find results that contain...


Data de Criação

  • Início

    End


Data de Atualização

  • Início

    End


Filter by number of...

Data de Registro

  • Início

    End


Grupo


Website URL

Encontrado 3 registros

  1. Boa tarde, Inicialmente parabéns pelo projeto ACBrMonitor! Decidi utilizá-lo em função da praticidade de integração com meu IDE. Estou tentando baixar os xml´s destinados a um CNPJ. Porém, percebi que existe um delay variável entre a resposta do servidor me informando sobre a Manifestação da Ciência da Emissão (obrigátorio para baixar o xml NF-e) e a disponibilidade para baixar o XML. Minha rotina: 1) Recebimento a Mercadoria + DANFE. 2) Leio Chave da DANFE e utilizo comando NFE.EnviarEvento(Evento.ini) para enviar Manifestação da ciência. 3) Aguardo o retorno do WS informando o recebimento da Manifestação, se a resposta for positiva: 4) Baixo o XML através do comando NFe.DistribuicaoDFePorChaveNFe(cUF, cCNPJ, aChNFe); 5) Executo ações de validações com a Ordem de Compra que solicitou o processo (Processo interno de minhas regras de negócio). Em 100% das minhas tentativas (entre ontem e hoje) recebo inicialmente uma resposta (para o passo 4) quanto tenho baixar o xml logo após receber o retorno do WS previamente manifestado: OK: [DistribuicaoDFe] CStat=137 CUF=0 DhRecbto=30/12/1899 Msg=Nenhum documento localizado VerAplic=1.2.0 Versao=1.01 XMotivo=Nenhum documento localizado arquivo= dhResp=12/11/2019 09:17:20 indCont=1 maxNSU= tpAmb=1 ultNSU= Aguardando algum tempo, se tento baixar o XML ele me retorna cStat=138 com XML correto. Lí em diversos posts aqui no forum sobre esse possível delay do Sefaz, porém o mais recente é de 12 de jan. de 2019. Nestes Posts, salvo engano, não encontrei nenhuma solução para o caso de se baixar logo que se retorna a resposta da manifestação. Entendo perfeitamente que o problema não é no ACBrMonitor, pois ele faz a ponte corretamente me retornando respostas o WS. Lí como melhor solução, até aquele momento de jan de 2019, que uma possível solução seria manifestar previamente a NFe e deixá-la disponível para quando a DANFE chegasse in-loco. Assim pergunto: 1) A rotina que uso acima estaria errada em algum ponto? Estou esquecendo algum passo importante? 2) Ainda permanece como melhor opção manifestar previamente para qdo chegar a DANFE estar já manifestada a ciência? A importãncia de se ter o XML (além das jurídicas impostas) é que valido as Ordens de Compra que geraram a NFe. Dessa forma, no meu mundo ideal, a rotina de baixar pela chave no momento da chegada da DANFE atenderia o processo. PS.: Entendo que a responsabilidade do envio do XML é do emissor da NF. Mas sabemos que depende de ação humana em um cadastro correto das informações de envio, o qual não temos domínio e em aprox. 30% dos casos está incorreta... No aguardo, Paulo
  2. Depois de uma semana pesquisando na net, perguntando pra um e pra outro, consegui baixar as notas da sefaz. Estar qui caso algum colega precise. Este primeiro processo é para mostrar as notas que estão na sefaz procedure TTesteWeb.consultarnotasClick(Sender: TObject); var CNPJ, Impresso, sChave, sEmissao, sCNPJ, sNome, sNumero, sSerie, sIEst, sNSU, sTipoNFe: String; Valor: Double; i, j,iEvento, k: integer; sStat,utNSU,ANSU:string; sMotivo:string; sUltimoNSU:string; sTemMais:string; caminho:string; UF, icount, codStatus: Integer; xml:string; begin // ======== Dados do Emitente ============================================= //pego o codigo da Filial que estar fazendo // a pesquisa no meu cadastro de empresas Empresa.Close; Empresa.SQL.Clear; Empresa.SQL.Add('Select * From filial'); Empresa.SQL.Add('Where CodFil = :xCodigo'); Empresa.Params[0].AsString:='1'; Empresa.Active:=True; Empresa.Open; MemoStatus.Lines.Add('------------------------------------------------------'); MemoStatus.Lines.Add(' => Consultando NFe Destinadas'); MemoStatus.Lines.Add('------------------------------------------------------'); Memo1.Text := ''; k := 0; repeat inc(k); CNPJ := ''; ACBrNFe1.DistribuicaoDFePorUltNSU(EMPRESAUF.AsInteger,CNPJ,edtUltNSU.Text ); sStat := IntToStr(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat); sMotivo := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then sTemMais := 'N' else sTemMais := 'S'; sUltimoNSU := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU; // GravaUltimaConsulta; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 138 then begin MemoStatus.Lines.Add(' Documento Localizado para o Destinatário'); MemoStatus.Lines.Add(' Utilizar o número que esta no campo: Último NSU'); MemoStatus.Lines.Add(' Para uma nova pesquisa.'); MemoStatus.Lines.Add(' '); j := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count - 1; lstChave1.Clear; chkListaNotas.Clear; for i := 0 to j do begin sSerie := ''; sNumero := ''; sCNPJ := ''; sNome := ''; sIEst := ''; sNSU := ''; sEmissao := ''; sTipoNFe := ''; Valor := 0.0; Impresso := ' '; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.chNFe <> '' then begin // Conjunto de informações resumo da NF-e localizadas. // Este conjunto de informação será gerado quando a NF-e for autorizada ou denegada. sChave := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.chNFe; sSerie := Copy(sChave, 23, 3); sNumero := Copy(sChave, 26, 9); sCNPJ := ''; sNome := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.xNome; sIEst := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.IE; case ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.tpNF of tnEntrada: sTipoNFe := 'E'; tnSaida: sTipoNFe := 'S'; end; sNSU := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.NSU; sEmissao := DateToStr(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.dhEmi); Valor := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.vNF; case ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.cSitNFe of snAutorizado: Impresso := 'A'; snDenegado: Impresso := 'D'; // snCancelada: Impresso := 'C'; end; end; // Registra no Banco de Dados as Notas Retornadas pela Consulta Manifestacao.Close; Manifestacao.SQL.Clear; Manifestacao.SQL.Add('Select * From manifestacao'); Manifestacao.SQL.Add('Where Empresa = :xEmpresa'); Manifestacao.SQL.Add('and Chave = :xChave'); Manifestacao.Params[0].AsString:='1'; Manifestacao.Params[1].AsString:=sChave; Manifestacao.Active:=True; Manifestacao.Open; if not ((ManifestacaoEmpresa.AsString = '1') and (ManifestacaoChave.AsString = sChave)) then begin IncAltDel.SQL.Clear; IncAltDel.SQL.Add('Insert into manifestacao'); IncAltDel.SQL.Add('(Empresa, Chave, CNPJ, Nome, IE, Emissao, Tipo, Valor,'); IncAltDel.SQL.Add('Situacao, Confirmacao, NSU, DataEvento, Protocolo)'); IncAltDel.SQL.Add('Values (:xEmpresa, :xChave, :xCNPJ, :xNome, :xIE, :xEmissao, :xTipo,'); IncAltDel.SQL.Add(':xValor, :xSituacao, :xConfirmacao, :xNSU, :xDataEve, :xProtocolo)'); IncAltDel.Params[0].AsString:='1'; IncAltDel.Params[1].AsString:=sChave; IncAltDel.Params[2].AsString:=''; IncAltDel.Params[3].AsString:=sNome; IncAltDel.Params[4].AsString:=sIEst; IncAltDel.Params[5].AsDateTime:=StrToDate(sEmissao); IncAltDel.Params[6].AsString:=sTipoNFe; IncAltDel.Params[7].AsFloat:=Valor; IncAltDel.Params[8].AsString:=Impresso; IncAltDel.Params[9].AsInteger:=-1; IncAltDel.Params[10].AsString:=sNSU; IncAltDel.Params[11].AsDateTime:=0; IncAltDel.Params[12].AsString:=''; IncAltDel.ExecSQL; end; //Atualizo o sql que mostra as notas no dbgrid MANIFESTACAO.Close; MANIFESTACAO.SQL.Clear; MANIFESTACAO.SQL.Add('select * from manifestacao'); MANIFESTACAO.open; end; // Fim do For end else begin // Nenhum Documento Localizado para o Destinatário if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then begin MemoStatus.Lines.Add(' Nenhum Documento Localizado para o Destinatário'); MemoStatus.Lines.Add(' Utilizar o número que esta no campo: Último NSU'); MemoStatus.Lines.Add(' Para uma nova pesquisa ('+edtUltNSU.Text+').'); MemoStatus.Lines.Add(' '); end else begin MemoStatus.Lines.Add(' Falha ao realizar a consulta.'); MemoStatus.Lines.Add(' ' + sStat + ' - ' + sMotivo); MemoStatus.Lines.Add(' '); end; end; until (k = StrToIntDef(edtConsultas.Text, 1)) or (sTemMais = 'S'); ACBrNFe1.Configuracoes.Arquivos.Salvar := True; if sTemMais = 'S' then Memo1.Text := IntToStr(k) + ' Consultas Realizadas e tem mais Documentos.' else Memo1.Text := IntToStr(k) + ' Consultas Realizadas e não tem mais Documentos.'; end; ========================================= Este segundo processo é para fazer a confirmação de uma nota pela chave, vc pode fazer a confirmação de todas as notas que baixou no primeiro processo e depois efetuar o download. procedure TTesteWeb.EnviarManifesClick(Sender: TObject); var Chave, idLote, CNPJ: string; lMsg: string; begin // manidestação de uma nota especifica pela chave Chave:=''; if not(InputQuery('WebServices Eventos: Manif. Destinatario - Conf. Operacao', 'Chave da NF-e', Chave)) then exit; Chave := Trim(OnlyNumber(Chave)); idLote := '1'; if not(InputQuery('WebServices Eventos: Manif. Destinatario - Conf. Operacao', 'Identificador de controle do Lote de envio do Evento', idLote)) then exit; CNPJ := ''; if not(InputQuery('WebServices Eventos: Manif. Destinatario - Conf. Operacao', 'CNPJ ou o CPF do autor do Evento', CNPJ)) then exit; ACBrNFe1.EventoNFe.Evento.Clear; with ACBrNFe1.EventoNFe.Evento.Add do begin InfEvento.cOrgao := 91; infEvento.chNFe := Chave; infEvento.CNPJ := CNPJ; infEvento.dhEvento := now; infEvento.tpEvento := teManifDestConfirmacao; end; ACBrNFe1.EnviarEvento(StrToInt(IDLote)); with AcbrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento do begin lMsg:= 'Id: '+Id+#13+ 'tpAmb: '+TpAmbToStr(tpAmb)+#13+ 'verAplic: '+verAplic+#13+ 'cOrgao: '+IntToStr(cOrgao)+#13+ 'cStat: '+IntToStr(cStat)+#13+ 'xMotivo: '+xMotivo+#13+ 'chNFe: '+chNFe+#13+ 'tpEvento: '+TpEventoToStr(tpEvento)+#13+ 'xEvento: '+xEvento+#13+ 'nSeqEvento: '+IntToStr(nSeqEvento)+#13+ 'CNPJDest: '+CNPJDest+#13+ 'emailDest: '+emailDest+#13+ 'dhRegEvento: '+DateTimeToStr(dhRegEvento)+#13+ 'nProt: '+nProt; end; ShowMessage(lMsg); MemoResp.Lines.Text := ACBrNFe1.WebServices.EnvEvento.RetWS; memoRespWS.Lines.Text := ACBrNFe1.WebServices.EnvEvento.RetornoWS; LoadXML(ACBrNFe1.WebServices.EnvEvento.RetornoWS, WBResposta); end; ======================================= verifique agora se estas configurações estão certas no seu componente ACBRNFe: propriedades\configurações\arquivos\PathDownload = aqui a pasta onde vc quer salvar os xml. propriedades\configurações\arquivos\PathEvento = Salvar os eventos. propriedades\configurações\arquivos\salvar = true Ainda em configurações de arquivos tem as opções separar por cnpj, ele cria uma pasta para cada cnpj que vc baixar e execute o primeiro processo novamente, ele vai fazer uma nova busca e baixar os que vc confimou teste ai e me diga o resultado Comigo funcionou certinho.
  3. Boa tarde a todos. Em alguns clientes, mesmo tendo manisfestado a nfe, não faz o download do xml. Estou em um cliente agora e ja estou a uns 15 minutos e não baixa. Os passos que estou fazendo. 1- Manifesto o xml. 2- Faço uma nova consulta onde normalmente retornaria o xml completo da nota. Será que está com problemas no SEFAZ? Existe alguma limitação de download? Grato
×
×
  • 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...