コード例 #1
0
        /// <summary>
        /// Проверка на возможность удаления
        /// </summary>
        /// <param name="organization"></param>
        /// <returns></returns>
        private void CheckPossibilityToDelete(AccountOrganization organizationToDelete, User user)
        {
            userService.CheckPermission(user, Permission.AccountOrganization_Delete);

            var receiptWaybillList = receiptWaybillRepository.GetList(organizationToDelete);

            GetExceptionString(receiptWaybillList, 3, "приходной накладной", "и еще в {0} приходных накладных");

            var movementWaybillList = movementWaybillRepository.GetList(organizationToDelete);

            GetExceptionString(movementWaybillList, 3, "накладной перемещения", "и еще в {0} накладных перемещения");

            var changeOwnerWaybillList = changeOwnerWaybillRepository.GetList(organizationToDelete);

            GetExceptionString(changeOwnerWaybillList, 3, "накладной смены собственника", "и еще в {0} накладных смены собственника");

            var writeoffWaybillList = writeoffWaybillRepository.GetList(organizationToDelete);

            GetExceptionString(writeoffWaybillList, 3, "накладной списания", "и еще в {0} накладных списания");

            var expenditureWaybillList = expenditureWaybillRepository.GetList(organizationToDelete);

            GetExceptionString(expenditureWaybillList, 3, "накладной реализации", "и еще в {0} накладных реализации");

            var returnFromClientWaybillList = returnFromClientWaybillRepository.GetList(organizationToDelete);

            GetExceptionString(returnFromClientWaybillList, 3, "накладной возврата от клиента", "и еще в {0} накладных возврата от клиента");

            // Проверяем наличие договоров с участием организации
            ValidationUtils.Assert(!contractRepository.AnyContracts(organizationToDelete), "Невозможно удалить организацию, так как она используется в договорах.");
        }
コード例 #2
0
        /// <summary>
        /// Получение списка накладных
        /// </summary>
        /// <param name="logicState">Статус накладной</param>
        /// <param name="storageIdList">Список кодов мест хранения</param>
        /// <param name="storagePermission">Право, которым определяются доступные места хранения</param>
        /// <param name="curatorIdList">Список кодов кураторов</param>
        /// <param name="curatorPermission">Право, которым определяются доступные пользователи</param>
        /// <param name="clientIdList">Список кодов клиентов</param>
        /// <param name="clientPermission">Право, которым определяются доступные клиенты</param>
        /// <param name="startDate">Начальная дата</param>
        /// <param name="endDate">Конечная дата</param>
        /// <param name="pageNumber">Номер страницы, первая 1.</param>
        /// <param name="dateType">Тип даты</param>
        /// <param name="priorToDate">Параметр "До даты"</param>
        /// <param name="user">Пользователь</param>
        /// <returns>Список накладных</returns>
        public IEnumerable <ReturnFromClientWaybill> GetList(ReturnFromClientWaybillLogicState logicState, IEnumerable <short> storageIdList, Permission storagePermission,
                                                             IEnumerable <int> curatorIdList, Permission curatorPermission, IEnumerable <int> clientIdList, Permission clientPermission, DateTime startDate,
                                                             DateTime endDate, int pageNumber, WaybillDateType dateType, DateTime?priorToDate, User user)
        {
            ISubCriteria <Storage> storageSubQuery = null;
            ISubCriteria <User>    curatorSubQuery = null;
            ISubCriteria <ReturnFromClientWaybill> returnFromClientWaybillSubQuery = null;

            switch (user.GetPermissionDistributionType(storagePermission))
            {
            case PermissionDistributionType.All:
                storageSubQuery = storageRepository.GetStorageSubQueryByAllPermission();
                break;

            case PermissionDistributionType.Teams:
                storageSubQuery = storageRepository.GetStorageSubQueryByTeamPermission(user.Id);
                break;

            case PermissionDistributionType.None:
                return(new List <ReturnFromClientWaybill>());
            }

            switch (user.GetPermissionDistributionType(curatorPermission))
            {
            case PermissionDistributionType.All:
                curatorSubQuery = userRepository.GetUserSubQueryByAllPermission();
                break;

            case PermissionDistributionType.Teams:
                curatorSubQuery = userRepository.GetUserSubQueryByTeamPermission(user.Id);
                break;

            case PermissionDistributionType.None:
                return(new List <ReturnFromClientWaybill>());
            }

            switch (user.GetPermissionDistributionType(Permission.ReturnFromClientWaybill_List_Details))
            {
            case PermissionDistributionType.All:
                returnFromClientWaybillSubQuery = returnFromClientWaybillRepository.GetReturnFromClientWaybillSubQueryByAllPermission();
                break;

            case PermissionDistributionType.Teams:
                returnFromClientWaybillSubQuery = returnFromClientWaybillRepository.GetReturnFromClientWaybillSubQueryByTeamPermission(user.Id);
                break;

            case PermissionDistributionType.Personal:
                returnFromClientWaybillSubQuery = returnFromClientWaybillRepository.GetReturnFromClientWaybillSubQueryByPersonalPermission(user.Id);
                break;

            case PermissionDistributionType.None:
                return(new List <ReturnFromClientWaybill>());
            }

            switch (user.GetPermissionDistributionType(clientPermission))
            {
            case PermissionDistributionType.None:
                return(new List <ReturnFromClientWaybill>());

            case PermissionDistributionType.All:
                break;
            }

            return(returnFromClientWaybillRepository.GetList(logicState, returnFromClientWaybillSubQuery, storageIdList, storageSubQuery,
                                                             curatorIdList, curatorSubQuery, clientIdList, startDate, endDate, pageNumber, dateType, priorToDate));
        }