public ActionResult Modificar(ro_empleado_proyeccion_gastos_Info info)
        {
            try
            {
                ro_tipo_gastos_personales_maxim_x_anio_Bus bus_detalle_techo_x_anio = new ro_tipo_gastos_personales_maxim_x_anio_Bus();

                if (ModelState.IsValid)
                {
                    var gastos = bus_detalle_techo_x_anio.get_list_gastos_tope_x_anio(info.AnioFiscal);

                    if (gastos == null)
                    {
                        cargar_combo();
                        ViewBag.mensaje = "No existen valores maximo registrado para el periodo fiscal";
                        return(View(info));
                    }
                    else
                    {
                        if (gastos.Count() == 0)
                        {
                            cargar_combo();
                            ViewBag.mensaje = "No existen valores maximo registrado para el periodo fiscal";
                            return(View(info));
                        }
                    }
                    info.list_proyeciones = ro_empleado_proyeccion_gastos_det_Info_lis.get_list(info.IdTransaccionSession);

                    foreach (var item in info.list_proyeciones)
                    {
                        gastos = bus_detalle_techo_x_anio.get_list_gastos_tope_x_anio(info.AnioFiscal);

                        if (gastos.Where(v => v.AnioFiscal == info.AnioFiscal && v.IdTipoGasto == item.IdTipoGasto && v.Monto_max < item.Valor).Count() > 0)
                        {
                            cargar_combo();
                            ViewBag.mensaje = "El tipo de gasto " + item.IdTipoGasto + " supera el valor maximo deducible";
                            return(View(info));
                        }
                    }

                    if (!bus_proyeccion.modificarDB(info))
                    {
                        SessionFixed.IdTransaccionSessionActual = info.IdTransaccionSession.ToString();
                        cargar_combo();
                        return(View(info));
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else
                {
                    return(View(info));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }