unit entradas;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, ZAbstractRODataset, ZDataset,
  Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls, Vcl.ImgList, Vcl.StdCtrls,
  Vcl.Touch.Keyboard;

type
  Tfentradas = class(TForm)
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    qmatriculas: TZReadOnlyQuery;
    dsqmatriculas: TDataSource;
    qmatriculasIDEMPRESA: TIntegerField;
    qmatriculasID: TWideStringField;
    qmatriculasTIPO: TWideStringField;
    qmatriculasDESCRIPCION: TWideStringField;
    qmatriculasFECHA_COMPRA: TDateField;
    qmatriculasPROPIO: TIntegerField;
    qmatriculasvehiculo: TIntegerField;
    qmatriculasmaquinaria: TIntegerField;
    qmatriculasACTIVO: TIntegerField;
    Panel2: TPanel;
    ntnuevaentrada: TButton;
    listaiconos: TImageList;
    Panel3: TPanel;
    DBGrid2: TDBGrid;
    dsentradas: TDataSource;
    Panel4: TPanel;
    tbuscar: TEdit;
    Label1: TLabel;
    Button1: TButton;
    todosarticulos: TCheckBox;
    teclado: TTouchKeyboard;
    procedure ntnuevaentradaClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure tbuscarChange(Sender: TObject);
    procedure qmatriculasBeforeOpen(DataSet: TDataSet);
    procedure tbuscarEnter(Sender: TObject);
    procedure tbuscarExit(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure todosarticulosClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fentradas: Tfentradas;
  filtro:string;
  vertodos:integer;
implementation

{$R *.dfm}
uses datos,principal, vehiculos;
procedure Tfentradas.Button1Click(Sender: TObject);
begin
    fvehiculos := Tfvehiculos.Create(nil);
    try
      fvehiculos.showmodal();
    finally
      fvehiculos.Free;
    end;
end;

procedure Tfentradas.FormShow(Sender: TObject);
begin
   qmatriculas.Open;
end;

procedure Tfentradas.ntnuevaentradaClick(Sender: TObject);
begin
    if not general.qentradas.Active then general.qentradas.Open;

    general.qentradas.append;
    general.qentradasmatricula.Value:=qmatriculasid.AsString;
    general.qentradashora.Value:=time();
    general.qentradaside.Value:=1;
    general.qentradasfecha.Value:=general.tfecha.Date;
    general.qentradashora.Value:=time();
    general.qentradaspartida.Value:=general.qpartidasid.asinteger;
    general.qentradasnum_palets.Value:=0;
    general.qentradasnum_cajas.Value:=0;
    general.qentradaspeso_bruto.Value:=0;
    general.qentradaspeso_neto.Value:=0;
    general.qentradasmprima.Value:=general.qpartidasid_mprimas.asstring;
    general.qentradas.Post;
    general.qentradas.Refresh;
    general.qentradas.First;
//    general.comboentradas_es.DropDown;
    general.comboentradas_es.KeyValue:=general.qentradasid.AsString;
    general.timer1.Enabled:=true;
    general.timer2.Enabled:=true;
    fentradas.Close;
end;

procedure Tfentradas.qmatriculasBeforeOpen(DataSet: TDataSet);
var filtrolocal:string;
begin
    if filtro<>'' then
    begin
       begin
         filtrolocal:=' where descripcion like('+''''+filtro+''''+') or id like('+''''+filtro+''''+')';
       end;
      if vertodos=0 then
      begin
          begin
            filtrolocal:=' where (descripcion like('+''''+filtro+''''+') or id like('+''''+filtro+''''+')';
            filtrolocal:=filtrolocal+') and activo=1 ';
          end;
      end;
    end;

    if filtro='' then
    begin
      filtrolocal:='';
      if vertodos=0 then
      begin
          filtrolocal:=' where activo=1 ';
      end;
    end;


    qmatriculas.SQL.Clear;
    qmatriculas.SQL.Add('select * from ordenes_coste ' + filtrolocal +' order by descripcion');


end;

procedure Tfentradas.tbuscarChange(Sender: TObject);
begin
    filtro:='%'+tbuscar.Text+'%';
    qmatriculas.Close;
    qmatriculas.open;
end;

procedure Tfentradas.tbuscarEnter(Sender: TObject);
begin
    teclado.Visible:=true;
end;

procedure Tfentradas.tbuscarExit(Sender: TObject);
begin
    teclado.Visible:=false;
end;

procedure Tfentradas.todosarticulosClick(Sender: TObject);
begin
    if todosarticulos.Checked=true then
    begin
        vertodos:=1;
        qmatriculas.Close;
        qmatriculas.Open;
    end else
    begin
        vertodos:=0;
        qmatriculas.Close;
        qmatriculas.Open;
    end;
end;

end.
