Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 4350 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Galera, estou disponibilizando a impressão de eventos para o Fortes, realizei alguns testes e foi bem tranquilo, desenvolvi ele baseado no RAVE.

 

Segue junto alterações que possibilitam saber o nome do arquivo xml gerado pelo evento, bem como uma propriedade XML contendo a string do xml.  Espero que seja útil para vocês assim como é para mim.

 

Obs.: como não estou conseguindo anexar, segue o arquivo no 4shared. (http://www.4shared.c...a6t/Fontes.html)

Obs2: Postei ele no tópico de Impressão de CCe, mas, como até agora ninguém se manifestou estou criando este tópico.

  • Curtir 1

- Sou desenvolvedor.

- De que linguagem, delphi? .NET? Java?

- Qualquer uma, sou desenvolvedor.

  • 2 semanas depois ...
Postado

Olá... bom dia e Feliz Natal a todos os amigos que frequentam o forum ACBr.
Com essa alteração será possivel também imprimir um comprovante de cancelamento de nf-e ? Como ainda não foi aplicada essa alteração nos fontes do svn você pode dar o exemplo de como usá-la ? Obrigado. Sérgio

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Postado

Bom dia gigainfo... Pode ser feito a impressão, bem como o envio do email com o xml da mesma. Segue um trecho do código de como eu faço aqui...

 

Cancelamento:

 

begin
  if qrnotafiscal.recordcount = 0 then exit;
  sXML := qrnotafiscal.fieldbyname('nfe_xml').asstring;
  if sxml = '' then exit;
  if FileExists(sxml) then
  begin
    ACBrNFe1.Configuracoes.Geral.Salvar:=True;
    bMensagem := true;
    ACBrNFe1.NotasFiscais.Clear;
    ACBrNFe1.NotasFiscais.LoadFromFile(sXML);
    Application.ProcessMessages;
    NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));
    if not(InputQuery('NFe Cancelamento', 'Informe a justificativa', vAux)) then
      exit;
    ACBrNFe1.EventoNFe.Evento.Clear;
    ACBrNFe1.EventoNFe.idLote := NumeroLote;
    with ACBrNFe1.EventoNFe.Evento.Add do
    begin
     infEvento.dhEvento := now;
     infEvento.tpEvento := teCancelamento;
     infEvento.detEvento.xJust := vAux;
    end;
    ACBrNFe1.EnviarEventoNFe(NumeroLote);
    MemoResp.Lines.Text :=  UTF8Encode(ACBrNFe1.WebServices.EnvEvento.RetWS);
    memoRespWS.Lines.Text :=  UTF8Encode(ACBrNFe1.WebServices.EnvEvento.RetornoWS);
    //LoadXML(MemoResp, WBResposta);
    Application.ProcessMessages;

    qrnotafiscal.edit;
    qrnotafiscal.FieldByName('nfe_xml').asstring := sXML;
    qrnotafiscal.FieldByName('nfe_situacao').asinteger := 8;
    qrnotafiscal.FieldByName('cancelamento_nfe_xml').asstring := frmnotafiscal_menu.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.NomeArq;
    qrnotafiscal.post;
  end
  else
  begin
    application.messagebox('Arquivo XML não encontrado!','Atenção',mb_ok+mb_iconerror);
  end;

end;

 

 

Envio de Email:

 

begin
          sXML := qrnotafiscal.fieldbyname('cancelamento_nfe_xml').asstring;
          if sxml = '' then exit;
          if FileExists(sXML) then
          begin
            para := qrcliente.fieldbyname('email').asstring;
            if para = '' then para := InputBox('Cancelamento de NFe','Email do Cliente','');
            if para <> '' then
            begin
              Evento := TStringList.Create;
              Evento.Clear;
              Evento.Add(sXML);
              ACBrNFe1.EventoNFe.Evento.Clear;
              ACBrNFe1.EventoNFe.LerXML(sXML);
              Assunto := 'Cancelamento Referente ao XML ' + Copy(sXML,33,44) + ' - ' + qrempresa.fieldbyname('FANTASIA').asstring;
              CC:=TstringList.Create;
              ACBrNFe1.EnviarEmailEvento(edtSmtpHost.Text
                                        , edtSmtpPort.Text
                                        , edtSmtpUser.Text
                                        , edtSmtpPass.Text
                                        , edtSmtpUser.Text
                                        , Para
                                        , Assunto
                                        , mmEmailMsg.Lines
                                        , cbEmailSSL.Checked
                                        , True //Enviar PDF junto
                                        , CC //Lista com emails que serão enviado cópias - TStrings
                                        , Evento // Lista de anexos - TStrings
                                        , False  //Pede confirmação de leitura do email
                                        , False  //Aguarda Envio do Email(não usa thread)
                                        , qrempresa.fieldbyname('FANTASIA').asstring); // Nome do Rementente
              CC.Free;
              Evento.Free;
              Application.ProcessMessages;
            end;
          end
          else
          begin
            Application.MessageBox('Arquivo XML do Cancelamento não encontrado!','Atenção',mb_ok+mb_iconerror);
            exit;
          end;
        end;

 

Qualquer esclarecimento estou a disposição.

 

Abcs.

  • Moderadores
Postado

Bom acredito que o markapollo deva ter seguido os padrões do acbr então você pode ver no blog do régys que ele explica como fazer a impressão usando o rave

http://www.regys.com.br/como-imprimir-um-evento-utilizando-o-acbrnfe/

vai ser só trocar um componente pelo o  outro o restante deve ser igual

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado (editado)

Galera, segui o padrão do ACBr,

 

é Basicamente:

 

ACBrNFe.NotasFiscais.Clear;
ACBrNFe.NotasFiscais.LoadFromString(<XML Nota Eletrônica>);
 
ACBrNFe.EventoNFe.Evento.Clear;
ACBrNFe.EventoNFe.LerXMLFromString(<XML Evento>);
ACBrNFeDANFE.ImprimirEVENTO;

Só não testei como no blog, usando direto do ACBrNFe:

ACBrNFe.ImprimirEvento;

 

Talvez esteja faltando alguma implementação no código, testem como eu passei, se funcionar, assim que possível eu verifico o código.

Editado por markapollo

- Sou desenvolvedor.

- De que linguagem, delphi? .NET? Java?

- Qualquer uma, sou desenvolvedor.

  • Este tópico foi criado há 4350 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.