Esempio n. 1
0
        public IActionResult EditDismisal(CaseLawUnitDismisal model)
        {
            SetViewbag(model.CaseLawUnitId);

            string _isvalid = IsValid(model);

            if (_isvalid != string.Empty)
            {
                ModelState.AddModelError("", _isvalid);
            }

            if (!ModelState.IsValid)
            {
                return(View(nameof(EditDismisal), model));
            }

            var currentId = model.Id;

            if (service.CaseLawUnitDismisal_SaveData(model))
            {
                SetAuditContext(service, SourceTypeSelectVM.CaseLawUnitDismisal, model.Id, currentId == 0);
                this.SaveLogOperation(currentId == 0, model.Id);
                SetSuccessMessage(MessageConstant.Values.SaveOK);
                return(RedirectToAction(nameof(EditDismisal), new { id = model.Id }));
            }
            else
            {
                SetErrorMessage(MessageConstant.Values.SaveFailed);
            }

            return(View(nameof(EditDismisal), model));
        }
        /// <summary>
        /// Добавяне на член на съдебен състав
        /// </summary>
        /// <param name="lawUnitId"></param>
        /// <returns></returns>
        public IActionResult Add(int lawUnitId)
        {
            var lawUnit = service.GetById <CaseLawUnit>(lawUnitId);
            var model   = new CaseLawUnitDismisal()
            {
                CourtId       = lawUnit.CourtId,
                CaseId        = lawUnit.CaseId,
                CaseLawUnitId = lawUnitId,
                DismisalDate  = DateTime.Now
            };

            SetViewbag(lawUnitId);
            model.DismisalKindId = ViewBag.DismisalKind;
            return(View(nameof(EditDismisal), model));
        }
        public IActionResult EditDismisal(CaseLawUnitDismisal model, string btnRedirectSelection = null)
        {
            SetViewbag(model.CaseLawUnitId);

            string _isvalid = IsValid(model);

            if (_isvalid != string.Empty)
            {
                ModelState.AddModelError("", _isvalid);
            }

            if (!ModelState.IsValid)
            {
                return(View(nameof(EditDismisal), model));
            }

            var currentId = model.Id;

            if (service.CaseLawUnitDismisal_SaveData(model))
            {
                SetAuditContext(service, SourceTypeSelectVM.CaseLawUnitDismisal, model.Id, currentId == 0);
                this.SaveLogOperation(currentId == 0, model.Id);

                //return RedirectToAction(nameof(EditDismisal), new { id = model.Id });
                if (btnRedirectSelection is null)
                {
                    SetSuccessMessage(MessageConstant.Values.SaveOK);
                    return(RedirectToAction("CasePreview", "Case", new { id = model.CaseId }));
                }
                else
                {
                    SetSuccessMessage("Извеждането от състав по дело е успено. Извършете преразпреление.");
                    return(RedirectToAction("Add", "CaseSelectionProtokol", new { caseId = model.CaseId }));
                }
            }
            else
            {
                SetErrorMessage(MessageConstant.Values.SaveFailed);
            }

            return(View(nameof(EditDismisal), model));
        }
        /// <summary>
        /// Валидация преди запис на отвод
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private string IsValid(CaseLawUnitDismisal model)
        {
            if (model.DismisalTypeId < 0)
            {
                return("Не е избран тип на отвеждане");
            }
            if (model.DismisalTypeId == NomenclatureConstants.DismisalType.Otvod || model.DismisalTypeId == NomenclatureConstants.DismisalType.SamoOtvod)
            {
                if (model.CaseSessionActId < 0)
                {
                    return("Няма избран акт");
                }
            }

            if ((model.Description ?? string.Empty) == string.Empty)
            {
                return("Няма въведен мотив");
            }

            if (model.Id < 1)
            {
                if (model.DismisalTypeId == NomenclatureConstants.DismisalType.Otvod || model.DismisalTypeId == NomenclatureConstants.DismisalType.SamoOtvod)
                {
                    if ((model.CaseSessionActId ?? -1) < 0)
                    {
                        return("Няма избран акт");
                    }
                    else
                    {
                        var sessionAct = actService.GetById <CaseSessionAct>(model.CaseSessionActId);

                        if (!((sessionAct.ActStateId == NomenclatureConstants.SessionActState.Enforced) || (sessionAct.ActStateId == NomenclatureConstants.SessionActState.ComingIntoForce)))
                        {
                            return("Актът трябва да е постановен или влязъл в сила ");
                        }

                        if (sessionAct.RegNumber == string.Empty)
                        {
                            return("Актът няма генериран номер");
                        }
                    }

                    if (!IsExistResultOtvod(model.CaseSessionActId ?? -1))
                    {
                        return("Избраният акт е от заседание в което няма резултат свързан с отвод");
                    }
                }
            }
            if (model.DismisalKindId == NomenclatureConstants.LawUnitTypes.Judge)
            {
                if (model.DismisalTypeId == NomenclatureConstants.DismisalType.Otvod || model.DismisalTypeId == NomenclatureConstants.DismisalType.SamoOtvod)
                {
                    var lastDate = actService.GetLastSignCaseDate(model.CaseLawUnitId, model.CaseSessionActId ?? -1);
                    if (lastDate.AddSeconds(-lastDate.Second) > model.DismisalDate.AddSeconds(-model.DismisalDate.Second))
                    {
                        return($"Избраният акт е с дата({lastDate.ToString("dd.MM.yyyy")}) по-късна от дaтата на отвеждането");
                    }
                }
                if (model.DismisalTypeId == NomenclatureConstants.DismisalType.Prerazpredelqne)
                {
                    var lastDate = actService.GetLastSignCaseDate(model.CaseLawUnitId, null);
                    if (lastDate.AddSeconds(-lastDate.Second) > model.DismisalDate.AddSeconds(-model.DismisalDate.Second))
                    {
                        return($"Датата на отвеждане е по-ранна от последната дата на подпис ({lastDate.ToString("dd.MM.yyyy")})");
                    }
                }
            }
            return(string.Empty);
        }