import { IRequestType } from '../models/types'; /** * Типы заявок (плитки) по категориям, в порядке отображения. * id — латиницей, т.к. это ключ в реестре форм (forms/registry) и в ссылках (rptype). */ export const REQUEST_TYPES: IRequestType[] = [ // Отдел рекрутинга { id: 'recruiting-selection', categoryId: 'recruiting', title: 'Заявка на подбор', icon: 'search' }, { id: 'recruiting-hire', categoryId: 'recruiting', title: 'Заявка на прием', icon: 'people' }, { id: 'recruiting-referral', categoryId: 'recruiting', title: 'Реферальная рекомендация', icon: 'send' }, // IT { id: 'it-workplace-setup', categoryId: 'it', title: 'Заявка на организацию рабочего места', icon: 'monitor' }, { id: 'it-1c-ticket', categoryId: 'it', title: 'Заявка в отдел 1С', icon: 'clipboard' }, // Отдел кадров { id: 'hr-vacation', categoryId: 'hr', title: 'Заявление на оплачиваемый ежегодный трудовой отпуск', icon: 'calendar' }, { id: 'hr-unpaid-leave', categoryId: 'hr', title: 'Заявление на отпуск без сохранения заработной платы', icon: 'document' }, // Пока только тестировщикам: тип заявки и маршрут ещё не заведены в админке approval-route. { id: 'hr-skud-explanation', categoryId: 'hr', title: 'Объяснительная по СКУД', icon: 'user-check', comingSoon: true }, // Пока только тестировщикам: тип заявки и маршрут ещё не заведены в админке approval-route. { id: 'hr-business-trip', categoryId: 'hr', title: 'Заявка на командировку', icon: 'vehicle', comingSoon: true }, { id: 'hr-dismissal', categoryId: 'hr', title: 'Заявление на увольнение', icon: 'document', comingSoon: true }, { id: 'clearance-form', categoryId: 'hr', title: 'Обходной лист', icon: 'clipboard', comingSoon: true }, { id: 'hr-transfer', categoryId: 'hr', title: 'Заявка на перемещение сотрудника', icon: 'people', comingSoon: true }, // Пока только тестировщикам: каркас без полей по видам; тип и маршрут не заведены в админке approval-route. { id: 'hr-contract-change', categoryId: 'hr', title: 'Изменение условий трудового договора', icon: 'document', comingSoon: true }, // Склад / Снабжение — формы открыты для ознакомления, но приём заявок ещё не // запущен (маршруты/списки не готовы): кнопки сохранения/отправки в самих // формах задизейблены (см. SubmitActions в каждой из них). { id: 'wh-tmc-transfer', categoryId: 'warehouse', title: 'СЗ на перемещение ТМЦ', icon: 'send' }, { id: 'wh-service-request', categoryId: 'warehouse', title: 'Заявка на услуги', icon: 'document' }, { id: 'wh-concrete-request', categoryId: 'warehouse', title: 'Заявка на бетон', icon: 'vehicle' } ]; /** Заявки, относящиеся к указанной категории. */ export function getRequestsByCategory(categoryId: string): IRequestType[] { return REQUEST_TYPES.filter((request) => request.categoryId === categoryId); }