/// <summary> /// Процедура сохранения акта в базе данных. /// </summary> /// <param name="model">Текущая модель.</param> /// <param name="error">Переменная для возврата текста сообщения об ошибке.</param> public bool SaveGpdAct(GpdActEditModel model, out string error) { error = string.Empty; //к текущему договору не должны повторяться номера актов if (GpdActDao.ExistsActsByNumber(model.Id, model.GCID, model.ActNumber)) { error = "К данному договору уже существует акт с таким номером!"; if (model.Id == 0) error += " Повторите попытку создания акта!"; else error += " Попробуйте найти акт к данному договору и с таким номером в реестре!"; return false; } //договор не должен быть в статусе черновика if (model.StatusID != 4 && !GpdActDao.CheckContractEntry(model.GCID)) { error = "Нельзя подготовить акт к выгрузке, так как договор для данного акта имеет статус черновика!"; return false; } UserRole currentUserRole = AuthenticationService.CurrentUser.UserRole; IUser currentUseId = AuthenticationService.CurrentUser; try { GpdAct gpdAct;// = GpdContractDao.Get(model.Id); if (model.Id == 0) { gpdAct = new GpdAct { CreatorID = currentUseId.Id, //EditDate = DateTime.Now, //EditorID = currentUseId.Id, ActNumber = model.ActNumber, ActDate = model.ActDate, GCID = model.GCID, ChargingDate = model.ChargingDate, DateBegin = model.DateBegin, DateEnd = model.DateEnd, Amount = model.Amount, PurposePayment = model.PurposePayment, ESSSNum = model.ESSSNum, StatusID = model.StatusID }; } else { gpdAct = GpdActDao.Get(model.Id); gpdAct.CreatorID = model.CreatorID; gpdAct.EditDate = DateTime.Now; gpdAct.EditorID = currentUseId.Id; gpdAct.ActNumber = model.ActNumber; gpdAct.ActDate = model.ActDate; gpdAct.GCID = model.GCID; gpdAct.ChargingDate = model.ChargingDate; gpdAct.DateBegin = model.DateBegin; gpdAct.DateEnd = model.DateEnd; gpdAct.Amount = model.Amount; gpdAct.PurposePayment = model.PurposePayment; gpdAct.ESSSNum = model.ESSSNum; gpdAct.StatusID = model.StatusID; } AddComment(gpdAct, model); //добавление комментария GpdActDao.SaveAndFlush(gpdAct); model.Id = gpdAct.Id; return true; } catch (Exception ex) { GpdContractDao.RollbackTran(); Log.Error("Error on SaveMissionOrderEditModel:", ex); error = string.Format("Исключение:{0}", ex.GetBaseException().Message); return false; } finally { //SetUserInfoModel(user, model); //SetStaticFields(model, missionHotels); //LoadDictionaries(model); //SetHiddenFields(model); } }
/// <summary> /// Добавляем комментарий. /// </summary> /// <param name="entity">Редактируемый акт.</param> /// <param name="model">Модель редактируемого акта.</param> protected void AddComment(GpdAct entity, GpdActEditModel model) { if (model.CommentStr != null && model.CommentStr.Trim().Length != 0) { GpdActComment ActComment = new GpdActComment { UserId = UserDao.Load(AuthenticationService.CurrentUser.Id), Comment = model.CommentStr, CreateDate = DateTime.Now, GpdActs = entity }; entity.Comments.Add(ActComment); } }