8eb5b13985
Цифровая версия бумажной заявки на командировку (отдел кадров). Можно подать за другого сотрудника; маршрут — лентой точек (город + объект из справочника проектов + даты) с видом транспорта на каждом участке и вторым видом «Схема» (SVG, как схема метро). Задание — список задач. Смета — карточками статей (суточные, проезд, проживание, страховка, виза, другие расходы) с позициями, привязанными к точкам и участкам маршрута; суммы только вручную, итог с долями и разбивкой по объектам. Печать — без шапки с адресатом. Плитка пока только для тестировщиков (comingSoon): списки SharePoint не провизионированы, тип заявки и маршрут в админке не заведены. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
68 lines
3.3 KiB
TypeScript
68 lines
3.3 KiB
TypeScript
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
|
|
},
|
|
|
|
// Склад / Снабжение — формы открыты для ознакомления, но приём заявок ещё не
|
|
// запущен (маршруты/списки не готовы): кнопки сохранения/отправки в самих
|
|
// формах задизейблены (см. 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);
|
|
}
|