Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao inutilizar Nfe


Ver Solução Respondido por Juliomar Marchetti,
  • Este tópico foi criado há 1460 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

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;


 

  • Membros Pro
Postado (editado)

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.

Editado por zemarcio
  • Consultores
Postado
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
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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