public void CalculationManager_Test() { var calcManager = CalculationManager<DatosProyecto>.Create(); calcManager.DefineFormula(x => x.PrecioBruto, x => ((((x.RateFijo.ConvertirADecimal(0) + (x.RateVariable.ConvertirADecimal(0) * CalcularParticipantesAdicionales(x.CantidadTopeRateFijo.ConvertirADecimal(0), x.CantidadParticipantes.ConvertirADecimal(0)))) * x.CantidadEventos.ConvertirADecimal(0)) + x.Gastos.ConvertirADecimal(0)) * x.Factor.ConvertirADecimal(1)).ConvertirAString()); var datos = new DatosProyecto(); calcManager.ApplyToItem(datos, false); datos.CantidadEventos = 1.ToString(); datos.RateFijo = 250.ToString(); datos.Factor = 1.ToString(); Assert.AreEqual(250, datos.PrecioBruto.ConvertirADecimal(0)); }
/// <summary> /// Asocia las formulas correspondientes al item /// </summary> public void Aplicar(DatosProyecto itemDatoProyecto, bool ejecutarConstantes) { //aplica los calculos comunes _calcManagerComun.ApplyToItem(itemDatoProyecto, ejecutarConstantes); //aplica los calculos especificos del tipo de calculo de horas switch (itemDatoProyecto.TipoCalculoHoras) { case 1: _calcManagerHsTotales1.ApplyToItem(itemDatoProyecto, ejecutarConstantes); break; case 2: _calcManagerHsTotales2.ApplyToItem(itemDatoProyecto, ejecutarConstantes); break; case 3: _calcManagerHsTotales3.ApplyToItem(itemDatoProyecto, ejecutarConstantes); break; case 4: _calcManagerHsTotales4.ApplyToItem(itemDatoProyecto, ejecutarConstantes); break; case 5: _calcManagerHsTotales5.ApplyToItem(itemDatoProyecto, ejecutarConstantes); break; } //aplica los calculos especificos del tipo de calculo de precio switch (itemDatoProyecto.TipoCalculoPrecio) { case 1: _calcManagerPrecioBruto1.ApplyToItem(itemDatoProyecto, ejecutarConstantes); break; case 2: _calcManagerPrecioBruto2.ApplyToItem(itemDatoProyecto, ejecutarConstantes); break; case 3: _calcManagerPrecioBruto3.ApplyToItem(itemDatoProyecto, ejecutarConstantes); break; case 4: _calcManagerPrecioBruto4.ApplyToItem(itemDatoProyecto, ejecutarConstantes); break; } }
/// <summary> /// Comprueba de que el item posea una formula asociada en su columna. /// </summary> /// <param name="itemDatoProyecto"></param> /// <param name="nombreColumna"></param> /// <returns></returns> public bool TieneFormula(DatosProyecto itemDatoProyecto, string nombreColumna) { bool tieneFormula = _calcManagerComun.HasFormula(nombreColumna); if (!tieneFormula) { switch (itemDatoProyecto.TipoCalculoHoras) { case 1: tieneFormula = _calcManagerHsTotales1.HasFormula(nombreColumna); break; case 2: tieneFormula = _calcManagerHsTotales2.HasFormula(nombreColumna); break; case 3: tieneFormula = _calcManagerHsTotales3.HasFormula(nombreColumna); break; case 4: tieneFormula = _calcManagerHsTotales4.HasFormula(nombreColumna); break; case 5: tieneFormula = _calcManagerHsTotales5.HasFormula(nombreColumna); break; } } if (!tieneFormula) { switch (itemDatoProyecto.TipoCalculoPrecio) { case 1: tieneFormula = _calcManagerPrecioBruto1.HasFormula(nombreColumna); break; case 2: tieneFormula = _calcManagerPrecioBruto2.HasFormula(nombreColumna); break; case 3: tieneFormula = _calcManagerPrecioBruto3.HasFormula(nombreColumna); break; case 4: tieneFormula = _calcManagerPrecioBruto4.HasFormula(nombreColumna); break; } } return tieneFormula; }
public DatoAsignacionSemanal(DatosProyecto actividadProyecto) { _actividadProyecto = actividadProyecto; }
/// <summary> /// Create a new DatosProyecto object. /// </summary> /// <param name="esFilaDato">Initial value of the EsFilaDato property.</param> /// <param name="idTipoActividad">Initial value of the IdTipoActividad property.</param> /// <param name="ordenActividad">Initial value of the OrdenActividad property.</param> /// <param name="esFilaActiva">Initial value of the EsFilaActiva property.</param> public static DatosProyecto CreateDatosProyecto(global::System.Boolean esFilaDato, global::System.Int32 idTipoActividad, global::System.Int32 ordenActividad, global::System.Boolean esFilaActiva) { DatosProyecto datosProyecto = new DatosProyecto(); datosProyecto.EsFilaDato = esFilaDato; datosProyecto.IdTipoActividad = idTipoActividad; datosProyecto.OrdenActividad = ordenActividad; datosProyecto.EsFilaActiva = esFilaActiva; return datosProyecto; }