public ActionResult fundsMapping(List<Fund> lst, string hdnFunds, string btnAction)
        {
            if (btnAction == "Cancel")
            {
                TempData["project"] = null;
                TempData["hdnUsr"] = null;
                TempData["fundsMapping"] = null;
                TempData["hdnUsr"] = null;
                TempData["hdnRid"] = null;

                TempData["hdnFunds"] = null;
                TempData["isEdit"] = null;
                return RedirectToAction("Index", "Projects");
            }
            TempData["project"] = TempData["project"];
            TempData["hdnRid"] = TempData["hdnRid"];
            TempData["hdnUsr"] = TempData["hdnUsr"];
            TempData["hdnFunds"] = hdnFunds;
            var hdnUsr = Convert.ToString(TempData["hdnUsr"]);
            TempData["isEdit"] = TempData["isEdit"];
            if (btnAction == "Back")
            {
                TempData["fundsMapping"] = lst;
                return RedirectToAction("shMapping", "Account");
            }
            //ToDo chk for page
            Project project = (Project)TempData["project"];

            if (Convert.ToString(TempData["isEdit"]) == "1")
            {
                Project p = db.Projects.Find(project.Id);
                p.Name = project.Name;
                p.Description = project.Description;
                p.StartDate = project.StartDate;
                p.EndDate = project.EndDate;
                p.City = project.City;
                p.Location = project.Location;
                p.Category = project.Category;
                p.ModifiedOn = DateTime.Now;
                db.Entry(p).State = EntityState.Modified;
                db.SaveChanges();
            }
            else
            {
            db.Projects.Add(project);
            db.SaveChanges();
            }
            //ToAdd: start
            int id = project.Id;
            var Db = new ApplicationDbContext();
            if (Convert.ToString(TempData["isEdit"]) == "1")
            {

                var ep = from s in db.EmployeeProjects
                         where s.ProjectId == id
                         select s;

                foreach (EmployeeProject e in ep)
                {
                    db.EmployeeProjects.Remove(e);
                }
            }
            foreach (string s in hdnUsr.Split('#'))
            {
                if (s != null && s != "")
                {
                    var cnt = 0;
                    if (db.EmployeeProjects.Count() > 0)
                        cnt = db.EmployeeProjects.Max(x => x.Id);

                    EmployeeProject ep = new EmployeeProject();
                    ep.Id = cnt + 1;
                    ep.EmployeeId = s;
                    ep.ProjectId = Convert.ToInt32(id);

                    db.EmployeeProjects.Add(ep);

                    db.SaveChanges();
                }
            }
            //foreach (Fund f in lst)
            var sAmt = 0;
            var rsAmt = 0.0;
            if (Convert.ToString(TempData["isEdit"]) == "1")
            {

                var fp = from s in db.FundProjects
                         where s.ProjectId == id
                         select s;
                var fundItr = fp.ToList();

                foreach (FundProject e in fundItr)
                {
                    rsAmt += Convert.ToDouble(e.SpentAmount.Trim());

                    Fund p = db.Funds.Find(e.FundId);

                    if (p.SpentAmount == null)
                        p.SpentAmount = "0.0";
                    p.SpentAmount = Convert.ToString(Convert.ToInt32(Convert.ToDouble(p.SpentAmount.Trim()) - Convert.ToDouble(e.SpentAmount.Trim()))  ) ;

                    p.SpentAmount = Convert.ToString(Convert.ToInt32(Convert.ToDouble(p.SpentAmount.Trim())));

                    p.TotalAmount = Convert.ToString(Convert.ToInt32(Convert.ToDouble(p.TotalAmount.Trim())));

                    if (p.SpentAmount == "0" || Convert.ToInt32(p.SpentAmount)<0)
                        p.SpentAmount = null;
                    foreach (FundProject f in p.FundProjects)
                    {
                        if (f.SpentAmount == null)
                            f.SpentAmount = "0.0";

                        f.SpentAmount = Convert.ToString(Convert.ToInt32(Convert.ToDouble(Convert.ToString(f.SpentAmount).Trim())));
                        if (f.SpentAmount == "0" || Convert.ToInt32(f.SpentAmount) < 0)
                            f.SpentAmount = null;
                    }

                    db.Entry(p).State = EntityState.Modified;
                    db.SaveChanges();

                    db.FundProjects.Remove(e);
                }

            }
            foreach (string s in hdnFunds.Split('#'))
            {
                if (s != null && s != "")
                {
                        var idf = Convert.ToInt32(s.Split(',')[0]);
                        Fund p = db.Funds.Find(idf);
                        p.TotalAmount = p.TotalAmount.Trim();
                        if (p.SpentAmount == null)
                            p.SpentAmount = "0.0";
                        p.SpentAmount = Convert.ToString(Convert.ToInt32(Convert.ToDouble(Convert.ToString(p.SpentAmount).Trim()) + Convert.ToDouble(s.Split(',')[1])));
                        sAmt += Convert.ToInt32(Convert.ToDouble(s.Split(',')[1]));
                        //sAmt += Convert.ToInt32(Convert.ToInt32(s.Split(',')[1]));
                        p.SpentAmount = p.SpentAmount.Trim();
                        db.Entry(p).State = EntityState.Modified;
                        db.SaveChanges();

                        var cnt = 0;
                        if (db.FundProjects.Count() > 0)
                            cnt = db.FundProjects.Max(x => x.Id);

                        FundProject fp = new FundProject();
                        fp.Id = cnt + 1;
                        fp.FundId = Convert.ToInt32(s.Split(',')[0]);
                        //fp.SpentAmount = Convert.ToString(s.Split(',')[1]);
                        fp.SpentAmount = Convert.ToString(Convert.ToInt32(Convert.ToDouble(s.Split(',')[1])));
                        fp.SpentAmount = fp.SpentAmount.Trim();
                        fp.ProjectId = Convert.ToInt32(id);

                        db.FundProjects.Add(fp);

                        db.SaveChanges();
                }
            }
            Project pe = db.Projects.Find(id);
            pe.TotalAllocatedAmount = Convert.ToInt32(pe.TotalAllocatedAmount) - rsAmt + sAmt;
            db.Entry(pe).State = EntityState.Modified;
            db.SaveChanges();

            TempData["project"] = null;
            TempData["hdnUsr"] = null;
            TempData["fundsMapping"] = null;
            TempData["hdnUsr"] = null;
            TempData["hdnRid"] = null;
            TempData["isEdit"] = null;
            TempData["hdnFunds"] = null;
            return RedirectToAction("Index", "Projects");
        }
Пример #2
0
        public ActionResult fundsMapping(List<Fund> lst, string hdnFunds, string btnAction)
        {
            TempData["project"] = TempData["project"];
            TempData["hdnRid"] = TempData["hdnRid"];
            //TempData["fundsMapping"] = TempData["fundsMapping"];
            TempData["hdnUsr"] = TempData["hdnUsr"];
            TempData["hdnFunds"] = hdnFunds;
            var hdnUsr = Convert.ToString(TempData["hdnUsr"]);
            if (btnAction == "Back")
            {
                TempData["fundsMapping"] = lst;
                return RedirectToAction("shMapping", "Account");
            }
            //ToDo chk for page
            Project project = (Project)TempData["project"];
            db.Projects.Add(project);
            db.SaveChanges();
            //ToAdd: start
            int id = project.Id;
            var Db = new ApplicationDbContext();
            foreach (string s in hdnUsr.Split('#'))
            {
                if (s != null && s != "")
                {
                    var cnt = 0;
                    if (db.EmployeeProjects.Count() > 0)
                        cnt = db.EmployeeProjects.Max(x => x.Id);

                    EmployeeProject ep = new EmployeeProject();
                    ep.Id = cnt + 1;
                    ep.EmployeeId = s;
                    ep.ProjectId = Convert.ToInt32(id);

                    db.EmployeeProjects.Add(ep);

                    db.SaveChanges();
                }
            }
            //foreach (Fund f in lst)
            var sAmt=0;
            foreach (string s in hdnFunds.Split('#'))
            {
                if (s != null && s != "")
                {

                    Fund p = db.Funds.Find(s.Split(',')[0]);
                    p.SpentAmount=Convert.ToInt16(p.SpentAmount)+s.Split(',')[1];
                    sAmt += Convert.ToInt16(p.SpentAmount);
                    db.Entry(p).State = EntityState.Modified;
                    db.SaveChanges();

                    var cnt = 0;
                    if (db.FundProjects.Count() > 0)
                        cnt = db.FundProjects.Max(x => x.Id);

                    FundProject fp = new FundProject();
                    fp.Id = cnt + 1;
                    fp.FundId = Convert.ToInt32(s.Split(',')[0]);
                    fp.SpentAmount = Convert.ToString(s.Split(',')[1]);
                    fp.ProjectId = Convert.ToInt32(id);

                    db.FundProjects.Add(fp);

                    db.SaveChanges();

                }
                 Project pe = db.Projects.Find(id);
                pe.TotalAllocatedAmount=Convert.ToInt16(pe.TotalAllocatedAmount)+sAmt;
                db.Entry(pe).State = EntityState.Modified;
                db.SaveChanges();
            }

            return RedirectToAction("Index", "Home");
        }