unit CancelaContasReceber;

interface

uses
  Windows, system.UItypes, IB_Access,  Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TelaComum, ImgList, ExtCtrls, StdCtrls, Buttons, IB_Grid, Mask,
  IB_Controls, IB_Components,Rotinas, ComCtrls, OleCtrls, SHDocVw,
  IB_EditButton, System.ImageList;

type
  TfrmCancelamento_ContasReceber = class(TfrmTelaComum)
    qryContaReceber: TIB_Query;
    dtContaReceber: TIB_DataSource;
    OpenDialog1: TOpenDialog;
    GroupBox3: TGroupBox;
    dbNumero: TIB_Edit;
    btnPesquisaNF: TBitBtn;
    IB_Edit1: TIB_Edit;
    IB_Edit3: TIB_Edit;
    dbNomeFantasia: TIB_Edit;
    grpReferencia: TGroupBox;
    IB_Edit2: TIB_Edit;
    btnPesquisaPedido: TBitBtn;
    IB_Edit4: TIB_Edit;
    IB_Edit5: TIB_Edit;
    qryHistorico: TIB_Query;
    dtHistorico: TIB_DataSource;
    procedure BtGravarClick(Sender: TObject);
    procedure btnPesquisaNFClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure dbNumeroExit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCancelamento_ContasReceber: TfrmCancelamento_ContasReceber;
  NomeArquivo_Cancelar:String;
implementation

uses Justificativa, DataModulo, ModeloPesquisa, cadNF, ConfigacaoSistema;

{$R *.dfm}

procedure TfrmCancelamento_ContasReceber.BtGravarClick(Sender: TObject);
begin
  inherited;

   if not qryContaReceber.FieldByName('DATA_PAGAMENTO').IsNull then
   begin
     if (MessageDlg('Esta Conta está baixada no sistema,'+#13+#10+'não é necessário realizar o cancelamento.'+#13+#10+'Deseja realizar o cancelamento mesmo assim?', mtConfirmation, [mbYes, mbNo], 0) = mrNo) then
       Exit;
   end;

   frmJustificativa := TfrmJustificativa.Create(Application);
   if frmJustificativa.ShowModal = mrOk then
   begin
      qryContaReceber.Edit;
      qryContaReceber.FieldByName('CANCELADA').Value            := 'T';
      qryContaReceber.FieldByName('DATA_CANCELADO').Value       := Date;
      qryContaReceber.FieldByName('COD_USUARIO_CANCELADO').Value:= Dados.qrUsuario.FieldByName('COD_USUARIO').Value;
      qryContaReceber.FieldByName('MOTIVO_CANCELADO').Value     := frmJustificativa.mmJustificativa.Lines.Text;
      qryContaReceber.Post;

      qryHistorico.Insert;
      qryHistorico.FieldByName('DATA_EVENTO').Value:=Date;
      qryHistorico.FieldByName('COD_USUARIO').Value:= Dados.qrUsuario.FieldByName('COD_USUARIO').Value;
      qryHistorico.FieldByName('COD_FILIAL').Value:= dados.qrFilial.FieldByName('COD_FILIAL').Value;
      qryHistorico.FieldByName('COD_CONTAS_RECEBER').Value:=qryContaReceber.FieldByName('COD_CONTA_RECEBER').Value;
      qryHistorico.FieldByName('HORA_EVENTO').Value:= Time;
      qryHistorico.FieldByName('OBSERVACAO').Value:= Dados.qrUsuario.FieldByName('NOME').Value+' Cancelou a Conta: ' + qryContaReceber.FieldByName('COD_CONTA_RECEBER').AsString + ' da filial ' + qryContaReceber.FieldByName('cod_filial').AsString;
      qryHistorico.Post;

      descricao_auditoria :=qryHistorico.FieldByName('OBSERVACAO').AsString;
      GravaAuditoria(False,qryContaReceber);

   end;
   frmJustificativa.Destroy;

   frmCancelamento_ContasReceber.Close;
end;

procedure TfrmCancelamento_ContasReceber.btnPesquisaNFClick(Sender: TObject);
begin
  inherited;
   frmModeloPesquisa                    := TfrmModeloPesquisa.Create(Application);
   frmModeloPesquisa.Tabela             := qryContaReceber;
   frmModeloPesquisa.lblTitulo.Caption  := 'Pesquisa Conta Receber';

   if frmModeloPesquisa.ShowModal = mrOk then
   begin
       qryContaReceber.Locate('COD_CONTA_RECEBER',frmModeloPesquisa.TbPrincipal.FieldByName('COD_CONTA_RECEBER').AsString,[]);

{
    qryContaReceber.Filtered:=False;
    qryContaReceber.Filter:= ('NUMERO='+QuotedStr(frmModeloPesquisa.TbPrincipal.FieldByName('NUMERO').AsString));
    qryContaReceber.Filtered:=True;}
   end;
   frmModeloPesquisa.Destroy;

   Screen.OnActiveControlChange         := TrocaCor;

end;

procedure TfrmCancelamento_ContasReceber.FormCreate(Sender: TObject);
begin
  inherited;
  qryContaReceber.Open;
  if not qryContaReceber.Bof then
  begin
     qryContaReceber.First;
     qryContaReceber.Prior;
  end;
end;

procedure TfrmCancelamento_ContasReceber.dbNumeroExit(Sender: TObject);
begin
  inherited;
  qryContaReceber.Filtered:=False;
  qryContaReceber.Filter:= 'COD_CONTA_RECEBER='+QuotedStr(dbNumero.Text);
  qryContaReceber.Filtered:=True;
end;

end.
