Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

consultoria_sticker.png

Conteúdo para desenvolvedores
 ao vivo de terça a quinta!
Saiba mais

dev.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


botao.png

beneficios.png

Erro ao inutilizar Nfe


Go to solution Solved by Juliomar Marchetti,

Recommended Posts

  • Fundadores

Aparentemente você não está ligando o componente de impressão com o componente ACBrNFe...

Consegue debugar o momento exato do A.V. ?

  • Like 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to post
Share on other sites
  • Usuários SAC

Não consigo debugar, mas segue o trecho completo abaixo:

 

var
 iID_Inutilizacao : Integer;
 sXML, sArq : string;
begin
  if length(Memo1.Text) <= 15 then
  begin
   iMessageBox(handle,'Favor preencher no mínimo 15 caracteres!','Inutilizar',MB_OK);
   Exit;
  end;


 if iMessageBox(Handle,'Deseja realmente inutilizar a numeração?','Inutilizar Numeração',MB_YESNO) <> IDYES then
  Exit;

 dmAcbr.ACBrNFe1.WebServices.Inutiliza(  sApenasNumeros(dmConexao.TFILIALCNPJ.AsString),
                                         Memo1.Text,
                                         edtAno.Value,
                                         55,
                                         edtSerie.Value,
                                         edtNumInicial.Value,
                                         edtNumFinal.Value);

 if dmAcbr.ACBrNFe1.WebServices.Inutilizacao.cStat = 102 then
 begin
  fInutilizacao.TInutilizacaoID_INUTILIZACAO.Required := False;
  fInutilizacao.TInutilizacao.Insert;
  fInutilizacao.TInutilizacaoID_INUTILIZACAO.IsNull;
  fInutilizacao.TInutilizacaoID_FILIAL.AsInteger      := iID_FILIAL;
  fInutilizacao.TInutilizacaoANO.AsInteger            := edtAno.Value;
  fInutilizacao.TInutilizacaoMODELO.AsInteger         := 55;
  fInutilizacao.TInutilizacaoSERIE.AsInteger          := edtSerie.Value;
  fInutilizacao.TInutilizacaoNUMERO_INICIAL.AsInteger := edtNumInicial.Value;
  fInutilizacao.TInutilizacaoNUMERO_FINAL.AsInteger   := edtNumFinal.Value;
  fInutilizacao.TInutilizacaoJUSTIFICATIVA.AsString   := Memo1.Text;
  fInutilizacao.TInutilizacaoPROTOCOLO.AsString       := dmAcbr.ACBrNFe1.WebServices.Inutilizacao.Protocolo;
  fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime     := dmAcbr.ACBrNFe1.WebServices.Inutilizacao.dhRecbto;

  if dmAcbr.ACBrNFe1.WebServices.Inutilizacao.tpAmb = taProducao then
   fInutilizacao.TInutilizacaoAMBIENTE.AsString := 'Produção'
  else
   fInutilizacao.TInutilizacaoAMBIENTE.AsString := 'Homologação';

  //retorna proximo id do generator
  iID_Inutilizacao := iRetornarID('GEN_INUTILIZACAO_ID');

  fInutilizacao.TInutilizacao.Post;
  dmConexao.IBTCONEXAO.CommitRetaining;

  sArq := dmConexao.TFILIALCODIGO_ESTADO.AsString +
         Copy(IntToStrZero(fInutilizacao.TInutilizacaoANO.AsInteger, 4), 3, 2) +
         sApenasNumeros(dmConexao.TFILIALCNPJ.AsString) +
         IntToStrZero(fInutilizacao.TInutilizacaoMODELO.AsInteger, 2) +
         IntToStrZero(fInutilizacao.TInutilizacaoSERIE.AsInteger, 3) +
         IntToStrZero(fInutilizacao.TInutilizacaoNUMERO_INICIAL.AsInteger, 9) +
         IntToStrZero(fInutilizacao.TInutilizacaoNUMERO_FINAL.AsInteger, 9);

  bInserirXMLDB('INUTILIZACAO',
                'INUTILIZACAO',
                IntToStr(iID_Inutilizacao),
                fInutilizacao.TInutilizacaoPROTOCOLO.AsString,
                'Inutilizada',
                dmACBr.ACBrNFe1.WebServices.Inutilizacao.XML_ProcInutNFe,
                sArq+'-procInutNFe.xml',
                fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime,
                0);
 // dmAcbr.ACBrNFe1.NotasFiscais.Clear;
  sXML := sVerificaArquivo('Inutilizada', 'INUTILIZACAO',
                           ExtractFileDir(Application.ExeName)+'\XML_NFE\Inu\'+FormatDateTime('YYYYMM',
                           fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime)+'\'+sArq+'-procInutNFe.xml', iID_Inutilizacao ,
                           0);

  if not FileExists(sXML) then
  begin
   iMessageBox(handle,pchar('Não foi possível imprimir!'+#13+#13+'XML não encontrato em: '+sXML),'Imprimir',MB_OK+MB_ICONWARNING);
   Exit;
  end;

  dmAcbr.ACBrNFe1.DANFE:=dmAcbr.ACBrNFeDANFEFR1;
  dmAcbr.ACBrNFe1.InutNFe.XML:='';
  dmAcbr.ACBrNFe1.InutNFe.LerXML( sXML );
  dmAcbr.ACBrNFe1.ImprimirInutilizacao;

  fInutilizacao.TInutilizacao.Close;
  fInutilizacao.TInutilizacao.ParamByName('ID_FILIAL').AsInteger := iID_FILIAL;
  fInutilizacao.TInutilizacao.Open;

  iMessageBox(handle,'Numeração inutilizada com sucesso! Favor excluir as notas fiscais que foram inutilizadas (caso houver)!','Inutilizar Numeração',MB_OK);
  Close;
 end
 else
 begin
  iMessageBox(handle,pchar('Não foi possível inutilizar a numeração!'+#13+IntToStr(dmAcbr.ACBrNFe1.WebServices.Inutilizacao.cStat)+' - '+dmAcbr.ACBrNFe1.WebServices.Inutilizacao.xMotivo),'Inutilizar Numeração',MB_OK);
 end;


 

Link to post
Share on other sites
37 minutos atrás, zemarcio disse:

Não consigo debugar, mas segue o trecho completo abaixo:

porque não consegue?

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

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to post
Share on other sites
  • Usuários SAC

o erro ocorre na máquina do cliente, por isso não consigo debugar, já coloquei uns showmessage e descobri que o erro ocorre na linha dmAcbr.ACBrNFe1.ImprimirInutilizacao e mesmo assim não é toda hora que acontece.

Edited by zemarcio
Link to post
Share on other sites

Hum creio que esteja destruindo algo que não é necessário no meio do caminho e assim ocorre o erro

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

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to post
Share on other sites
18 horas atrás, zemarcio disse:

o erro ocorre na máquina do cliente, por isso não consigo debugar, já coloquei uns showmessage e descobri que o erro ocorre na linha dmAcbr.ACBrNFe1.ImprimirInutilizacao e mesmo assim não é toda hora que acontece.

Outra possível causa, se você utilizar ClientDatasets, é a Midasdll.

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to post
Share on other sites
  • Solution

Melhor faz o seguinte vai na uses de algum form de sua aplicação e declara midaslib e compila seu executável e testa

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

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to post
Share on other sites
×
×
  • Create New...