unit fgrupos_trabajadores;

interface

uses
  FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Comp.Client, uFireDacHelper,
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids,
  Vcl.ExtCtrls, Data.DB,   datos;

type
  Tgrupostrabajadores = class(TForm)
    Panel13: TPanel;
    Panel17: TPanel;
    DBGrid3: TDBGrid;
    Panel7: TPanel;
    btAcancelar: TButton;
    btAmodificar: TButton;
    btAborrar: TButton;
    btAnuevo: TButton;
    btAguardar: TButton;
    qgrupostrabajadores: TFDQuery;
    dsqgrupostrabajadores: TDataSource;
    qgrupostrabajadoreside: TIntegerField;
    qgrupostrabajadoresid: TIntegerField;
    qgrupostrabajadoresdescripcion: TWideStringField;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    Panel8: TPanel;
    Panel9: TPanel;
    Panel10: TPanel;
    Panel11: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    qtrabajosgrupo: TFDQuery;
    dsqtrabajosgrupo: TDataSource;
    qhorasgrupo: TFDQuery;
    dsqhorasgrupo: TDataSource;
    qtiposhora: TFDQuery;
    dsqtiposhora: TDataSource;
    dsqtiposgrabajo: TDataSource;
    qtipostrabajo: TFDQuery;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    DBGrid4: TDBGrid;
    DBGrid5: TDBGrid;
    qtipostrabajoid: TWideStringField;
    qtipostrabajonombre: TWideStringField;
    qtipostrabajoactivo: TIntegerField;
    qtipostrabajoempresa: TIntegerField;
    qtipostrabajocoste_elavoracion_campo: TIntegerField;
    qtipostrabajocoste_elavoracion_almacen: TIntegerField;
    qtipostrabajoelavoracion_produccion: TIntegerField;
    qtipostrabajoenvasado_produccion: TIntegerField;
    qtipostrabajologistica_produccion: TIntegerField;
    qtipostrabajoseleccionado: TIntegerField;
    qtipostrabajoalmacen_trabajo: TIntegerField;
    qhorasgrupoempresa: TIntegerField;
    qhorasgrupocodigo: TWideStringField;
    qhorasgrupogrupo: TIntegerField;
    qhorasgrupodescripcion: TWideStringField;
    qtrabajosgrupoempresa: TIntegerField;
    qtrabajosgrupocodigo: TWideStringField;
    qtrabajosgrupogrupo: TIntegerField;
    qtrabajosgrupodescripcion: TWideStringField;
    qtiposhoracodart: TWideStringField;
    qtiposhoradescrip: TWideStringField;
    qtiposhoraprecio: TFloatField;
    qtiposhoraequivalenciahoras: TFloatField;
    qtiposhoraactivo: TIntegerField;
    qtiposhoraempresa: TIntegerField;
    qtiposhorafacturar: TIntegerField;
    qtiposhoraseleccionado: TIntegerField;
    qgrupostrabajadoresdescanso: TIntegerField;
    procedure btAnuevoClick(Sender: TObject);
    procedure btAborrarClick(Sender: TObject);
    procedure btAmodificarClick(Sender: TObject);
    procedure btAguardarClick(Sender: TObject);
    procedure btAcancelarClick(Sender: TObject);
    procedure dsqgrupostrabajadoresStateChange(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure qgrupostrabajadoresBeforePost(DataSet: TDataSet);
    procedure dsqgrupostrabajadoresDataChange(Sender: TObject; Field: TField);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  grupostrabajadores: Tgrupostrabajadores;

implementation

{$R *.dfm}

procedure Tgrupostrabajadores.btAborrarClick(Sender: TObject);
begin
    qgrupostrabajadores.delete;
end;

procedure Tgrupostrabajadores.btAcancelarClick(Sender: TObject);
begin
    qgrupostrabajadores.cancel;
end;

procedure Tgrupostrabajadores.btAguardarClick(Sender: TObject);
begin
    qgrupostrabajadores.post;
end;

procedure Tgrupostrabajadores.btAmodificarClick(Sender: TObject);
begin
    qgrupostrabajadores.edit;
end;

procedure Tgrupostrabajadores.btAnuevoClick(Sender: TObject);
begin
   qgrupostrabajadores.append;
   dbgrid3.setfocus;
end;

procedure Tgrupostrabajadores.Button1Click(Sender: TObject);
begin
   qtrabajosgrupo.Delete;
   qtipostrabajo.Refresh;
end;

procedure Tgrupostrabajadores.Button2Click(Sender: TObject);
begin
    qtrabajosgrupo.Append;
    qtrabajosgrupoempresa.Value:=qtipostrabajoempresa.AsInteger;
    qtrabajosgrupocodigo.Value:=qtipostrabajoid.Asstring;
    qtrabajosgrupogrupo.Value:=qgrupostrabajadoresid.AsInteger;
    qtrabajosgrupodescripcion.Value:=qtipostrabajonombre.Asstring;
    qtrabajosgrupo.Post;
    qtipostrabajo.refresh;
end;

procedure Tgrupostrabajadores.Button3Click(Sender: TObject);
begin
   qhorasgrupo.Delete;
   qtiposhora.Refresh;
end;

procedure Tgrupostrabajadores.Button4Click(Sender: TObject);
begin
    qhorasgrupo.Append;
    qhorasgrupoempresa.Value:=qtiposhoraempresa.AsInteger;
    qhorasgrupocodigo.Value:=qtiposhoracodart.Asstring;
    qhorasgrupogrupo.Value:=qgrupostrabajadoresid.AsInteger;
    qhorasgrupodescripcion.Value:=qtiposhoradescrip.Asstring;
    qhorasgrupo.Post;
    qtiposhora.Refresh
end;

procedure Tgrupostrabajadores.dsqgrupostrabajadoresDataChange(Sender: TObject;
  Field: TField);
begin
   qtrabajosgrupo.close;
   qtrabajosgrupo.Prepare;
   qtrabajosgrupo.ParamByName('GRUPO').AsInteger:=qgrupostrabajadoresid.asinteger;
   qtrabajosgrupo.ParamByName('EMPRESA').AsInteger:=qgrupostrabajadoreside.AsInteger;
   qtrabajosgrupo.Open;
   qhorasgrupo.close;
   qhorasgrupo.Prepare;
   qhorasgrupo.ParamByName('GRUPO').AsInteger:=qgrupostrabajadoresid.asinteger;
   qhorasgrupo.ParamByName('EMPRESA').AsInteger:=qgrupostrabajadoreside.AsInteger;
   qhorasgrupo.Open;
   qtipostrabajo.close;
   qtipostrabajo.Prepare;
   qtipostrabajo.ParamByName('GRUPO').AsInteger:=qgrupostrabajadoresid.asinteger;
   qtipostrabajo.ParamByName('EMPRESA').AsInteger:=qgrupostrabajadoreside.AsInteger;
   qtipostrabajo.Open;
   qtiposhora.close;
   qtiposhora.Prepare;
   qtiposhora.ParamByName('GRUPO').AsInteger:=qgrupostrabajadoresid.asinteger;
   qtiposhora.ParamByName('EMPRESA').AsInteger:=qgrupostrabajadoreside.AsInteger;
   qtiposhora.Open;
end;

procedure Tgrupostrabajadores.dsqgrupostrabajadoresStateChange(Sender: TObject);
begin
if qgrupostrabajadores.State in [dsedit,dsinsert] then
begin
    btanuevo.Enabled:=false;
    btamodificar.Enabled:=false;
    btaborrar.Enabled:=false;
    btacancelar.Enabled:=true;
    btaguardar.Enabled:=true;
end else
begin
    btanuevo.Enabled:=true;
    btamodificar.Enabled:=true;
    btaborrar.Enabled:=true;
    btacancelar.Enabled:=false;
    btaguardar.Enabled:=false;
end;
end;

procedure Tgrupostrabajadores.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (activecontrol is tdbgrid) then
    begin
        if Key = 13 then Key :=9;
    end;
end;

procedure Tgrupostrabajadores.FormKeyPress(Sender: TObject; var Key: Char);
begin
   key:=upcase(key);
    if (key='.') and (activecontrol is tdbgrid) then
    begin
        key:=','
    end;
    if (activecontrol is tdbgrid) then
    begin
        if Key = #13 then Key :=#9;
    end;

    if (key=#13) then
    begin
        Perform(WM_NextDLGCtl,0,0);
        key:=#0;
    end;
end;

procedure Tgrupostrabajadores.FormShow(Sender: TObject);
begin
    qgrupostrabajadores.Close;
    qgrupostrabajadores.Open;
end;

procedure Tgrupostrabajadores.qgrupostrabajadoresBeforePost(DataSet: TDataSet);
begin
    qgrupostrabajadoreside.Value:=dm.tempresaid.AsInteger;
end;

end.
