unit CadVeiculo;

interface

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

type
  TfrmCadVeiculo = class(TFrModeloCadastro)
    edtPlaca: TIB_Edit;
    edtRenavam: TIB_Edit;
    edtChassi: TIB_Edit;
    edtAnoFab: TIB_Edit;
    edtAnoModelo: TIB_Edit;
    edtMarca: TIB_Edit;
    edtModelo: TIB_Edit;
    edtCor: TIB_Edit;
    edtCapacidade: TIB_Edit;
    edtTipoVeiculo: TIB_LookupCombo;
    edtCombustivel: TIB_LookupCombo;
    edtCategoria: TIB_LookupCombo;
    qrCombustivel: TIB_Query;
    qrTipoVeiculo: TIB_Query;
    qrCategoria: TIB_Query;
    dsrCombustivel: TIB_DataSource;
    dsrCategoria: TIB_DataSource;
    dsrTipoVeiculo: TIB_DataSource;
    qrProprietario: TIB_Query;
    dsrProprietario: TIB_DataSource;
    pgcOutros: TPageControl;
    tabProprietario: TTabSheet;
    tabMotoristas: TTabSheet;
    Label3: TLabel;
    edtNomeProp: TIB_Edit;
    edtTele1: TIB_Edit;
    edtTele2: TIB_Edit;
    edtCidade: TIB_Edit;
    btnProprietario: TBitBtn;
    edtCpf: TMaskEdit;
    qrMotorista: TIB_Query;
    dsrMotorista: TIB_DataSource;
    IB_Grid2: TIB_Grid;
    edtTara: TIB_Edit;
    IB_Edit1: TIB_Edit;
    btn2: TBitBtn;
    procedure AtualizaTela;
    procedure FormCreate(Sender: TObject);
    procedure BtExcluirClick(Sender: TObject);
    procedure BtGravarClick(Sender: TObject);
    procedure BtCancelarClick(Sender: TObject);
    procedure BtAnteriorClick(Sender: TObject);
    procedure BtProximoClick(Sender: TObject);
    procedure BtInserirClick(Sender: TObject);
    procedure BtEditarClick(Sender: TObject);
    procedure edtCpfExit(Sender: TObject);
    procedure btnProprietarioClick(Sender: TObject);
    procedure btn2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCadVeiculo: TfrmCadVeiculo;

implementation

uses Rotinas, ModeloPesquisa, CadProprietarioVeiculo;

{$R *.dfm}

procedure TfrmCadVeiculo.AtualizaTela;
begin
  //=============== Atualiza a visualizacao dos dados ================
   if not qrCombustivel.Locate('CODIGO' , TbPrincipal.FieldByName('COD_TIPO_COMBUSTIVEL').Value , [] ) then
   begin
      if not qrCombustivel.Bof then
      begin
         qrCombustivel.First;
         qrCombustivel.Prior;
      end;
   end;

   if not qrTipoVeiculo.Locate('CODIGO' , TbPrincipal.FieldByName('COD_TIPO_VEICULO').Value , [] ) then
   begin
      if not qrTipoVeiculo.Bof then
      begin
         qrTipoVeiculo.First;
         qrTipoVeiculo.Prior;
      end;
   end;

   if not qrCategoria.Locate('CODIGO', TbPrincipal.FieldByName('COD_CATEGORIA_VEICULO').Value , [] ) then
   begin
      if not qrCategoria.Bof then begin
         qrCategoria.First;
         qrCategoria.Prior;
      end;
   end;

   if not qrProprietario.Locate('cpf' , TbPrincipal.FieldByName('CPF_PROPRIETARIO').Value , []) then
   begin
      if not qrProprietario.Bof then
      begin
         qrProprietario.First;
         qrProprietario.Prior;
         edtCpf.Clear;
      end;
   end
   else
      edtCpf.Text := qrProprietario.FieldByName('CPF').AsString ;

   qrMotorista.Close;
   qrMotorista.ParamByName('placa').Value := TbPrincipal.FieldByName('placa').Value;
   qrMotorista.Open;
end;

procedure TfrmCadVeiculo.FormCreate(Sender: TObject);
begin
  inherited;
   qrCombustivel.Open;
   qrTipoVeiculo.Open;
   qrCategoria.Open;
   qrProprietario.Open;
end;

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

procedure TfrmCadVeiculo.BtGravarClick(Sender: TObject);
begin
   if Trim(edtPlaca.Text) = '' then
   begin
      MessageDlg('Informe a placa do veículo', mtWarning, [mbOK], 0);
      edtPlaca.SetFocus;
      Exit;
   end;

   if ValidaPlacaVeiculo(edtplaca.Text) = False then
   begin
      MessageDlg('A placa informada não é válida', mtWarning, [mbOK], 0);
      edtPlaca.SetFocus;
      Exit;
   end;

{   if edtRenavam.Text <> '' then
   begin
      if ValidaRenavam(edtRenavam.Text ) = False then
      begin
         MessageDlg('O Renavam Informado não é válido', mtWarning, [mbOK], 0);
         edtRenavam.SetFocus;
         Exit;
      end;
   end;
 }
   if edtTipoVeiculo.Text <> '' then
      TbPrincipal.FieldByName('COD_TIPO_VEICULO').Value := qrTipoVeiculo.FieldByName('CODIGO').Value
   else
      TbPrincipal.FieldByName('COD_TIPO_VEICULO').Value := Null;

   if edtCombustivel.Text <> '' then
      TbPrincipal.FieldByName('COD_TIPO_COMBUSTIVEL').Value := qrCombustivel.FieldByName('CODIGO').Value
   else
      TbPrincipal.FieldByName('COD_TIPO_COMBUSTIVEL').Value := Null;

   if edtCategoria.Text <> '' then
      TbPrincipal.FieldByName('COD_CATEGORIA_VEICULO').Value := qrCategoria.FieldByName('CODIGO').Value
   else
      TbPrincipal.FieldByName('COD_CATEGORIA_VEICULO').Value := Null;

   if edtCpf.Text <> '' then
      TbPrincipal.FieldByName('CPF_PROPRIETARIO').Value := qrProprietario.FieldByName('cpf').Value
   else
      TbPrincipal.FieldByName('CPF_PROPRIETARIO').Value := null;
      
   inherited;
   AtualizaTela;
end;

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

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

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

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

procedure TfrmCadVeiculo.BtEditarClick(Sender: TObject);
begin
  inherited;
   AtualizaTela;
end;
procedure TfrmCadVeiculo.edtCpfExit(Sender: TObject);
var
  cpf: string;
begin
  inherited;
   if TbPrincipal.State in [dssbrowse] then
      Exit;

   cpf := LimpaTexto(edtCpf.Text);

   if cpf = '' then
    Exit;

   if not qrProprietario.Locate('cpf',cpf,[])then
   begin
      MessageDlg('Não Encontrado', mtInformation, [mbOK], 0);
      if not qrProprietario.Bof then
      begin
         qrProprietario.First;
         qrProprietario.Prior;
         edtCpf.Clear;
         edtCpf.SetFocus;
      end;
   end;

end;

procedure TfrmCadVeiculo.btnProprietarioClick(Sender: TObject);
begin
  inherited;
   frmModeloPesquisa := TfrmModeloPesquisa.Create(Application);
   frmModeloPesquisa.Tabela := qrProprietario;
   frmModeloPesquisa.lblTitulo.Caption := 'Pesquisa Próprietário do Veículo';
   if frmModeloPesquisa.ShowModal = mrok then
   begin
      qrProprietario.Locate('cpf', frmModeloPesquisa.TbPrincipal.FieldByName('cpf').Value , []);
      edtCpf.Text := frmModeloPesquisa.TbPrincipal.FieldByName('cpf').AsString;
   end
   else
      edtCpf.Clear;
      
   frmModeloPesquisa.Destroy;
end;

procedure TfrmCadVeiculo.btn2Click(Sender: TObject);
begin
  inherited;
  frmCadProprietarioVeiculo := TfrmCadProprietarioVeiculo.Create(Application);
  frmCadProprietarioVeiculo.OutraTela := True;
  frmCadProprietarioVeiculo.BtInserirClick(Self);
  frmCadProprietarioVeiculo.ShowModal;

   //============== Localiza o novo Proprietário cadastrado ============

  tbPrincipal.FieldByName('CPF_PROPRIETARIO').Value:=frmCadProprietarioVeiculo.TbPrincipal.FieldByName('CPF').Value;
  edtCpf.Text:=tbPrincipal.FieldByName('CPF_PROPRIETARIO').AsString;
  frmCadProprietarioVeiculo.Destroy;
  qrProprietario.Close;
  qrProprietario.Open;
  if not qrProprietario.Locate('CPF',tbPrincipal.FieldByName('CPF_PROPRIETARIO').Value,[]) then
  begin
    if not qrProprietario.Bof then
    begin
       qrProprietario.First;
       qrProprietario.Prior;
    end;
  end;
  Screen.OnActiveControlChange := TrocaCor;

end;

end.
