public ActionResult Crear()
        {
            var excepcionRubro = new ExcepcionRubro();

            excepcionRubro.RecargoPorcentaje = 0;
            return(PartialView(excepcionRubro));
        }
        public ActionResult Detalle(int id)
        {
            ExcepcionRubro excepcionRubro = Uow.ExcepcionesRubros.Obtener(e => e.ExcepcionRubroId == id, e => e.Rubro, e => e.MaxiKiosco);

            if (excepcionRubro == null)
            {
                return(HttpNotFound());
            }

            return(PartialView(excepcionRubro));
        }
        public ActionResult Editar(int id)
        {
            ExcepcionRubro excepcionRubro = Uow.ExcepcionesRubros.Obtener(id);

            if (excepcionRubro == null)
            {
                return(HttpNotFound());
            }

            return(PartialView(excepcionRubro));
        }
        private bool ExistenPeriodosSolapados(ExcepcionRubro excepcionRubro)
        {
            //Validate solapamiento para el rubro y el kiosco
            var excepcionesRubro = Uow.ExcepcionesRubros.Listado()
                                   .Where(ex => ex.MaxiKioscoId == excepcionRubro.MaxiKioscoId &&
                                          ex.RubroId == excepcionRubro.RubroId &&
                                          ex.ExcepcionRubroId != excepcionRubro.ExcepcionRubroId).ToList();

            return(excepcionesRubro.Any(ex => TimeSpanHelper
                                        .TimePeriodOverlap(excepcionRubro.Desde, excepcionRubro.Hasta,
                                                           ex.Desde, ex.Hasta)));
        }
        public ActionResult Eliminar(int id, FormCollection collection)
        {
            ExcepcionRubro excepcionRubro = Uow.ExcepcionesRubros.Obtener(id);

            if (excepcionRubro == null)
            {
                return(HttpNotFound());
            }
            Uow.ExcepcionesRubros.Eliminar(excepcionRubro);
            Uow.Commit();
            return(Json(new { exito = true }));
        }
        public ActionResult Editar(ExcepcionRubro excepcionRubro)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView());
            }

            if (ExistenPeriodosSolapados(excepcionRubro))
            {
                //Verificamos que nos se solapen los rangos ningun existente.
                ModelState.AddModelError("PeriodosSolapados", "El período ingresado coincide con uno o más cargados previamente");
                return(PartialView(excepcionRubro));
            }

            Uow.ExcepcionesRubros.Modificar(excepcionRubro);
            Uow.Commit();

            return(Json(new { exito = true }));
        }