unit CadConvenio;

interface

uses
  Windows, system.UItypes, IB_Access, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ModeloCadastro, IB_Components, IB_Grid, StdCtrls,
  Buttons, IB_Controls, Mask, UCBase, ImgList, AppEvnts, ExtCtrls, 
  Grids, ComCtrls, jpeg, IB_EditButton, System.ImageList;

type
  TfrmConvenio = class(TFrModeloCadastro)
    edtConvenio: TIB_Edit;
    edtConta: TIB_Edit;
    edtAgencia: TIB_Edit;
    edtCarteira: TIB_Edit;
    edtLocalPagamento: TIB_Edit;
    edtInstrucoes: TIB_Memo;
    edtBanco: TIB_LookupCombo;
    qrBanco: TIB_Query;
    dsrBAnco: TIB_DataSource;
    qrVerificaConvenio: TIB_Query;
    edtDescricao: TIB_Edit;
    IB_Edit1: TIB_Edit;
    IB_Edit2: TIB_Edit;
    edtMultaValor: TIB_Edit;
    edtJurosValor: TIB_Edit;
    edtDesconto: TIB_Edit;
    GroupBox1: TGroupBox;
    dbCodigo: TIB_Text;
    edtCodCedente: TIB_Edit;
    GroupBox3: TGroupBox;
    edtCONVENIO_COBRANCAPADRAO_ARQUIVO_Remessa: TIB_ComboBox;
    edtPadraoArqRetorno: TIB_ComboBox;
    edtDiretorioRemessa: TIB_Edit;
    SpeedButton2: TSpeedButton;
    edtDiretorioRetorno: TIB_Edit;
    SpeedButton1: TSpeedButton;
    edtUltimaRemessa: TIB_Edit;
    IB_CheckBox1: TIB_CheckBox;
    IB_ComboBox1: TIB_ComboBox;
    edtDiretorioProcessados: TIB_Edit;
    SpeedButton3: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure AtualizaDados;
    procedure BtProximoClick(Sender: TObject);
    procedure BtAnteriorClick(Sender: TObject);
    procedure BtEditarClick(Sender: TObject);
    procedure BtInserirClick(Sender: TObject);
    procedure BtGravarClick(Sender: TObject);
    procedure TbPrincipalError(Sender: TObject; const ERRCODE: Integer;
      ErrorMessage, ErrorCodes: TStringList; const SQLCODE: Integer;
      SQLMessage, SQL: TStringList; var RaiseException: Boolean);
    procedure BtExcluirClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmConvenio: TfrmConvenio;

implementation

uses SelecionaDiretorio;

{$R *.dfm}

procedure TfrmConvenio.AtualizaDados;
begin
    //================= Atualzia a visualizacao dos dados ==============
   if not qrBanco.Locate('codigo', TbPrincipal.FieldByName('cod_banco').Value, []) then
   begin
      if not qrBanco.Bof then
      begin
         qrBanco.First;
         qrBanco.Prior;
      end;
   end;

end;

procedure TfrmConvenio.FormCreate(Sender: TObject);
begin
  inherited;
   Gera_Codigo := True;
   qrBanco.Open;
end;

procedure TfrmConvenio.BtProximoClick(Sender: TObject);
begin
   inherited;
   AtualizaDados;
end;

procedure TfrmConvenio.BtAnteriorClick(Sender: TObject);
begin
   inherited;
   AtualizaDados;
end;

procedure TfrmConvenio.BtEditarClick(Sender: TObject);
begin
   inherited;
   AtualizaDados;
end;

procedure TfrmConvenio.BtInserirClick(Sender: TObject);
begin
   inherited;
   AtualizaDados;
end;

procedure TfrmConvenio.BtGravarClick(Sender: TObject);
begin
   if Trim(edtdescricao.Text) = '' then
   begin
      MessageDlg('informe uma descrição para o convênio ', mtWarning, [mbOK], 0);
      edtDescricao.SetFocus;
      Exit;
   end;


   if edtBanco.Text = '' then
   begin
      MessageDlg('Informe o banco', mtWarning, [mbOK], 0);
      edtBanco.SetFocus;
      Exit;
   end;

   if edtConta.Text = '' then
   begin
      if MessageDlg('O número da conta não foi informado.'+#13+#10+'Deseja informar agora?', mtConfirmation, [mbYes, mbNo], 0) = mryes then
      begin
         edtConta.SetFocus;
         Exit;
      end;
   end;

   if edtAgencia.Text = '' then
   begin
      if MessageDlg('O número da agência não foi informado.'+#13+#10+'Deseja informar agora?', mtConfirmation, [mbYes, mbNo], 0) = mryes then
      begin
         edtAgencia.SetFocus;
         Exit;
      end;
   end;

   if edtCarteira.Text = '' then
   begin
      if MessageDlg('O número da carteira não foi informado.'+#13+#10+'Deseja informar agora?', mtConfirmation, [mbYes, mbNo], 0) = mryes then
      begin
         edtCarteira.SetFocus;
         Exit;
      end;
   end;

   if qrVerificaConvenio.FieldByName('cod_convenio').IsModified then
   begin
      qrVerificaConvenio.Close;
      qrVerificaConvenio.ParamByName('cod_convenio').Value := TbPrincipal.FieldByName('cod_convenio').Value;
      qrVerificaConvenio.Open;

      if qrVerificaConvenio.RecordCount > 1 then
      begin
         MessageDlg('O número do convênio informado já está cadastrado', mtWarning, [mbOK], 0);
         edtConvenio.SetFocus;
         Exit;
      end;
   end;

   TbPrincipal.FieldByName('cod_banco').Value := qrBanco.FieldByName('codigo').Value;

   //================= Grava a auditoria no sistema ==============
   if TbPrincipal.State in [dssinsert] then
      descricao_auditoria := 'CADASTROU O CONVENIO DE COBRANCA N° ' + TbPrincipal.FieldByName('cod_convenio').AsString + ' BANCO ' + TbPrincipal.FieldByName('DESCRICAO').AsString;

   if TbPrincipal.State in [dssEDIT] then
      descricao_auditoria := 'ALTEROU O CONVENIO DE COBRANCA N° ' + TbPrincipal.FieldByName('cod_convenio').OldAsString + ' BANCO ' + TbPrincipal.FieldByName('DESCRICAO').OldAsString;

   inherited;
end;

procedure TfrmConvenio.TbPrincipalError(Sender: TObject;
  const ERRCODE: Integer; ErrorMessage, ErrorCodes: TStringList;
  const SQLCODE: Integer; SQLMessage, SQL: TStringList;
  var RaiseException: Boolean);
begin
  inherited;
   if ERRCODE = 335544665 then
   begin
      MessageDlg('O número do convênio informado já está cadastrado.', mtWarning, [mbOK], 0);
   end;
   RaiseException := False;
end;

procedure TfrmConvenio.BtExcluirClick(Sender: TObject);
begin
   descricao_auditoria := 'EXCLUIU O CONVENIO ' + TbPrincipal.FieldByName('COD_CONVENIO').AsString + ' DO BANCO ' +
                          TbPrincipal.FieldByName('DESCRICAO').AsString + ' CONTA/AGENCIA ' + TbPrincipal.FieldByName('CONTA').AsString + ' / ' + TBPRINCIPAL.FieldByName('AGENCIA').AsString;
   inherited;

end;

procedure TfrmConvenio.SpeedButton2Click(Sender: TObject);
var Local : string;
begin
  inherited;
   frmSelecionaDiretorio := TfrmSelecionaDiretorio.Create(Application);
   frmSelecionaDiretorio.lblTitulo.Caption := 'Local para os arquivos de Remessa';
   if frmSelecionaDiretorio.ShowModal = mrok then
   begin
      Local := frmSelecionaDiretorio.diretorio.SelectedFolder.PathName ;
      TbPrincipal.FieldByName('LOCAL_ARQ_REMESSA').Value := Local;
   end;
   frmSelecionaDiretorio.Destroy;
   Screen.OnActiveControlChange := TrocaCor;

end;

procedure TfrmConvenio.SpeedButton3Click(Sender: TObject);
begin
  inherited;
   frmSelecionaDiretorio := TfrmSelecionaDiretorio.Create(Application);
   frmSelecionaDiretorio.lblTitulo.Caption := 'Local para os arquivos de Retorno';
   if frmSelecionaDiretorio.ShowModal = mrok then
   begin
      edtDiretorioProcessados.Text := frmSelecionaDiretorio.diretorio.SelectedFolder.PathName ;
   end;
   frmSelecionaDiretorio.Destroy;
   Screen.OnActiveControlChange := TrocaCor;
end;

procedure TfrmConvenio.SpeedButton1Click(Sender: TObject);
var Local : string;
begin
  inherited;
   frmSelecionaDiretorio := TfrmSelecionaDiretorio.Create(Application);
   frmSelecionaDiretorio.lblTitulo.Caption := 'Local para os arquivos de Retorno';
   if frmSelecionaDiretorio.ShowModal = mrok then
   begin
      Local := frmSelecionaDiretorio.diretorio.SelectedFolder.PathName ;
      TbPrincipal.FieldByName('LOCAL_ARQ_RETORNO').Value := Local;
   end;
   frmSelecionaDiretorio.Destroy;
   Screen.OnActiveControlChange := TrocaCor;
end;

end.
