unit controlacceso;

interface

uses
  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, ZAbstractRODataset, ZAbstractDataset, ZDataset;

type
  Tfcontrolacceso = class(TForm)
    Panel43: TPanel;
    Label92: TLabel;
    Label97: TLabel;
    Edit2: TEdit;
    Button22: TButton;
    MaskEdit1: TMaskEdit;
    Label1: TLabel;
    MaskEdit2: TMaskEdit;
    Label2: TLabel;
    dsqusuario: TDataSource;
    qusuario: TZQuery;
    qusuarioid: TIntegerField;
    qusuarionombre: TWideStringField;
    qusuarioempresa: TIntegerField;
    qusuariousuario: TWideStringField;
    qusuariofechaalta: TDateField;
    qusuariofechacaducidad: TDateField;
    qusuariogestor: TIntegerField;
    qusuarioadministrador: TIntegerField;
    qusuariousuarionormal: TIntegerField;
    qusuarioactivo: TIntegerField;
    qusuariocambiarpassword: TIntegerField;
    qusuariopassword: TWideStringField;
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure MaskEdit1Exit(Sender: TObject);
    procedure MaskEdit1Enter(Sender: TObject);
    procedure MaskEdit2Enter(Sender: TObject);
    procedure MaskEdit2Exit(Sender: TObject);
    procedure Edit2Enter(Sender: TObject);
    procedure Button22Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fcontrolacceso: Tfcontrolacceso;
  cambiando:integer;

implementation

{$R *.dfm}

uses principal;

procedure Tfcontrolacceso.Button22Click(Sender: TObject);
begin
      principal.administrador:=qusuarioadministrador.AsInteger;
      principal.gestor:=qusuariogestor.AsInteger;
      principal.usuarionormal:=qusuariousuarionormal.AsInteger;
      principal.codgestor:=qusuarioid.asinteger;
      principal.codempresa:=qusuarioempresa.AsInteger;
      fcontrolacceso.Close;
end;

procedure Tfcontrolacceso.Edit2Enter(Sender: TObject);
begin
    edit2.Text:='';
    maskedit1.Text:='';
end;

procedure Tfcontrolacceso.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (activecontrol is tedit) then
    begin
        if Key = 13 then Key :=9;
    end;

end;

procedure Tfcontrolacceso.FormKeyPress(Sender: TObject; var Key: Char);
var formatos:tformatsettings;
punto:string;
begin
    GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formatos);
    punto:=formatos.DecimalSeparator;
    if punto=',' then
    begin
        if (key='.') and (activecontrol is tedit) then
        begin
            key:=',';
        end;
    end;

    if (activecontrol is tedit) then
    begin
        if Key = #13 then Key :=#13;
    end;

    if (key=#13) then
    begin
        Perform(WM_NextDLGCtl,0,0);
        key:=#0;
    end;



end;

procedure Tfcontrolacceso.FormShow(Sender: TObject);
begin
    cambiando:=0;
end;

procedure Tfcontrolacceso.MaskEdit1Enter(Sender: TObject);
begin
    maskedit1.Text:='';
end;

procedure Tfcontrolacceso.MaskEdit1Exit(Sender: TObject);
begin
    if cambiando=0 then
    begin
      qusuario.Close;
      qusuario.SQL.Clear;
      qusuario.SQL.Add('select * from usuarios where usuario='+''''+edit2.text+''''+' and password='+''''+maskedit1.text+'''');
      qusuario.Open;
      if (qusuario.RecordCount=1) then
      begin
        if qusuariocambiarpassword.AsInteger=1 then
        begin
           cambiando:=1;
           showmessage('¡¡¡¡ ATENCION DEBE CAMBIAR LA CONTRASEÑA ¡¡¡¡');
           label1.Visible:=true;
           label97.Caption:='Nuevo password';
           button22.Visible:=false;
           maskedit2.Visible:=true;
           maskedit1.setfocus;
        end;
        if qusuariocambiarpassword.AsInteger=0 then
        begin
          button22.Visible:=true;
          button22.SetFocus;
        end;
      end else
            begin
              showmessage('¡¡¡¡ USUARIO O CONTRASEÑA ERRONEOS ¡¡¡');
              edit2.SetFocus;
            end;
    end;
end;

procedure Tfcontrolacceso.MaskEdit2Enter(Sender: TObject);
begin
    maskedit2.Text:='';
end;

procedure Tfcontrolacceso.MaskEdit2Exit(Sender: TObject);
begin
    if maskedit1.Text=maskedit2.Text then
    begin
      qusuario.Edit;
      qusuariopassword.Value:=maskedit2.Text;
      qusuariocambiarpassword.Value:=0;
      qusuario.Post;
      label1.Visible:=false;
      label97.Caption:='Password';
      button22.Visible:=false;
      maskedit2.Visible:=false;

    end else
    begin
      showmessage('¡¡¡¡ LAS CONTRASEÑAS NO COINCIDEN ¡¡¡¡');
      maskedit1.SetFocus;
    end;
end;

end.
