/// <summary> /// Запис на Престъпления към лица по НД по дело /// </summary> /// <param name="model"></param> /// <returns></returns> public bool CasePersonCrime_SaveData(CasePersonCrime model) { try { if (model.Id > 0) { //Update var saved = repo.GetById <CasePersonCrime>(model.Id); saved.CasePersonId = model.CasePersonId; saved.CaseCrimeId = model.CaseCrimeId; saved.RecidiveTypeId = model.RecidiveTypeId; saved.PersonRoleInCrimeId = model.PersonRoleInCrimeId; saved.DateWrt = DateTime.Now; saved.UserId = userContext.UserId; repo.Update(saved); repo.SaveChanges(); } else { model.DateWrt = DateTime.Now; model.UserId = userContext.UserId; repo.Add <CasePersonCrime>(model); repo.SaveChanges(); } return(true); } catch (Exception ex) { logger.LogError(ex, $"Грешка при запис на Престъпления към лица Id={ model.Id }"); return(false); } }
public IActionResult EditCasePersonCrime(CasePersonCrime model) { SetViewbagCasePersonCrime(model.CaseId, model.CaseCrimeId); if (!ModelState.IsValid) { return(View(nameof(EditCasePersonCrime), model)); } string _isvalid = IsValidCasePersonCrime(model); if (_isvalid != string.Empty) { SetErrorMessage(_isvalid); return(View(nameof(EditCasePersonCrime), model)); } var currentId = model.Id; if (service.CasePersonCrime_SaveData(model)) { SetAuditContext(service, SourceTypeSelectVM.CasePersonCrime, model.Id, currentId == 0); this.SaveLogOperation(currentId == 0, model.Id); SetSuccessMessage(MessageConstant.Values.SaveOK); return(RedirectToAction(nameof(EditCasePersonCrime), new { id = model.Id })); } else { SetErrorMessage(MessageConstant.Values.SaveFailed); } return(View(nameof(EditCasePersonCrime), model)); }
/// <summary> /// Добавяне на хора към присъда /// </summary> /// <param name="caseCrimeId"></param> /// <returns></returns> public IActionResult AddCasePersonCrime(int caseCrimeId) { if (!CheckAccess(service, SourceTypeSelectVM.CasePersonCrime, null, AuditConstants.Operations.Append, caseCrimeId)) { return(Redirect_Denied()); } var caseCrime = service.GetById <CaseCrime>(caseCrimeId); SetViewbagCasePersonCrime(caseCrime.CaseId, caseCrimeId); var model = new CasePersonCrime() { CaseId = caseCrime.CaseId, CourtId = userContext.CourtId, CaseCrimeId = caseCrimeId, }; return(View(nameof(EditCasePersonCrime), model)); }
/// <summary> /// Валидация преди запис на хора към присъда /// </summary> /// <param name="model"></param> /// <returns></returns> private string IsValidCasePersonCrime(CasePersonCrime model) { if (model.CasePersonId < 1) { return("Изберете лице"); } if (model.RecidiveTypeId < 1) { return("Изберете рецидив"); } if (model.Id < 1) { if (service.IsExistPersonCasePersonCrime(model.CaseCrimeId, model.CasePersonId)) { return("Това лице е добавено вече"); } } return(string.Empty); }
/// <summary> /// Метод за пълнене на престъпления от еиспп към структурите на текущата система /// </summary> /// <param name="caseId">ид дело</param> /// <param name="pnenmr">номер на престъпление</param> /// <returns></returns> public async Task <bool> CasePersonCrimeFillFromEispp_SaveData(int caseId, string pnenmr) { try { var casePeople = repo.AllReadonly <CasePerson>() .Where(x => x.CaseId == caseId && x.CaseSessionId == null && x.Person_SourceType == SourceTypeSelectVM.EisppPerson) .ToList(); var caseModel = repo.AllReadonly <Case>() .Where(x => x.Id == caseId) .FirstOrDefault(); var eisppModel = await eisppService.GetTSAKTSTSResponse(caseModel.EISSPNumber).ConfigureAwait(false); var pne = eisppModel.execTSAKTSTSResponse.sNPRAKTSTS.sPNE.FirstOrDefault(x => x.pnenmr == pnenmr); var caseCrime = new CaseCrime() { CourtId = userContext.CourtId, CaseId = caseId, EISSId = pne.pnesid, EISSPNumber = pne.pnenmr, CrimeCode = pne.PNESTA.pnekcq, CrimeName = eisppService.GetByCode(pne.PNESTA.pnekcq).Label, DateFrom = pne.pnedtaotd, StartDateType = pne.pneotdtip.ToInt(), DateTo = pne.pnedtadod != Crime.defaultDate ? (DateTime?)pne.pnedtadod : null, Status = pne.PNESTA?.pnests.ToInt(), StatusDate = pne.PNESTA?.pnestsdta != Crime.defaultDate ? (DateTime?)pne.PNESTA?.pnestsdta : null, CompletitionDegree = pne.PNESTA?.pnestpdvs.ToInt() }; caseCrime.CasePersonCrimes = new List <CasePersonCrime>(); if (eisppModel.execTSAKTSTSResponse.sNPRAKTSTS.sFZL != null) { foreach (var fzl in eisppModel.execTSAKTSTSResponse.sNPRAKTSTS.sFZL) { var fzlpneList = eisppModel.execTSAKTSTSResponse.sNPRAKTSTS.sNPRFZLPNE .Where(x => x.pnesid.ToString() == pne.pnesid) .Where(x => x.fzlsid.ToString() == fzl.fzlsid) .ToList(); foreach (var fzlpne in fzlpneList) { var person = casePeople.Where(p => (p.Person_SourceId ?? 0).ToString() == fzl.fzlsid).FirstOrDefault(); if (person == null) { person = casePeople.Where(p => p.Uic == fzl.fzlegn).FirstOrDefault(); } if (person != null) { var personCrime = new CasePersonCrime() { CourtId = userContext.CourtId, CaseId = caseId, CasePersonId = person.Id, CaseCrimeId = caseCrime.Id, PersonRoleInCrimeId = nomenclatureService.GetInnerCodeFromCodeMapping(NomenclatureConstants.CodeMappingAlias.CasePersonCrimeRole, fzlpne.SCQ.scqrlq), RecidiveTypeId = nomenclatureService.GetInnerCodeFromCodeMapping(EISPPConstants.EisppMapping.Relaps, fzlpne.SBC?.sbcrcd), }; if (personCrime.RecidiveTypeId <= 0) { personCrime.RecidiveTypeId = NomenclatureConstants.RecidiveTypes.None; } caseCrime.CasePersonCrimes.Add(personCrime); } } } } repo.Add(caseCrime); repo.SaveChanges(); return(true); } catch (Exception ex) { logger.LogError(ex, $"Грешка при запис на Престъпление от ЕИСПП Id={ caseId }"); return(false); } }