Ejemplo n.º 1
0
        public async Task <ActionResult> Create(Models.ServiceModels.NewService Model)
        {
            var errorList = new List <string>();

            if (ModelState.IsValid)
            {
                WoReturn woret = SaveService(Model);
                if (woret.WoId > 0)
                {
                    string pagename = woret.HasItems ? "edit" : "AddItem";
                    string WO_URL   = "";
                    if (Request.QueryString["nav"] == null)
                    {
                        WO_URL = Url.Action(pagename, "workorders", new { area = "common", id = woret.WoId });
                    }
                    else
                    {
                        WO_URL = Url.Action(pagename, "workorders", new { area = "common", nav = Request.QueryString["nav"], id = woret.WoId });
                    }
                    return(Json(new { status = "success", WO_URL = WO_URL }));
                    //var ProjectInfo = db.GetProjectInfoByProjectID(projectId).FirstOrDefault();
                    //var checkdropboxauth = db.CoDropbox.Where(p => p.SiteCoID == siteusercompanyid).FirstOrDefault();
                    //if (checkdropboxauth != null)
                    //{
                    //    using (var dbx = new DropboxClient(System.Text.Encoding.UTF8.GetString(checkdropboxauth.AccessToken)))
                    //    {
                    //        var full = await dbx.Users.GetCurrentAccountAsync();
                    //        var list = await dbx.Files.ListFolderAsync(string.Empty);
                    //        bool flag = true;
                    //        // get folders and sub folders
                    //        foreach (var item in list.Entries.Where(i => i.IsFolder))
                    //        {
                    //            if (item.Name == ProjectInfo.Project)
                    //            flag = false;
                    //        }
                    //        if (flag == true)
                    //            await dbx.Files.CreateFolderAsync("/" + ProjectInfo.Project, true);
                    //    }
                    //}
                    //return Json(new { status = "success", serviceid = projectId });
                }
                else
                {
                    errorList.Add("Service 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 }));
        }
Ejemplo n.º 2
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);
        }