private int SaveJob(JobModels.NewJob Model)
        {
            int siteCoID = siteusercompanyid;
            var quote    = new ProjectInfo()
            {
                ProjectID        = Model.JobID ?? 0,
                LinkID           = Model.ParentQuoteID,
                SiteCoID         = siteCoID,
                ProjectName      = Model.JobName,
                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.Date,
                PmID             = Model.ProjectManagerID,
                DesignerID       = Model.DesignerID,
                BuilderID        = Model.BuilderID,
                Site             = Model.Site,
                Lot           = Model.Lot,
                ProjectTypeID = 4
            };

            var projectId = repo.SaveProjectInfo(quote);

            return(projectId);
        }
        private JobModels.NewJob LoadProjectInfo(int ProjectID)
        {
            var model = new JobModels.NewJob();

            model.JobID = ProjectID;

            ProjectInfo proj = db.ProjectInfo.Where(p => p.ProjectID == ProjectID).FirstOrDefault();

            if (proj == null)
            {
                return(model);
            }

            model = new JobModels.NewJob()
            {
                JobID            = 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,
                JobName          = proj.ProjectName,
                BuilderID        = proj.BuilderID,
                Site             = proj.Site,
                Lot              = proj.Lot,
                Date             = proj.ProjectStartDate
            };

            var siteCoID  = siteusercompanyid;
            var siteUsers = db.GetSiteUsersBySiteCoID(siteCoID).ToList();

            ViewBag.Clients       = new SelectList(db.GetContactsBySiteCoID(siteCoID).ToList(), "ViewID", "Customer");
            ViewBag.ProjectStatus = new SelectList(db.GetJobStatusBySiteCoID(siteCoID), "ViewID", "Name");
            ViewBag.SiteUsers     = new SelectList(siteUsers, "ViewID", "User");

            LoadAdditionalDropdownData();
            LoadAdditionalGridData(ProjectID);

            return(model);
        }
        public ActionResult Create(int?contactid, int?quoteid, string from)
        {
            var siteCoID  = siteusercompanyid;
            var siteUsers = db.GetSiteUsersBySiteCoID(siteCoID).ToList();

            ViewBag.Clients       = new SelectList(db.GetContactsBySiteCoID(siteCoID).ToList(), "ViewID", "Customer", contactid);
            ViewBag.ProjectStatus = new SelectList(db.GetJobStatusBySiteCoID(siteCoID), "ViewID", "Name");
            ViewBag.SiteUsers     = new SelectList(siteUsers, "ViewID", "User");
            ViewBag.Builders      = new SelectList(db.GetBuildersBySiteCoID(siteCoID).ToList(), "ViewID", "Builder", contactid);
            qbModels = new QBModels();
            qbModels.SyncObjectsModel    = new QBSyncdto();
            qbModels.OAuthorizationModel = new QBAuthorizationdto();
            qbModels.IsReadySync         = false;
            var oAuthModel = new QBOAuthService(qbModels.OAuthorizationModel).IsTokenAvailable(this, siteusercompanyid);

            ViewBag.IsQBConnected = "false";
            if (oAuthModel.IsConnected)
            {
                ViewBag.IsQBConnected = "true";
            }
            LoadAdditionalDropdownData();
            JobModels.NewJob model = new JobModels.NewJob();
            var newJobId           = 0;

            if (quoteid.HasValue)
            {
                newJobId = repo.CopyQuoteTojob(quoteid.Value);
                model    = LoadProjectInfo(newJobId);
            }
            else
            {
                newJobId               = repo.GenerateNewProjectID();
                model.SalesPersonID    = siteuserid;
                model.ProjectManagerID = siteuserid;
                model.DesignerID       = siteuserid;
            }

            model.JobID     = newJobId;
            model.Date      = DateTime.Now;
            model.JobNumber = db.GetNewJobNumFormat(siteusercompanyid).FirstOrDefault();
            return(View(model));
        }