//
        // GET: /EstrategiaComercial/Edit/5

        public ActionResult Edit(int id = 0)
        {
            ViewBag.Message = TempData["est_com.Message"] != null ? TempData["est_com.Message"].ToString() : String.Empty;

            T_ESTRATEGIA_COMERCIAL t_estrategia_comercial = db.T_ESTRATEGIA_COMERCIAL.Find(id);

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

            EstrategiaComercialViewModel evm = new EstrategiaComercialViewModel()
            {
                ESTRATEGIA_COMERCIAL = t_estrategia_comercial
            };

            return(View(evm));
        }
        //
        // GET: /EstrategiaComercial/

        public ActionResult Index()
        {
            //B:Get plan salud
            int id_plan_salud = 0;                                                                                                                                                                            //Consider that if [id_plan_salud] does not exist, it is 0: Optionality change for -99

            id_plan_salud             = Int32.Parse(Request["estrategia_comercial_action_select_plan"] ?? (TempData["est_com.id_plan_salud"] != null ? TempData["est_com.id_plan_salud"].ToString() : "-1")); //-1: All record by default
            ViewData["id_plan_salud"] = id_plan_salud.ToString();
            //E:Get plan salud

            //Get messages from others actions : When redirect to here
            ViewBag.Message = TempData["est_com.Message"] != null ? TempData["est_com.Message"].ToString() : String.Empty;

            //==== BEGIN: Main process
            var t_estrategia_comercial  = db.T_ESTRATEGIA_COMERCIAL.Include(t => t.T_PLAN_DE_SALUD);
            var tv_estrategia_comercial = from est_com in t_estrategia_comercial
                                          select new TV_ESTRATEGIA_COMERCIAL
            {
                id_estrategia_comercial = est_com.id_estrategia_comercial,
                nombre         = est_com.nombre,
                descripcion    = est_com.descripcion,
                objetivo       = est_com.objetivo,
                fecha_registro = est_com.fecha_registro,
                fecha_fin      = est_com.T_ESTRATEGIA_COMERCIAL_DETALLE.Max(x => x.fecha_fin),
                presupuesto    = est_com.presupuesto,
                real           = est_com.T_ESTRATEGIA_COMERCIAL_DETALLE.Sum(x => x.monto),
                desviacion     = (est_com.presupuesto - est_com.T_ESTRATEGIA_COMERCIAL_DETALLE.Sum(x => x.monto)) / est_com.presupuesto,
                id_plan_salud  = est_com.id_plan_salud
            };

            EstrategiaComercialViewModel evm = new EstrategiaComercialViewModel
            {
                ESTRATEGIAS_COMERCIALES = id_plan_salud > 0 ? tv_estrategia_comercial.Where(x => x.id_plan_salud == id_plan_salud).ToList() : tv_estrategia_comercial.ToList(),
                PLANES_DE_SALUD         = db.T_PLAN_DE_SALUD.Where(x => x.estado == "1" && x.fecha_inicio <= DateTime.Now && x.fecha_fin >= DateTime.Now).ToList()
            };

            //==== END: Main process

            return(View(evm));
        }