unit flogin;

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.Mask, Vcl.StdCtrls, Vcl.ExtCtrls,
  Data.DB;

type
  TLogin = class(TForm)
    Panel43: TPanel;
    Label92: TLabel;
    Label97: TLabel;
    Edit2: TEdit;
    Button22: TButton;
    MaskEdit1: TMaskEdit;
    qusuario: TFDQuery;
    qusuarioid: TIntegerField;
    qusuarionombre: TWideStringField;
    qusuarionif: TWideStringField;
    qusuarioempresa: TIntegerField;
    qusuariodireccion: TWideStringField;
    qusuarioprovin: TWideStringField;
    qusuariocity: TWideStringField;
    qusuariocp: TWideStringField;
    qusuariophone: TWideStringField;
    qusuariomovil: TWideStringField;
    qusuariousuario: TWideStringField;
    qusuariocontra: TWideStringField;
    qusuarioadministrador: TIntegerField;
    qusuariogestorgrupo: TIntegerField;
    qusuariogrupo: TIntegerField;
    qusuariogestorindividual: TIntegerField;
    qusuarioidemp: TIntegerField;
    qusuarioactive: TIntegerField;
    qusuarionomgrupo: TWideStringField;
    qusuarionomtrabajador: TWideStringField;
    qusuariofumigador: TIntegerField;
    qusuariotecnico: TIntegerField;
    qinsertlogin: TFDQuery;
    qlogin: TFDQuery;
    qloginid: TIntegerField;
    qlogins: TFDQuery;
    qloginsid: TIntegerField;
    qloginsinicio: TDateTimeField;
    qloginsfin: TDateTimeField;
    qloginsidusuario: TIntegerField;
    qloginsusuario: TWideStringField;
    qloginside: TIntegerField;
    Button1: TButton;
    procedure Button22Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Login: TLogin;

implementation

{$R *.dfm}

uses datos,funciones;

procedure TLogin.Button1Click(Sender: TObject);
begin
  Application.terminate
end;

procedure TLogin.Button22Click(Sender: TObject);
var i:integer;
    empleado,vequipo:string;
begin
  qusuario.Close;
  qusuario.ParamByName('USUARIO').AsString := edit2.Text;
  qusuario.Open;
  if qusuario.RecordCount=1 then
  begin
    dm.vempresa:=qusuarioempresa.Asinteger;
    dm.vidusuario:=qusuarioid.Asinteger;
    dm.vusuario:=qusuariousuario.asstring;


    qlogins.ParamByName('EMPRESA').AsInteger:=dm.vempresa;
    qlogins.ParamByName('IDUSUARIO').AsInteger:=dm.vidusuario;
    qlogins.Open;

    while not qlogins.Eof do
    begin
      dm.qfinalizarlogin.ParamByName('EMPRESA').AsInteger:=qloginside.asinteger;
      dm.qfinalizarlogin.ParamByName('IDUSUARIO').AsInteger:=qloginsidusuario.asinteger;
      dm.qfinalizarlogin.ParamByName('IDLOGIN').AsInteger:=qloginsid.asinteger;
      dm.qfinalizarlogin.ExecSQL;
      qlogins.Next;
    end;

    if qusuariocontra.AsString=maskedit1.text then
    begin
      vequipo:=GetNombreEquipo;
      qinsertlogin.ParamByName('EMPRESA').AsInteger:=qusuarioempresa.AsInteger;
      qinsertlogin.ParamByName('IDUSUARIO').AsInteger:=qusuarioid.AsInteger;
      qinsertlogin.ParamByName('USUARIO').AsString:=qusuariousuario.Asstring;
      qinsertlogin.ParamByName('EQUIPO').AsString:=vequipo;
      qinsertlogin.execsql;
      qlogin.ParamByName('IDUSUARIO').AsInteger:=qusuarioid.AsInteger;
      qlogin.Open;
      if qloginid.asstring<>'' then dm.vidlogin:=qloginid.asinteger;
      close;
    end else
         begin
             showmessage('PASSWORD INCORRECTO');
             edit2.Text:='';
             maskedit1.Text:='';
             edit2.SetFocus;
         end;

    end else
         begin
             showmessage('EL USUARIO NO EXISTE');
             edit2.Text:='';
             maskedit1.Text:='';
             edit2.SetFocus;
         end;


end;

procedure TLogin.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if (ActiveControl=nil) and (key=#13) then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;
end;

end.
