public ActionResult Edit(int?id) //SoID
        {
            ProjectSOs so = db.ProjectSOs.Where(p => p.SoID == (id ?? 0)).FirstOrDefault();

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

            var model = new SOModels.NewSO()
            {
                SOID     = so.SoID,
                Name     = so.SoName,
                SONumber = so.SoNumber,
                JobID    = so.ProjectID,
                TermID   = so.SoTermID,
                StatusID = so.SoStatusID,
                Date     = so.SoDate,
                Creator  = repo.GetUserDisplayName(so.CreatedByUserID ?? siteuserid)
            };

            int siteCoID = siteusercompanyid;

            ViewBag.Jobs   = new SelectList(db.GetJobsBySiteCoID(siteCoID), nameof(GetJobsBySiteCoID_Result.ViewID), nameof(GetJobsBySiteCoID_Result.Project), model.JobID);
            ViewBag.Terms  = new SelectList(db.GetSoTermsBySiteCoID(siteCoID), nameof(GetSoTermsBySiteCoID_Result.ViewID), nameof(GetSoTermsBySiteCoID_Result.Name), model.TermID);
            ViewBag.Status = new SelectList(db.GetSoStatusBySiteCoID(siteCoID), nameof(GetSoStatusBySiteCoID_Result.ViewID), nameof(GetSoStatusBySiteCoID_Result.Name), model.StatusID);

            return(View("_Edit", model));
        }
        public ActionResult Create(int?projectid)
        {
            var siteCoID = siteusercompanyid;

            ViewBag.Jobs   = new SelectList(db.GetJobsBySiteCoID(siteCoID), nameof(GetJobsBySiteCoID_Result.ViewID), nameof(GetJobsBySiteCoID_Result.Project), projectid);
            ViewBag.Terms  = new SelectList(db.GetSoTermsBySiteCoID(siteCoID), nameof(GetSoTermsBySiteCoID_Result.ViewID), nameof(GetSoTermsBySiteCoID_Result.Name));
            ViewBag.Status = new SelectList(db.GetSoStatusBySiteCoID(siteCoID), nameof(GetSoStatusBySiteCoID_Result.ViewID), nameof(GetSoStatusBySiteCoID_Result.Name));

            var model = new SOModels.NewSO()
            {
                Date     = DateTime.Now,
                Creator  = repo.GetUserDisplayName(siteuserid),
                SONumber = repo.GetNextSONumber()
            };

            return(View(model));
        }
        private int SaveCOR(SOModels.NewSO Model)
        {
            int siteCoID = siteusercompanyid;
            var so       = new ProjectSOs()
            {
                SoID            = Model.SOID ?? 0,
                SiteCoID        = siteusercompanyid,
                ProjectID       = Model.JobID,
                SoName          = Model.Name,
                SoNumber        = Model.SONumber,
                SoDate          = Model.Date,
                SoStatusID      = Model.StatusID,
                SoTermID        = Model.TermID,
                CreatedByUserID = siteuserid
            };

            var soId = repo.SaveSO(so);

            return(soId);
        }
        public ActionResult Create(SOModels.NewSO Model)
        {
            var errorList = new List <string>();

            if (ModelState.IsValid)
            {
                int corId = SaveCOR(Model);
                if (corId > 0)
                {
                    return(Json(new { status = "success", CorID = corId }));
                }
                else
                {
                    errorList.Add("Sales Order couldn't be saved. Please retry.");
                }
            }

            errorList.AddRange((from item in ModelState.Values
                                from error in item.Errors
                                select error.ErrorMessage).ToList()
                               );

            return(Json(new { status = "error", errors = errorList }));
        }