//// GET: HRMS_TRAINING_MATERIALSET/Delete/5
        //public ActionResult Delete(long? id)
        //{
        //    if (id == null)
        //    {
        //        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        //    }
        //    HRMS_TRAINING_MATERIALSET hRMS_TRAINING_MATERIALSET = db.HRMS_TRAINING_MATERIALSET.Find(id);
        //    if (hRMS_TRAINING_MATERIALSET == null)
        //    {
        //        return HttpNotFound();
        //    }
        //    return View(hRMS_TRAINING_MATERIALSET);
        //}

        //// POST: HRMS_TRAINING_MATERIALSET/Delete/5
        //[HttpPost, ActionName("Delete")]
        //[ValidateAntiForgeryToken]
        //public ActionResult DeleteConfirmed(long id)
        //{
        //    HRMS_TRAINING_MATERIALSET hRMS_TRAINING_MATERIALSET = db.HRMS_TRAINING_MATERIALSET.Find(id);
        //    db.HRMS_TRAINING_MATERIALSET.Remove(hRMS_TRAINING_MATERIALSET);
        //    db.SaveChanges();
        //    return RedirectToAction("Index");
        //}


        public bool Delete(long id)
        {
            HRMS_TRAINING_MATERIALSET hRMS_TRAINING_MATERIALSET = db.HRMS_TRAINING_MATERIALSET.Find(id);

            if (hRMS_TRAINING_MATERIALSET != null)
            {
                long P_id = hRMS_TRAINING_MATERIALSET.ProgDet_ID;
                db.HRMS_TRAINING_MATERIALSET.Remove(hRMS_TRAINING_MATERIALSET);
                db.SaveChanges();
                HRMS_ProgramDetail hRMS_ProgramDetaill = db.HRMS_ProgramDetail.Find(P_id);
                if (!db.HRMS_TRAINING_MATERIALSET.Where(x => x.ProgDet_ID == P_id).Any())
                {
                    if (hRMS_ProgramDetaill.Material == true)
                    {
                        hRMS_ProgramDetaill.Material        = false;
                        db.Entry(hRMS_ProgramDetaill).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
                decimal total = GetTotalRate(hRMS_ProgramDetaill.ID);
                if (hRMS_ProgramDetaill.Program_Amount != total)
                {
                    hRMS_ProgramDetaill.Program_Amount  = total;
                    db.Entry(hRMS_ProgramDetaill).State = EntityState.Modified;
                    db.SaveChanges();
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public ActionResult Edit([Bind(Include = "MaterialSet_ID,ProgDet_ID,Material_ID,Material_Name,Bud_Act,MaterialSet_Qty,MaterialSet_Rate,MaterialSet_Amt")] HRMS_TRAINING_MATERIALSET hRMS_TRAINING_MATERIALSET)
        {
            if (ModelState.IsValid)
            {
                HRMS_ProgramDetail hRMS_ProgramDetaill = db.HRMS_ProgramDetail.Find(hRMS_TRAINING_MATERIALSET.ProgDet_ID);
                long b = Convert.ToInt64(Request["M_id"]);
                HRMS_TRAINING_MATERIAL_MS hRMS_TRAINING_MATERIAL_MS = db.HRMS_TRAINING_MATERIAL_MS.Find(b);
                hRMS_TRAINING_MATERIALSET.Material_ID      = b;
                hRMS_TRAINING_MATERIALSET.Material_Name    = hRMS_TRAINING_MATERIAL_MS.Material_Name;
                hRMS_TRAINING_MATERIALSET.MaterialSet_Qty  = Convert.ToInt64(Request["M_qty"]);
                hRMS_TRAINING_MATERIALSET.MaterialSet_Rate = Convert.ToDecimal(Request["M_rate"]);
                hRMS_TRAINING_MATERIALSET.MaterialSet_Amt  = Convert.ToDecimal(Request["M_amt"]);
                db.Entry(hRMS_TRAINING_MATERIALSET).State  = EntityState.Modified;
                db.SaveChanges();
                decimal total = GetTotalRate(hRMS_ProgramDetaill.ID);
                if (hRMS_ProgramDetaill.Program_Amount != total)
                {
                    hRMS_ProgramDetaill.Program_Amount  = total;
                    db.Entry(hRMS_ProgramDetaill).State = EntityState.Modified;
                    db.SaveChanges();
                }

                return(RedirectToAction("Index1"));
            }
            //ViewBag.ProgDet_ID = new SelectList(db.HRMS_ProgramDetail, "ID", "ProgramName", hRMS_TRAINING_MATERIALSET.ProgDet_ID);
            //ViewBag.Material_ID = new SelectList(db.HRMS_TRAINING_MATERIAL_MS, "Material_ID", "Material_Name", hRMS_TRAINING_MATERIALSET.Material_ID);
            return(View(hRMS_TRAINING_MATERIALSET));
        }
        // GET: HRMS_TRAINING_MATERIALSET/Details/5
        public ActionResult Details(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            HRMS_TRAINING_MATERIALSET hRMS_TRAINING_MATERIALSET = db.HRMS_TRAINING_MATERIALSET.Find(id);

            if (hRMS_TRAINING_MATERIALSET == null)
            {
                return(HttpNotFound());
            }
            return(View(hRMS_TRAINING_MATERIALSET));
        }
        // GET: HRMS_TRAINING_MATERIALSET/Create
        public ActionResult Create(long?id)
        {
            ViewBag.ProgDet_ID  = new SelectList(db.HRMS_ProgramDetail, "ID", "ProgramName");
            ViewBag.Material_ID = new SelectList(db.HRMS_TRAINING_MATERIAL_MS, "Material_ID", "Material_Name");
            HRMS_ProgramDetail               hRMS_ProgramDetail1        = db.HRMS_ProgramDetail.Find(id);
            HRMS_TRAINING_MATERIALSET        hRMS_TRAINING_MATERIALSET1 = new HRMS_TRAINING_MATERIALSET();
            List <HRMS_TRAINING_MATERIALSET> hRMS_TRAINING_MATERIALSET3 = db.HRMS_TRAINING_MATERIALSET.Where(x => x.ProgDet_ID == id).ToList();
            dynamic MultiView = new ExpandoObject();

            MultiView.hRMS_ProgramDetail         = hRMS_ProgramDetail1;
            MultiView.hRMS_TRAINING_MATERIALSET  = hRMS_TRAINING_MATERIALSET1;
            MultiView.hRMS_TRAINING_MATERIALSET4 = hRMS_TRAINING_MATERIALSET3;

            return(View("Create", MultiView));


            //return View();
        }
        // GET: HRMS_TRAINING_MATERIALSET/Edit/5
        public ActionResult Edit(long?id)
        {
            //HRMS_TRAINING_MATERIALSET hRMS_TRAINING_MATERIALSET = db.HRMS_TRAINING_MATERIALSET.Find(id);



            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            HRMS_TRAINING_MATERIALSET hRMS_TRAINING_MATERIALSET = db.HRMS_TRAINING_MATERIALSET.Find(id);

            if (hRMS_TRAINING_MATERIALSET == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ProgDet_ID  = new SelectList(db.HRMS_ProgramDetail, "ID", "ProgramName", hRMS_TRAINING_MATERIALSET.ProgDet_ID);
            ViewBag.Material_ID = new SelectList(db.HRMS_TRAINING_MATERIAL_MS, "Material_ID", "Material_Name", hRMS_TRAINING_MATERIALSET.Material_ID);

            return(View(hRMS_TRAINING_MATERIALSET));
        }
        public ActionResult Create([Bind(Include = "MaterialSet_ID,ProgDet_ID,Material_ID,Material_Name,Bud_Act,MaterialSet_Qty,MaterialSet_Rate,MaterialSet_Amt")] HRMS_TRAINING_MATERIALSET hRMS_TRAINING_MATERIALSET)
        {
            ViewBag.ProgDet_ID  = new SelectList(db.HRMS_ProgramDetail, "ID", "ProgramName", hRMS_TRAINING_MATERIALSET.ProgDet_ID);
            ViewBag.Material_ID = new SelectList(db.HRMS_TRAINING_MATERIAL_MS, "Material_ID", "Material_Name", hRMS_TRAINING_MATERIALSET.Material_ID);
            long id = Convert.ToInt64(Request["Prog_id"]);
            HRMS_ProgramDetail               hRMS_ProgramDetail1        = db.HRMS_ProgramDetail.Find(id);
            HRMS_TRAINING_MATERIALSET        hRMS_TRAINING_MATERIALSET1 = new HRMS_TRAINING_MATERIALSET();
            List <HRMS_TRAINING_MATERIALSET> hRMS_TRAINING_MATERIALSET3 = db.HRMS_TRAINING_MATERIALSET.Where(x => x.ProgDet_ID == id).ToList();
            dynamic MultiView = new ExpandoObject();

            MultiView.hRMS_ProgramDetail         = hRMS_ProgramDetail1;
            MultiView.hRMS_TRAINING_MATERIALSET  = hRMS_TRAINING_MATERIALSET1;
            MultiView.hRMS_TRAINING_MATERIALSET4 = hRMS_TRAINING_MATERIALSET3;


            if (ModelState.IsValid)
            {
                long a = Convert.ToInt64(Request["Prog_id"]);
                long b = Convert.ToInt64(Request["M_id"]);

                if (b != 0 && a != 0)
                {
                    ViewBag.Status = "";
                    if (!db.HRMS_TRAINING_MATERIALSET.Where(x => x.ProgDet_ID == a && x.Material_ID == b).Any())
                    {
                        HRMS_ProgramDetail        hRMS_ProgramDetaill       = db.HRMS_ProgramDetail.Find(id);
                        HRMS_TRAINING_MATERIAL_MS hRMS_TRAINING_MATERIAL_MS = db.HRMS_TRAINING_MATERIAL_MS.Find(b);
                        hRMS_TRAINING_MATERIALSET.ProgDet_ID       = a;
                        hRMS_TRAINING_MATERIALSET.Material_ID      = b;
                        hRMS_TRAINING_MATERIALSET.Material_Name    = hRMS_TRAINING_MATERIAL_MS.Material_Name;
                        hRMS_TRAINING_MATERIALSET.MaterialSet_Qty  = Convert.ToInt64(Request["M_qty"]);
                        hRMS_TRAINING_MATERIALSET.MaterialSet_Rate = Convert.ToDecimal(Request["M_rate"]);
                        hRMS_TRAINING_MATERIALSET.MaterialSet_Amt  = Convert.ToDecimal(Request["M_amt"]);
                        hRMS_TRAINING_MATERIALSET.Bud_Act          = Convert.ToString(Request["Bud_Act"]);
                        db.HRMS_TRAINING_MATERIALSET.Add(hRMS_TRAINING_MATERIALSET);
                        db.SaveChanges();
                        decimal total = GetTotalRate(a);
                        if (hRMS_ProgramDetaill.Program_Amount != total)
                        {
                            hRMS_ProgramDetaill.Program_Amount  = total;
                            db.Entry(hRMS_ProgramDetaill).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                        if (hRMS_ProgramDetaill.Material == false)
                        {
                            hRMS_ProgramDetaill.Material        = true;
                            db.Entry(hRMS_ProgramDetaill).State = EntityState.Modified;
                            db.SaveChanges();
                        }


                        HRMS_ProgramDetail               hRMS_ProgramDetail11        = db.HRMS_ProgramDetail.Find(id);
                        HRMS_TRAINING_MATERIALSET        hRMS_TRAINING_MATERIALSET11 = new HRMS_TRAINING_MATERIALSET();
                        List <HRMS_TRAINING_MATERIALSET> hRMS_TRAINING_MATERIALSET31 = db.HRMS_TRAINING_MATERIALSET.Where(x => x.ProgDet_ID == id).ToList();
                        MultiView = new ExpandoObject();
                        MultiView.hRMS_ProgramDetail         = hRMS_ProgramDetail11;
                        MultiView.hRMS_TRAINING_MATERIALSET  = hRMS_TRAINING_MATERIALSET11;
                        MultiView.hRMS_TRAINING_MATERIALSET4 = hRMS_TRAINING_MATERIALSET31;
                        ViewBag.Status = "New Material added successfully!!!";
                        return(View("Create", MultiView));
                    }
                    ViewBag.Status = "Material already assigned to this Program";
                    return(View("Create", MultiView));
                }
            }
            return(View("Create", MultiView));
        }