unit uoddface_poblemas;

{$mode delphi}

interface

uses
  Classes, SysUtils, ubtree, uoddface_table_nid;


(*
   CREATE TABLE  `ofe_problemas` (
     `nid` int(11) NOT NULL,
     `usuario` int(11) NOT NULL,
     `llave` int(11) NOT NULL,
     `dt_creacion` datetime NOT NULL,
     `ro_VE` double NOT NULL,
     `ro_VaR` double NOT NULL,
     `ro_CVaR` double NOT NULL,
     `N_CronicasPorVez` int(11) NOT NULL,
     `N_DiscretizacionesHistograma` int(11) NOT NULL,
     `semilla_madre` int(11) NOT NULL,
     `ro_GA` double NOT NULL,
     `ro_EG` double NOT NULL,
     `ro_MJ` double NOT NULL,
     `GA_prob_premio_exito` double NOT NULL,
     `GA_prob_mutacion` double NOT NULL,
     `descripcion` text NOT NULL,
     `tipo` int(11) NOT NULL,
     `estado` int(11) DEFAULT '0',
     `sala_simsee` varchar(200) DEFAULT NULL,
     `fecha_primer_etapa` date NOT NULL,
     `dias_por_etapa` int(11) NOT NULL,
     `n_etapas` int(11) NOT NULL,
     `cnt_terminar` int(11) NOT NULL DEFAULT '0',
     `ro_binary` double DEFAULT '1',
     `ro_gray` double DEFAULT '0',
     `ro_unary` double DEFAULT '0',
     `ro_fosil_agosto2011` double DEFAULT '0',
     `grupo` int(11) DEFAULT '0',
     PRIMARY KEY (`nid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1
  *)

  type

    { TOddface_Problema }

    TOddface_Problema = class( TRec_Nid )
      usuario: integer;
      llave: integer;
      dt_creacion: TDateTIme;
      ro_VE: double;
      ro_VaR: double;
      ro_CVaR: double;
      N_CronicasPorVez: integer;
      N_DiscretizacionesHistograma: integer;
      semilla_madre: integer;
      ro_GA: double;
      ro_EG: double;
      ro_MJ: double;
      GA_prob_premio_exito: double;
      GA_prob_mutacion: double;
      descripcion: string;
      tipo: integer;
      estado: integer;
      sala_simsee: string;
      fecha_primer_etapa:TDateTime;
      dias_por_etapa: integer;
      n_etapas: integer;
      cnt_terminar: integer;
      ro_binary: double;
      ro_gray: double;
      ro_unary: double;
      ro_fosil_agosto2011: double;
      grupo: integer;

      constructor Create( nid: cardinal; usaurio, grupo: integer );
      procedure WriteToBin( f: TStream );  override;
      constructor LoadFromBin( f: TStream ); override;

      procedure CopyRec(a: TRec_key); override;

    end;



    { TOddFace_Problemas }
    TOddFace_Problemas = class( TTable_nid )
      constructor Create;
      constructor LoadFromBin( f: TStream );
      destructor destroy; override;
    end;

implementation

{ TOddFace_Problemas }

constructor TOddFace_Problemas.Create;
begin
  inherited Create( TOddFace_Problema );
end;

constructor TOddFace_Problemas.LoadFromBin(f: TStream);
begin
  inherited LoadFromBin( f, TOddFace_Problema  );
end;


destructor TOddFace_Problemas.destroy;
begin
  inherited destroy;
end;

{ TOddface_Problema }

constructor TOddface_Problema.Create(nid: cardinal; usaurio, grupo: integer);
begin
  inherited Create( nid );
  self.usuario:= usuario;
  self.grupo:= grupo;

      llave:=0;
      dt_creacion:=now;
      ro_VE:=1.0;
      ro_VaR:=0;
      ro_CVaR:=0;
      N_CronicasPorVez:=100;
      N_DiscretizacionesHistograma:=100;
      semilla_madre:=31;
      ro_GA:=0.95;
      ro_EG:=0.00;
      ro_MJ:=0.05;
      GA_prob_premio_exito:=0.05;
      GA_prob_mutacion:= 0.01;
      descripcion:='';
      tipo:=0;
      estado:=-1;
      sala_simsee:='';
      fecha_primer_etapa:=0;
      dias_por_etapa:=365;
      n_etapas:=0;
      cnt_terminar:=0;
      ro_binary:=1.0;
      ro_gray:= 0.0;
      ro_unary:=0.0;
      ro_fosil_agosto2011:= 0.0;

end;

procedure TOddface_Problema.WriteToBin(f: TStream);
begin
  inherited WriteToBin( f );
  f.Write( usuario, sizeof( usuario ) );
  f.Write( grupo, sizeOf( grupo ) );
  f.Write( llave, sizeOf( llave ) );
  f.Write( dt_creacion, sizeOf( dt_creacion ));
  f.Write( ro_VE, sizeOf( ro_VE ));
  f.Write( ro_VaR, sizeOf( ro_VaR ));
  f.Write( ro_CVaR, sizeOf( ro_CVaR ) );
  f.Write( N_CronicasPorVez, sizeOf( N_CronicasPorVez ));
  f.Write( N_DiscretizacionesHistograma, sizeOF( N_DiscretizacionesHistograma ) );
  f.Write( semilla_madre, sizeOf( semilla_madre ) );
  f.Write( ro_GA, sizeof( ro_GA ) );
  f.Write( ro_EG, sizeOf( ro_EG ) );
  f.Write( ro_MJ, sizeof( ro_MJ )) ;
  f.Write( GA_prob_premio_exito, sizeOf( GA_prob_premio_exito ));
  f.Write( GA_prob_mutacion, sizeOf( GA_prob_mutacion ));
  f.WriteAnsiString( descripcion );
  f.Write( tipo, sizeOf( tipo ) );
  f.Write( estado, sizeOf( estado ) );
  f.WriteAnsiString( sala_simsee );
  f.Write( fecha_primer_etapa, sizeOf( fecha_primer_etapa ) );
  f.Write( dias_por_etapa, SizeOF( dias_por_etapa ) );
  f.Write( n_etapas, sizeOf( n_etapas ) );
  f.Write( cnt_terminar, sizeOf( cnt_terminar ));
  f.Write( ro_binary, sizeOf( ro_binary ) );
  f.Write( ro_gray, sizeOf( ro_gray ) );
  f.Write( ro_unary, sizeOf( ro_unary ));
  f.Write( ro_fosil_agosto2011, sizeOf( ro_fosil_agosto2011 ));
end;

constructor TOddface_Problema.LoadFromBin(f: TStream);
begin
  inherited LoadFromBin( f );
  f.Read( usuario, sizeof( usuario ) );
  f.Read( grupo, sizeOf( grupo ) );
  f.Read( llave, sizeOf( llave ) );
  f.Read( dt_creacion, sizeOf( dt_creacion ));
  f.Read( ro_VE, sizeOf( ro_VE ));
  f.Read( ro_VaR, sizeOf( ro_VaR ));
  f.Read( ro_CVaR, sizeOf( ro_CVaR ) );
  f.Read( N_CronicasPorVez, sizeOf( N_CronicasPorVez ));
  f.Read( N_DiscretizacionesHistograma, sizeOF( N_DiscretizacionesHistograma ) );
  f.Read( semilla_madre, sizeOf( semilla_madre ) );
  f.Read( ro_GA, sizeof( ro_GA ) );
  f.Read( ro_EG, sizeOf( ro_EG ) );
  f.Read( ro_MJ, sizeof( ro_MJ )) ;
  f.Read( GA_prob_premio_exito, sizeOf( GA_prob_premio_exito ));
  f.Read( GA_prob_mutacion, sizeOf( GA_prob_mutacion ));
  descripcion:= f.ReadAnsiString;
  f.Read( tipo, sizeOf( tipo ) );
  f.Read( estado, sizeOf( estado ) );
  sala_simsee:= f.ReadAnsiString;
  f.Read( fecha_primer_etapa, sizeOf( fecha_primer_etapa ) );
  f.Read( dias_por_etapa, SizeOF( dias_por_etapa ) );
  f.Read( n_etapas, sizeOf( n_etapas ) );
  f.Read( cnt_terminar, sizeOf( cnt_terminar ));
  f.Read( ro_binary, sizeOf( ro_binary ) );
  f.Read( ro_gray, sizeOf( ro_gray ) );
  f.Read( ro_unary, sizeOf( ro_unary ));
  f.Read( ro_fosil_agosto2011, sizeOf( ro_fosil_agosto2011 ));
end;

procedure TOddface_Problema.CopyRec(a: TRec_key);
var
  a_: TOddFace_Problema;
begin
  a_:= a as TOddFace_problema;
  inherited CopyRec(a_);
  Self.usuario:= a_.usuario;
  Self.grupo:= a_.grupo;
  Self.llave:= a_.llave;
  Self.dt_creacion:= a_.dt_creacion;
  Self.ro_VE:= a_.ro_VE;
  Self.ro_VaR:= a_.ro_VaR;
  Self.ro_CVaR:= a_.ro_CVaR;
  Self.N_CronicasPorVez:= a_.N_CronicasPorVez;
  Self.N_DiscretizacionesHistograma:= a_.N_DiscretizacionesHistograma;
  Self.semilla_madre:= a_.semilla_madre;
  Self.ro_GA:= a_.ro_GA;
  Self.ro_EG:= a_.ro_EG;
  Self.ro_MJ:= a_.ro_MJ;
  Self.GA_prob_premio_exito:= a_.GA_prob_premio_exito;
  Self.GA_prob_mutacion:= a_.GA_prob_mutacion;
  Self.descripcion:= a_.Descripcion;
  Self.tipo:= a_.tipo;
  Self.estado:= a_.estado;
  Self.sala_simsee:= a_.sala_simsee;
  Self.fecha_primer_etapa:= a_.fecha_primer_etapa;
  Self.dias_por_etapa:= a_.dias_por_etapa;
  Self.n_etapas:= a_.n_etapas;
  Self.cnt_terminar:= a_.cnt_terminar;
  Self.ro_binary:= a_.ro_binary;
  Self.ro_gray:= a_.ro_gray;
  Self.ro_unary:= a_.ro_unary;
  Self.ro_fosil_agosto2011:= a_.ro_fosil_agosto2011;
end;

end.

