예제 #1
0
        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));
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }