void SetViewbag(int id, int caseId, int?caseSessionId, bool IsViewRowSessionBreadcrumbs = true) { var modelSession = new CaseSessionVM(); if (id > 0) { modelSession = service.CaseSessionVMById(id); ViewBag.IsExpired = modelSession.SessionStateId == NomenclatureConstants.SessionState.Nasrocheno; } else { ViewBag.IsExpired = false; } ViewBag.CaseSessionName = modelSession.SessionTypeLabel + " " + modelSession.DateFrom.ToString("dd.MM.yyyy"); ViewBag.CourtHallId = modelSession.CourtHallId ?? 0; ViewBag.SessionTypeId_ddl = nomService.GetDDL_SessionTypesByCase(caseId); ViewBag.SessionStateId_ddl = nomService.GetDDL_SessionStateRoute(modelSession.SessionStateId); ViewBag.CourtHallId_ddl = commonService.GetDropDownList_CourtHall(userContext.CourtId); ViewBag.CaseClassification_ddl = classficationService.CaseClassification_Select(caseId, caseSessionId); ViewBag.DateTo_Minutes_ddl = nomService.GetDDL_SessionDuration(); if (caseSessionId > 0) { ViewBag.breadcrumbs = commonService.Breadcrumbs_GetForCaseSession(caseSessionId.Value, IsViewRowSessionBreadcrumbs); } else { ViewBag.breadcrumbs = commonService.Breadcrumbs_GetForCase(caseId); } ViewBag.hasSubstitutions = (lawUnitService.LawUnitSubstitution_SelectForSession(caseSessionId ?? 0) != null) ? lawUnitService.LawUnitSubstitution_SelectForSession(caseSessionId ?? 0).Any() : false; }
private string IsValidSessionAndAct(CaseSessionVM model) { if (model.SessionTypeId <= 0) { return("Няма избран вид заседание"); } if (model.DateFrom == null) { return("Няма въведена начална дата"); } else { //if (model.SessionStateId == NomenclatureConstants.SessionState.Provedeno) //{ // if (model.DateFrom > DateTime.Now) // return "Не може да отразите проведено заседание с бъдеща дата/час."; //} //if (model.SessionStateId == NomenclatureConstants.SessionState.Nasrocheno) //{ // if (model.DateFrom <= DateTime.Now) // { // return "Не може да насрочвате заседание с минала дата/час."; // } //} var caseCase = service.GetById <Case>(model.CaseId); if (model.DateFrom < caseCase.RegDate) { return("Не можете да насрочвате заседание с дата/час по-малка от дата/час на регистрация на делото"); } } //if (model.SessionStateId <= 0) // return "Няма избран статус"; if (model.ActTypeId <= 0) { return("Няма избран тип акт"); } if (!lawUnitService.IsExistJudgeReporterByCase(model.CaseId, model.DateFrom)) { return("Няма активен съдия докладчик"); } return(string.Empty); }
public IActionResult AddSessionAndAct(CaseSessionVM model) { model.DateFrom = model.DateFrom.MakeEndSeconds(); model.DateTo = model.DateFrom.AddMinutes(model.DateTo_Minutes).MakeEndSeconds(); ModelState["SessionStateId"].Errors.Clear(); ModelState["SessionStateId"].ValidationState = Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState.Valid; if (!ModelState.IsValid) { SetViewbagAddSessionAndAct(model.CaseId); return(View(nameof(AddSessionAndAct), model)); } string _isvalid = IsValidSessionAndAct(model); if (_isvalid != string.Empty) { SetViewbagAddSessionAndAct(model.CaseId); SetErrorMessage(_isvalid); return(View(nameof(AddSessionAndAct), model)); } var currentId = model.Id; var saveResult = service.CaseSession_SaveData(model); if (saveResult.Result) { SetAuditContext(service, SourceTypeSelectVM.CaseSession, model.Id, currentId == 0); this.SaveLogOperation(currentId == 0, model.Id, null, nameof(Edit)); SetSuccessMessage(MessageConstant.Values.SaveOK); if (string.IsNullOrEmpty(model.ActSaveType)) { return(RedirectToAction("Edit", "CaseSessionAct", new { id = model.ActSaveId })); } else { return(RedirectToAction("Blank", "CaseSessionAct", new { id = model.ActSaveId })); } } else { SetErrorMessage(saveResult.ErrorMessage); } SetViewbagAddSessionAndAct(model.CaseId); return(View(nameof(AddSessionAndAct), model)); }
public IActionResult Edit(CaseSessionVM model) { model.DateFrom = model.DateFrom.MakeEndSeconds(); model.DateTo = model.DateFrom.AddMinutes(model.DateTo_Minutes).MakeEndSeconds(); SetHelpFile(HelpFileValues.SessionMainData); if (!ModelState.IsValid) { SetViewbag(model.Id, model.CaseId, model.Id); return(View(nameof(Edit), model)); } string _isvalid = IsValid(model); if (_isvalid != string.Empty) { SetViewbag(model.Id, model.CaseId, model.Id); SetErrorMessage(_isvalid); return(View(nameof(Edit), model)); } var currentId = model.Id; var saveResult = service.CaseSession_SaveData(model); if (saveResult.Result) { SetAuditContext(service, SourceTypeSelectVM.CaseSession, model.Id, currentId == 0); this.SaveLogOperation(currentId == 0, model.Id); if ((!service.IsExistCaseSessionResult(model.Id)) && (model.SessionStateId == NomenclatureConstants.SessionState.Provedeno)) { SetSuccessMessage(MessageConstant.Values.SaveOK + " Моля, добавете резултат от заседание."); return(RedirectToAction("AddResult", new { caseSessionId = model.Id })); } else { SetSuccessMessage(MessageConstant.Values.SaveOK); return(RedirectToAction(nameof(Preview), new { id = model.Id })); } } else { SetErrorMessage(saveResult.ErrorMessage); } SetViewbag(model.Id, model.CaseId, model.Id); return(View(nameof(Edit), model)); }
/// <summary> /// Добавяне на заседание към дело /// </summary> /// <param name="caseId"></param> /// <returns></returns> public IActionResult Add(int caseId) { if (!CheckAccess(service, SourceTypeSelectVM.CaseSession, null, AuditConstants.Operations.Append, caseId)) { return(Redirect_Denied()); } var model = new CaseSessionVM() { CaseId = caseId, CourtId = userContext.CourtId, DateFrom = DateTime.Now, SessionStateId = NomenclatureConstants.SessionState.Nasrocheno, }; //Следващия кръгъл час model.DateFrom = model.DateFrom.AddMinutes(-model.DateFrom.Minute).AddHours(1); SetViewbag(0, caseId, null); SetHelpFile(HelpFileValues.CaseSession); return(View(nameof(Edit), model)); }
/// <summary> /// Добавяне на заседание към дело и акт към заседанието /// </summary> /// <param name="caseId"></param> /// <returns></returns> public IActionResult AddSessionAndAct(int caseId) { if (!CheckAccess(service, SourceTypeSelectVM.CaseSession, null, AuditConstants.Operations.Append, caseId)) { return(Redirect_Denied()); } var model = new CaseSessionVM() { CaseId = caseId, CourtId = userContext.CourtId, DateFrom = DateTime.Now.AddMinutes(-1), SessionTypeId = NomenclatureConstants.SessionType.ClosedSession, SessionStateId = NomenclatureConstants.SessionState.Provedeno, }; //Следващия кръгъл час //model.DateFrom = model.DateFrom.AddMinutes(-model.DateFrom.Minute).AddHours(1); SetViewbagAddSessionAndAct(caseId); return(View(nameof(AddSessionAndAct), model)); }
public IActionResult CopySession(CaseSessionVM model) { SetViewbag(model.Id, model.CaseId, model.Id); SetHelpFile(HelpFileValues.SessionMainData); if (!ModelState.IsValid) { return(View(nameof(CopySession), model)); } model.DateFrom = model.DateFrom.MakeEndSeconds(); var caseSessions = service.CaseSession_OldSelect(model.CaseId, null, null).ToList(); if (caseSessions.Count > 0) { if (caseSessions.Any(x => x.DateFrom == model.DateFrom)) { SetErrorMessage("Вече има заседание в това дело с тази начална дата и час"); return(View(nameof(CopySession), model)); } } var currentId = model.Id; if (service.CaseSession_CopyData(model)) { SetAuditContext(service, SourceTypeSelectVM.CaseSession, model.Id, currentId == 0); this.SaveLogOperation(currentId == 0, model.Id); SetSuccessMessage(MessageConstant.Values.SaveOK); return(RedirectToAction(nameof(Preview), new { id = model.Id })); } else { SetErrorMessage(MessageConstant.Values.SaveFailed); } return(View(nameof(CopySession), model)); }
/// <summary> /// Валидация преди запис на заседание /// </summary> /// <param name="model"></param> /// <returns></returns> private string IsValid(CaseSessionVM model) { if (model.Id < 1) { //if (!lawUnitService.IsExistLawUnitByCase(model.CaseId, model.DateFrom)) //{ // return "Няма активен състав"; //} if (!lawUnitService.IsExistJudgeReporterByCase(model.CaseId, model.DateFrom)) { return("Няма активен съдия докладчик"); } } if (model.SessionTypeId < 0) { return("Няма избран вид"); } if (model.DateFrom == null) { return("Няма въведена начална дата"); } var caseCase = service.GetById <Case>(model.CaseId); if (model.DateFrom < caseCase.RegDate) { return("Не можете да насрочвате заседание с дата/час по-малка от дата/час на регистрация на делото"); } if (model.CourtHallId > 0) { if (model.DateTo_Minutes < 1) { return("Изберете прогнозна продължителност"); } } if (model.DateTo != null) { if (model.DateFrom > model.DateTo) { return("Началната дата/час е по-голяма от крайната дата/час"); } } if (model.SessionStateId == NomenclatureConstants.SessionState.Provedeno) { if (model.DateFrom > DateTime.Now) { return("Не може да отразите проведено заседание с бъдеща дата/час."); } if (caseSessionMeetingService.IsExistMeetengInSessionAfterDate(DateTime.Now, model.Id, null)) { return("Има сесии в това заседание, които не са проведени."); } if (!lawUnitService.IsExistJudgeReporterByCase(model.CaseId, model.DateFrom)) { return("Няма активен съдия докладчик"); } } if (model.SessionStateId == NomenclatureConstants.SessionState.Nasrocheno) { if (model.DateFrom <= DateTime.Now) { return("Не може да насрочвате/коригирате заседание с минала дата/час."); } } var caseSessions = service.CaseSession_OldSelect(model.CaseId, null, null).ToList(); if (caseSessions.Count > 0) { if (caseSessions.Any(x => (x.DateFrom == model.DateFrom) && ((model.Id > 0) ? x.Id != model.Id : true))) { return("Вече има заседание в това дело с тази начална дата/час"); } } if (model.Id > 0) { var caseSessionMeeting = caseSessionMeetingService.CaseSessionMeetingAutoCreateGetBySessionId(model.Id); if (caseSessionMeeting != null) { if (caseSessionMeetingService.IsExistMeetengInSession(model.DateFrom, (model.DateTo ?? model.DateFrom), model.Id, caseSessionMeeting.Id)) { return("Има сесия в това заседание съвпадаща като време с автоматичната сесия"); } } var caseSessionOld = service.GetById <CaseSession>(model.Id); if (model.DateFrom != caseSessionOld.DateFrom) { if (caseNotificationService.IsExistNotificationForSession(model.Id)) { return("Има издадени призовки за това заседание и не може да смените началната дата или залата."); } } if (model.SessionStateId != NomenclatureConstants.SessionState.Nasrocheno) { if (model.SessionTypeId != caseSessionOld.SessionTypeId) { return("Не може да промените вида на заседанието при статус различен от насрочено."); } } } return(string.Empty); }