unit uEditarFichaBancodeBaterias01;


interface

uses
   {$IFDEF WINDOWS}
  Windows,
   {$ELSE}
  LCLType,
   {$ENDIF}
  Messages, SysUtils, xMatDefs, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uBaseEditoresFichas,
  ubancodebaterias01, uFichasLPD,
  uFechas, uCosaConNombre,
  usalasdejuego,
  uSalasDeJuegoParaEditor, uconstantesSimSEE, utilidades, uverdoc, StdCtrls,
  ExtCtrls, Grids, Buttons, uOpcionesSimSEEEdit;

type

  { TEditarFichaBancoDeBaterias01 }

  TEditarFichaBancoDeBaterias01 = class(TBaseEditoresFichas)
    BAyuda: TButton;
    BCancelar: TButton;
    BGuardar: TButton;
    eAniosRecambio_costeo: TLabeledEdit;
    eCapacidadMaxima: TEdit;
    eCostoRecambio_USD_kWh_instalado: TLabeledEdit;
    eCV_MWh_ValorizadoManual: TLabeledEdit;
    eEnsayoCiclado_nc1: TLabeledEdit;
    eEnsayoCiclado_nc2: TLabeledEdit;
    eEnsayoCiclado_pd1: TLabeledEdit;
    eEnsayoCiclado_pd2: TLabeledEdit;
    efd: TEdit;
    ePagoPorDisponibilidad: TEdit;
    ePMax_Dem: TEdit;
    ePMax_Gen: TEdit;
    eRen_Dem: TEdit;
    eRen_Gen: TEdit;
    eTasaDescuento_costeo: TLabeledEdit;
    etmr: TEdit;
    gbParametrosBanco: TGroupBox;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    lblCapacidadMaxima: TLabel;
    lblPagoPorDispo: TLabel;
    lblPMaxDescarga: TLabel;
    lblPMaxCarga: TLabel;
    lblRendimientoDescarga: TLabel;
    lblRendimientoaCarga: TLabel;
    lblDisponibilidadFortuita: TLabel;
    lblTMR: TLabel;
    lblValorizadoManual: TLabel;
    Panel1: TPanel;
    procedure BCancelarClick(Sender: TObject);
    procedure BGuardarClick(Sender: TObject); override;
    procedure cambiosForm(Sender: TObject);
    procedure eAniosEnvejecimientoNaturalChange(Sender: TObject);
    procedure gbParametrosBancoClick(Sender: TObject);
    procedure GroupBox2Click(Sender: TObject);
    procedure lblCapacidadMaximaClick(Sender: TObject);
    procedure lblPMaxDescargaClick(Sender: TObject);
  protected
    function validarFormulario: boolean; override;
  public
    constructor Create(AOwner: TComponent; cosaConNombre: TCosaConNombre;
      ficha: TFichaLPD; sala: TSalaDeJuego); override;
  end;

var
  EditarFichaBancoDeBaterias01: TEditarFichaBancoDeBaterias01;

implementation

uses SimSEEEditMain;

  {$R *.lfm}

procedure TEditarFichaBancoDeBaterias01.BCancelarClick(Sender: TObject);
begin
  inherited BCancelarClick(Sender);
end;

procedure TEditarFichaBancoDeBaterias01.BGuardarClick(Sender: TObject);
var
  periodicidad: TPeriodicidad;
begin
  if validarFormulario then
  begin
    if CBPeriodicidad.Checked then
      periodicidad := inherited darPeriodicidad(CBLargoPeriodo,
        ELargoPeriodo, EFIniPeriodo, EFFinPeriodo, sgPeriodicidad)
    else
      periodicidad := nil;
    ficha := TFichaBancoDeBaterias01.Create(
      capa, StrToFecha(EFIni.Text), periodicidad, StrToFloat(ePMax_Gen.Text),
      StrToFloat(ePMax_Dem.Text), StrToFloat(eRen_Gen.Text),
      StrToFloat(eRen_Dem.Text), StrToFloat(eCapacidadMaxima.Text),
      StrToFloat(efd.Text), StrToFloat(etmr.Text),
      StrToFloat(eCV_MWh_ValorizadoManual.Text), strToFloat(ePagoPorDisponibilidad.Text),
      StrToFloat(eEnsayoCiclado_pd1.Text), StrToInt(eEnsayoCiclado_nc1.Text),
      StrToFloat(eEnsayoCiclado_pd2.Text), StrToInt(eEnsayoCiclado_nc2.Text),
      strToFloat(eCostoRecambio_USD_kWh_instalado.Text),
      StrToInt(eAniosRecambio_costeo.Text), StrToFloat(eTasaDescuento_costeo.Text));
    ModalResult := mrOk;
  end;
end;


procedure TEditarFichaBancoDeBaterias01.cambiosForm(Sender: TObject);
begin
  inherited cambiosForm(Sender);
end;

procedure TEditarFichaBancoDeBaterias01.eAniosEnvejecimientoNaturalChange(
  Sender: TObject);
begin

end;

procedure TEditarFichaBancoDeBaterias01.gbParametrosBancoClick(Sender: TObject);
begin

end;

procedure TEditarFichaBancoDeBaterias01.GroupBox2Click(Sender: TObject);
begin

end;

procedure TEditarFichaBancoDeBaterias01.lblCapacidadMaximaClick(Sender: TObject);
begin

end;

procedure TEditarFichaBancoDeBaterias01.lblPMaxDescargaClick(Sender: TObject);
begin

end;


constructor TEditarFichaBancoDeBaterias01.Create(AOwner: TComponent;
  cosaConNombre: TCosaConNombre; ficha: TFichaLPD; sala: TSalaDeJuego);
var
  fCasteada: TFichaBancoDeBaterias01;
begin
  inherited Create(AOwner, cosaConNombre, ficha, sala);
  if ficha <> nil then
  begin
    fCasteada := ficha as TFichaBancoDeBaterias01;
    eFIni.Text := fCasteada.fecha.asStr;

    eCapacidadMaxima.Text := FloatToStr(fCasteada.CapacidadMaxima_MWh);

    ePMax_Gen.Text := FloatToStrF(fCasteada.PMax_Gen, ffGeneral,
      CF_PRECISION, CF_DECIMALES);
    eRen_Gen.Text := FloatToStrF(fCasteada.ren_Gen, ffGeneral,
      CF_PRECISION, CF_DECIMALES);

    ePMax_Dem.Text := FloatToStrF(fCasteada.PMax_Dem, ffGeneral,
      CF_PRECISION, CF_DECIMALES);
    eRen_Dem.Text := FloatToStrF(fCasteada.ren_Dem, ffGeneral,
      CF_PRECISION, CF_DECIMALES);

    efd.Text := FloatToStrF(fCasteada.fd, ffGeneral, 6, 4);
    etmr.Text := FloatToStrF(fCasteada.tmr, ffGeneral, 6, 1);
    eCV_MWh_ValorizadoManual.Text :=
      FloatToStrF(fCasteada.cv_MWh_ValorizadoManual, ffGeneral, 6, 3);
    ePagoPorDisponibilidad.Text :=
      FloatToStrF(fCasteada.pagoPorDisponibilidad_USDxMWhh, ffGeneral, 6, 3);

    eEnsayoCiclado_pd1.Text := FloatToStrF(fCasteada.EnsayoCiclado_pd1, ffGeneral, 6, 4);
    eEnsayoCiclado_nc1.Text := IntToStr(fCasteada.EnsayoCiclado_nc1);
    eEnsayoCiclado_pd2.Text := FloatToStrF(fCasteada.EnsayoCiclado_pd2, ffGeneral, 6, 4);
    eEnsayoCiclado_nc2.Text := IntToStr(fCasteada.EnsayoCiclado_nc2);

    eCostoRecambio_USD_kWh_instalado.Text :=
      FloatToStrF(fCasteada.CostoRecambio_USD_kWh_instalado, ffGeneral, 6, 4);
    eAniosRecambio_costeo.Text := IntToStr(fCasteada.AniosRecambio_costeo);
    eTasaDescuento_costeo.Text :=
      FloatToStrF(fCasteada.TasaDescuento_costeo, ffGeneral, 6, 4);

  end
  else
  begin
    fCasteada := ficha as TFichaBancoDeBaterias01;
    eFIni.Text := 'Auto';
    eCapacidadMaxima.Text := FloatToStr(0.0);

    ePMax_Gen.Text := FloatToStrF(0.0, ffGeneral, CF_PRECISION, CF_DECIMALES);
    eRen_Gen.Text := FloatToStrF(0.0, ffGeneral, CF_PRECISION, CF_DECIMALES);

    ePMax_Dem.Text := FloatToStrF(0.0, ffGeneral, CF_PRECISION, CF_DECIMALES);
    eRen_Dem.Text := FloatToStrF(0.0, ffGeneral, CF_PRECISION, CF_DECIMALES);

    efd.Text := FloatToStrF(0.0, ffGeneral, 6, 4);
    etmr.Text := FloatToStrF(0.0, ffGeneral, 6, 1);
    eCV_MWh_ValorizadoManual.Text := FloatToStrF(0.0, ffGeneral, 6, 3);
    ePagoPorDisponibilidad.Text := FloatToStrF(0.0, ffGeneral, 6, 3);

    eEnsayoCiclado_pd1.Text := FloatToStrF(0.0, ffGeneral, 6, 4);
    eEnsayoCiclado_nc1.Text := IntToStr(0);
    eEnsayoCiclado_pd2.Text := FloatToStrF(0.0, ffGeneral, 6, 4);
    eEnsayoCiclado_nc2.Text := IntToStr(0);

    eCostoRecambio_USD_kWh_instalado.Text := FloatToStrF(0.0, ffGeneral, 6, 4);
    eAniosRecambio_costeo.Text := IntToStr(0);
    eTasaDescuento_costeo.Text := FloatToStrF(0.0, ffGeneral, 6, 4);

  end;

end;


function TEditarFichaBancoDeBaterias01.validarFormulario: boolean;
begin
  Result := inherited validarFormulario and validarEditFecha(EFIni) and
    validarPeriodicidad(CBPeriodicidad, CBLargoPeriodo, ELargoPeriodo,
    EFIniPeriodo, EFFinPeriodo, sgPeriodicidad) and
    validarEditFloat(ePMax_Gen, 0, 1e10) and validarEditFloat(
    ePMax_Dem, 0, 1e10) and validarEditFloat(eren_Gen, 0, 1) and
    validarEditFloat(eren_Dem, 0, 1) and validarEditFloat(efd, 0, 1) and
    validarEditFloat(etmr, 0, 1e10) and validarEditFloat(
    eCV_MWh_ValorizadoManual, -1e10, 1e10) and
    validarEditFloat(eEnsayoCiclado_pd1, 0, 1) and
    validarEditInt(eEnsayoCiclado_nc1, 0, 100000) and
    validarEditFloat(eEnsayoCiclado_pd2, 0, 1) and
    validarEditInt(eEnsayoCiclado_nc2, 0, 100000) and
    validarEditFloat(eCostoRecambio_USD_kWh_instalado, 0, 100000) and
    validarEditInt(eAniosRecambio_costeo, 0, 100) and
    validarEditFloat(eTasaDescuento_costeo, 0, 1);
end;


end.






