public IActionResult EditPost(DeliveryItemOperVM model, string filterJson) { if (filterJson == null) { var deliveryItem = itemService.getDeliveryItem(model.DeliveryItemId); ViewBag.notificationId = deliveryItem.CaseNotificationId; ViewBag.breadcrumbs = commonService.Breadcrumbs_ForCaseNotificationDeliveryOperEdit(deliveryItem.CaseNotificationId ?? 0, 0).DeleteOrDisableLast(); } else { int filterType = getFilterTypeFromJson(filterJson); ViewBag.breadcrumbs = commonService.Breadcrumbs_ForDeliveryItemAddOper(filterType, model.DeliveryItemId).DeleteOrDisableLast(); } ViewBag.filterJson = filterJson; SetViewbag(model.DeliveryOperId); ValidateModel(model); if (!ModelState.IsValid) { return(View(nameof(Edit), model)); } var currentId = model.Id; if (itemService.DeliveryItemSaveOper(model)) { this.SaveLogOperation(currentId == 0, model.Id); ModelState.Clear(); SetSuccessMessage(MessageConstant.Values.SaveOK); return(View(nameof(Edit), model)); } else { SetErrorMessage(MessageConstant.Values.SaveFailed); } return(View(nameof(Edit), model)); }
private void ValidateModel(DeliveryItemOperVM model) { var regDate = service.GetRegDate(model.DeliveryItemId); if (model.DateOper < regDate?.Date) { ModelState.AddModelError(nameof(model.DateOper), $"{MessageConstant.ValidationErrors.DeliveryDateBeforeRegDate} {regDate?.ToString(FormattingConstant.NormalDateFormat)}"); } if (model.DateOper > DateTime.Now.AddMinutes(10)) { ModelState.AddModelError(nameof(model.DateOper), MessageConstant.ValidationErrors.DeliveryDateBeforeRegDate); } var opers = service.DeliveryItemOperSelect(model.DeliveryItemId, true) .Where(x => x.DeliveryOperId < model.DeliveryOperId) .OrderBy(x => x.DeliveryOperId) .ToList(); var prevOper = opers.LastOrDefault(); if (prevOper != null && model.DateOper != null) { if (model.DateOper?.Date < prevOper.DateOper.Date) { ModelState.AddModelError(nameof(model.DateOper), $"Не може да въвеждате посещение преди предното посещение {prevOper.DateOper.ToString(FormattingConstant.NormalDateFormat)}"); } } }
public IActionResult EditPost(DeliveryItemOperVM model, string filterJson) { var deliveryItem = itemService.getDeliveryItem(model.DeliveryItemId); ViewBag.notificationId = deliveryItem.CaseNotificationId; if (filterJson == null) { ViewBag.breadcrumbs = commonService.Breadcrumbs_ForCaseNotificationDeliveryOperEdit(deliveryItem.CaseNotificationId ?? 0, 0).DeleteOrDisableLast(); } else { int filterType = getFilterTypeFromJson(filterJson); ViewBag.breadcrumbs = commonService.Breadcrumbs_ForDeliveryItemAddOper(filterType, model.DeliveryItemId).DeleteOrDisableLast(); } ViewBag.filterJson = filterJson; SetViewbag(model.DeliveryOperId); ValidateModel(model); if (!ModelState.IsValid) { return(View(nameof(Edit), model)); } bool isInsert = !service.HaveSameOper(model.DeliveryItemId, model.DeliveryOperId); if (itemService.DeliveryItemSaveOper(model)) { SaveLogOperation(isInsert, $"{model.DeliveryItemId}|NEW"); ModelState.Clear(); SetSuccessMessage(MessageConstant.Values.SaveOK); if (filterJson != null) { // return LoadIndex(model.DeliveryItemId, filterJson); // TempData["filterJson"] = filterJson; // return RedirectToAction("EditReturn", "DeliveryItem", new { deliveryItemId = model.DeliveryItemId }); return(View(nameof(Edit), model)); } else { return(RedirectToAction(nameof(Index), new { notificationId = deliveryItem.CaseNotificationId })); } } else { SetErrorMessage(MessageConstant.Values.SaveFailed); } return(View(nameof(Edit), model)); }
private void ValidateModel(DeliveryItemOperVM model) { var regDate = service.GetRegDate(model.DeliveryItemId); if (model.DateOper < regDate) { ModelState.AddModelError(nameof(model.DateOper), $"Посещение преди дата на изготвяне {regDate?.ToString(FormattingConstant.NormalDateFormat)}"); } if (model.DateOper > DateTime.Now) { ModelState.AddModelError(nameof(model.DateOper), $"Не може да въвеждате посещение с бъдеща дата"); } var opers = service.DeliveryItemOperSelect(model.DeliveryItemId, true) .Where(x => x.DeliveryOperId < model.DeliveryOperId) .OrderBy(x => x.DeliveryOperId) .ToList(); var prevOper = opers.LastOrDefault(); if (prevOper != null) { var dR = model.DateOper - prevOper.DateOper; if (dR.Value.TotalDays < 7) { ModelState.AddModelError(nameof(model.DateOper), $"Няма 7 дни от преднато посещение {prevOper.DateOper.ToString(FormattingConstant.NormalDateFormat)}"); } } if (opers.Count >= 2) { bool haveHoliday = !workingDaysService.IsWorkingDay(userContext.CourtId, model.DateOper?.Date ?? DateTime.Now); haveHoliday = haveHoliday || opers.Max(x => !workingDaysService.IsWorkingDay(userContext.CourtId, (DateTime)(x.DateOper).Date)); if (!haveHoliday) { ModelState.AddModelError(nameof(model.DateOper), $"Няма посещение в почивен ден"); } } }
public JsonResult CheckDeliveryDate(DeliveryItemOperVM model) { ValidateModel(model); var result = "OK"; if (ModelState.IsValid) { var opers = service.DeliveryItemOperSelect(model.DeliveryItemId, true) .Where(x => x.DeliveryOperId < model.DeliveryOperId) .OrderBy(x => x.DeliveryOperId) .ToList(); var prevOper = opers.LastOrDefault(); if (prevOper != null) { var dR = model.DateOper - prevOper.DateOper; if (dR.Value.TotalDays < 7) { result = $"Няма 7 дни от предното посещение {prevOper.DateOper.ToString(FormattingConstant.NormalDateFormat)}. "; } } if (opers.Count >= 2 && model.DeliveryOperId != NomenclatureConstants.NotificationState.Delivered) { bool haveHoliday = !workingDaysService.IsWorkingDay(userContext.CourtId, model.DateOper?.Date ?? DateTime.Now); haveHoliday = haveHoliday || opers.Max(x => !workingDaysService.IsWorkingDay(userContext.CourtId, (DateTime)(x.DateOper).Date)); if (!haveHoliday) { result += $"Няма посещение в почивен ден"; } } } else { result = "NOT_VALID"; } return(Json(result)); }