unit CadMotorista;

interface

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

type
  TfrmCadMotorista = class(TFrModeloCadastro)
    qrVerificaCnh: TIB_Query;
    edtcpf: TIB_Edit;
    edtNome: TIB_Edit;
    IB_Edit4: TIB_Edit;
    IB_Edit8: TIB_Edit;
    IB_Edit9: TIB_Edit;
    IB_Edit20: TIB_Edit;
    IB_Edit21: TIB_Edit;
    GroupBox1: TGroupBox;
    edtBairroTransporte: TIB_Edit;
    edtCep: TIB_Edit;
    edtEnderecoTransporte: TIB_Edit;
    edtCidadeTransporte: TIB_Edit;
    edtNumeroTransporte: TIB_Edit;
    edtComplementoTransporte: TIB_Edit;
    IB_Edit12: TIB_Edit;
    GroupBox2: TGroupBox;
    edtCnh: TIB_Edit;
    IB_Edit5: TIB_Edit;
    IB_Date1: TIB_Date;
    IB_Date2: TIB_Date;
    IB_Date3: TIB_Date;
    IB_Date4: TIB_Date;
    popPesquisaCepTansporte: TPopupMenu;
    PesquisarCEP1: TMenuItem;
    qrUF: TIB_Query;
    dsrUF: TIB_DataSource;
    edtUF: TIB_LookupCombo;
    edtRGEmissao: TIB_Date;
    edtInss: TIB_Edit;
    edtDependente: TIB_Edit;
    edtValorDiaria: TIB_Edit;
    qrProprietario: TIB_Query;
    edtFilialTrabalho: TIB_LookupCombo;
    qrFilialTrabalho: TIB_Query;
    dsrFilialTrabalho: TIB_DataSource;
    procedure BtGravarClick(Sender: TObject);
    procedure edtCepExit(Sender: TObject);
    procedure edtCepKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure PesquisarCEP1Click(Sender: TObject);
    procedure AtualizaTela;
    procedure FormCreate(Sender: TObject);
    procedure BtAnteriorClick(Sender: TObject);
    procedure BtProximoClick(Sender: TObject);
    procedure btnEditar2Click(Sender: TObject);
    procedure BtCancelarClick(Sender: TObject);
    procedure BtExcluirClick(Sender: TObject);
    procedure BtInserirClick(Sender: TObject);
    procedure BtEditarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCadMotorista: TfrmCadMotorista;

implementation

uses Rotinas, DataModulo;

{$R *.dfm}

procedure TfrmCadMotorista.AtualizaTela;
begin
   //=============== Atualzia a visualizacao dos dados ================
   if not qrUF.Locate('COD_UF', tbprincipal.FieldByName('COD_UF').Value , [] ) then
   begin
      if not qrUF.Bof then
      begin
         qrUF.First;
         qrUF.Prior;
      end;
   end;

   if not qrFilialTrabalho.Locate('cod_filial', TbPrincipal.FieldByName('COD_FILIAL_TRABALHO').value  , []) then
   begin
      if not qrFilialTrabalho.Bof then
      begin
         qrFilialTrabalho.First;
         qrFilialTrabalho.Prior;
      end
   end;
end;

procedure TfrmCadMotorista.BtGravarClick(Sender: TObject);
var erro : string;
begin
   if edtNome.Text = '' then
   begin
      MessageDlg('Informe o nome do motorista', mtWarning, [mbOK], 0);
      edtNome.SetFocus;
      Exit;
   end;

   if ValidaCPF(edtcpf.Text,erro) = False  then
   begin
      MessageDlg('CPF inválido. '+ erro, mtWarning, [mbOK], 0);
      edtcpf.SetFocus;
      Exit;
   end;

   //=============== Verifica se a cnh esta cadastrada para outro motorista ================
   if (edtCnh.Text <> '') and (edtCnh.Modified) then
   begin
      qrVerificaCnh.Open;
      if qrVerificaCnh.Locate('cnh',edtCnh.Text,[]) then
      begin
         if MessageDlg('O numero da CNH informado está cadastrado para '+#13+#10+
                    qrVerificaCnh.FieldByName('nome').AsString +#13+#10+
                    'Deseja visualizar seus dados?', mtWarning, [mbYes, mbNo], 0) = mrYes then
         begin
            TbPrincipal.Cancel;
            TbPrincipal.Locate('cnh',qrVerificaCnh.FieldByName('cnh').Value , []);
            Exit;
         end
         else
         begin
            edtCnh.SetFocus;
            Exit;
         end;
      end;
   end;

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

   if edtFilialTrabalho.Text <> '' then
      TbPrincipal.FieldByName('COD_FILIAL_TRABALHO').Value := qrFilialTrabalho.FieldByName('cod_filial').Value
   else
      TbPrincipal.FieldByName('COD_FILIAL_TRABALHO').Value := Null;

   inherited;
end;

procedure TfrmCadMotorista.edtCepExit(Sender: TObject);
begin
  inherited;
   if ValidarCep (TbPrincipal.FieldByName('ENDERECO_CEP').AsString) = False  then
   begin
      MessageDlg('Cep Inválido', mtWarning, [mbOK], 0);
      edtCep.SetFocus;
      Exit;
   end;

   if TbPrincipal.FieldByName('ENDERECO_CEP').AsString = '' then
   begin
      Exit;
   end;

   if TbPrincipal.FieldByName('ENDERECO_LOGRADOURO').AsString <> '' then
   begin
      Exit;
   end;

   try
      dados.qrCep.Close;
      Dados.qrCep.ParamByName('cep').Value   := QuotedStr(LimpaTexto(edtCep.Text));
      Dados.qrCep.ParamByName('Rua').Value   := '';
      Dados.qrCep.ParamByName('Cidade').Value:= '';
      dados.qrCep.ParamByName('UF').Value    := '';
      dados.qrCep.Open;
      if dados.qrCep.IsEmpty then
         Exit;

      TbPrincipal.FieldByName('ENDERECO_LOGRADOURO').Value := dados.qrCep.FieldByName('TIPO').AsString + ' '+dados.qrCep.FieldByName('RUA').AsString;
      TbPrincipal.FieldByName('ENDERECO_BAIRRO').Value     := dados.qrCep.FieldByName('BAIRRO').AsString;
      TbPrincipal.FieldByName('ENDERECO_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 TfrmCadMotorista.edtCepKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
   if (Key =  VerificaAtalho(Dados.tbConfig.FieldByName('ATALHO_PESQUISA').AsString)) and (edtCep.Focused )then
      PesquisarCEP1.Click;

end;

procedure TfrmCadMotorista.PesquisarCEP1Click(Sender: TObject);
var cidade,endereco,bairro,cep,uf,codCidadeIBGE,codUFIBGE : string;
begin
   inherited;
   if TbPrincipal.State in [dssBrowse] then
      Exit;

   BuscaCepPorCidadeRua(cidade,endereco,bairro,cep,uf,codCidadeIBGE,codUFIBGE);
   if cidade <> '' then
      TbPrincipal.FieldByName('ENDERECO_CIDADE').value := cidade;

   if endereco <> '' then
      TbPrincipal.FieldByName('ENDERECO_LOGRADOURO').value := endereco;

   if bairro <> '' then
      TbPrincipal.FieldByName('ENDERECO_BAIRRO').Value := bairro;

   if cep <> '' then
      TbPrincipal.FieldByName('ENDERECO_CEP').Value := cep;

   if uf <> '' then
   begin
      if qrUF.Locate('DESCRICAO' , uf  , [] ) then
         TbPrincipal.FieldByName('COD_UF').Value := qrUF.FieldByName('COD_UF').Value
      else
         TbPrincipal.FieldByName('COD_UF').Value := Null;
   end;

   Screen.OnActiveControlChange := TrocaCor;

end;

procedure TfrmCadMotorista.FormCreate(Sender: TObject);
begin
  inherited;
   qrUF.Open;
   qrFilialTrabalho.Open;
end;

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

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

procedure TfrmCadMotorista.btnEditar2Click(Sender: TObject);
begin
  inherited;
   AtualizaTela;
end;

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

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

procedure TfrmCadMotorista.BtInserirClick(Sender: TObject);
begin
  inherited;
   AtualizaTela;
end;

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

end.
