unit FGRUPO;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons,DB,tiposdefinidos;

type
  TGRUPO = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit3: TEdit;
    bok: TBitBtn;
    bcancelar: TBitBtn;
    procedure Edit1DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit3Exit(Sender: TObject);
    procedure bokClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    F1ENTRA,beneficio_min:BOOLEAN;
    procedure familia;
  public
    { Public declarations }
    BENEFICIO : DOUBLE;
    beneficioempresa : double;
    GRUPO:STRING;
    TRANSPORTE : DOUBLE;
  end;

var
  GRUPO: TGRUPO;

implementation

uses FDLGFAMILIASAUX, UDMGS, menu;

{$R *.dfm}

procedure TGRUPO.Edit1DblClick(Sender: TObject);
begin
  familia;
end;

procedure TGRUPO.FormCreate(Sender: TObject);
begin
   f1entra:=false;
   beneficio_min:=false;
   beneficio:= 0;
   beneficioempresa := 0;
   label2.Caption := '';
  WITH DMGS.CDSQ_EMPRESAAUX DO
  BEGIN
    Close;
    DMGS.VEMPRESASAUX.ID:= FMENU.ID_EMPRESA ;
    DMGS.VEMPRESASAUX.TIPO :='2';
    OPEN;
  END;
  IF DMGS.CDSQ_EMPRESAAUXBENEFICIO_MIN.Value = 1 THEN
  begin
//     beneficio := DMGS.CDSQ_EMPRESAAUXBENEFICIO.Value;
     beneficioempresa :=DMGS.CDSQ_EMPRESAAUXBENEFICIO.ASFLOAT;
     beneficio_min:= true;
  end;
  if dmgs.CDSQ_EMPRESAAUXANYADIR_TRANS.Value = 1 then
     TRANSPORTE :=DMGS.CDSQ_EMPRESAAUXTRANS.ASFLOAT;
  DMGS.CDSQ_EMPRESAAUX.CLOSE;
end;

procedure TGRUPO.Edit1Exit(Sender: TObject);
begin
  if not f1entra
  AND (TRIM(EDIT1.TEXT) <> '')
  then
  begin
       WITH DMGS.CDSQ_FAMILIASAUX DO
     BEGIN
       CLOSE;
       DMGS.VFAMILIASAUX.ID := EDIT1.TEXT;
       dmgs.vfamiliasaux.tipo := '3';
       dmgs.vfamiliasaux.ORDEN := Oordenfamilias;
       OPEN;
       IF RECORDCOUNT=0 THEN
       BEGIN
         DMGS.CDSQ_FAMILIASAUX.CLOSE;
         MessageDlg('LA FAMILIA INTRODUCIDA NO EXISTE', mtWarning,[mbOK], 0);
         EDIT1.SetFocus;
         ABORT;
       END
       ELSE
         LABEL2.Caption := DMGS.CDSQ_FAMILIASAUXDESCRIPCION.AsString;
       IF (DMGS.CDSQ_FAMILIASAUXBENEFICIO.AsFLOAT <> 0)
       and (beneficio_min)
       THEN
          BENEFICIO := DMGS.CDSQ_FAMILIASAUXBENEFICIO.AsFloat;
       if beneficio_min then
          if beneficio = 0 then
             beneficio := beneficioempresa;
       DMGS.CDSQ_FAMILIASAUX.CLOSE;
     END;
 end;
 f1entra := false;
 IF (TRIM(EDIT1.TEXT) = '') THEN
    LABEL2.Caption  := '';
end;

procedure TGRUPO.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  IF KEY=112 THEN
     familia;
end;

procedure TGRUPO.Edit3Exit(Sender: TObject);
var aux:double;
begin
{  try
    aux:= strtofloat(edit3.text)
  except
   MessageDlg('EL BENEFICIO DEBE SER UN NUMERO.', mtWarning,[mbOK], 0);
   EDIT3.SetFocus;
   EXIT;
  end;
}
end;

procedure TGRUPO.bokClick(Sender: TObject);
begin
//  IF (trim(EDIT3.Text) <> '')
//  AND
  if (trim(EDIT1.TEXT) <> '')
  THEN
  BEGIN
//     BENEFICIO := STRTOFLOAT(EDIT3.Text);
     GRUPO := EDIT1.TEXT;
  END
  else
  begin
     MessageDlg('EL GRUPO TIENEN QUE TENER UN VALOR.', mtWarning,[mbOK], 0);
     modalresult := mrnone;
     edit1.Setfocus;
     abort;
  end;

end;

procedure TGRUPO.FormShow(Sender: TObject);
begin
  edit1.setfocus;
end;

procedure TGRUPO.FormKeyPress(Sender: TObject; var Key: Char);
begin
   if (key = #13) then //and not (ActiveControl is TButton) then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0 ;
    end;
end;
procedure tgrupo.familia ;
begin
     DLGFAMILIASAUX := TDLGFAMILIASAUX.Create(NIL);
     if DLGFAMILIASAUX.Showmodal=mrok then
     begin
         F1ENTRA:= TRUE;
         edit1.text   :=DLGFAMILIASAUX.codigo ;
         label2.Caption := dmgs.cdsq_familiasauxdescripcion.AsString;
         BENEFICIO := DMGS.CDSQ_FAMILIASAUXBENEFICIO.VALUE;
         if beneficio=0 then
            beneficio := beneficioempresa;
     end;
     DLGFAMILIASAUX.Free;
     DLGFAMILIASAUX := nil;
end;

end.
