public decimal Calcular(Contexto contexto, Concepto concepto) { var reintegro = criterioAdaptado.Calcular(contexto, concepto); if (reintegro > 0) contexto.RegistrarReintegroTemporal(new Historial(1, reintegro)); return reintegro; }
public decimal Calcular(Contexto contexto, Concepto concepto) { var historial = contexto.ObtenerHistorial(DateRange.AnioCalendarioParaFecha(concepto.FechaPrestacion)); var montoReintegro = cantidadMaxima <= historial.Cantidad ? 0m : concepto.MontoReclamado; return montoReintegro; }
public decimal Calcular(Contexto contexto, Concepto concepto) { var historial = contexto.ObtenerHistorial(DateRange.PasadoDesdeHoy(this.periodo)); var montoReintegro = cantidadMaxima <= historial.Cantidad ? 0m : concepto.MontoReclamado; return montoReintegro; }
public decimal Calcular(Contexto contexto, Concepto concepto) { if (contexto.Variable<int>("edad") <= this.edad) return concepto.MontoReclamado; return 0m; }
public decimal Calcular(Contexto contexto, Concepto concepto) { var montoReintegro = this.montoMaximo; if (concepto.MontoReclamado > montoReintegro) return montoReintegro; return concepto.MontoReclamado; }
public decimal Calcular(Contexto contexto, Concepto concepto) { var porcentajeReintegro = 0; if (contexto.Variable<bool>("esAfiliado")) porcentajeReintegro = 50; else if (contexto.Variable<int>("edad") <= 6) porcentajeReintegro = 30; else porcentajeReintegro = 20; return Decimal.Round(concepto.MontoReclamado * porcentajeReintegro / 100, 2); }
public decimal Calcular(Contexto contexto, Concepto concepto) { var historial = contexto.ObtenerHistorial(DateRange.PasadoDesdeHoy(this.periodo)); var montoReintegro = montoMaximo - historial.Monto; if (montoReintegro < 0) montoReintegro = 0; if (concepto.MontoReclamado > montoReintegro) return montoReintegro; return concepto.MontoReclamado; }
public decimal Calcular(Contexto contexto, Concepto concepto) { var historial = contexto.ObtenerHistorial(DateRange.AnioCalendarioParaFecha(concepto.FechaPrestacion)); var montoReintegro = montoMaximo - historial.Monto; if (montoReintegro < 0) montoReintegro = 0; if (concepto.MontoReclamado > montoReintegro) return montoReintegro; return concepto.MontoReclamado; }
public decimal Calcular(Contexto contexto, Concepto concepto) { var historial = contexto.ObtenerHistorial( new DateRange(contexto.Variable<DateTime>("fechaNacimiento"), concepto.FechaPrestacion)); var fechaNacimiento = contexto.Variable<DateTime>("fechaNacimiento"); var fechaReintegro = concepto.FechaPrestacion; var dias = fechaReintegro.Subtract(fechaNacimiento).Days; var cantidadPaniales = dias * this.cantidadDiaria; var reintegro = (cantidadPaniales - historial.Cantidad) * this.reintegroPorPanial; return reintegro; }
public void ConstruyeCorrectamenteElFiltroPorAñoCalendarioMonto() { var concepto = new Concepto(200, new DateTime(2013, 10, 10)); DateRange periodoCalculado = null; // Capturo el periodo para chequear si el criterio lo calcula correctamente contexto.DefinirBuscadorDeHistorial((periodo) => { periodoCalculado = periodo; return new Historial(0, 0m); }); criterioMonto.Calcular(contexto, concepto); Assert.That(periodoCalculado.Desde, Is.EqualTo(new DateTime(2013, 1, 1))); Assert.That(periodoCalculado.Hasta, Is.EqualTo(new DateTime(2013, 12, 31))); }
public decimal Calcular(Contexto contexto, Concepto concepto) { var porcentajeReintegro = this.porcentaje; return Decimal.Round(concepto.MontoReclamado * porcentajeReintegro / 100, 2); }
public decimal Calcular(Contexto contexto, Concepto concepto) { return this.criterios.Max(criterio => criterio.Calcular(contexto, concepto)); }