Jump to content

Assista tectoy.png

Impressao CCe


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

Recommended Posts

  • Consultores

Bom pelo erro posso dizer que ali onde ele está tentando usar o indice 0 simplismente não existe

esse código acima postado é o que tem em sua aplicação? senão for poste o seu código com todos os detalhes assim é possível indicar um erro

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • Replies 76
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

  • Consultores

Tenta conferir se existe mesmo um .retEvento.Items.count

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • Consultores

sim o que quis dizer é verificar lá no seu código

if ACBrNFe.EnviarEventoNFe(NumeroLote) then
begin
  with ACBrNFe.WebServices.EnvEvento do
  begin
    if not(EventoRetorno.retEvento.Items[0].RetInfEvento.cStat in [135, 136]) then

 

ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items

possui alguma informação, pois acredito que o erro dispare ali por não ter o indice, quer dizer não ter preenchido o componente com o retorno

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

sim mas isto é a resposta que o sefaz deve fazer ao evento certo?

 

meu codigo esta igual a este que te repassei.

 

Segue meu codigo:

 

 

var codufemp, NumeroLote, CodigoStatus: integer;
    XMLCCe, MotivoStatus, correcao, arq_nfe, NumeroProtocolo: string;
    DataHoraEvento: TDateTime;
begin
    if MessageDlg('Deseja enviar Carta de Correção para essa Nota Fiscal?',mtconfirmation,[mbYes,mbNo],0) = mryes then
    begin
        // numero do lote de envio
        NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));
 
        NFe.EventoNFe.Evento.Clear;
        NFe.EventoNFe.idLote := NumeroLote;
 
        // preenchimento dos dados da carta de correção
        with NFe.EventoNFe.Evento.Add do
        begin
            infEvento.chNFe      := qryNfTransNROCHAVENFE.AsString;
            infEvento.CNPJ       := funcoes.TiraCaracter(DM.qryEmpresaCNPJ.AsString);
            infEvento.dhEvento   := Now;
            infEvento.tpEvento   := teCCe;
 
            With DM.qryAux1 do
            Begin
                Close;
                Sql.Clear;
                Sql.Add('SELECT (CASE WHEN PROTOCOLO_CCE IS NOT NULL THEN 2 ELSE 1 END) AS SEQ FROM NOTA_FISCAL '
                       +'WHERE NRONF = '+qryNfTransNRONF.AsString+' '
                       +'  AND NROCHAVENFE = '''+qryNfTransNROCHAVENFE.AsString+''' '
                       +'  AND CODEMPRESA = '+UPrincipal.CodEmpresa+' ');
                Open;
 
                infEvento.nSeqEvento := DM.qryAux1.FieldByName('SEQ').AsInteger;
            End;
 
            infEvento.detEvento.descEvento := 'Carta de Correção';
 
            if not(InputQuery('Informe o motivo da carta de correção', 'Motivo', correcao)) then
                 exit;
 
            infEvento.detEvento.xCorrecao := correcao;
 
            infEvento.detEvento.xCondUso := 'A Carta de Correcao e disciplinada pelo paragrafo 1o-A do art. '
                                          +'7o do Convenio S/N, de 15 de dezembro de 1970 e pode ser utilizada '
                                          +'para regularizacao de erro ocorrido na emissao de documento fiscal, '
                                          +'desde que o erro nao esteja relacionado com: I - as variaveis que '
                                          +'determinam o valor do imposto tais como: base de calculo, aliquota, '
                                          +'diferenca de preco, quantidade, valor da operacao ou da prestacao; '
                                          +'II - a correcao de dados cadastrais que implique mudanca do remetente '
                                          +'ou do destinatario; III - a data de emissao ou de saida. ';
        end;
 
        // envio da carta de correção
        if NFe.EnviarEventoNFe(NumeroLote) then
        begin
            with NFe.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;
 
                NFe.Configuracoes.Geral.PathSalvar := DM.qryEmpresaPATHARQNFE.AsString;
                NFe.NotasFiscais.Items[0].SaveToFile;
 
                mResp.Lines.Add('Data e hora do evento: '+FormatDateTime('dd/MM/yyyy', DataHoraEvento));
                mResp.Lines.Add('Protocolo de envio CC-e: '+NumeroProtocolo);
                mResp.Lines.Add('Arquivo XML: '+XMLCCe);
                mResp.Lines.Add('Status: '+IntToStr(CodigoStatus)+' - '+MotivoStatus);
 
                ACBrNFeDANFERaveCB1.MostrarPreview := True;
 
                NFe.NotasFiscais.Clear;
                NFe.NotasFiscais.LoadFromString(qryNfTransPATHNFE.AsString);
 
                NFe.EventoNFe.Evento.Clear;
                NFe.EventoNFe.LerXMLFromString(XMLCCe);
 
                NFe.ImprimirEvento;
 
                //Geração do arquivo PDF
 
                NFe.DANFE.PathPDF := DM.qryEmpresaPATHARQPDF.AsString;
                ACBrNFeDANFERaveCB1.MostrarPreview := True;
 
                NFe.NotasFiscais.Clear;
                NFe.NotasFiscais.LoadFromString(qryNfTransPATHNFE.AsString);
 
                NFe.EventoNFe.Evento.Clear;
                NFe.EventoNFe.LerXMLFromString(XMLCCe);
 
                NFe.ImprimirEventoPDF;
 
                With qryAux1 do
                Begin
                    Close;
                    Sql.Clear;
                    Sql.Add('UPDATE NOTA_FISCAL '
                           +'   SET PROTOCOLO_CCE = '''+NumeroProtocolo+''', '
                           +'       ARQCCE = '''+arq_nfe+''' '
                           +'WHERE NRONF = '+qryNfTransNRONF.AsString+' '
                           +'  AND NROCHAVENFE = '''+qryNfTransNROCHAVENFE.AsString+''' '
                           +'  AND CODEMPRESA = '+UPrincipal.CodEmpresa+' ');
                    ExecSql;
 
                    DM.transLoteamento.CommitRetaining;
                End;
            end;
        end
        else
        begin
            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;
end;
Link to comment
Share on other sites

  • Consultores

confere comigo por isso lhe pedi o código de sua aplicação

NFe.NotasFiscais.Items[0].SaveToFile;

você tem uma nf-e carregada no componente? pois não consegui achar em seu código o local onde carrega o XML

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • Consultores

Tentou debugar e ver se o problema é nessa linha?

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

Então cara esse é outro problema eu tenho uma espécie de robo que le uns arquivos .dbf e na maquina do cliente como é win xp roda tranquilo e na minha máquina que preciso debugar meu windows é o 7 64 bits ai ele não lê os .dbf da erro que não pode abrir os dados e tal.

Link to comment
Share on other sites

  • 4 weeks later...

Estou tentando imprir a CC-e mas está apresentando o seguinte erro no ACBrNFeMonitor:

 

"ERRO: Imprimir"

 

Comando enviado:

" nfe.ImprimirEvento(C:\NE\201302\43130215540455000177550000000205441388907262-ProcEventoNFe.xml,C:\NE\201302\43130215540455000177550000000205441388907262-nfe.xml) "

Cristiano.

Link to comment
Share on other sites

  • Membros Pro

Pessoal boa tarde, tenho lido um monte de respostas iguais em relação a impressão de eventos, o qual até hoje pode ser impresso no modo RAVECB para quem usa o NfeMonitor, então, como eu não tenho como alterar em tempo de execução, ou ao menos não achei como fazer a alteração de RAVE para RAVECB em tempo de execução para a impressão do evento, pergunto:

Seria possivel habilitar, implementar no comando NFE.ImprimirEvento(ArquivoEvento, Arquivo xml Nfe, flag tipo de impressão rave/ravecb) uma opção de vc poder escolher qual modo vc quer imprimir, ou seja ao vc escolher, o NfeMonitor gerar o relatório conforme o tipo da escolha. Não sei quanto a dificuldade dos colaboradores em desenvolver, caso não seja, poderia ser extendido inclusive para o Danfe, assim teríamos uma padrão no NfeMonitor em execução e outro em tempo que poderíamos chamar/habilitar somente para uma operação sem que altere o padrão.

 

[]S,

Jorge Andrade

 

"Quem tem medo de perguntar, está fadado a eternizar-se na dúvida - [Jorge Andrade]";
 

"A soberba,  é o sentimento caracterizado pela pretensão de superioridade sobre as demais pessoas, levando a manifestações ostensivas de arrogância, por vezes sem fundamento algum em fatos ou variáveis reais - [Desconhecido";
 

"Aquele  que pesquisa antes de indagar, tem a grande chance de dirimir as suas dúvidas, fixar o aprendizado da pesquisa e evoluir para outros conhecimentos inesperados - [Jorge Andrade]";
 

"Os políticos e as fraldas devem ser trocados frequentemente e pela mesma razão - [Éça de Queiroz]".

Link to comment
Share on other sites

  • Consultores

jorge andrade veja esse post do Kiko fernandes

 

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • Membros Pro

Juliomar

 

Boa tarde

 

Agradeço a informação e sei do empenho que todos tem em disponibilizar soluções mais abragente e confiável, porém,  sinceramente o processo é luso, ainda mais,  diante dos problemas que o nosso amigo Kiko tem encontrado com o LOGO, melhor continuar com o processo manual, ou seja, gerar a carta no servidor e efetuar  a sua impressão no modo local na estação do usuário,  mesmo que o processo seja somente por alguns segundo, ao alterar esta configuração no servidor em tempo de execução, posso prejudicar os demais processos concorrentes.

Vou estudar a situação e ver se consigo achar alguma maneira de manobrar a situação.

 

[]s,

Jorge Andrade

 

"Quem tem medo de perguntar, está fadado a eternizar-se na dúvida - [Jorge Andrade]";
 

"A soberba,  é o sentimento caracterizado pela pretensão de superioridade sobre as demais pessoas, levando a manifestações ostensivas de arrogância, por vezes sem fundamento algum em fatos ou variáveis reais - [Desconhecido";
 

"Aquele  que pesquisa antes de indagar, tem a grande chance de dirimir as suas dúvidas, fixar o aprendizado da pesquisa e evoluir para outros conhecimentos inesperados - [Jorge Andrade]";
 

"Os políticos e as fraldas devem ser trocados frequentemente e pela mesma razão - [Éça de Queiroz]".

Link to comment
Share on other sites

Pessoal boa tarde, tenho lido um monte de respostas iguais em relação a impressão de eventos, o qual até hoje pode ser impresso no modo RAVECB para quem usa o NfeMonitor, então, como eu não tenho como alterar em tempo de execução, ou ao menos não achei como fazer a alteração de RAVE para RAVECB em tempo de execução para a impressão do evento, pergunto:

Seria possivel habilitar, implementar no comando NFE.ImprimirEvento(ArquivoEvento, Arquivo xml Nfe, flag tipo de impressão rave/ravecb) uma opção de vc poder escolher qual modo vc quer imprimir, ou seja ao vc escolher, o NfeMonitor gerar o relatório conforme o tipo da escolha. Não sei quanto a dificuldade dos colaboradores em desenvolver, caso não seja, poderia ser extendido inclusive para o Danfe, assim teríamos uma padrão no NfeMonitor em execução e outro em tempo que poderíamos chamar/habilitar somente para uma operação sem que altere o padrão.

 

[]S,

 

Bem lembrado Jorge. Mesmo fazendo o que está no post (do Kiko) citado pelo Juliomar, fica mais complicado e também tem o caso da impressão do cancelamento que fica mais complicado ainda. Seria interessante ter essa versatilidade ou simplesmente imprimir os eventos modo Rave.

Cristiano.

Link to comment
Share on other sites

  • 3 months later...

Li todo o tópico pra ver se alguém tinha passado pelo mesmo problema que eu e me parece que sim, porém devem ter contornado o problema de alguma forma e não postaram a solução.

Mais de um usuário postou o fato de não estar mostrando o status, protocolo e data/hora de registro, parece que não ficou claro pro pessoal aqui.

Caso eu carregue o XML da NFe autorizada e o XML da CCe autorizada a impressão sai perfeita.

 

O problema só ocorre se tentar imprimir logo que recebe a autorização da CCe, ou seja, fazendo essa sequencia:

1 - Carrega o XML da NFe autorizada;

2 - Monta e envia o evento da CCe;

3 - recebe o retorno de Evento registrado OK;

4 - Manda imprimir o evento;

 

Por hora contornei o problema carregando tudo novamente (os 2 XML).

 

Nessa brincadeira descobri que não tem um "Clear" para os eventos, tive que modificar a TEventoNFe.LerXMLFromString dando um "FEvento.Clear";

Link to comment
Share on other sites

Li todo o tópico pra ver se alguém tinha passado pelo mesmo problema que eu e me parece que sim, porém devem ter contornado o problema de alguma forma e não postaram a solução.

Mais de um usuário postou o fato de não estar mostrando o status, protocolo e data/hora de registro, parece que não ficou claro pro pessoal aqui.

Caso eu carregue o XML da NFe autorizada e o XML da CCe autorizada a impressão sai perfeita.

 

O problema só ocorre se tentar imprimir logo que recebe a autorização da CCe, ou seja, fazendo essa sequencia:

1 - Carrega o XML da NFe autorizada;

2 - Monta e envia o evento da CCe;

3 - recebe o retorno de Evento registrado OK;

4 - Manda imprimir o evento;

 

Por hora contornei o problema carregando tudo novamente (os 2 XML).

 

Nessa brincadeira descobri que não tem um "Clear" para os eventos, tive que modificar a TEventoNFe.LerXMLFromString dando um "FEvento.Clear";

 

Sério que é só comigo que acontece isso ?

Link to comment
Share on other sites

  • 1 month later...
  • 1 year later...

Ola a todos, boa tarde!

 

Pessoal e o texto abaixo resolveu? 

 

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'.
 
Estou com o mesmo problema, e não li no post a solução deste problema.
 
Obrigado
Link to comment
Share on other sites

  • Consultores

Boa tarde Oduvaldo,

 

Você esta usando o componente ACBrNFe?

 

Se sim, é estranho esse erro, uma vez que ele monta o atributo ID conforme consta no manual e notas técnicas.

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.