Pesquisar na Comunidade
Showing results for tags 'localizar arquivo evento'.
Encontrado 1 registro
-
Bom dia, gostaria de sugerir a alteração no arquivo em anexo. senti necessidade pois já utilizamos a função semelhante, na vertente da NFe (GetPathNFe), para determinar a localização do arquivo gerado, conforme podem ver pelo exemplo abaixo. No caso da função alterada optei não mexer na ordem dos parâmetros, de modo a ficar igual a GetPathNFe, pois não tinha como determinar a extensão do uso da mesma fora do componente. ACBrNFeConfiguracoes.pas //NFe function loadXML(chave_nfe:string; ID_SITUACAO_NFE: integer; dtEmissao: tdatetime = 0; dtRecebimento: tdatetime = 0): boolean; var OpenDialog1: topendialog; sFilePathXML: string; bFileNotFoundXML, bCancelXML: boolean; DataXML : tdatetime; begin result := false; OpenDialog1 := topendialog.Create(nil); OpenDialog1.Title := 'Selecione a NFe'; OpenDialog1.DefaultExt := '*-nfe.XML'; OpenDialog1.Filter := 'Arquivos NFe (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*'; OpenDialog1.InitialDir := dm_conexao.NFe.Configuracoes.Geral.PathSalvar; try bFileNotFoundXML := true; if (ID_SITUACAO_NFE > 1) and (length(chave_nfe) > 0) then begin if dm_conexao.NFE.Configuracoes.Arquivos.EmissaoPathNFe then DataXML := dtEmissao else if not (dtRecebimento = 0) then DataXML := dtRecebimento; sFilePathXML :=PathWithDelim(dm_conexao.NFE.Configuracoes.Arquivos.GetPathNFe( DataXML)) + OnlyNumber(chave_nfe) + '-nfe.xml'; bFileNotFoundXML := not fileexists(sFilePathXML); if (bFileNotFoundXML) and (dm_conexao.NFe.Configuracoes.Arquivos.PastaMensal) then begin dm_conexao.NFe.Configuracoes.Arquivos.PastaMensal := false; sFilePathXML :=PathWithDelim(dm_conexao.NFE.Configuracoes.Arquivos.GetPathNFe( DataXML)) + OnlyNumber(chave_nfe) + '-nfe.xml'; bFileNotFoundXML := not fileexists(sFilePathXML); dm_conexao.NFe.Configuracoes.Arquivos.PastaMensal := true; end; if not bFileNotFoundXML then try dm_conexao.NFe.NotasFiscais.Clear; dm_conexao.NFe.NotasFiscais.LoadFromFile(sFilePathXML, true); except bFileNotFoundXML := true; end; bCancelXML := false; while (bFileNotFoundXML) and (not bCancelXML) do begin bCancelXML := not OpenDialog1.Execute; if (not bCancelXML) then if isnullempty(OpenDialog1.FileName) then ShowMessage('Desculpe, mas tem de selecionar um arquivo para processar.') else try dm_conexao.NFe.NotasFiscais.Clear; dm_conexao.NFe.NotasFiscais.LoadFromFile(OpenDialog1.FileName, true); if OnlyNumber(dm_conexao.NFe.NotasFiscais.Items[inf].NFe.infNFe.id) = chave_nfe then bFileNotFoundXML := false else ShowMessage('Arquivo não corresponde a chave do registo'+#13+'Por favor certifique se é o arquivo correto!'); except ShowMessage('Arquivo inválido'+#13+'Por favor certifique se o arquivo tem o formato correto!'); end; end; end; if not bFileNotFoundXML then begin inc(inf); result := true; end; finally OpenDialog1.Free; end; end; //EVENTO NFe function loadEventoXML(chave_nfe:string; tipoEvento: TpcnTpEvento; dtEmissao: tdatetime = 0; iSeq: integer = 1): boolean; var OpenDialog1: topendialog; sFilePathXML: string; bFileNotFoundXML, bCancelXML: boolean; DataXML : tdatetime; begin result := false; OpenDialog1 := topendialog.Create(nil); OpenDialog1.Title := 'Selecione a NFe'; OpenDialog1.DefaultExt := '*-nfe.XML'; OpenDialog1.Filter := 'Arquivos NFe (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*'; OpenDialog1.InitialDir := dm_conexao.NFe.Configuracoes.Geral.PathSalvar; try bFileNotFoundXML := true; if (length(chave_nfe) > 0) then begin sFilePathXML := PathWithDelim(dm_conexao.NFE.Configuracoes.Arquivos.GetPathEvento(tipoEvento,dtEmissao,'')) + TpEventoToStr(tipoEvento) + OnlyNumber(chave_nfe) +IntToStrZero(iSeq, 2) + '-procEventoNFe.xml'; bFileNotFoundXML := not fileexists(sFilePathXML); if (bFileNotFoundXML) and (dm_conexao.NFe.Configuracoes.Arquivos.PastaMensal) then begin dm_conexao.NFe.Configuracoes.Arquivos.PastaMensal := false; sFilePathXML :=PathWithDelim(dm_conexao.NFE.Configuracoes.Arquivos.GetPathEvento(tipoEvento, DataXML,'')) + TpEventoToStr(tipoEvento) + OnlyNumber(chave_nfe) +IntToStrZero(iSeq, 2) + '-procEventoNFe.xml'; bFileNotFoundXML := not fileexists(sFilePathXML); dm_conexao.NFe.Configuracoes.Arquivos.PastaMensal := true; end; if not bFileNotFoundXML then try dm_conexao.NFe.EventoNFe.Evento.Clear; dm_conexao.NFe.EventoNFe.LerXML(sFilePathXML) ; except bFileNotFoundXML := true; //xml invalido end; bCancelXML := false; while (bFileNotFoundXML) and (not bCancelXML) do begin bCancelXML := not OpenDialog1.Execute; if (not bCancelXML) then if isnullempty(OpenDialog1.FileName) then ShowMessage('Desculpe, mas tem de selecionar um arquivo para processar.') else try dm_conexao.NFe.EventoNFe.Evento.Clear; dm_conexao.NFe.EventoNFe.LerXML(OpenDialog1.FileName) ; if OnlyNumber(dm_conexao.NFe.EventoNFe.Evento.Items[0].infEvento.chNFe) = chave_nfe then bFileNotFoundXML := false else ShowMessage('Arquivo não corresponde a chave do registo'+#13+'Por favor certifique se é o arquivo correto!'); except ShowMessage('Arquivo inválido'+#13+'Por favor certifique se o arquivo tem o formato correto!'); end; end; end; if not bFileNotFoundXML then begin inc(inf); result := true; end; finally OpenDialog1.Free; end; end; atentamente João Paulo ACBrNFeConfiguracoes.pas