unit CadFuncionario;

interface

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

type
  TfrmCadFuncionario = class(TFrModeloCadastro)
    GroupBox1: TGroupBox;
    edtCep: TIB_Edit;
    edtComplemento: TIB_Edit;
    edtCidade: TIB_Edit;
    edtBairro: TIB_Edit;
    edtEndereco: TIB_Edit;
    edtNumero: TIB_Edit;
    edtUF: TIB_LookupCombo;
    edtNome: TIB_Edit;
    edtEmail: TIB_Edit;
    edtSkype: TIB_Edit;
    edtDataCad: TIB_Edit;
    edtSetor: TIB_LookupCombo;
    edtDataSaida: TIB_Date;
    edtPesquisaSetor: TBitBtn;
    edtcpf: TIB_Edit;
    IB_Edit1: TIB_Edit;
    IB_Edit2: TIB_Edit;
    IB_Edit3: TIB_Edit;
    GroupBox2: TGroupBox;
    dbCodigo: TIB_Text;
    dbAgencia: TIB_Edit;
    dbConta: TIB_Edit;
    dbOperacao: TIB_Edit;
    dbFavorecido: TIB_Edit;
    dbBanco: TIB_LookupCombo;
    qrUF: TIB_Query;
    dsrUF: TIB_DataSource;
    qryBanco: TIB_Query;
    dtBanco: TIB_DataSource;
    qrSetor: TIB_Query;
    dsrSetor: TIB_DataSource;
    procedure FormCreate(Sender: TObject);
    procedure edtCepExit(Sender: TObject);
    procedure BtGravarClick(Sender: TObject);
    procedure BtCancelarClick(Sender: TObject);
    procedure BtExcluirClick(Sender: TObject);
    procedure BtAnteriorClick(Sender: TObject);
    procedure BtProximoClick(Sender: TObject);
    procedure BtInserirClick(Sender: TObject);
    procedure BtEditarClick(Sender: TObject);
    procedure edtPesquisaSetorClick(Sender: TObject);
    procedure edtcpfExit(Sender: TObject);
    procedure edtEmailExit(Sender: TObject);
  private
    procedure AtualizaTela;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCadFuncionario: TfrmCadFuncionario;

implementation

{$R *.dfm}

uses Rotinas, DataModulo, ModeloPesquisa;

procedure TfrmCadFuncionario.BtAnteriorClick(Sender: TObject);
begin
  inherited;
AtualizaTela
end;

procedure TfrmCadFuncionario.BtCancelarClick(Sender: TObject);
begin
  inherited;
  AtualizaTela;
end;

procedure TfrmCadFuncionario.BtEditarClick(Sender: TObject);
begin
  inherited;
   AtualizaTela;
end;

procedure TfrmCadFuncionario.BtExcluirClick(Sender: TObject);
begin
  inherited;
  AtualizaTela;
end;

procedure TfrmCadFuncionario.BtGravarClick(Sender: TObject);
begin

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

   if dbBanco.text <> '' then
      TbPrincipal.FieldByName('banco').Value := qryBanco.FieldByName('codigo').Value
   else
      TbPrincipal.FieldByName('banco').Value := null;

   if edtUF.Text <> '' then
      TbPrincipal.FieldByName('COD_UF').Value := qrUF.FieldByName('COD_UF').Value
   else
      TbPrincipal.FieldByName('COD_UF').Value := Null;

   if edtSetor.text <> '' then
      TbPrincipal.FieldByName('cod_setor').Value := qrSetor.FieldByName('cod_setor').Value
   else
      TbPrincipal.FieldByName('cod_setor').Value := null;



  inherited;

end;

procedure TfrmCadFuncionario.BtInserirClick(Sender: TObject);
begin
  inherited;
   TbPrincipal.FieldByName ('DATA_CADASTRO').Value := Date;
   AtualizaTela;
end;

procedure TfrmCadFuncionario.BtProximoClick(Sender: TObject);
begin
  inherited;
AtualizaTela
end;

procedure TfrmCadFuncionario.edtCepExit(Sender: TObject);
begin
  inherited;
  if ValidarCep(edtCep.Text) = False then
  begin
    MessageDlg('CEP inválido', mtInformation, [mbOK], 0);
    edtCep.SetFocus;
    Exit;
  end;

  if edtEndereco.Text <> '' then
     Exit;

   try
      dados.qrCep.Close;
      dados.qrCep.ParamByName('CEP').Value := QuotedSTR(LimpaTexto(edtCep.Text));
      dados.qrCep.Open;
      if dados.qrCep.IsEmpty then
         Exit;

      TbPrincipal.FieldByName('LOGRADOURO').Value := dados.qrCep.FieldByName('TIPO').AsString + ' '+dados.qrCep.FieldByName('RUA').AsString;
      TbPrincipal.FieldByName('BAIRRO').Value     := dados.qrCep.FieldByName('BAIRRO').AsString;
      TbPrincipal.FieldByName('CIDADE').Value     := dados.qrCep.FieldByName('CIDADE').AsString;
      if qrUF.Locate('DESCRICAO', dados.qrCep.FieldByName('UF').AsString, [] ) then
         TbPrincipal.FieldByName('COD_UF').Value  := qrUF.FieldByName('COD_UF').Value;

      except
   end;

end;

procedure TfrmCadFuncionario.edtcpfExit(Sender: TObject);
var erro : string;
begin
  inherited;
   if TbPrincipal.State in [dssBrowse] then
      exit;

   if LimpaTexto(edtcpf.text) = '' then
      exit;

   if ValidaCPF( edtcpf.Text , erro) = false then
   begin
      MessageDlg('Cpf Inválido' + sLineBreak , mtWarning, [mbOK], 0);
      edtcpf.SetFocus;
      exit;
   end;

end;

procedure TfrmCadFuncionario.edtEmailExit(Sender: TObject);
begin
  inherited;
   if TbPrincipal.State in [dssBrowse] then
      exit;


   if trim(edtEmail.text) = '' then
      exit;

   if ValidaEmail( edtEmail.Text ) = false then
   begin
      MessageDlg('Email Inválido' , mtWarning, [mbOK], 0);
      edtcpf.SetFocus;
      exit;
   end;

end;

procedure TfrmCadFuncionario.edtPesquisaSetorClick(Sender: TObject);
begin
  inherited;
   //==================== Pesquisa setores ============
   frmModeloPesquisa        := TfrmModeloPesquisa.Create(Application);
   frmModeloPesquisa.Tabela := qrSetor;
   frmModeloPesquisa.lbltitulo.Caption := 'Pesquisa Setores';

   if frmModeloPesquisa.ShowModal = mrok then
   begin
      qrSetor.Locate('COD_SETOR', frmModeloPesquisa.TbPrincipal.FieldByName('COD_SETOR').Value ,[]);
   end;

   frmModeloPesquisa.Destroy;
   Screen.OnActiveControlChange := TrocaCor;
end;

procedure TfrmCadFuncionario.FormCreate(Sender: TObject);
begin
  Gera_Codigo := True;
  inherited;

   InicioDaTabela (qrUF);
   InicioDaTabela (qryBanco);
   InicioDaTabela ( qrSetor);

end;

procedure TfrmCadFuncionario.AtualizaTela;
begin
   if not qryBanco.Locate('codigo',TbPrincipal.FieldByName('banco').Value , []) then
      InicioDaTabela(qryBanco);

   if not qrUF.Locate('COD_UF', tbprincipal.FieldByName('COD_UF').Value , [] ) then
      InicioDaTabela(qrUF);

   if not qrSetor.Locate('COD_SETOR',TbPrincipal.FieldByName('COD_SETOR').Value , []) then
      InicioDaTabela(qrSetor);

end;

end.
