/// <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), "Невозможно удалить организацию, так как она используется в договорах."); }
/// <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)); }