Пример #1
0
        public async Task <IActionResult> SavePerform(MonthPerformViewModel model)
        {
            int?flag = null;

            try
            {
                var performs = await _performService.GetYearPerformsOfProject(model.Year, model.ProjectId);

                var p = performs.FirstOrDefault(p => p.Month == model.Month);
                if (p == null)
                {
                    //create new
                    p = new Perform
                    {
                        ProjectId = model.ProjectId,
                        Year      = model.Year,
                        Month     = model.Month,
                    };
                }
                p.Incoming   = model.PerformData.Incoming;
                p.Settlement = model.PerformData.Settlement;
                p.Retrieve   = model.PerformData.Retrievable;

                await _performService.SavePerform(p);

                flag = 0;
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                flag = 1;
            }
            return(RedirectToAction(nameof(Edit), new { projectId = model.ProjectId, year = model.Year, month = model.Month, flag = flag }));
        }
Пример #2
0
        public async Task <IActionResult> Edit(int projectId, int year, int month, int?flag)
        {
            var project = await _projectService.RetriveProjectWithDetails(projectId, ProjectApiContent.RetrieveAll);

            if (project == null || project.ProjectId <= 0 || year < 2020 || month < 1 || month > 12)
            {
                return(NotFound());
            }

            //上一年结转
            var balance = BalanceViewModel.Create(project.AnnualBalance.Where(b => b.Year == year - 1));

            //当年全部计划
            var plans  = project.Plan.Where(p => p.Year == year);
            var planId = plans.Where(p => p.Month == month).SingleOrDefault()?.Id;
            //当年全部月报
            var performs  = project.Perform.Where(p => p.Year == year);
            var performId = performs.Where(p => p.Month == month).SingleOrDefault()?.Id;

            var model = MonthPerformViewModel.Create(project, year, month, balance, plans, performs);

            model.Terms = project.Terms.OrderBy(p => p.TermsCategory).ThenBy(p => p.TargetDate).Select(p => (TermsViewModel)p);

            //当月全部计划任务
            if (planId.HasValue)
            {
                model.PlanTerms = (await _planService.GetPlanTerms(planId.Value))
                                  .Select(p => TaskViewModel.Create(p, project.Terms.SingleOrDefault(t => t.Id == p.TermsId)));
            }

            //当月全部完成任务
            if (performId.HasValue)
            {
                model.PerformTerms = (await _performService.GetPerformTerms(performId.Value))
                                     .Select(p => TaskViewModel.Create(p, project.Terms.SingleOrDefault(t => t.Id == p.TermsId)));
            }

            model.ClearZeroProperties();

            if (flag == null)
            {
                ViewBag.Message = string.Empty;
            }
            else if (flag.Value == 0)
            {
                ViewBag.Message = "月报数据保存成功,请继续填写,或者点击‘返回’返回查看页面";
            }
            else
            {
                ViewBag.Message = "保存月报数据数据出错,请记录现在的时间并联系管理员查看日志进行处理";
            }

            return(View(model));
        }
Пример #3
0
        public async Task <IActionResult> DeletePerformItem(MonthPerformViewModel model)
        {
            if (model.EditingItemId == null)
            {
                return(StatusCode(500, "没有发送要删除的完成情况Id"));
            }

            await _performService.DeletePerformTerms(model.EditingItemId.Value);

            return(RedirectToAction(nameof(Edit), new { projectId = model.ProjectId, year = model.Year, month = model.Month }));
        }
Пример #4
0
        public async Task <IActionResult> SavePerformItem(MonthPerformViewModel model)
        {
            if (ModelState.IsValid)
            {
                var performItem = new PerformTerms
                {
                    PerformId = model.PerformId ?? 0,
                    TermsId   = model.SelectedTermsId.Value,
                    Comments  = model.EditingComments,
                };
                if (model.EditingItemId.HasValue && model.EditingItemId.Value > 0)
                {
                    performItem.Id = model.EditingItemId.Value;
                }
                await _performService.SavePerformTerms(performItem);

                return(RedirectToAction(nameof(Edit), new { projectId = model.ProjectId, year = model.Year, month = model.Month }));
            }

            return(StatusCode(500, ModelState));
        }