Esempio n. 1
0
        /// <summary>
        /// Процедура создания кода для подразделения.
        /// </summary>
        /// <param name="entity">Заявка для подразделения</param>
        /// <param name="dep">Подразделение, для которго надо создать код.</param>
        /// <param name="curUser">Текущий пользователь.</param>
        /// <param name="error">Переменная для сообщений.</param>
        /// <returns></returns>
        protected bool CreateCodeForDepartment(StaffDepartmentRequest entity, Department dep, User curUser, out string error)
        {
            error = string.Empty;
            string Code = string.Empty;

            if (entity.ItemLevel == 1 || entity.ItemLevel > 7)
            {
                error = "Создание подразделения такого уровня не предусмотрено программой!";
                return true;
            }

            //в заявках на изменение код создается только для точек 7 иуровня
            if (entity.RequestType.Id == 2 && entity.ItemLevel <= 6)
            {
                return true;
            }

            StaffDepartmentBranch br = new StaffDepartmentBranch();
            StaffDepartmentManagement mn = new StaffDepartmentManagement();

            switch (entity.ItemLevel)
            {
                case 2://филиал
                    StaffDepartmentBranch Depbr = new StaffDepartmentBranch()
                    {
                        Code = StaffDepartmentBranchDao.GetNewBranchCode(),
                        Name = dep.Name,
                        Department = dep,
                        Creator = curUser,
                        CreateDate = DateTime.Now
                    };

                    try
                    {
                        StaffDepartmentBranchDao.SaveAndFlush(Depbr);
                    }
                    catch (Exception ex)
                    {
                        StaffDepartmentBranchDao.RollbackTran();
                        error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message);
                        return false;
                    }
                    break;
                case 3://дирекция
                    br = StaffDepartmentBranchDao.GetDepartmentBranchByDeparment(DepartmentDao.GetParentDepartmentWithLevel(dep, dep.ItemLevel.Value - 1));
                    if (br == null)
                    {
                        error = "Для данной точки не определен филиал! Проверьте данные в справочнике кодировки.";
                        return false;
                    }

                    StaffDepartmentManagement Depm = new StaffDepartmentManagement()
                    {
                        Code = StaffDepartmentManagementDao.GetNewManagementCode(br),//сделать
                        Name = dep.Name,
                        DepartmentBranch = br,
                        Department = dep,
                        Creator = curUser,
                        CreateDate = DateTime.Now
                    };

                    try
                    {
                        StaffDepartmentManagementDao.SaveAndFlush(Depm);
                    }
                    catch (Exception ex)
                    {
                        StaffDepartmentManagementDao.RollbackTran();
                        error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message);
                        return false;
                    }
                    break;
                case 4://управление
                    mn = StaffDepartmentManagementDao.GetDepartmentManagementByDeparment(DepartmentDao.GetParentDepartmentWithLevel(dep, dep.ItemLevel.Value - 1));

                    if (mn == null)
                    {
                        error = "Для данной точки не определена дирекция! Проверьте данные в справочнике кодировки.";
                        return false;
                    }

                    StaffDepartmentAdministration Depa = new StaffDepartmentAdministration()
                    {
                        Code = StaffDepartmentAdministrationDao.GetNewAdministrationCode(mn),
                        Name = dep.Name,
                        DepartmentManagement = mn,
                        Department = dep,
                        Creator = curUser,
                        CreateDate = DateTime.Now
                    };

                    try
                    {
                        StaffDepartmentAdministrationDao.SaveAndFlush(Depa);
                    }
                    catch (Exception ex)
                    {
                        StaffDepartmentAdministrationDao.RollbackTran();
                        error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message);
                        return false;
                    }
                    break;
                case 5://бизнес-группа
                    StaffDepartmentAdministration adm = StaffDepartmentAdministrationDao.GetDepartmentAdministrationByDeparment(DepartmentDao.GetParentDepartmentWithLevel(dep, dep.ItemLevel.Value - 1));

                    if (adm == null)
                    {
                        error = "Для данной точки не определено управление! Проверьте данные в справочнике кодировки.";
                        return false;
                    }

                    StaffDepartmentBusinessGroup Depbg = new StaffDepartmentBusinessGroup()
                    {
                        Code = StaffDepartmentBusinessGroupDao.GetNewBusinessGroupCode(adm),
                        Name = dep.Name,
                        DepartmentAdministration = adm,
                        Department = dep,
                        Creator = curUser,
                        CreateDate = DateTime.Now
                    };

                    try
                    {
                        StaffDepartmentBusinessGroupDao.SaveAndFlush(Depbg);
                    }
                    catch (Exception ex)
                    {
                        StaffDepartmentBusinessGroupDao.RollbackTran();
                        error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message);
                        return false;
                    }
                    break;
                case 6://рп-привязка
                    StaffDepartmentBusinessGroup bg = StaffDepartmentBusinessGroupDao.GetDepartmentBusinessGroupByDeparment(DepartmentDao.GetParentDepartmentWithLevel(dep, dep.ItemLevel.Value - 1));

                    if (bg == null)
                    {
                        error = "Для данной точки не определена бизнес-группа! Проверьте данные в справочнике кодировки.";
                        return false;
                    }

                    StaffDepartmentRPLink Deprp = new StaffDepartmentRPLink()
                    {
                        Code = StaffDepartmentRPLinkDao.GetNewRPLinkCode(bg),
                        Name = dep.Name,
                        DepartmentBG = bg,
                        Department = dep,
                        Creator = curUser,
                        CreateDate = DateTime.Now
                    };

                    try
                    {
                        StaffDepartmentRPLinkDao.SaveAndFlush(Deprp);
                    }
                    catch (Exception ex)
                    {
                        StaffDepartmentRPLinkDao.RollbackTran();
                        error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message);
                        return false;
                    }
                    break;
                case 7://подразделение (точка)
                    //создаем код только для фронтов и бэкфронтов
                    if (entity.DepartmentAccessory.Id == 2 || entity.DepartmentAccessory.Id == 6)
                    {
                        br = StaffDepartmentBranchDao.GetDepartmentBranchByDeparment(DepartmentDao.GetParentDepartmentWithLevel(dep, dep.ItemLevel.Value - 1));
                        if (br == null)
                        {
                            error = "Для данной точки не определен филиал! Проверьте данные в справочнике кодировки.";
                            return false;
                        }

                        mn = StaffDepartmentManagementDao.GetDepartmentManagementByDeparment(DepartmentDao.GetParentDepartmentWithLevel(dep, dep.ItemLevel.Value - 1));
                        if (mn == null)
                        {
                            error = "Для данной точки не определена дирекция! Проверьте данные в справочнике кодировки.";
                            return false;
                        }

                        StaffDepartmentRPLink rp = StaffDepartmentRPLinkDao.GetDepartmentRPLinkByDeparment(DepartmentDao.GetParentDepartmentWithLevel(dep, dep.ItemLevel.Value - 1));
                        if (rp == null)
                        {
                            error = "Для данной точки не определена РП-привязка! Проверьте данные в справочнике кодировки.";
                            return false;
                        }

                        entity.DepartmentManagerDetails[0].DepCode = StaffDepartmentRequestDao.GetNewFinDepCode(br, mn, rp);
                        dep.FingradCode = entity.DepartmentManagerDetails[0].DepCode;

                        try
                        {
                            DepartmentDao.SaveAndFlush(dep);
                        }
                        catch (Exception ex)
                        {
                            DepartmentDao.RollbackTran();
                            error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message);
                            return false;
                        }
                    }
                    break;
            }

            return true;
        }
Esempio n. 2
0
        /// <summary>
        /// Сохраняем данные справочника кодировок РП-привязок.
        /// </summary>
        /// <param name="itemToAddEdit"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public bool SaveStaffDepartmentRPLink(StaffDepartmentRPLinkDto itemToAddEdit, out string error)
        {
            error = string.Empty;
            User curUser = UserDao.Load(AuthenticationService.CurrentUser.Id);

            StaffDepartmentRPLink entity = itemToAddEdit.rId == 0 ? null : StaffDepartmentRPLinkDao.Load(itemToAddEdit.rId);
            if (entity == null)
            {
                entity = new StaffDepartmentRPLink()
                {
                    Code = itemToAddEdit.rCode,
                    Name = itemToAddEdit.rName,
                    DepartmentBG = itemToAddEdit.BGId == 0 ? null : StaffDepartmentBusinessGroupDao.Get(itemToAddEdit.BGId),
                    Department = itemToAddEdit.rDepartmentId == 0 ? null : DepartmentDao.Load(itemToAddEdit.rDepartmentId),
                    Creator = curUser,
                    CreateDate = DateTime.Now
                };
            }
            else
            {
                entity.Code = itemToAddEdit.rCode;
                entity.Name = itemToAddEdit.rName;
                entity.DepartmentBG = itemToAddEdit.BGId == 0 ? null : StaffDepartmentBusinessGroupDao.Get(itemToAddEdit.BGId);
                entity.Department = itemToAddEdit.rDepartmentId == 0 ? null : DepartmentDao.Load(itemToAddEdit.rDepartmentId);
                entity.Editor = curUser;
                entity.EditDate = DateTime.Now;
            }

            try
            {
                StaffDepartmentRPLinkDao.SaveAndFlush(entity);
                error = "Данные сохранены!";
            }
            catch (Exception ex)
            {
                StaffDepartmentRPLinkDao.RollbackTran();
                error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message);
                return false;
            }

            return true;
        }