Пример #1
0
        public IActionResult Edit(int id)
        {
            var deal = _dealServices.Query(p => p.DealId == id)
                       .Include(a => a.UserSetting)
                       .Include(p => p.Company)
                       .Include(p => p.Contact)
                       .Include(p => p.Stage)
                       .Include(p => p.Users)
                       .FirstOrDefault();

            if (deal == null)
            {
                return(NotFound());
            }


            var deals = new List <TimelineDeal>()
            {
                new TimelineDeal(deal.DealId, deal.CreateDate, deal.UserSettingId, deal.UserSetting.FirstName, deal.Win, "CREATE", deal.Name, deal.Comments)
            }.AsQueryable();

            var notes = (from x in _dealNoteServices.Query(a => a.DealId == id).Include(a => a.Note).ThenInclude(a => a.UserSetting) select new TimelineDeal(x.NoteId, x.Note.CreateDate, x.Note.UserSettingId, x.Note.UserSetting.FirstName, x.Note.Active, "NOTE", x.Id.ToString(), x.Note.Comments));
            var task  = (from x in _taskServices.Query(a => a.DealId == id).Include(a => a.UserSetting) select new TimelineDeal(x.TaskId, x.CreateDate, x.UserSettingId, x.UserSetting.FirstName, x.Active, "TASK", x.Name, x.Comments)
            {
                DueDate = x.DueDate, Done = x.Done
            });
            var files = (from x in _dealFileServices.Query(a => a.DealId == id).Include(a => a.File).ThenInclude(a => a.UserSetting) select new TimelineDeal(x.FileId, x.File.CreateDate, x.File.UserSettingId, x.File.UserSetting.FirstName, !x.File.Deleted, "FILE", x.File.Name, x.File.ContentType)
            {
                DueDate = x.File.DueDate
            });

            ViewData["ContactId"]   = new SelectList(_contactServices.GetAll(a => a.Deleted == false), "ContactId", "FullName");
            ViewData["CompanyId"]   = new SelectList(_companyServices.GetAll(a => a.Deleted == false), "CompanyId", "FullName");
            ViewData["TaskGroupId"] = new SelectList(_taskGroupServices.GetAll(a => a.Deleted == false), "TaskGroupId", "Name");
            //ViewData["Tempo"] = new SelectList(Smart.Core.Domain.Tasks.Task.TimeSpansInRange(TimeSpan.Parse("00:00"), TimeSpan.Parse("23:45"), TimeSpan.Parse("00:15")));
            ViewData["UserSettingId"] = new SelectList(_userSettingServices.GetAll(), "UserSettingId", "FirstName", _currentUser.Id());

            var data = new UpdateDealViewModel(deal, deal.Company, deal.Contact)
            {
                AllStagesOfDeal = _stageServices.Query(a => a.PipelineId == deal.PipelineId && a.Active == true).Include(p => p.Users).ToList(),
                StageId         = deal.StageId,
                Qty             = _dealServices.Count(a => a.PipelineId == deal.PipelineId && a.StageId == deal.StageId),
                SubTotal        = _dealServices.Query(a => a.PipelineId == deal.PipelineId && a.StageId == deal.StageId).Select(p => p.UnitPrice).DefaultIfEmpty(0).Sum().Value.ToString("c"),
                TaskGroups      = _taskGroupServices.GetAll(a => a.Deleted == false),
                CurrentUserId   = _currentUser.Id(),
                History         = deals.Concat(notes).Concat(task).Concat(files),
                Notes           = deal.Notes,
                Tasks           = deal.Tasks,
                Files           = deal.Files
            };

            if ((data.Deal == null) || (data.Deal.Deleted))
            {
                return(NotFound());
            }

            return(View(data));
        }
Пример #2
0
        public ActionResult Update(UpdateDealViewModel vModel)
        {
            DealRecord deal = vModel.Deal;

            if (ModelState.IsValid)
            {
                deal.UpdatedDt = DateTime.Now;
                vModel.UpdateDealRecord();

                return(View("Index"));
            }
            TempData["Postback"] = "true";
            return(View(vModel));
        }
Пример #3
0
        public ActionResult Update(int ID)
        {
            UpdateDealViewModel viewModel = new UpdateDealViewModel(User.Identity.GetUserId <int>(), ID);

            return(View(viewModel));
        }
Пример #4
0
        public JsonResult Move(int id, int PipelineId, int StageId, bool Moveforward)
        {
            if (HasTaskRequired(id))
            {
                return(Json(new { nok = "Existem tarefas a serem finalizadas antes de movimentar este negócio" }));
            }



            var data = _dealServices.Find(id);

            data.PipelineId = PipelineId;
            data.StageId    = StageId;

            var stages       = _stageServices.GetAll(p => p.PipelineId == PipelineId && p.Active == true);
            var currentOrder = _stageServices.Find(StageId).OrderStage;

            if (Moveforward)
            {
                try
                {
                    var nextOrder = stages.Where(a => a.OrderStage > currentOrder).Min(p => p.OrderStage);
                    var nextStage = stages.Where(a => a.OrderStage == nextOrder).FirstOrDefault();
                    data.StageId = nextStage.StageId;
                }
                catch (Exception)
                {
                    ;
                }
            }
            else
            {
                try
                {
                    var previousOrder = stages.Where(a => a.OrderStage < currentOrder).Max(p => p.OrderStage);
                    var previousStage = stages.Where(a => a.OrderStage == previousOrder).FirstOrDefault();
                    data.StageId = previousStage.StageId;
                }
                catch (Exception)
                {
                    ;
                }
            }


            try
            {
                _dealServices.Update(data);
                AddNewStage(data.DealId, data.StageId);
            }
            catch (Exception e)
            {
                return(Json(new { nok = e.InnerException.Message }));
            }

            var _data = new UpdateDealViewModel()
            {
                Deal     = data,
                Qty      = _dealServices.Count(a => a.PipelineId == data.PipelineId && a.StageId == data.StageId),
                StageId  = data.StageId,
                SubTotal = _dealServices.Query(a => a.PipelineId == data.PipelineId && a.StageId == data.StageId).Select(p => p.UnitPrice).DefaultIfEmpty(0).Sum().Value.ToString("c")
            };

            return(Json(_data));
        }