public ActionResult Create(int?contactid, int?servicetemplateid) { var siteCoID = siteusercompanyid; var siteUsers = db.GetSiteUsersBySiteCoID(siteCoID).ToList(); ViewBag.Clients = new SelectList(db.GetContactsBySiteCoID(siteCoID), "ViewID", "Customer", contactid); ViewBag.ProjectStatus = new SelectList(db.GetServiceStatusBySiteCoID(siteCoID), "ViewID", "Name"); ViewBag.SiteUsers = new SelectList(siteUsers, "ViewID", "User"); LoadAdditionalDropdownData(); ServiceModels.NewService model = new ServiceModels.NewService(); var newServiceId = 0; if (servicetemplateid.HasValue) { newServiceId = repo.CopyProjectToService(servicetemplateid.Value); model = LoadProjectInfo(newServiceId); } else { newServiceId = repo.GenerateNewProjectID(); model.SalesPersonID = siteuserid; model.ProjectManagerID = siteuserid; model.DesignerID = siteuserid; } model.ServiceID = newServiceId; model.StartDate = DateTime.Now; model.JobNumber = db.GetNewServiceNumFormat(siteusercompanyid).FirstOrDefault(); return(View(model)); }
private ServiceModels.NewService LoadProjectInfo(int ProjectID) { var model = new ServiceModels.NewService(); model.ServiceID = ProjectID; ProjectInfo proj = db.ProjectInfo.Where(p => p.ProjectID == ProjectID).FirstOrDefault(); if (proj == null) { return(model); } model = new ServiceModels.NewService() { ServiceID = proj.ProjectID, Address1 = proj.ProjectAddress1, Address2 = proj.ProjectAddress2, City = proj.ProjectCity, ClientID = proj.ContactID, Email = proj.ProjectEmail, ServicePhone = proj.ProjectPhone, JobNumber = proj.ProjectNumber, SalesPersonID = proj.SalesID, State = proj.ProjectState, Country = proj.ProjectCountry, StatusID = proj.ProjectStatusID, Zip = proj.ProjectZip, DesignerID = proj.DesignerID, ProjectManagerID = proj.PmID, ServiceName = proj.ProjectName, StartDate = proj.ProjectStartDate }; var siteCoID = siteusercompanyid; var siteUsers = db.GetSiteUsersBySiteCoID(siteCoID).ToList(); ViewBag.Clients = new SelectList(db.GetContactsBySiteCoID(siteCoID), "ViewID", "Customer"); ViewBag.ProjectStatus = new SelectList(db.GetServiceStatusBySiteCoID(siteCoID), "ViewID", "Name"); ViewBag.SiteUsers = new SelectList(siteUsers, "ViewID", "User"); LoadAdditionalDropdownData(); LoadAdditionalGridData(ProjectID); return(model); }
private WoReturn SaveService(ServiceModels.NewService Model) { int siteCoID = siteusercompanyid; var quote = new ProjectInfo() { ProjectID = Model.ServiceID ?? 0, LinkID = Model.ParentQuoteID, SiteCoID = siteCoID, ProjectName = Model.ServiceName, ProjectNumber = Model.JobNumber ?? "", ProjectStatusID = Model.StatusID, ContactID = Model.ClientID, ProjectAddress1 = Model.Address1, ProjectAddress2 = Model.Address2, ProjectCity = Model.City, ProjectState = Model.State, ProjectCountry = Model.Country, ProjectZip = Model.Zip, ProjectPhone = Model.ServicePhone, ProjectEmail = Model.Email, DateUploaded = DateTime.Now, SalesID = Model.SalesPersonID, ProjectStartDate = Model.StartDate, PmID = Model.ProjectManagerID, DesignerID = Model.DesignerID, ProjectTypeID = 3 }; var projectId = repo.SaveProjectInfo(quote); var woNumber = repo.GetNextWorkOrderNumber(projectId, Model.JobNumber, ""); ProjectItems item = db.ProjectItems.Where(s => s.ProjectID == projectId).FirstOrDefault(); int issaved = 0; bool HasItems = false; if (item == null) { issaved = db.InsertServiceWo(projectId, siteCoID, woNumber, null); } else { issaved = db.InsertServiceWo(projectId, siteCoID, woNumber, item.ItemID); HasItems = true; } int woid = 0; if (issaved > 0) { woid = db.ProjectWorkOrders.Where(s => s.WoNumber == woNumber).OrderByDescending(s => s.WoID).FirstOrDefault() != null?db.ProjectWorkOrders.Where(s => s.WoNumber == woNumber).OrderByDescending(s => s.WoID).FirstOrDefault().WoID : 0; } //db.GetServiceTemplatesBySiteCoID; var ret = new WoReturn { WoId = woid, HasItems = HasItems }; return(ret); }