unit frm_SelectEventMaterial;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Grids, Vcl.DBGrids,
  Data.DB, FireDAC.Comp.Client, uAppTheme, frm_BaseSelect;

type
  TfrmSelectEventMaterial = class(TfrmBaseSelect)
  protected
    procedure DoSearch; override;
    procedure DoSelect; override;
  end;

var
  frmSelectEventMaterial: TfrmSelectEventMaterial;

implementation

uses
  dmg_Main;

{$R *.dfm}

procedure TfrmSelectEventMaterial.DoSearch;
begin
  dmgMain.qryExec.Close;
  dmgMain.qryExec.SQL.Text := 
    'SELECT id, codigo, descripcion, tipo ' +
    'FROM ge_eventos_materiales_cat WHERE activo = 1 ';
  
  if Trim(edtSearch.Text) <> '' then
  begin
    dmgMain.qryExec.SQL.Add('AND (descripcion LIKE :search OR codigo LIKE :search) ');
    dmgMain.qryExec.ParamByName('search').DataType := ftWideString;
    dmgMain.qryExec.ParamByName('search').AsWideString := '%' + Trim(edtSearch.Text) + '%';
  end;
  
  dmgMain.qryExec.SQL.Add('ORDER BY descripcion');
  dmgMain.qryExec.Open;
  
  if dmgMain.qryExec.FindField('id') <> nil then
    dmgMain.qryExec.FieldByName('id').Visible := False;
end;

procedure TfrmSelectEventMaterial.DoSelect;
begin
  if MultiSelect then
    inherited
  else
  begin
    if not dmgMain.qryExec.IsEmpty then
    begin
      SelectedId := dmgMain.qryExec.FieldByName('id').AsString;
      SelectedCode := dmgMain.qryExec.FieldByName('codigo').AsString;
      SelectedDesc := dmgMain.qryExec.FieldByName('descripcion').AsString;
      ModalResult := mrOk;
    end;
  end;
end;

end.
