Вы находитесь на странице: 1из 6

unit Frm_MovInutilizacaoCTe;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, EditNumber, jpeg, ExtCtrls, Buttons, ComCtrls;

type
TfrmMovInutilizacaoCTe = class(TForm)
gbFaixa: TGroupBox;
Label1: TLabel;
edtAno: TEditNumber;
Label2: TLabel;
edtModelo: TEditNumber;
Label4: TLabel;
edtSerie: TEditNumber;
Label5: TLabel;
edtInicial: TEditNumber;
Label6: TLabel;
edtFinal: TEditNumber;
Label3: TLabel;
edtJustificativa: TEdit;
Panel1: TPanel;
btnInutilizar: TBitBtn;
btnLimpar: TBitBtn;
btnConsultaStatus: TBitBtn;
MemoStatus: TMemo;
btnInformacoes: TSpeedButton;
procedure LimpaCampos;
procedure FormShow(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure AtivaBotao;
procedure edtAnoExit(Sender: TObject);
procedure edtSerieExit(Sender: TObject);
procedure edtInicialExit(Sender: TObject);
procedure edtFinalExit(Sender: TObject);
procedure edtJustificativaChange(Sender: TObject);
procedure btnInutilizarClick(Sender: TObject);
procedure btnLimparClick(Sender: TObject);
procedure btnConsultaStatusClick(Sender: TObject);
procedure btnInformacoesClick(Sender: TObject);
private
{ Private declarations }
sDocumento: String;
sDataHora, sStat, sMotivo, sProtocolo: String;
public
{ Public declarations }
end;

var
frmMovInutilizacaoCTe: TfrmMovInutilizacaoCTe;

implementation

uses
DateUtils, Math, Printers,
pcnConversao, pcnAuxiliar, ACBrDFeUtil,
CTA_DataModule, CNT_DataModule, DFe_DataModule,
Frm_ACBrCTe;

{$R *.dfm}

{ TfrmMovInutilizacaoCTe }

procedure TfrmMovInutilizacaoCTe.LimpaCampos;
begin
sDocumento := 'CTE';

DMDFe.ConfigurarCTe(sDocumento);

(*
DM_CTA.ParamDFe.Close;
DM_CTA.ParamDFe.SQL.Clear;
DM_CTA.ParamDFe.SQL.Add('Select * From Sis_ParamDFe');
DM_CTA.ParamDFe.SQL.Add('Where Empresa = :xEmpresa');
DM_CTA.ParamDFe.SQL.Add('and Modulo = :xModulo');
DM_CTA.ParamDFe.SQL.Add('and Documento = :xDocumento');
DM_CTA.ParamDFe.Params[0].AsString := DM_CTA.xCodEmpresa;
DM_CTA.ParamDFe.Params[1].AsString := DM_CTA.xModulo;
DM_CTA.ParamDFe.Params[2].AsString := sDocumento;
DM_CTA.ParamDFe.Active:=True;
DM_CTA.ParamDFe.Open;

// Configuraes -> Arquivos


DMDFe.CTe.Configuracoes.Arquivos.AdicionarLiteral := True;
DMDFe.CTe.Configuracoes.Arquivos.EmissaoPathCTe := True;
DMDFe.CTe.Configuracoes.Arquivos.PastaMensal := True;
DMDFe.CTe.Configuracoes.Arquivos.PathCTe :=
Trim(DM_CTA.ParamDFePathSalvar.AsString);

PathMensal := DMDFe.CTe.Configuracoes.Arquivos.GetPathCTe(0);

DMDFe.CTe.Configuracoes.Arquivos.PathCan :=
Trim(DM_CTA.ParamDFePathSalvar.AsString);
DMDFe.CTe.Configuracoes.Arquivos.PathCCe :=
Trim(DM_CTA.ParamDFePathSalvar.AsString);
DMDFe.CTe.Configuracoes.Arquivos.PathEPEC := PathMensal;
DMDFe.CTe.Configuracoes.Arquivos.PathInu := PathMensal;
DMDFe.CTe.Configuracoes.Arquivos.Salvar := True;
DMDFe.CTe.Configuracoes.Arquivos.SalvarCCeCanEvento := True;
DMDFe.CTe.Configuracoes.Arquivos.PathEvento := PathMensal;

// Configuraes -> Certificados


DMDFe.CTe.Configuracoes.Certificados.NumeroSerie :=
trim(DM_CTA.ParamDFeCertNumSerie.AsString);
DMDFe.CTe.Configuracoes.Certificados.Senha :=
trim(DM_CTA.ParamDFeCertSenha.AsString);

// Configuraes -> Geral


DMDFe.CTe.Configuracoes.Geral.FormaEmissao := teNormal;
DMDFe.CTe.Configuracoes.Geral.PathSalvar := PathMensal;
DMDFe.CTe.Configuracoes.Geral.PathSchemas :=
trim(DM_CTA.ParamDFePathSchema.AsString);
DMDFe.CTe.Configuracoes.Geral.Salvar := True;

// Configuraes -> WebServices


case DM_CTA.ParamDFeWSAmbiente.AsInteger of
0: DMDFe.CTe.Configuracoes.WebServices.Ambiente := taHomologacao;
1: DMDFe.CTe.Configuracoes.WebServices.Ambiente := taProducao;
end;
DMDFe.CTe.Configuracoes.WebServices.AguardarConsultaRet := 0;
DMDFe.CTe.Configuracoes.WebServices.AjustaAguardaConsultaRet := False;
DMDFe.CTe.Configuracoes.WebServices.IntervaloTentativas := 0;
DMDFe.CTe.Configuracoes.WebServices.ProxyHost :=
trim(DM_CTA.ParamDFeProxyHost.AsString);
DMDFe.CTe.Configuracoes.WebServices.ProxyPass :=
trim(DM_CTA.ParamDFeProxyPass.AsString);
DMDFe.CTe.Configuracoes.WebServices.ProxyPort :=
trim(DM_CTA.ParamDFeProxyPorta.AsString);
DMDFe.CTe.Configuracoes.WebServices.ProxyUser :=
trim(DM_CTA.ParamDFeProxyUser.AsString);
DMDFe.CTe.Configuracoes.WebServices.Tentativas := 5;
DMDFe.CTe.Configuracoes.WebServices.UF :=
DM_CTA.ParamDFeWSUF.AsString;
DMDFe.CTe.Configuracoes.WebServices.Visualizar :=
(DM_CTA.ParamDFeWSVisualizar.AsString='S');
*)

edtAno.StoreValue(YearOf(Date));
edtModelo.StoreValue(57);
edtSerie.StoreValue(DM_CTA.ParamDFeSerie.AsInteger);
edtInicial.StoreValue(0);
edtInicial.SetFocus;
edtFinal.StoreValue(0);
edtJustificativa.Text := '';

btnInutilizar.Enabled := False;
btnInutilizar.Visible := DM_CTA.PermiteControlar;
end;

procedure TfrmMovInutilizacaoCTe.FormShow(Sender: TObject);


begin
MemoStatus.Clear;
LimpaCampos;
end;

procedure TfrmMovInutilizacaoCTe.FormKeyPress(Sender: TObject;


var Key: Char);
begin
if key=#13
then begin
Perform(CM_DialogKey, VK_TAB, 0);
Key:=#0;
end;
end;

procedure TfrmMovInutilizacaoCTe.AtivaBotao;
begin
btnInutilizar.Enabled:=(edtSerie.ValueInt>0) and (edtInicial.ValueInt>0) and
(edtFinal.ValueInt>0) and (edtInicial.ValueInt<=edtFinal.ValueInt) and
(Length(trim(edtJustificativa.Text))>15);
end;

procedure TfrmMovInutilizacaoCTe.edtAnoExit(Sender: TObject);


begin
if edtAno.ValueInt<2000 then edtAno.StoreValue(YearOf(Date));
AtivaBotao;
end;

procedure TfrmMovInutilizacaoCTe.edtSerieExit(Sender: TObject);


begin
AtivaBotao;
end;

procedure TfrmMovInutilizacaoCTe.edtInicialExit(Sender: TObject);


begin
AtivaBotao;
end;

procedure TfrmMovInutilizacaoCTe.edtFinalExit(Sender: TObject);


begin
AtivaBotao;
end;

procedure TfrmMovInutilizacaoCTe.edtJustificativaChange(Sender: TObject);


begin
AtivaBotao;
end;

procedure TfrmMovInutilizacaoCTe.btnInutilizarClick(Sender: TObject);


var
CNPJ: String;
UF: Integer;
begin
DMDFe.DACTe.NumCopias := 1;
DMDFe.DACTe.MostrarPreview := False;

DM_CTA.Empresa.Close;
DM_CTA.Empresa.SQL.Clear;
DM_CTA.Empresa.SQL.Add('Select * From Sis_Empresa');
DM_CTA.Empresa.SQL.Add('Where Codigo = :xCodigo');
DM_CTA.Empresa.Params[0].AsString:=DM_CTA.ParamDFeEmitente.AsString;
DM_CTA.Empresa.Active:=True;
DM_CTA.Empresa.Open;

if copy(DM_CTA.EmpresaCNPJ.AsString,10,4)<>'0000'
then CNPJ := Copy(DM_CTA.EmpresaCNPJ.AsString, 2, 14)
else CNPJ := Copy(DM_CTA.EmpresaCNPJ.AsString, 1, 9) +
Copy(DM_CTA.EmpresaCNPJ.AsString, 14, 2);

DMDFe.CTe.WebServices.Inutiliza(CNPJ, edtJustificativa.Text, edtAno.ValueInt,


edtModelo.ValueInt, edtSerie.ValueInt,
edtInicial.ValueInt, edtFinal.ValueInt);

MemoStatus.Lines.Add('-------------------------------------------------------------
------------------------------');
MemoStatus.Lines.Add(' => Inutilizao de Numerao');

MemoStatus.Lines.Add('-------------------------------------------------------------
------------------------------');
MemoStatus.Lines.Add(' Ano : ' + edtAno.Text);
MemoStatus.Lines.Add(' Modelo : ' + edtModelo.Text);
MemoStatus.Lines.Add(' Inicial : ' + edtInicial.Text);
MemoStatus.Lines.Add(' Final : ' + edtFinal.Text);
MemoStatus.Lines.Add(' Srie : ' + edtSerie.Text);
MemoStatus.Lines.Add(' Justificativa: ' + edtJustificativa.Text);

UF := DMDFe.CTe.WebServices.Inutilizacao.cUF;
sProtocolo := DMDFe.CTe.WebServices.Inutilizacao.Protocolo;
sMotivo := DMDFe.CTe.WebServices.Inutilizacao.xMotivo;
sStat := IntToStr(DMDFe.CTe.WebServices.Inutilizacao.cStat);
sDataHora := DateTimeToStr(DMDFe.CTe.WebServices.Inutilizacao.dhRecbto);
MemoStatus.Lines.Add(' Protocolo : ' + sProtocolo);
MemoStatus.Lines.Add(' Motivo : ' + sMotivo);
MemoStatus.Lines.Add(' Status : ' + sStat);
MemoStatus.Lines.Add(' Data/Hora : ' + sDataHora);
MemoStatus.Lines.Add(' ');

DMDFe.CTe.InutCTe.LerXML(DMDFe.CTe.Configuracoes.Arquivos.GetPathInu + '\' +
IntToStr(UF) + // Copy(edtAno.Text, 3, 2) +
CNPJ + edtModelo.Text + edtSerie.Text +
FormatFloat('000000000', edtInicial.ValueInt) +
FormatFloat('000000000', edtFinal.ValueInt) +
'-ProcInutCTe');
DMDFe.CTe.ImprimirInutilizacao;
DMDFe.CTe.ImprimirInutilizacaoPDF;

MessageDlg('Numerao Inutilizada', mtInformation, [mbOk], 0);


LimpaCampos;
end;

procedure TfrmMovInutilizacaoCTe.btnLimparClick(Sender: TObject);


begin
MemoStatus.Clear;
LimpaCampos;
end;

procedure TfrmMovInutilizacaoCTe.btnConsultaStatusClick(Sender: TObject);


var
sAmbiente: String;
begin
DMDFe.CTe.WebServices.StatusServico.Executar;
sAmbiente := trim(TpAmbToStr( DMDFe.CTe.WebServices.StatusServico.tpAmb ));
if sAmbiente = '1'
then sAmbiente := sAmbiente + ' - Produo'
else sAmbiente := sAmbiente + ' - Homologao';

MemoStatus.Lines.Add('-------------------------------------------------------------
------------------------------');
MemoStatus.Lines.Add(' => Consultando Status do Servio');

MemoStatus.Lines.Add('-------------------------------------------------------------
------------------------------');
MemoStatus.Lines.Add(' Ambiente : ' + sAmbiente);
MemoStatus.Lines.Add(' Verso Aplicativo : ' +
DMDFe.CTe.WebServices.StatusServico.verAplic);
MemoStatus.Lines.Add(' Status Cdigo : ' +
IntToStr( DMDFe.CTe.WebServices.StatusServico.cStat ));
MemoStatus.Lines.Add(' Status Descrio : ' +
DMDFe.CTe.WebServices.StatusServico.xMotivo);
MemoStatus.Lines.Add(' UF : ' +
CodigoParaUF( DMDFe.CTe.WebServices.StatusServico.cUF ));
MemoStatus.Lines.Add(' Recebimento : ' +
DFeUtil.SeSenao(DMDFe.CTe.WebServices.StatusServico.dhRecbto = 0, '',

DateTimeToStr(DMDFe.CTe.WebServices.StatusServico.dhRecbto)));
MemoStatus.Lines.Add(' Tempo Mdio : ' +
IntToStr( DMDFe.CTe.WebServices.StatusServico.TMed ));
MemoStatus.Lines.Add(' Retorno : ' +
DFeUtil.SeSenao(DMDFe.CTe.WebServices.StatusServico.dhRetorno = 0, '',

DateTimeToStr(DMDFe.CTe.WebServices.StatusServico.dhRetorno)));
MemoStatus.Lines.Add(' Observao : ' +
DMDFe.CTe.WebServices.StatusServico.xObs);

MemoStatus.Lines.Add('-------------------------------------------------------------
------------------------------');
MemoStatus.Lines.Add(' ');
end;

procedure TfrmMovInutilizacaoCTe.btnInformacoesClick(Sender: TObject);


begin
frmACBrCTe.ShowModal;
end;

end.