Pesquisar na Comunidade
Showing results for tags 'Impressão de Evento'.
Encontrado 2 registros
-
Boa tarde, estou implementando uma nova versão de meu Software e as seguintes rotinas geram a Carta de Correção: function TUnt_Ctrl_Nfe.Carta_Correcao: Boolean; Var nSeqEvento, vLote: Integer; vCorrecao: AnsiString; begin //Conferindo a NFE if Assigned(Vo_Venda) and ( Vo_Venda.NFE_CHAVE <> '' ) and ( Vo_Venda.CODIGO_FAT_STATUS_NFE = 100 ) then begin //Texto da Correção vCorrecao := Trim(Copy( Digita_String('Correção', '', true, 800),1,300)); If vCorrecao <> '' then begin //Criar carta de Correção para esta NFE NFe.EventoNFe.Evento.Clear; //Numero do Próximo Evento nSeqEvento := Ctrl_Cartas.Ultimo_Evento( Vo_Venda.Codigo ) + 1; with NFe.EventoNFe.Evento.Add do begin infEvento.chNFe := Vo_Venda.NFE_CHAVE; infEvento.CNPJ := SohNumeros(Controler.Obj_Empresa.Eps_Cnpj); infEvento.dhEvento := Now; infEvento.tpEvento := teCCe; infEvento.nSeqEvento := nSeqEvento; infEvento.detEvento.xCorrecao := vCorrecao; end; vLote := Lote_Atual; If NFe.EnviarEventoNFe( vLote ) then begin //Anota no Banco de dados as informações do retorno Anotar_Retorno_CCe( NFe.WebServices.EnvEvento, vCorrecao ); end else begin Result := False; with NFe.WebServices.EnvEvento do begin raise Exception.Create( 'Ocorreram erros ao enviar a Carta de Correção:' + sLineBreak + 'Lote: ' + IntToStr(EventoRetorno.idLote) + sLineBreak + 'Ambiente: ' + TpAmbToStr(EventoRetorno.tpAmb) + sLineBreak + 'Orgao: ' + IntToStr(EventoRetorno.cOrgao) + sLineBreak + sLineBreak + 'Status: ' + IntToStr(EventoRetorno.cStat) + sLineBreak + 'Motivo: ' + EventoRetorno.xMotivo ); end; end; end else result := False; end else begin MessageDlg('A Venda Não está Assinalada corretamente, confira a Chave da Nfe e o Status', mtError, [mbOK],0); end; end; procedure TUnt_Ctrl_Nfe.Anotar_Retorno_CCe(pEvento: TNFeEnvEvento; pCorrecao: AnsiString); Var Vo: TFAT_VENDAS_CARTA_CORRECAOVO; NomeArq, vMotivo, vPath, NumeroProtocolo: string; CodStat, nSeqEvento: Integer; DataHoraEvento: TDateTime; begin with pEvento do begin if not(EventoRetorno.retEvento.Items[0].RetInfEvento.cStat in [135, 136]) then begin raise EDatabaseError.CreateFmt( 'Ocorreu o seguinte erro ao enviar a carta de correção:' + sLineBreak + 'Código:%d' + sLineBreak + 'Motivo: %s', [ EventoRetorno.retEvento.Items[0].RetInfEvento.cStat, EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo ]); end; // retornos //Nome do Arquivo XML da Carta de Correção nSeqEvento := EventoRetorno.retEvento.Items[0].RetInfEvento.nSeqEvento; NomeArq := '\' + Vo_Venda.NFE_CHAVE + EventoRetorno.InfEvento.TipoEvento + Format('%.2d', [nSeqEvento]) + '-procEventoNFe.xml'; //Anotar os dados do Evento CodStat := EventoRetorno.retEvento.Items[0].RetInfEvento.cStat; vMotivo := EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo; vPath := Nfe.Configuracoes.Arquivos.GetPathEvento( teCCe ) + NomeArq; DataHoraEvento := EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento; NumeroProtocolo := EventoRetorno.retEvento.Items[0].RetInfEvento.nProt; Vo := TFAT_VENDAS_CARTA_CORRECAOVO.create; try Vo.Codigo := 0; vo.Eps_Codigo := Cod_Emp; Vo.CODIGO_FAT_VENDAS := Vo_Venda.Codigo; Vo.CARTA_CHAVE := Vo_Venda.NFE_CHAVE; vo.CARTA_DATA_HORA := DataHoraEvento; vo.CARTA_SEQUENCIAL := nSeqEvento; vo.CARTA_CORRECAO := pCorrecao; vo.CARTA_LOTE := EventoRetorno.idLote; Vo.CARTA_PATH_XML := vPath; Vo.CARTA_PROTOCOLO := NumeroProtocolo; vo.CODIGO_FAT_STATUS_EVENTO := CodStat; If Ctrl_Cartas.Insere_Ctrl( Vo ) > 0 then //Imprime a Carta de correção Imprimir_Evento ( Vo_Venda.NFE_PATH_XML, vPath ); finally FreeAndNil( Vo ); Atualiza_Lote; Carregar_Memos( NFE.WebServices.EnvEvento.RetWS, '' ); end; end; end; procedure TUnt_Ctrl_Nfe.Imprimir_Evento(pPath_Xml, pPath_Xml_Evento: string); begin if FileExists(pPath_Xml_Evento) and FileExists( pPath_Xml ) then begin NFe.NotasFiscais.Clear; NFe.NotasFiscais.LoadFromString( pPath_Xml ); NFe.EventoNFe.Evento.Clear; NFe.EventoNFe.LerXMLFromString( pPath_Xml_Evento ); NFe.ImprimirEvento; end else MessageDlg('Os Arquivos passados para Impressão não foram encontrados, verifique!', mtError, [mbOK],0); end; No momento da Impressão aparecem os seguintes erros: Não encontrei Inicio do URI: id = e Após isso o seguinte erro: Campo cOrgao não informado. O que poderia ser, alguém já passou por isso?
-
Bom dia, gostaria de saber se existe uma forma de mostrar o preview na impressão de evento MDFe, pois a opção só encontrei para a impressão da DAMDFe (ACBrMDFe1.DAMDFe.MostrarPreview) e está aparecendo apenas a opção para imprimir; se existe alguma forma de mostrar o Preview antes de Imprimir, quais as configurações necessárias? **eu utilizei o proprio exemplo do existente no ACBr como base; Desde já agradeço a atenção.