Перенос в arm-core/web правок RSHB/arm-web PR #27 «Панель «Первичные документы»: рабочий стол консолидации и загрузка в консолидацию» (ветка test, диапазон коммитов fc75edf..100fbfb), только src/: - services/api/files.ts: filesPath, маршруты /consolidations/{cid}/legal-entities/{le}/files вместо ?consolidation_version_id=, которое ядро игнорирует; - store/slices/consolidations/selectors.ts: текущая консолидация и статус версии (новый файл); - widgets/FilesDrawer: рабочий стол консолидации, переключатель «Все документы организации», подпись консолидации у файла (consolidationLabel.ts), загрузка только в версии «в работе»; - widgets/Sidebar: перечитывание списка консолидаций после создания; - типы api.ts и consolidations.ts, тесты. Закрывает находку I-1 из #98: загрузка из встроенного фронта снова переводит версию INITIATED -> DOCUMENTS_PROCESSING. Спеки, CLAUDE.md и scripts из arm-web не переносятся. После переноса web/src и arm-web@test идентичны (diff -rq пуст). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
15 lines
841 B
TypeScript
15 lines
841 B
TypeScript
import type { IConsolidation } from '../../types/consolidations/consolidations';
|
||
import { quarterShortLabel } from '../../utils/labels';
|
||
|
||
/** Подпись консолидации у файла в режиме «Все документы организации» (design D-4): null — файл текущей консоли. */
|
||
export function consolidationLabel(
|
||
fileConsolidationId: string | null,
|
||
consolidations: IConsolidation[],
|
||
currentConsolidationId: string | null,
|
||
): string | null {
|
||
if (fileConsolidationId === null) return 'вне консолидации';
|
||
if (fileConsolidationId === currentConsolidationId) return null;
|
||
const found = consolidations.find((c) => c.consolidation_id === fileConsolidationId);
|
||
return found ? `${found.year} ${quarterShortLabel(found.quarter)}` : 'другая консолидация';
|
||
}
|