Beispiel #1
0
        public IActionResult EditCaseCrime(CaseCrime model)
        {
            SetViewbagCaseCrime(model.CaseId);
            var caseModel = service.GetById <Case>(model.CaseId);

            ViewBag.GenerateNumber = eisppService.IsForEisppNum(caseModel);
            ValidateCaseCrime(model);
            if (!ModelState.IsValid)
            {
                return(View(nameof(EditCaseCrime), model));
            }

            var currentId = model.Id;

            if (service.CaseCrime_SaveData(model))
            {
                SetAuditContext(service, SourceTypeSelectVM.CaseCrime, model.Id, currentId == 0);
                this.SaveLogOperation(currentId == 0, model.Id);
                SetSuccessMessage(MessageConstant.Values.SaveOK);
                return(RedirectToAction(nameof(EditCaseCrime), new { id = model.Id }));
            }
            else
            {
                SetErrorMessage(MessageConstant.Values.SaveFailed);
            }
            return(View(nameof(EditCaseCrime), model));
        }
Beispiel #2
0
        /// <summary>
        /// Валидация преди запис на престъпления към дело
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private void ValidateCaseCrime(CaseCrime model)
        {
            if (string.IsNullOrEmpty(model.EISSPNumber))
            {
                ModelState.AddModelError("EISSPNumber", "Въведете код по ЕИСПП");
            }

            if (model.CrimeCode == "0" || model.CrimeCode == "-1")
            {
                ModelState.AddModelError("CrimeCode", "Изберете престъпление");
            }
        }
Beispiel #3
0
        /// <summary>
        /// Запис на Престъпления по НД по дело
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool CaseCrime_SaveData(CaseCrime model)
        {
            try
            {
                model.StartDateType      = model.StartDateType.EmptyToNull(0);
                model.CompletitionDegree = model.CompletitionDegree.EmptyToNull(0);
                model.Status             = model.Status.EmptyToNull(0);

                if (model.Id > 0)
                {
                    //Update
                    var saved = repo.GetById <CaseCrime>(model.Id);
                    saved.CaseId      = model.CaseId;
                    saved.EISSId      = model.EISSId;
                    saved.EISSPNumber = model.EISSPNumber;

                    if (saved.CrimeCode != model.CrimeCode)
                    {
                        saved.CrimeCode = model.CrimeCode;
                        saved.CrimeName = eisppService.GetByCode(model.CrimeCode).Label;
                    }

                    saved.StartDateType      = model.StartDateType;
                    saved.CompletitionDegree = model.CompletitionDegree;
                    saved.Status             = model.Status;
                    saved.StatusDate         = model.StatusDate;
                    saved.DateFrom           = model.DateFrom;
                    saved.DateTo             = model.DateTo;
                    saved.DateWrt            = DateTime.Now;
                    saved.UserId             = userContext.UserId;
                    repo.Update(saved);
                    repo.SaveChanges();
                }
                else
                {
                    model.CrimeName = eisppService.GetByCode(model.CrimeCode).Label;
                    model.DateWrt   = DateTime.Now;
                    model.UserId    = userContext.UserId;
                    repo.Add <CaseCrime>(model);
                    repo.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"Грешка при запис на Престъпления по НД по дело Id={ model.Id }");
                return(false);
            }
        }
Beispiel #4
0
        /// <summary>
        /// Добавяне на престъпления към дело
        /// </summary>
        /// <param name="caseId"></param>
        /// <returns></returns>
        public IActionResult AddCaseCrime(int caseId)
        {
            if (!CheckAccess(service, SourceTypeSelectVM.CaseCrime, null, AuditConstants.Operations.Append, caseId))
            {
                return(Redirect_Denied());
            }
            SetViewbagCaseCrime(caseId);
            var model = new CaseCrime()
            {
                CaseId   = caseId,
                CourtId  = userContext.CourtId,
                DateFrom = DateTime.Now
            };

            return(View(nameof(EditCaseCrime), model));
        }
Beispiel #5
0
        /// <summary>
        /// Добавяне на престъпления към дело
        /// </summary>
        /// <param name="caseId"></param>
        /// <returns></returns>
        public IActionResult AddCaseCrime(int caseId)
        {
            if (!CheckAccess(service, SourceTypeSelectVM.CaseCrime, null, AuditConstants.Operations.Append, caseId))
            {
                return(Redirect_Denied());
            }
            var caseModel = service.GetById <Case>(caseId);

            ViewBag.GenerateNumber = eisppService.IsForEisppNum(caseModel);
            SetViewbagCaseCrime(caseId);
            var model = new CaseCrime()
            {
                CaseId   = caseId,
                CourtId  = userContext.CourtId,
                DateFrom = DateTime.Now
            };

            return(View(nameof(EditCaseCrime), model));
        }
Beispiel #6
0
 /// <summary>
 /// Валидация преди запис на престъпления към дело
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 private void ValidateCaseCrime(CaseCrime model)
 {
     if (string.IsNullOrEmpty(model.EISSPNumber))
     {
         var caseModel = service.GetById <Case>(model.CaseId);
         if (!eisppService.IsForEisppNum(caseModel))
         {
             ModelState.AddModelError("EISSPNumber", "Въведете код по ЕИСПП");
         }
     }
     if (string.IsNullOrEmpty(model.CrimeCode) || model.CrimeCode == "0" || model.CrimeCode == "-1")
     {
         ModelState.AddModelError("CrimeCode", "Изберете престъпление");
     }
     if (model.Id <= 0)
     {
         if (service.IsEISPPNumberExists(model.CaseId, model.EISSPNumber))
         {
             ModelState.AddModelError("EISSPNumber", $"{model.EISSPNumber} на престъпление вече е добавен към делото");
         }
     }
 }
Beispiel #7
0
        /// <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);
            }
        }