public ActionResult Create(int?contactid, int?leadid, string from) { var siteCoID = siteusercompanyid; var siteUsers = db.GetSiteUsersBySiteCoID(siteCoID).ToList(); ViewBag.Clients = new SelectList(db.GetContactsBySiteCoID(siteCoID).ToList(), "ViewID", "Customer", contactid); ViewBag.Builders = new SelectList(db.GetBuildersBySiteCoID(siteCoID).ToList(), "ViewID", "Builder", contactid); ViewBag.ProjectStatus = new SelectList(db.GetQuoteStatusBySiteCoID(siteCoID), "ViewID", "Status"); ViewBag.SiteUsers = new SelectList(siteUsers, "ViewID", "User"); LoadAdditionalDropdownData(); QuoteModels.NewQuote model = new QuoteModels.NewQuote(); if (leadid.HasValue) { try { ProjectInfo proj = db.ProjectInfo.Where(p => p.ProjectID == leadid.Value).FirstOrDefault(); model = new QuoteModels.NewQuote() { Address1 = proj.ProjectAddress1, Address2 = proj.ProjectAddress2, City = proj.ProjectCity, Country = proj.ProjectCountry, ClientID = proj.ContactID, Email = proj.ProjectEmail, JobPhone = proj.ProjectPhone, JobNumber = proj.ProjectNumber, SalesPersonID = proj.SalesID, State = proj.ProjectState, StatusID = proj.ProjectStatusID, Zip = proj.ProjectZip, QuoteName = proj.ProjectName }; } catch (Exception ex) { ex.Log(); } } else { model = new QuoteModels.NewQuote() { SalesPersonID = siteuserid, ProjectManagerID = siteuserid, DesignerID = siteuserid }; } model.QuoteID = repo.GenerateNewProjectID(); model.StartDate = DateTime.Now; model.JobNumber = db.GetNewQuoteNumFormat(siteusercompanyid).FirstOrDefault(); return(View(model)); }
public ActionResult Edit(int?id) { ProjectInfo proj = db.ProjectInfo.Where(p => p.ProjectID == (id ?? 0)).FirstOrDefault(); if (proj == null) { return(HttpNotFound()); } ProjectLeadInfo pli = db.ProjectLeadInfo.Where(p => p.ProjectID == (id ?? 0)).FirstOrDefault() ?? new ProjectLeadInfo(); var siteCoID = siteusercompanyid; var siteUsers = db.GetSiteUsersBySiteCoID(siteCoID).ToList(); ViewBag.Clients = new SelectList(db.GetContactsBySiteCoID(siteCoID).ToList(), "ViewID", "Customer"); ViewBag.ProjectStatus = new SelectList(db.GetQuoteStatusBySiteCoID(siteCoID), "ViewID", "Status"); ViewBag.SiteUsers = new SelectList(siteUsers, "ViewID", "User"); ViewBag.Builders = new SelectList(db.GetBuildersBySiteCoID(siteCoID).ToList(), "ViewID", "Builder"); LoadAdditionalDropdownData(); LoadAdditionalGridData(id ?? 0); ViewBag.ProjectStages = db.GetProjectStagesByProjectID(id).ToList(); QuoteModels.NewQuote model = new QuoteModels.NewQuote(); model = new QuoteModels.NewQuote() { QuoteID = proj.ProjectID, Address1 = proj.ProjectAddress1, Address2 = proj.ProjectAddress2, City = proj.ProjectCity, ClientID = proj.ContactID, Email = proj.ProjectEmail, JobPhone = 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, QuoteName = proj.ProjectName, BuilderID = proj.BuilderID, Site = proj.Site, Lot = proj.Lot, StartDate = proj.ProjectStartDate }; return(View("_Edit", model)); }
private int SaveQuote(QuoteModels.NewQuote Model) { int siteCoID = siteusercompanyid; var quote = new ProjectInfo() { ProjectID = Model.QuoteID ?? 0, LinkID = Model.ParentLeadID, SiteCoID = siteCoID, //ProjectTypeID = Model.TypeID, ProjectName = Model.QuoteName, 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.JobPhone, ProjectEmail = Model.Email, DateUploaded = DateTime.Now, SalesID = Model.SalesPersonID, ProjectStartDate = Model.StartDate, PmID = Model.ProjectManagerID, DesignerID = Model.DesignerID, BuilderID = Model.BuilderID, Site = Model.Site, Lot = Model.Lot, ProjectTypeID = 5, }; List <ProjectContacts> projContacts = null; //if being created from won-lead, then copy remaining fields from there if (Model.ParentLeadID.HasValue && Model.ParentLeadID > 0) { var parentLeadInfo = db.ProjectInfo.Where(p => p.ProjectID == Model.ParentLeadID.Value).FirstOrDefault(); projContacts = repo.GetProjectContactsByProjectID(Model.ParentLeadID.Value).AsNoTracking().ToList(); if (parentLeadInfo != null) { quote.AcctJobID = parentLeadInfo.AcctJobID; quote.JobTypeID = parentLeadInfo.JobTypeID; quote.ProjectCountry = parentLeadInfo.ProjectCountry; quote.ProjectNotes = parentLeadInfo.ProjectNotes; quote.QuoteApproved = parentLeadInfo.QuoteApproved; } } using (TransactionScope tran = new TransactionScope()) { var projectId = repo.SaveProjectInfo(quote); //repo.SaveProjectCommunications(projectId, Model.ProjectCommunicationIDs.Where(p => p > 0)); if (projContacts != null && projContacts.Any()) { repo.AddProjectContacts(projContacts.ToList(), projectId); } tran.Complete(); return(projectId); } }