Пример #1
0
        public ActionResult TimeSheetApprovalNew(int idTimeSheet)
        {
            if (!Client.IsAnyTimeSheetWithThisId(idTimeSheet))
            {
                return(RedirectToNotFoundPage("Запрашиваемый табель не обнаружен. Табель №" + idTimeSheet));
            }
            ApproveViewBagInit(idTimeSheet);
            if (!Client.CanApprove(idTimeSheet, GetCurrentApprover()))
            {
                return(View());
            }
            var approveStep     = Client.GetTimeSheetApproveStep(idTimeSheet);
            var timeSheet       = Client.GetTimeSheet(idTimeSheet, true);
            var currentApprover =
                GetCurrentApprover()
                .GetDepartmentApproverNumbers(timeSheet.Department.IdDepartment)
                .First(w => w.ApproveNumber == approveStep + 1);
            var timeSheetAprovalModel = new TimeSheetAprovalModel
            {
                IdTimeSheet    = idTimeSheet,
                ApprovalDate   = DateTime.Now,
                ApprovalResult = null,
                Comment        = "",
                IdApprover     = currentApprover.IdApprover
            };

            return(View(timeSheetAprovalModel));
        }
Пример #2
0
        public ActionResult TimeSheetApprovalNew(TimeSheetAprovalModel timeSheetAprovalModel)
        {
            //валидация формы
            var appDominUrl = Url.Action("Index", null, null, Request.Url.Scheme);

            if (timeSheetAprovalModel.ApprovalResult != null &&
                (bool)timeSheetAprovalModel.ApprovalResult == false & timeSheetAprovalModel.Comment == null)
            {
                ModelState.AddModelError("Причина не указана",
                                         "В случае отклонения табеля необходимо прокомментировать причину!");
            }
            var idTimeSheet = timeSheetAprovalModel.IdTimeSheet;

            if (ModelState.IsValid && Client.CanApprove(idTimeSheet, GetCurrentApprover()) && Client.TimeSheetApproval(timeSheetAprovalModel.IdTimeSheet, GetCurrentApprover(),
                                                                                                                       (bool)timeSheetAprovalModel.ApprovalResult, timeSheetAprovalModel.Comment, appDominUrl))
            {
                return(RedirectToAction("TimeSheetApprovalNew", new { idTimeSheet = timeSheetAprovalModel.IdTimeSheet }));
            }
            ApproveViewBagInit(idTimeSheet);
            return(View(timeSheetAprovalModel));
        }