public IActionResult Edit(CaseLoadCorrection model) { SetViewbag(model.CaseId); if (!ModelState.IsValid) { return(View(nameof(Edit), model)); } string _isvalid = IsValid(model); if (_isvalid != string.Empty) { SetErrorMessage(_isvalid); return(View(nameof(Edit), model)); } var currentId = model.Id; if (service.CaseLoadCorrection_SaveData(model)) { SetAuditContext(service, SourceTypeSelectVM.CaseLoadCorrection, model.Id, currentId == 0); this.SaveLogOperation(currentId == 0, model.Id); SetSuccessMessage(MessageConstant.Values.SaveOK); return(RedirectToAction(nameof(Edit), new { id = model.Id })); } else { SetErrorMessage(MessageConstant.Values.SaveFailed); } return(View(nameof(Edit), model)); }
/// <summary> /// Запис на Коригиращи коефициенти по дело /// </summary> /// <param name="model"></param> /// <returns></returns> public bool CaseLoadCorrection_SaveData(CaseLoadCorrection model) { try { var caseSave = repo.GetById <Case>(model.CaseId); if (model.Id > 0) { //Update var saved = repo.GetById <CaseLoadCorrection>(model.Id); saved.CaseId = model.CaseId; saved.CorrectionDate = model.CorrectionDate; var _changeCorrection = false; if (saved.CaseLoadCorrectionActivityId != model.CaseLoadCorrectionActivityId) { saved.CaseLoadCorrectionActivityId = model.CaseLoadCorrectionActivityId; saved.CorrectionLoadIndex = GetLoadCorrection(model.CaseLoadCorrectionActivityId); _changeCorrection = true; } saved.DateWrt = DateTime.Now; saved.UserId = userContext.UserId; repo.Update(saved); repo.SaveChanges(); if (_changeCorrection) { caseSave.CorrectionLoadIndex = GetSumCorrectionForCaseId(saved.CaseId); caseSave.DateWrt = DateTime.Now; caseSave.UserId = userContext.UserId; repo.Update(caseSave); repo.SaveChanges(); } } else { model.CorrectionLoadIndex = GetLoadCorrection(model.CaseLoadCorrectionActivityId); model.DateWrt = DateTime.Now; model.UserId = userContext.UserId; repo.Add <CaseLoadCorrection>(model); repo.SaveChanges(); caseSave.CorrectionLoadIndex = GetSumCorrectionForCaseId(model.CaseId); caseSave.DateWrt = DateTime.Now; caseSave.UserId = userContext.UserId; repo.Update(caseSave); repo.SaveChanges(); } return(true); } catch (Exception ex) { logger.LogError(ex, $"Грешка при запис на Коригиращи коефициенти по дело Id={ model.Id }"); return(false); } }
/// <summary> /// Добавяне на Коригиращи коефициенти по дело /// </summary> /// <param name="caseId"></param> /// <returns></returns> public IActionResult Add(int caseId) { if (!CheckAccess(service, SourceTypeSelectVM.CaseLoadCorrection, null, AuditConstants.Operations.Append, caseId)) { return(Redirect_Denied()); } var model = new CaseLoadCorrection() { CaseId = caseId, CourtId = userContext.CourtId, CorrectionDate = DateTime.Now }; SetViewbag(caseId); return(View(nameof(Edit), model)); }
/// <summary> /// Валидация преди запис Коригиращи коефициенти по дело /// </summary> /// <param name="model"></param> /// <returns></returns> private string IsValid(CaseLoadCorrection model) { if (model.CaseLoadCorrectionActivityId < 1) { return("Изберете вид корекция"); } if (model.CorrectionDate == null) { return("Въведете дата на корекция"); } if (service.IsExistCaseLoadCorrection(model.Id, model.CaseId, model.CaseLoadCorrectionActivityId)) { return("Има въведен такъв коригиращ коефициент"); } return(string.Empty); }
/// <summary> /// Запис на Коригиращи коефициенти по дело /// </summary> /// <param name="model"></param> /// <returns></returns> public bool CaseLoadCorrection_SaveData(CaseLoadCorrection model) { try { var caseSave = repo.GetById <Case>(model.CaseId); if (model.Id > 0) { //Update var saved = repo.GetById <CaseLoadCorrection>(model.Id); saved.CaseId = model.CaseId; saved.CorrectionDate = model.CorrectionDate; var _changeCorrection = false; if (saved.CaseLoadCorrectionActivityId != model.CaseLoadCorrectionActivityId) { saved.CaseLoadCorrectionActivityId = model.CaseLoadCorrectionActivityId; saved.CorrectionLoadIndex = GetLoadCorrection(model.CaseLoadCorrectionActivityId); _changeCorrection = true; } saved.DateWrt = DateTime.Now; saved.UserId = userContext.UserId; repo.Update(saved); repo.SaveChanges(); if (_changeCorrection) { caseSave.CorrectionLoadIndex = GetCaseLoadCorrection(saved.CaseId); caseSave.DateWrt = DateTime.Now; caseSave.UserId = userContext.UserId; repo.Update(caseSave); repo.SaveChanges(); } } else { model.CorrectionLoadIndex = GetLoadCorrection(model.CaseLoadCorrectionActivityId); model.DateWrt = DateTime.Now; model.UserId = userContext.UserId; repo.Add <CaseLoadCorrection>(model); repo.SaveChanges(); caseSave.CorrectionLoadIndex = GetCaseLoadCorrection(model.CaseId); caseSave.DateWrt = DateTime.Now; caseSave.UserId = userContext.UserId; repo.Update(caseSave); repo.SaveChanges(); } // тази част я има и като метод в CaseLoadIndexService var caseLoadIndices = repo.AllReadonly <CaseLoadIndex>() .Include(x => x.Case) .Where(x => x.CaseId == model.CaseId && x.DateExpired == null) .ToList(); foreach (var caseLoad in caseLoadIndices) { var caseLoadCorrectionIdex = GetCaseLoadCorrectionToDate(model.CaseId, caseLoad.DateActivity); caseLoad.BaseIndex = caseLoadCorrectionIdex > 0 ? caseLoad.Case.LoadIndex * caseLoadCorrectionIdex : caseLoad.Case.LoadIndex; caseLoad.DateWrt = DateTime.Now; caseLoad.UserId = userContext.UserId; repo.Update(caseLoad); } repo.SaveChanges(); return(true); } catch (Exception ex) { logger.LogError(ex, $"Грешка при запис на Коригиращи коефициенти по дело Id={ model.Id }"); return(false); } }