arm-core/web/src/services/api/consolidations.ts
Veronika Tsygankova fbc6645239 [AURORA-1678]: Чек-лист документов:
- добавлен фильтр по документам
- в запрос на загрузку добавлен параметр documents
- Labeled вынесен в components/, убраны дубли в шахматке, таблице корректировок
2026-11-06 16:47:08 +03:00

26 lines
2.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { api, apiFetchBlob } from '../../api/client';
import type { ConsolidationCreate, VersionStatusUpdate } from '../../types/api';
import type { LockOut } from '../../types/consolidations/common_types';
import type { IConsolidation } from '../../types/consolidations/consolidations';
import type { ChecklistBackendShape, VersionCard } from '../../types/consolidations/version_members';
/** Список консолидаций ГК; `in_work_only` — серверный фильтр «Только в работе» (по умолчанию false). */
export const getConsolidations = (groupId: string, in_work_only: boolean) =>
api.get<IConsolidation[]>(`/company-groups/${groupId}/consolidations`, { in_work_only });
export const getVersionCard = (versionId: string) => api.get<VersionCard>(`/consolidations/versions/${versionId}`);
export const createConsolidation = (body: ConsolidationCreate) => api.post<VersionCard>('/consolidations', body);
/** CSV чек-листа; `documents` — отбор колонок (`BALANCE,INCOME,OSV:01`), не задан — вся матрица. */
export const downloadChecklistCsv = (versionId: string, documents?: string) => {
const params = new URLSearchParams({ format: 'csv' });
if (documents) params.set('documents', documents);
return apiFetchBlob(`/consolidations/versions/${versionId}/checklist?${params}`);
};
export const getChecklist = (versionId: string) => api.get<ChecklistBackendShape>(`/consolidations/versions/${versionId}/checklist`);
/** «Взять в работу»: 201 — взята, 200 — уже ваша; чужая — 409 `LOCKED_BY_OTHER` (перехват — с `takeover_reason`). */
export const lockVersion = (versionId: string, reason?: string | null) =>
api.post<LockOut>(`/consolidations/versions/${versionId}/lock`, reason ? { takeover_reason: reason } : {});
/** Ручная смена статуса (гайд §5.7): нужна своя блокировка; ответ — карточка версии с новым статусом. */
export const updateStatus = (versionId: string, body: VersionStatusUpdate) =>
api.post<VersionCard>(`/consolidations/versions/${versionId}/status`, body);