Example #1
0
 /// <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);
     }
 }
Example #2
0
        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));
        }
Example #3
0
        /// <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));
        }
Example #4
0
        /// <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);
        }
Example #5
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);
            }
        }