Пример #1
0
 public ActionResult GpdRefDetailEdit(GpdRefDetailEditModel model)
 {
     ModelState.Clear();
     if (model.StatusID != 2)
     {
         int PersonID = model.PersonID;
         model = GpdBl.SetRefDetailEditModel(model.Id, model.StatusID, model.Operation, false, model.DTID, model.PayerID, model.PayeeID, model.DetailId, model.PersonID);
         model.PersonID = PersonID;
         return View(model);
     }
     else
     {
         GpdBl.CheckFillFieldsForGpdRefDetail(model, ModelState, false);
         if (ModelState.Count != 0)
             return View(model);
         else
         {
             string error;
             if (GpdBl.SaveGpdRefDetail(model, out error))
             {
                 model = GpdBl.SetRefDetailEditModel(model.Id, model.StatusID, 0, false, model.DTID, model.PayerID, model.PayeeID, model.DetailId, model.PersonID);
                 if (model.StatusID == 2)
                     model.errorMessage = "Запись сохранена!";
                 return View(model);
             }
             else
             {
                 if (!string.IsNullOrEmpty(error))
                     ModelState.AddModelError("errorMessage", error);
                 return View(model);
             }
         }
     }
 }
Пример #2
0
        /// <summary>
        /// Процедура сохранения записи в базе данных.
        /// </summary>
        /// <param name="model">Текущая модель.</param>
        /// <param name="error">Переменная для возврата текста сообщения об ошибке.</param>
        public bool SaveGpdRefDetail(GpdRefDetailEditModel model, out string error)
        {
            error = string.Empty;

            if (model.StatusID == 3)
                return true;

            //UserRole currentUserRole = AuthenticationService.CurrentUser.UserRole;
            IUser currentUseId = AuthenticationService.CurrentUser;

            //набор
            if (model.Operation == 1)
            {
                try
                {
                    GpdDetailSet gpdDetailSet = GpdDetailSetDao.Get(model.Id);

                    if (gpdDetailSet == null)
                    {
                        gpdDetailSet = new GpdDetailSet
                        {
                            Name = model.Name,
                            PersonID = model.PersonID,
                            PayerID = model.PayerID,
                            PayeeID = model.PayeeID,
                            Account = model.Account,
                            CreatorID = currentUseId.Id,
                        };
                    }
                    else
                    {
                        gpdDetailSet.Name = model.Name;
                        gpdDetailSet.PersonID = model.PersonID;
                        gpdDetailSet.PayerID = model.PayerID;
                        gpdDetailSet.PayeeID = model.PayeeID;
                        gpdDetailSet.Account = model.Account;
                        gpdDetailSet.CreatorID = model.CreatorID;
                        gpdDetailSet.EditorID = currentUseId.Id;
                        gpdDetailSet.EditDate = DateTime.Now;
                    }
                    GpdDetailSetDao.SaveAndFlush(gpdDetailSet);
                    model.Id = gpdDetailSet.Id;
                    model.StatusID = 2;
                    return true;
                }
                catch (Exception ex)
                {
                    GpdDetailSetDao.RollbackTran();
                    Log.Error("Error on SaveMissionOrderEditModel:", ex);
                    error = string.Format("Исключение:{0}", ex.GetBaseException().Message);
                    return false;
                }
            }
            else  //реквизиты
            {
                try
                {
                    GpdRefDetail gpdrefDetail = GpdRefDetailDao.Get(model.DetailId);

                    if (model.NewRow == 1 || gpdrefDetail == null)
                    {
                        gpdrefDetail = new GpdRefDetail
                        {
                            Name = model.DetailName,
                            //ContractorName = model
                            //DTID = model.DTID,
                            INN = model.INN,
                            KPP = model.KPP,
                            Account = model.DetailAccount,
                            BankName = model.BankName,
                            BankBIK = model.BankBIK,
                            CorrAccount = model.CorrAccount,
                            CreatorID = currentUseId.Id,
                        };
                    }
                    else
                    {
                        gpdrefDetail.Name = model.DetailName;
                        //gpdrefDetail.DTID = model.DTID;
                        gpdrefDetail.INN = model.INN;
                        gpdrefDetail.KPP = model.KPP;
                        gpdrefDetail.Account = model.DetailAccount;
                        gpdrefDetail.BankName = model.BankName;
                        gpdrefDetail.BankBIK = model.BankBIK;
                        gpdrefDetail.CorrAccount = model.CorrAccount;
                        gpdrefDetail.CreatorID = model.DetailCreatorID;
                        gpdrefDetail.EditorID = currentUseId.Id;
                        gpdrefDetail.EditDate = DateTime.Now;
                    }
                    GpdRefDetailDao.SaveAndFlush(gpdrefDetail);
                    model.DetailId = gpdrefDetail.Id;
                    model.StatusID = 2;
                    return true;
                }
                catch (Exception ex)
                {
                    GpdRefDetailDao.RollbackTran();
                    Log.Error("Error on SaveMissionOrderEditModel:", ex);
                    error = string.Format("Исключение:{0}", ex.GetBaseException().Message);
                    return false;
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Определяем права роли текущего пользователя.
        /// </summary>
        /// <param name="model"></param>
        public void GetPermission(GpdRefDetailEditModel model)
        {
            UserRole role = CurrentUser.UserRole;
            model.Permissions = GpdRefDetailDao.GetPermission(role);

            //
            if (model.Permissions.Count == 0)
            {
                GpdPermissionDto perm = new GpdPermissionDto();
                perm.IsCancel = false;
                perm.IsComment = false;
                perm.IsCreate = false;
                perm.IsCreateAct = false;
                perm.IsDraft = false;
                perm.IsWrite = false;

                model.Permissions.Add(perm);
            }
        }
Пример #4
0
        /// <summary>
        /// Проверяем правильность заполнения полей.
        /// </summary>
        /// <param name="model">Проверяемая модель.</param>
        /// <param name="ms">Словарь для сообщений об ошибках.</param>
        /// <param name="flgFromContract">Признак проверки модели заполняемой в договорах.</param>
        public void CheckFillFieldsForGpdRefDetail(GpdRefDetailEditModel model, System.Web.Mvc.ModelStateDictionary ms, bool flgFromContract)
        {
            string ModelName = flgFromContract ? "DetailEdit." : "";
            GetPermission(model);
            if (model.Operation == 1)
            {
                if (model.Name == null)
                    ms.AddModelError(ModelName + "Name", "Заполните поле 'Наименование'!");
                if (model.Name != null && model.Name.Trim().Length > 250)
                    ms.AddModelError(ModelName + "Name", "Превышено допустимое количество символов!");

                if (model.PersonID == 0)
                    ms.AddModelError(ModelName + "PersonID", "Выберите физическое лицо!");

                if (model.PayerID == 0)
                    ms.AddModelError(ModelName + "PayerID", "Укажите плательщика!");

                if (model.PayeeID == 0)
                    ms.AddModelError(ModelName + "PayeeID", "Укажите получателя!");

                if (model.Account == null)
                    ms.AddModelError(ModelName + "Account", "Укажите номер счета получателя!");
                if (model.Account != null && model.Account.Trim().Length > 20)
                    ms.AddModelError(ModelName + "Account", "Превышено допустимое количество символов!");
            }
            else
            {
                //if (model.DetailName == null)
                //    ms.AddModelError(ModelName + "DetailName", "Заполните поле 'Наименование'");
                //if (model.DetailName != null && model.DetailName.Trim().Length > 150)
                //    ms.AddModelError(ModelName + "DetailName", "Превышено допустимое количество символов!");

                //if (model.INN == null)
                //    ms.AddModelError(ModelName + "INN", "Заполните поле 'ИНН'");
                //if (model.INN != null && model.INN.Trim().Length > 12)
                //    ms.AddModelError(ModelName + "INN", "Превышено допустимое количество символов!");

                //if (model.KPP == null)
                //    ms.AddModelError(ModelName + "KPP", "Заполните поле 'КПП'");
                //if (model.KPP != null && model.KPP.Trim().Length > 9)
                //    ms.AddModelError(ModelName + "KPP", "Превышено допустимое количество символов!");

                //if (model.DetailAccount == null)
                //    ms.AddModelError(ModelName + "DetailAccount", "Заполните поле 'Расчетный счет'");
                //if (model.DetailAccount != null && model.DetailAccount.Trim().Length > 20)
                //    ms.AddModelError(ModelName + "DetailAccount", "Превышено допустимое количество символов!");

                //if (model.BankName == null)
                //    ms.AddModelError(ModelName + "BankName", "Заполните поле 'Банк'");
                //if (model.BankName != null && model.BankName.Trim().Length > 100)
                //    ms.AddModelError(ModelName + "BankName", "Превышено допустимое количество символов!");

                //if (model.BankBIK == null)
                //    ms.AddModelError(ModelName + "BankBIK", "Заполните поле 'Банк БИК'");
                //if (model.BankBIK != null && model.BankBIK.Trim().Length > 9)
                //    ms.AddModelError(ModelName + "BankBIK", "Превышено допустимое количество символов!");

                //if (model.CorrAccount == null)
                //    ms.AddModelError(ModelName + "CorrAccount", "Заполните поле 'Банк кор/счет'");
                //if (model.CorrAccount != null && model.CorrAccount.Trim().Length > 20)
                //    ms.AddModelError(ModelName + "Name", "Превышено допустимое количество символов!");
            }

            //if (model.DTID == 2)
            //{
            //    if (model.Code == null)
            //        ms.AddModelError(ModelName + "Code", "Заполните поле 'Код банка'");
            //    if (model.Code != null && model.Code.Trim().Length > 9)
            //        ms.AddModelError(ModelName + "Name", "Превышено допустимое количество символов!");
            //}
            //else
            //    model.Code = null;

            if (ms.Count != 0)
                model.StatusID = 4;

            UserRole role = CurrentUser.UserRole;
            model.DetailTypes = GpdRefDetailDao.GetDetailTypes(role,
                model.DTID,
                model.TypeName);
            //физики
            model.Persons = GpdRefDetailDao.GetPersons(0);
            //плательщики
            //model.PayerInfo = GpdRefDetailDao.GetRefDetail(role, 0, 2);
            //получатели
            //model.PayeerInfo = GpdRefDetailDao.GetRefDetail(role, 0, 1);
            //список реквизитов
            //model.RefDetails = GpdRefDetailDao.GetRefDetail(role, 0, model.DTID);
        }
Пример #5
0
        /// <summary>
        /// Заполняем модель для редактирования по указанному ID.
        /// </summary>
        /// <param name="Id">Значение ID.</param>
        /// <param name="StatusID">Статус записи.</param>
        /// <param name="Operation">Операция: 1 - работа с набором, 2 - работа с реквизитом.</param>
        /// <param name="flgView">Признак просмотра списка.</param>
        /// <param name="DTID">ID типа реквизита</param>
        /// <param name="PayerID">ID плательщика</param>
        /// <param name="PayeeID">ID получателя</param>
        /// <param name="DetailId">ID реквизита</param>
        /// <returns></returns>
        public GpdRefDetailEditModel SetRefDetailEditModel(int Id, int StatusID, int Operation, bool flgView, int DTID, int PayerID, int PayeeID, int DetailId, int PersonID)
        {
            GpdRefDetailEditModel model = new GpdRefDetailEditModel();
            GetPermission(model);
            SetGpdRefDetailTypes(model);
            model.Id = Id;
            model.StatusID = StatusID == 3 ? 2 : StatusID;
            model.Operation = Operation;
            model.DTID = DTID;
            model.PayerID = PayerID;
            model.PayeeID = PayeeID;
            model.DetailId = DetailId;
            model.PersonID = PersonID;
            model.SetInfo = GpdRefDetailDao.GetDetailSetList(model.Id, null, null, null, null, flgView, 0, null);

            if (model.SetInfo.Count != 0)
            {
                foreach (var doc in model.SetInfo)
                {
                    model.Id = doc.Id;
                    model.Name = doc.Name;
                    model.PersonID = doc.PersonID;
                    model.PayerID = doc.PayerID;//PayerID != doc.PayerID ? PayerID : doc.PayerID;
                    model.PayeeID = doc.PayeeID;//PayeeID != doc.PayeeID ? PayeeID : doc.PayeeID;
                    model.Account = doc.Account;
                    model.CreatorID = doc.CreatorID;
                    model.AllowEdit = doc.AllowEdit;
                }
            }

            if (model.PersonID != 0)
            {
                IList<GpdContractSurnameDto> Persons = GetPersonAutocomplete(null, model.PersonID);
                if (Persons.Count != 0)
                {
                    model.PersonID = Persons[0].Id;
                    model.Surname = Persons[0].LongName;
                }
            }

            UserRole role = CurrentUser.UserRole;
            //физики
            //model.Persons = GpdRefDetailDao.GetPersons(0);
            //плательщики
            //model.PayerInfo = GpdRefDetailDao.GetRefDetail(role, 0);

            //if (model.PayerInfo.Count != 0)
            //{
            //    //model.PayerID = PayerID == 0 ? model.PayerInfo[0].Id : model.PayerID;
            //    foreach (var doc in model.PayerInfo)
            //    {
            //        if (doc.Id == model.PayerID)
            //        {
            //            model.PayerName = doc.Name;
            //            model.PayerINN = doc.INN;
            //            model.PayerKPP = doc.KPP;
            //            model.PayerAccount = doc.Account;
            //            model.PayerBankName = doc.BankName;
            //            model.PayerBankBIK = doc.BankBIK;
            //            model.PayerCorrAccount = doc.CorrAccount;
            //            break;
            //        }
            //    }
            //}

            ////получатели
            //model.PayeerInfo = GpdRefDetailDao.GetRefDetail(role, 0);
            //if (model.PayeerInfo.Count != 0)
            //{
            //    //model.PayeeID = PayeeID == 0 ? model.PayeerInfo[0].Id : model.PayeeID;
            //    foreach (var doc in model.PayeerInfo)
            //    {
            //        if (doc.Id == model.PayeeID)
            //        {
            //            model.PayeerName = doc.Name;
            //            model.PayeerINN = doc.INN;
            //            model.PayeerKPP = doc.KPP;
            //            model.PayeerAccount = doc.Account;
            //            model.PayeerBankName = doc.BankName;
            //            model.PayeerBankBIK = doc.BankBIK;
            //            model.PayeerCorrAccount = doc.CorrAccount;
            //            break;
            //        }
            //    }
            //}

            return model;
        }
Пример #6
0
 /// <summary>
 /// Создаем список типов реквизитов для модели редактирования.
 /// </summary>
 /// <param name="model">Заполняемая модель</param>
 public void SetGpdRefDetailTypes(GpdRefDetailEditModel model)
 {
     UserRole role = CurrentUser.UserRole;
     model.DetailTypes = GpdRefDetailDao.GetDetailTypes(role,
         model.DTID,
         model.TypeName);
 }