예제 #1
0
        /// <summary>
        /// Меняем поля сущности. Все сохранения зависят от флагов(нельзя - значит нельзя.)
        /// </summary>
        /// <param name="entity">Сущьность</param>
        /// <param name="model">Модель</param>
        private void ChangeEntityProperties(StaffMovements entity, StaffMovementsEditModel model)
        {
            #region Тот случай, когда сохранять заявку не нужно
            //Если нажали кнопку отмена, то возвращаемся в черновик и всё. В остальных случаях продолжаем работать
            if (model.IsCancelAvailable && model.IsCancelButtonPressed)
            {
                ChangeEntityStatusToTemp(entity);
                return;
            }
            #endregion
            #region Стандартные поля заявки, нужно заполнять только если заявка новая
            if (model.Id == 0)
            {
                //Если идентификатор = 0, значит заявка новая, нужно сохранить основные поля.
                //Дата создания
                entity.CreateDate = model.CreateDate;
                //Создатель
                entity.Creator = UserDao.Load(model.Creator.Id);
                if ((CurrentUser.UserRole & (UserRole.Manager | UserRole.PersonnelManager)) > 0)
                {
                    entity.SendDate = DateTime.Now;
                    if (model.RequestType == 2)
                    {
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.SourceManager);
                    }
                    else
                    {
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.TargetManager);
                    }
                }
                //Сотрудник
                entity.User = UserDao.Load(model.User.Id);
                //Статус // сначала черновик
                entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Temp);
                //Данные исходной позиции
                var sourcelink = StaffEstablishedPostUserLinksDao.QueryExpression(x => x.User.Id == entity.User.Id && x.IsUsed);
                entity.SourceStaffEstablishedPostRequest = sourcelink.First();
                entity.SourcePosition = entity.User.Position;
                entity.SourceDepartment = entity.User.Department;
                entity.SourceManager = GetManagerForDepartment(entity.SourceDepartment);
                //Если запрещено редактировать подразделение на момент создания заявки, то нужно сохранить исходное
                if (!model.IsDepartmentEditable)
                {
                    entity.TargetDepartment = entity.SourceDepartment;
                    entity.TargetManager = entity.SourceManager;
                }
                if (!model.IsPositionEditable)
                {
                    entity.TargetPosition = entity.SourcePosition;
                    entity.TargetStaffEstablishedPostRequest = entity.SourceStaffEstablishedPostRequest;
                }
                //Тип заявки
                entity.Type = StaffMovementsTypesDao.Load(model.RequestType);
                //Данные заявки, создаём и сохраняем
                entity.Data = new StaffMovementsData();
                entity.Data.Grade = model.Grade;
                entity.Data.HoursType = ScheduleDao.Load(model.HoursType);
                entity.Data.Salary = model.TargetSalaryCount;
                StaffMovementsDataDao.SaveAndFlush(entity.Data);
                //Сохраняем надбавки
                SaveAdditions(entity, model);

                //Документы, создаём сразу все.
                var docs = new List<StaffMovementsDocs>();
                docs.Add(new StaffMovementsDocs { DocType = (int)StaffMovementsDocsTypes.AdditionalAgreementDoc, Request = entity });
                docs.Add(new StaffMovementsDocs { DocType = (int)StaffMovementsDocsTypes.MaterialLiabilityDoc, Request = entity });
                docs.Add(new StaffMovementsDocs { DocType = (int)StaffMovementsDocsTypes.MovementNote, Request = entity });
                docs.Add(new StaffMovementsDocs { DocType = (int)StaffMovementsDocsTypes.MovementOrderDoc, Request = entity });
                docs.Add(new StaffMovementsDocs { DocType = (int)StaffMovementsDocsTypes.RequirementsOrderDoc, Request = entity });
                docs.Add(new StaffMovementsDocs { DocType = (int)StaffMovementsDocsTypes.ServiceOrderDoc, Request = entity });
                entity.Docs = docs;
            }
            #endregion
            #region Данные о переводе, заполняет персонаж или руководитель
            if (model.IsDepartmentEditable)
            {
                if (entity.TargetDepartment != null && entity.TargetDepartment.Id != model.TargetDepartmentId)
                {
                    entity.TargetManagerAccept = null;
                    entity.TargetChief = null;
                    entity.TargetChiefAccept = null;
                }
                entity.TargetDepartment = DepartmentDao.Load(model.TargetDepartmentId);
                entity.TargetManager = GetManagerForDepartment(entity.TargetDepartment);
            }
            if (model.IsPositionEditable)
            {
                entity.TargetStaffEstablishedPostRequest = StaffEstablishedPostUserLinksDao.Load(model.UserLinkId);
                entity.TargetPosition = entity.TargetStaffEstablishedPostRequest.StaffEstablishedPost.Position;
            }
            #endregion
            #region Общее
            if (model.StatusId <= 1 || model.IsManagerEditable || model.IsPersonnelManagerEditable || model.IsPersonnelManagerBankAcceptAvailable)
            {
                entity.MovementDate = model.MovementDate;
                entity.MovementTempTo = model.MovementTempTo;
                entity.Data.MovementReason = model.MovementReason;
            }
            #endregion
            #region Для руководителей
            if (model.IsManagerEditable)
            {
                entity.IsTempMoving = model.IsTempMoving;
                entity.Data.MovementCondition = model.MovementCondition;//Условие перевода
                entity.Data.Conjunction = model.Conjunction;
                entity.Data.PyrusLink = model.PyrusLink;
                entity.Data.Salary = model.TargetSalaryCount;
                entity.Data.Grade = model.Grade;//Грейд
                entity.Data.HoursType = ScheduleDao.Load(model.HoursType);//График работы
                entity.Data.TargetCasingType = model.TargetCasingType;
                SaveAdditions(entity, model);
            }
            #endregion
            #region Для кадров
            if (model.IsPersonnelManagerEditable)
            {
                entity.Data.Grade = model.Grade;//Грейд
                entity.Data.HoursType = ScheduleDao.Load(model.HoursType);//График работы
                entity.Data.TargetCasingType = model.TargetCasingType;
                entity.Data.Salary = model.TargetSalaryCount;
                //entity.Data.AccessGroup = AccessGroupDao.Load(model.AccessGroup);//Группа доступа
                //Ставим галочки в документах
                if (model.IsDocsEditable)
                {
                    StaffMovementsDocsDao.Update(x => x.Request.Id == entity.Id && x.DocType == (int)StaffMovementsDocsTypes.MovementNote, y => y.IsRequired = model.MovementNoteIsRequired);

                }
                //Сохраняем надбавки
                SaveAdditions(entity, model);
            }
            #endregion

            #region Согласования, утверждения, отмены и изменение статуса
            switch (model.StatusId)
            {
                case 1:
                    if (model.ISRejectAvailable && model.IsRejectButtonPressed)
                    {
                        //Если нажали кнопку отказа, то отказ и всё поезд ушёл.
                        entity.DeleteDate = DateTime.Now;
                        entity.RejectDate = DateTime.Now;
                        entity.RejectedBy = UserDao.Load(CurrentUser.Id);
                        entity.RejectReason = StaffMovementsRejectReasonDao.Load((int)StaffMovementsRejectReasonEnum.UserReject);
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Canceled);
                        if (entity.TargetStaffEstablishedPostRequest.ReserveType != null && entity.TargetStaffEstablishedPostRequest.DocId == entity.Id)
                        {
                            entity.TargetStaffEstablishedPostRequest.ReserveType = null;
                            entity.TargetStaffEstablishedPostRequest.DocId = null;
                        }
                    }
                    if (model.IsAcceptButtonPressed && model.IsUserAcceptAvailable)
                    {
                        //Если согласовано пользователем
                        entity.SendDate = DateTime.Now;
                        if (entity.Type.Id == 2)
                        {
                            entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.SourceManager);
                        }
                        else
                        {
                            entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.TargetManager);
                        }
                    }
                    if (model.IsAcceptButtonPressed && model.IsSourceManagerAcceptAvailable)
                    {
                        //Если согласовано отпускающим руководителем
                        entity.SendDate = DateTime.Now;
                        entity.SourceManagerAccept = DateTime.Now;
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.TargetManager);
                        if (entity.SourceManager != null && entity.SourceManager.Id != CurrentUser.Id)
                        {
                            //DocumentApprovalDao
                            DocumentApproval newapprove = new DocumentApproval();
                            newapprove.ApprovalType = (int)ApprovalTypeEnum.StaffMovements;
                            newapprove.ApproveUser = entity.SourceManager;
                            newapprove.AssistantUser = UserDao.Load(CurrentUser.Id);
                            newapprove.CreateDate = DateTime.Now;
                            newapprove.DocId = entity.Id;
                            newapprove.Number = 1;
                            DocumentApprovalDao.SaveAndFlush(newapprove);
                        }
                    }
                    if (model.IsAcceptButtonPressed && model.IsTargetManagerAcceptAvailable)
                    {
                        //Если согласовано принимающим руководителем
                        entity.SendDate = DateTime.Now;
                        entity.SourceManagerAccept = DateTime.Now;
                        entity.TargetManagerAccept = DateTime.Now;
                        //entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.PersonelManagerBank);
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Chief);//После принимающего идёт вышестоящий
                        if (entity.TargetManager != null && entity.TargetManager.Id != CurrentUser.Id)
                        {
                            //DocumentApprovalDao
                            DocumentApproval newapprove = new DocumentApproval();
                            newapprove.ApprovalType = (int)ApprovalTypeEnum.StaffMovements;
                            newapprove.ApproveUser = entity.TargetManager;
                            newapprove.AssistantUser = UserDao.Load(CurrentUser.Id);
                            newapprove.CreateDate = DateTime.Now;
                            newapprove.DocId = entity.Id;
                            newapprove.Number = 2;
                            DocumentApprovalDao.SaveAndFlush(newapprove);
                        }
                        entity.TargetStaffEstablishedPostRequest.DocId = entity.Id;
                        entity.TargetStaffEstablishedPostRequest.ReserveType = (int)StaffReserveTypeEnum.StaffMovements;
                    }
                    break;
                case 2:
                    if (model.ISRejectAvailable && model.IsRejectButtonPressed)
                    {
                        //Если нажали кнопку отказа, то отказ и всё поезд ушёл.
                        entity.DeleteDate = DateTime.Now;
                        entity.RejectDate = DateTime.Now;
                        entity.RejectedBy = UserDao.Load(CurrentUser.Id);
                        entity.RejectReason = StaffMovementsRejectReasonDao.Load((int)StaffMovementsRejectReasonEnum.SourceManagerReject);
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Canceled);
                        if (entity.TargetStaffEstablishedPostRequest.ReserveType != null && entity.TargetStaffEstablishedPostRequest.DocId == entity.Id)
                        {
                            entity.TargetStaffEstablishedPostRequest.ReserveType = null;
                            entity.TargetStaffEstablishedPostRequest.DocId = null;
                        }
                    }
                    if (model.IsAcceptButtonPressed && model.IsSourceManagerAcceptAvailable)
                    {
                        //Если согласовано отпускающим руководителем
                        if (entity.SourceManager != null && entity.SourceManager.Id != CurrentUser.Id)
                        {
                            //DocumentApprovalDao
                            DocumentApproval newapprove = new DocumentApproval();
                            newapprove.ApprovalType =(int) ApprovalTypeEnum.StaffMovements;
                            newapprove.ApproveUser = entity.SourceManager;
                            newapprove.AssistantUser = UserDao.Load(CurrentUser.Id);
                            newapprove.CreateDate = DateTime.Now;
                            newapprove.DocId = entity.Id;
                            newapprove.Number = 1;
                            DocumentApprovalDao.SaveAndFlush(newapprove);
                        }
                        entity.SourceManagerAccept = DateTime.Now;
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.TargetManager);
                    }
                    break;
                case 3:
                    if (model.ISRejectAvailable && model.IsRejectButtonPressed)
                    {
                        //Если нажали кнопку отказа, то отказ и всё поезд ушёл.
                        entity.DeleteDate = DateTime.Now;
                        entity.RejectDate = DateTime.Now;
                        entity.RejectedBy = UserDao.Load(CurrentUser.Id);
                        entity.RejectReason = StaffMovementsRejectReasonDao.Load((int)StaffMovementsRejectReasonEnum.TargetManagerReject);
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Canceled);
                        if (entity.TargetStaffEstablishedPostRequest.ReserveType != null && entity.TargetStaffEstablishedPostRequest.DocId == entity.Id)
                        {
                            entity.TargetStaffEstablishedPostRequest.ReserveType = null;
                            entity.TargetStaffEstablishedPostRequest.DocId = null;
                        }
                    }
                    if (model.IsAcceptButtonPressed && model.IsTargetManagerAcceptAvailable)
                    {
                        //Если согласовано принимающим руководителем, в таком случае нужну забронировать вакансию
                        if (entity.TargetManager != null && entity.TargetManager.Id != CurrentUser.Id)
                        {
                            //DocumentApprovalDao
                            DocumentApproval newapprove = new DocumentApproval();
                            newapprove.ApprovalType = (int)ApprovalTypeEnum.StaffMovements;
                            newapprove.ApproveUser = entity.TargetManager;
                            newapprove.AssistantUser = UserDao.Load(CurrentUser.Id);
                            newapprove.CreateDate = DateTime.Now;
                            newapprove.DocId = entity.Id;
                            newapprove.Number = 2;
                            DocumentApprovalDao.SaveAndFlush(newapprove);
                        }
                        entity.TargetManagerAccept = DateTime.Now;
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Chief);//После принимающего идёт вышестоящий
                        //entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.PersonelManagerBank);
                        entity.TargetStaffEstablishedPostRequest.DocId = entity.Id;
                        entity.TargetStaffEstablishedPostRequest.ReserveType = (int)StaffReserveTypeEnum.StaffMovements;
                    }
                    break;
                case 4:
                case 5:
                    if (model.IsStopButtonAvailable && model.IsStopButtonPressed)
                    {
                        //Если нажали кнопку приостановки согласования
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Blocked);
                        //Тут еще нужно отправить письмо с угрозами руководителям и сотруднику
                    }
                    if (model.ISRejectAvailable && model.IsRejectButtonPressed)
                    {
                        //Если нажали кнопку отказа, то отказ и всё поезд ушёл.
                        entity.DeleteDate = DateTime.Now;
                        entity.RejectDate = DateTime.Now;
                        entity.RejectedBy = UserDao.Load(CurrentUser.Id);
                        entity.RejectReason = StaffMovementsRejectReasonDao.Load((int)StaffMovementsRejectReasonEnum.PersonnelManagerBankReject);
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Canceled);
                        if (entity.TargetStaffEstablishedPostRequest.ReserveType != null && entity.TargetStaffEstablishedPostRequest.DocId == entity.Id)
                        {
                            entity.TargetStaffEstablishedPostRequest.ReserveType = null;
                            entity.TargetStaffEstablishedPostRequest.DocId = null;
                        }
                    }
                    if (model.IsPersonnelManagerBankAcceptAvailable && model.IsAcceptButtonPressed)
                    {
                        //Если согласовано кадровиком банка
                        entity.PersonnelManagerBank = UserDao.Load(CurrentUser.Id);
                        entity.PersonnelManagerBankAccept = DateTime.Now;
                        //entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Chief);
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Approved);//перевод оформлен
                    }
                    break;
                case 6:
                    if (model.ISRejectAvailable && model.IsRejectButtonPressed)
                    {
                        //Если нажали кнопку отказа, то отказ и всё поезд ушёл.
                        entity.DeleteDate = DateTime.Now;
                        entity.RejectDate = DateTime.Now;
                        entity.RejectedBy = UserDao.Load(CurrentUser.Id);
                        entity.RejectReason = StaffMovementsRejectReasonDao.Load((int)StaffMovementsRejectReasonEnum.ChiefManagerReject);
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Canceled);
                        if (entity.TargetStaffEstablishedPostRequest.ReserveType != null && entity.TargetStaffEstablishedPostRequest.DocId == entity.Id)
                        {
                            entity.TargetStaffEstablishedPostRequest.ReserveType = null;
                            entity.TargetStaffEstablishedPostRequest.DocId = null;
                        }
                    }
                    if (model.IsChiefAcceptAvailable && model.IsAcceptButtonPressed)
                    {
                        //Если согласовано вышестоящим руководителем
                        entity.TargetChief = UserDao.Load(CurrentUser.Id);
                        entity.TargetChiefAccept = DateTime.Now;
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Personnel);
                    }
                    break;
                case 7:
                    if (model.ISRejectAvailable && model.IsRejectButtonPressed)
                    {
                        //Если нажали кнопку отказа, то отказ и всё поезд ушёл.
                        entity.DeleteDate = DateTime.Now;
                        entity.RejectDate = DateTime.Now;
                        entity.RejectedBy = UserDao.Load(CurrentUser.Id);
                        entity.RejectReason = StaffMovementsRejectReasonDao.Load((int)StaffMovementsRejectReasonEnum.PersonnelManagerReject);
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Canceled);
                        if (entity.TargetStaffEstablishedPostRequest.ReserveType != null && entity.TargetStaffEstablishedPostRequest.DocId == entity.Id)
                        {
                            entity.TargetStaffEstablishedPostRequest.ReserveType = null;
                            entity.TargetStaffEstablishedPostRequest.DocId = null;
                        }
                    }
                    if (model.IsPersonnelManagerAcceptAvailable && model.IsAcceptButtonPressed)
                    {
                        //Если согласовано кадровиком
                        entity.PersonnelManager = UserDao.Load(CurrentUser.Id);
                        entity.PersonnelManagerAccept = DateTime.Now;
                        //entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Approved);
                        var check = StaffMovementsDao.CheckIfPersonnalChargeChanges(entity.Id);

                        entity.Status = check ? StaffMovementsStatusDao.Load((int)StaffMovementsStatus.PersonelManagerBank) //После кадровика идёт кадровик банк
                            : StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Approved); //Если нет изменений надбавок, то перевод оформлен
                    }
                    break;
                case 8:
                    if (model.ISRejectAvailable && model.IsRejectButtonPressed)
                    {
                        //Если нажали кнопку отказа, то отказ и всё поезд ушёл.
                        entity.DeleteDate = DateTime.Now;
                        entity.RejectDate = DateTime.Now;
                        entity.RejectedBy = UserDao.Load(CurrentUser.Id);
                        entity.RejectReason = StaffMovementsRejectReasonDao.Load((int)StaffMovementsRejectReasonEnum.TargetManagerReject);
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Canceled);
                        if (entity.TargetStaffEstablishedPostRequest.ReserveType != null && entity.TargetStaffEstablishedPostRequest.DocId == entity.Id)
                        {
                            entity.TargetStaffEstablishedPostRequest.ReserveType = null;
                            entity.TargetStaffEstablishedPostRequest.DocId = null;
                        }
                    }
                    //Проверяем все документы, если у обязательного документа нет вложения - не выходим из этого статуса
                    bool accept = true;
                    foreach (var doc in entity.Docs)
                    {
                        if (doc.IsRequired && doc.Attachment == null) accept = false;
                    }
                    if (accept) entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.DocsApproved);
                    break;
                case 9:
                    //Проверяем все документы, если у обязательного документа нет вложения - нужно вернутся обратно
                    bool accept_ = true;
                    foreach (var doc in entity.Docs)
                    {
                        if (doc.IsRequired && doc.Attachment == null) accept_ = false;
                    }
                    if (!accept_) entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.ChiefControl);
                    if (model.ISRejectAvailable && model.IsRejectButtonPressed)
                    {
                        //Если нажали кнопку отказа, то отказ и всё поезд ушёл.
                        entity.DeleteDate = DateTime.Now;
                        entity.RejectDate = DateTime.Now;
                        entity.RejectedBy = UserDao.Load(CurrentUser.Id);
                        entity.RejectReason = StaffMovementsRejectReasonDao.Load((int)StaffMovementsRejectReasonEnum.PersonnelManagerReject);
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Canceled);
                        if (entity.TargetStaffEstablishedPostRequest.ReserveType != null && entity.TargetStaffEstablishedPostRequest.DocId == entity.Id)
                        {
                            entity.TargetStaffEstablishedPostRequest.ReserveType = null;
                            entity.TargetStaffEstablishedPostRequest.DocId = null;
                        }
                    }
                    if (model.IsConfirmButtonAvailable && model.IsConfirmButtonPressed)
                    {
                        //Заявка подтверждена. все щасливы, ждём выгрузки в одноэс
                        //entity.PersonnelManager = UserDao.Load(CurrentUser.Id);
                        //entity.PersonnelManagerAccept = DateTime.Now;
                        entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Approved);
                    }
                    break;
                case 10:
                    break;
                case 11:
                    break;
            }
            #endregion
        }
예제 #2
0
 /// <summary>
 /// Сохранение надвбавок
 /// </summary>
 /// <param name="entity">сущность</param>
 /// <param name="model">модель</param>
 private void SaveAdditions(StaffMovements entity, StaffMovementsEditModel model)
 {
     foreach (var addition in model.AdditionsToEdit)
     {
         if (!entity.Additions.Any(x => x.ExtraCharges != null && x.ExtraCharges.Id == addition.Type.Id))
         {
             entity.Additions.Add(new StaffPostChargeLinks
             {
                 CreateDate = DateTime.Now,
                 Creator = UserDao.Load(CurrentUser.Id),
                 EditDate = DateTime.Now,
                 Editor = UserDao.Load(CurrentUser.Id),
                 ExtraChargeActions = StaffExtraChargeActionsDao.Load(addition.Action),
                 ExtraCharges = StaffExtraChargesDao.Load(addition.Type.Id),
                 IsActive = false,
                 Salary = addition.Value,
                 Staff = UserDao.Load(model.User.Id),
                 StaffMovements = entity
             });
         }
         else
         {
             var ad = entity.Additions.Where(x => x.ExtraCharges.Id == addition.Type.Id).First();
             ad.Salary = addition.Value;
             ad.ExtraChargeActions = StaffExtraChargeActionsDao.Load(addition.Action);
         }
     }
 }
예제 #3
0
        /// <summary>
        /// Сохранение модели
        /// </summary>
        /// <param name="model"></param>
        public void SaveModel(StaffMovementsEditModel model)
        {
            StaffMovements entity;
            if (model.Id == 0)
            {
                //Если идентификатор = 0, то нужно создать новую сущность
                entity = new StaffMovements();
            }
            else
            {
                //Загружаем сущьность если идентификатор отличен от 0
                entity = StaffMovementsDao.Load(model.Id);
            }

            //Меняем поля и сохраняем
            //файлики
            if (model.IsDocsAddAvailable && model.Id > 0)
                SaveFiles(model);
            ChangeEntityProperties(entity, model);
            StaffMovementsDao.SaveAndFlush(entity);
            //файлики только для первого раза
            if (model.IsDocsAddAvailable && model.Id == 0 && entity.Id > 0)
            {
                model.Id = entity.Id;//Нужно присвоить модели идентификатор
                SaveFiles(model);
            }
        }
예제 #4
0
 /// <summary>
 /// Возвращаем заявку в черновик
 /// </summary>
 /// <param name="entity">сущность заявки</param>
 private void ChangeEntityStatusToTemp(StaffMovements entity)
 {
     entity.Status = StaffMovementsStatusDao.Load((int)StaffMovementsStatus.Temp);
     entity.SendDate = null;
     entity.SourceManagerAccept = null;
     entity.TargetManagerAccept = null;
     entity.PersonnelManagerBankAccept = null;
     entity.TargetChiefAccept = null;
     //entity.TargetStaffEstablishedPostRequest.re
     if (entity.TargetStaffEstablishedPostRequest.ReserveType != null && entity.TargetStaffEstablishedPostRequest.DocId == entity.Id)
     {
         entity.TargetStaffEstablishedPostRequest.ReserveType = null;
         entity.TargetStaffEstablishedPostRequest.DocId = null;
     }
     try
     {
         DocumentApprovalDao.Update(x => x.DocId == entity.Id && x.ApprovalType == (int)ApprovalTypeEnum.StaffMovements, y => y.IsArchive = true);
     }
     catch (Exception) { }
     entity.PersonnelManagerAccept = null;
 }