ca1d7512d6
Новая форма отдела кадров по бумажному шаблону «Заявление на увольнение ШТАТ»: сотрудник, должность, структурное и самостоятельное подразделение, последний рабочий день, контактный телефон, комментарий. По умолчанию заявка на себя, но можно подать за другого — маршрут резолвится по выбранному сотруднику. Подразделение подтягивается из профиля (SPS-Department, read-only), должность и организации — из справочника Employee/ByEmail. Последний рабочий день не может быть в прошлом; срок предупреждения об увольнении форма не проверяет — дату согласуют с работодателем. Перекрёстные ссылки с «Обходным листом»: колонки-гиперссылки ClearanceUrl / DismissalUrl (только в списках, формы их пока не пишут). Для них в провижинере появился тип колонки Url, а сам скрипт разбит на два прохода — сначала все списки, потом колонки: иначе Lookup на список другой формы держится на алфавитном порядке обхода манифестов. Списки «Заявление на увольнение 1 — данные» / «… — согласование» созданы на /sites/requests. Тип заявки в админке approval-route ещё не заведён — до этого форма откроется, но отправить заявку не даст. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
32 lines
2.0 KiB
TypeScript
32 lines
2.0 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' },
|
|
{ id: 'hr-dismissal', categoryId: 'hr', title: 'Заявление на увольнение', icon: 'document' },
|
|
{ id: 'clearance-form', categoryId: 'hr', title: 'Обходной лист', icon: 'clipboard' },
|
|
{ id: 'hr-transfer', categoryId: 'hr', title: 'Заявка на перемещение сотрудников', icon: 'people' },
|
|
|
|
// Склад / Снабжение
|
|
{ id: 'wh-tmc-transfer', categoryId: 'warehouse', title: 'СЗ на перемещение ТМЦ', icon: 'send' }
|
|
];
|
|
|
|
/** Заявки, относящиеся к указанной категории. */
|
|
export function getRequestsByCategory(categoryId: string): IRequestType[] {
|
|
return REQUEST_TYPES.filter((request) => request.categoryId === categoryId);
|
|
}
|