Ir para conteúdo
  • Cadastre-se

dev botao

Impressao CCe


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

Recommended Posts

Ola Regis, boa tarde. eu que agradeço seu empenho, só mais um probleminha, a correção da busca do pdf da CCe ainda ficou errada, esta ficanco assim c:\Temp\Danfe\C:\Temp\Danfe....... esta repetindo o comando como destaquei abaixo...

 

    NomeArq := TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.TipoEvento;
    NomeArq := NomeArq + TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.chNFe;
    NomeArq := PathWithDelim(Self.PathPDF) + NomeArq + 'evento.pdf';

 

    dmDanfe.frxPDFExport.FileName := PathWithDelim(Self.PathPDF) + NomeArq + '.pdf';
    dmDanfe.frxReport.Export(dmDanfe.frxPDFExport);

 

Desde ja agradeço sua atenção e graças a Deus vamos curtir o fim de semana, kkkk

 

Abracos e bom fim de semana a todos...

 

Luciano...

Link para o comentário
Compartilhar em outros sites

  • Respostas 76
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Bom dia,

 

Pessoal não consigo imprimir a CCe completa veja  a imagem, falta alguns campos.

ACBr esta na Versão: 0.4.0a, uso o ACBrNFeDANFERaveCB, seleciono o Xml  da NFe  e o Xml do retorno do evento e sai desta mameira, so consigo se pedir a consulta da NFe, para poder seleciontar o Xml de retorno da situacao da nfe e por fim  Xml do retorno do evento. Tem outra forma de imprimir ou vou ter que fazer a consulta da NFe toda vez que for imprimir e enviar por e-mail, pois o aquivo em anexo PDF esta como a imagem.

 

Obrigado

post-1051-0-59947500-1355145508_thumb.jp

Link para o comentário
Compartilhar em outros sites

Bom dia,

 

Pessoal não consigo imprimir a CCe completa veja  a imagem, falta alguns campos.

ACBr esta na Versão: 0.4.0a, uso o ACBrNFeDANFERaveCB, seleciono o Xml  da NFe  e o Xml do retorno do evento e sai desta mameira, so consigo se pedir a consulta da NFe, para poder seleciontar o Xml de retorno da situacao da nfe e por fim  Xml do retorno do evento. Tem outra forma de imprimir ou vou ter que fazer a consulta da NFe toda vez que for imprimir e enviar por e-mail, pois o aquivo em anexo PDF esta como a imagem.

 

Obrigado

Poste também o XML da CCe e da NFe para ajudar no "diagnóstico"

- Sou desenvolvedor.

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

- Qualquer uma, sou desenvolvedor.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia,

 

Pessoal não consigo imprimir a CCe completa veja  a imagem, falta alguns campos.

ACBr esta na Versão: 0.4.0a, uso o ACBrNFeDANFERaveCB, seleciono o Xml  da NFe  e o Xml do retorno do evento e sai desta mameira, so consigo se pedir a consulta da NFe, para poder seleciontar o Xml de retorno da situacao da nfe e por fim  Xml do retorno do evento. Tem outra forma de imprimir ou vou ter que fazer a consulta da NFe toda vez que for imprimir e enviar por e-mail, pois o aquivo em anexo PDF esta como a imagem.

 

Obrigado

Você está utilizando o XML da CC-e sem autorização, você deve usar o XML dela depois de autorizada.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Ola Regis, boa tarde. eu que agradeço seu empenho, só mais um probleminha, a correção da busca do pdf da CCe ainda ficou errada, esta ficanco assim c:\Temp\Danfe\C:\Temp\Danfe....... esta repetindo o comando como destaquei abaixo...

 

    NomeArq := TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.TipoEvento;

    NomeArq := NomeArq + TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.chNFe;

    NomeArq := PathWithDelim(Self.PathPDF) + NomeArq + 'evento.pdf';

 

    dmDanfe.frxPDFExport.FileName := PathWithDelim(Self.PathPDF) + NomeArq + '.pdf';

    dmDanfe.frxReport.Export(dmDanfe.frxPDFExport);

 

Desde ja agradeço sua atenção e graças a Deus vamos curtir o fim de semana, kkkk

 

Abracos e bom fim de semana a todos...

 

Luciano...

Opa, desculpe a falha, dormi feio nessa, hehe.

Acertado e enviado novamente.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

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: não estou conseguindo anexar arquivos, só aparece "Erro O envio falhou"

- Sou desenvolvedor.

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

- Qualquer uma, sou desenvolvedor.

Link para o comentário
Compartilhar em outros sites

Regys


como eu consigo o XML da CC-e com autorização, sendo depois que envio busco o protocolo e a data da autorização para ser gravado no BD.

 

estou fazendo desta maneita

*****

NFEletronica.EventoNFe.Evento.Clear;
with NFEletronica.EventoNFe.Evento.Add do
begin
    infEvento.chNFe := FCartaCorrecao.ChaveNFe;
    infEvento.CNPJ   := FCartaCorrecao.CPF_CNPJ;
    infEvento.dhEvento := IncMinute(now,5);
    infEvento.tpEvento := teCCe;
    infEvento.nSeqEvento := CD_CCe.FieldByName('CODIGO').AsInteger;
    infEvento.detEvento.xCorrecao := Trim(CD_CCe.FieldByName('CORRECAO').AsString);
end;
{ Envia carta de correção }
iLote := StrToInt(frmNfe.cdsNFE.FieldByName('NUMNF').AsString+FormatFloat('00',CD_CCe.FieldByName('CODIGO').AsFloat));
NFEletronica.EnviarEventoNFe(iLote);

com esse processo ja não teria o XML da CCe autorizado.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Segue exemplo retirado do artigo: http://www.regys.com.br/como-enviar-uma-carta-de-correcao-utilizando-o-acbrnfe/
 

// Adicione a unit pcnConversao ao uses.
 
// numero do lote de envio
NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));
 
// preenchimento dos dados da carta de correção
ACBrNFe.EventoNFe.Evento.Clear;
ACBrNFe.EventoNFe.idLote := NumeroLote;
 
with ACBrNFe.EventoNFe.Evento.Add do
begin
  infEvento.chNFe      := ChaveNFe;
  infEvento.CNPJ       := CnpjEmitente;
  infEvento.dhEvento   := Now;
  infEvento.tpEvento   := teCCe;
  infEvento.nSeqEvento := <Numero Sequencial>; 
  infEvento.detEvento.xCorrecao := <Texto da Carta de Correção>;
end;
 
// envio da carta de correção
if ACBrNFe.EnviarEventoNFe(NumeroLote) then
begin
  with ACBrNFe.WebServices.EnvEvento 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 
    DataHoraEvento  := EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento;
    NumeroProtocolo := EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
    XMLCCe          := EventoRetorno.retEvento.Items[0].RetInfEvento.XML;
    CodigoStatus    := EventoRetorno.retEvento.Items[0].RetInfEvento.cStat;
    MotivoStatus    := EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo;
  end;
end
else
begin
  with ACBrNFe.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;

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Regys

 

....EventoRetorno.retEvento.Items[0].RetInfEvento.XML esta linha esta retornando vazio, como faco para salvar o xml do evento ser salvo com os dados do retorno como o quadro abaixo.

 

  </evento>
  <retEvento versao="1.00">
   <infEvento>
    <tpAmb>2</tpAmb>
    <cOrgao>31</cOrgao>
    <cStat>135</cStat>
    <xMotivo>Evento registrado e vinculado a NF-e.</xMotivo>
    <chNFe>31121138709408000100550010000000731000000732</chNFe>
    <tpEvento>110110</tpEvento>
    <xEvento>CARTA DE CORRECAO</xEvento>
    <nSeqEvento>1</nSeqEvento>
    <CNPJDest>05132855000190</CNPJDest>
    <dhRegEvento>2012-11-12T15:12:50-02:00</dhRegEvento>
    <nProt>131120032456732</nProt>
   </infEvento>
  </retEvento>

 

quando eu envio a CCe o xml nao consta o dados de retorno por isto a impressao nao sai os dados.

Link para o comentário
Compartilhar em outros sites

Segue o codigo e o anexo do xml da CCe não sei o que esta errado, acbr esta atualizado, os schemas estou usando o da pasta de exemplo do ACBr.

 

  try
    loQuery := TIBQuery.Create(nil);
    with dmNFE_TR do
    try
      //
      NFEletronica.EventoNFe.Evento.Clear;
      with NFEletronica.EventoNFe.Evento.Add do
      begin
        infEvento.chNFe := FCartaCorrecao.ChaveNFe;
        infEvento.CNPJ   := FCartaCorrecao.CPF_CNPJ;
        infEvento.dhEvento := IncMinute(now,5);
        infEvento.tpEvento := teCCe;
        infEvento.nSeqEvento := CD_CCe.FieldByName('CODIGO').AsInteger;
        infEvento.detEvento.xCorrecao := Trim(CD_CCe.FieldByName('CORRECAO').AsString);
      end;
      { Envia carta de correção }
      iLote := StrToInt(frmNfe.cdsNFE.FieldByName('NUMNF').AsString+FormatFloat('00',CD_CCe.FieldByName('CODIGO').AsFloat));
      NFEletronica.EnviarEventoNFe(iLote);
      //*** Autorizado
      if (NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 135) then
      begin
        sChave_CCe := Copy(NFEletronica.WebServices.EnvEvento.EventoRetorno.InfEvento.id,3,54);
        sProtocolo := NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
        dData_Autorizacao := NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento;
        iStatus := NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat;
        sHistorico := NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo;
        sXMLCCe := NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.XML;
 

        ShowMessage(sXMLCCe);  retorna vazio


        { Salvo o Xml autorizado ca CCe }
//        if NFEletronica.EventoNFe.LerXMLFromString(sXML) then
//          NFEletronica.EventoNFe.GerarXML;
        {}
        with loQuery, loQuery.Sql do
        begin
          Close;
          Clear;
          Database := VI_CCe.Database;
          Transaction := VI_CCe.Transaction;
          Add('UPDATE TB_CARTA_CORRECAO               ');
          Add('SET                                    ');
          Add('  DATA      = :DATA_AUTORIZACAO,       ');
          Add('  CHAVE_CCE = :CHAVE_CCE,              ');
          Add('  PROTOCOLO = :PROTOCOLO,              ');
          Add('  STATUS    = :STATUS,                 ');
          Add('  HISTORICO = :HISTORICO               ');
          Add('WHERE                                  ');
          Add('  CODEMP = :CODEMP                     ');
          Add('  AND COD_ENTRADA_SAIDA = :CODENTSAI   ');
          Add('  AND TIPO = :TIPO                     ');
          ParamByName('CODEMP')   .AsInteger  := StrToInt(CODEMP_COR);
          ParamByName('CODENTSAI').AsInteger  := CD_CCe.FieldByName('COD_ENTRADA_SAIDA').AsInteger;
          ParamByName('TIPO').AsString        := CD_CCe.FieldByName('TIPO').AsString;
          ParamByName('CHAVE_CCE').AsString   := sChave_CCe;
          ParamByName('PROTOCOLO').AsString   := sProtocolo;
          ParamByName('DATA_AUTORIZACAO').AsDatetime := dData_Autorizacao;
          ParamByName('STATUS').AsInteger := iStatus;
          ParamByName('HISTORICO').AsString := sHistorico;
          //***
          try
            if loQuery.Transaction.InTransaction then
              loQuery.Transaction.Rollback
            else
              loQuery.Transaction.StartTransaction;
            ExecSQL;
            loQuery.Transaction.Commit;
          except
            loQuery.Transaction.Rollback;
          end;
        end;
      end
      else
      begin
        ExibirMsg('Código: '+IntToStr(NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat)+' - '+
                             NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo);
        Exit;
      end;
    finally
      FreeAndNil(loQuery);
      CD_CCe.Refresh;
    end
  except
    on E : Exception do
       Raise Exception.Create(E.Message);
  end;
  //***
  with dmNFE_TR do
  begin
    ExibirMsg('Envio realizado com sucesso...'+#10#13+#10#13+
              'Data Hora recebimento: '+DateToStr(NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento)+#10#13+
              'Status: '+               IntToStr (NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat)+#10#13+
              'Motivo: '+                         NFEletronica.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo,
              'Envio de Nota Fiscal Eletrônica');
  end;
 

 

 

7302-ped-evento.xml

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Correto, só tem uma que foi implementada para que o pessoal que necessita ter um papel na mão possa imprimir, que no caso uma boa parte dos contadores

mas não tem mesmo nada regulamentado para imprimir a carta de correção

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia.

 

Não existe regulamento para impressão, mas algumas SEFAZ disponibilizam a impressão da mesma também, como é o caso de MG.

 

Atenciosamente.

Jéter Rabelo Ferreira

Onde MG disponibilizou a impressão da CC-e?

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Bom dia Régys.


Acesse o endereço http://portalnfe.fazenda.mg.gov.br/consultas.html

 

e efetue consulta completa.

 

Nos eventos, selecione a CCe e imprima-a.

 

Atenciosamente.

Jéter Rabelo Ferreira

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Link para o comentário
Compartilhar em outros sites

Realmente não da certo, baixei o ACBr do zero e instalei, e continua o mesmo não consigo imprimir a CCe com o status, protocolo e data de recebimento preenchidos. Este linha (EventoRetorno.retEvento.Items[0].RetInfEvento.XML) sempre retorna vazio.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Fiz o teste aqui, não é bem um modelo de impressão, na verdade eles mostram os dados da carta de correção em uma página web e você pode imprimir essa página, pode ser tomado como base para quem não quiser usar o modelo proposto no ACBrNFe.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

na pasta da CCe tenho dois xml um (Ex: 8101-eve.xml) contendo os dados de retorno e o outro (8101-ped-evento.xml) com os dados da CCe e assinatura, na impressa tenho que informar o 2º arquivo, porque se informar o 1ª  ocorre um erro. o xml de retorno teria que conter o dois conteudos. segue os arquivos

8101-ped-evento.xml

8101-eve.xml

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...

Boa tarde a todos,

 

Estou fazendo a carta de correção eletronica e toda vez que vou enviar ele da essa mensagem de erro:

 

 

Falha na validação dos dados do Envio de Evento 
'ID110110351301639840660001835500100000362310000301' viola a restrição pattern de 'ID[0-9]{52}'.
Falha da análise do atributo 'Id' com valor 'ID110110351301639840660001835500100000362310000301'.
 
O que poderá ser?
 
Aguardo.
Link para o comentário
Compartilhar em outros sites

Segue exemplo retirado do artigo: http://www.regys.com.br/como-enviar-uma-carta-de-correcao-utilizando-o-acbrnfe/

 

// Adicione a unit pcnConversao ao uses.
 
// numero do lote de envio
NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));
 
// preenchimento dos dados da carta de correção
ACBrNFe.EventoNFe.Evento.Clear;
ACBrNFe.EventoNFe.idLote := NumeroLote;
 
with ACBrNFe.EventoNFe.Evento.Add do
begin
  infEvento.chNFe      := ChaveNFe;
  infEvento.CNPJ       := CnpjEmitente;
  infEvento.dhEvento   := Now;
  infEvento.tpEvento   := teCCe;
  infEvento.nSeqEvento := <Numero Sequencial>; 
  infEvento.detEvento.xCorrecao := <Texto da Carta de Correção>;
end;
 
// envio da carta de correção
if ACBrNFe.EnviarEventoNFe(NumeroLote) then
begin
  with ACBrNFe.WebServices.EnvEvento 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 
    DataHoraEvento  := EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento;
    NumeroProtocolo := EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
    XMLCCe          := EventoRetorno.retEvento.Items[0].RetInfEvento.XML;
    CodigoStatus    := EventoRetorno.retEvento.Items[0].RetInfEvento.cStat;
    MotivoStatus    := EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo;
  end;
end
else
begin
  with ACBrNFe.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;

Boa tarde,

 

segui a orientação que foi dada acima pelo regys.silveira e quando tento emitir e imprimir da erro List index in bound (0) ou algo semelhante, não consigo gravar o xml da carta de correção e muito menos imprimi-la, seria possivel alguem me ajudar? Aguardo.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3334 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.