- режим запроса вынесен в utils/chessMatrixMode (all / manual / half) с тестами; при «одна сторона» запрос матрицы не уходит, индикатор загрузки снимается; - подсказка по спеке intercompany-matrix-ui: один текст в таблице и у фильтров, у фильтров — только в состоянии «одна сторона»; - высота шахматки: min-height только для состояния подсказки, обёртка снова auto (в обычном режиме «Итого» сразу под строками); - откат pairs?.length в shouldWarnCounterPairs (маскировал старый API); - вернули комментарий про сумму, лишний columns || [] и дубль CSS убраны; опечатка CataloguGroupTabsI. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
17 lines
1.0 KiB
TypeScript
17 lines
1.0 KiB
TypeScript
/**
|
||
* Режим запроса шахматки по фильтрам счетов:
|
||
* - `all` — фильтры пусты, берём полную матрицу;
|
||
* - `manual` — выбраны и Дт, и Кт, считаем по выбранным счетам;
|
||
* - `half` — выбрана только одна сторона: запрос не шлём, показываем подсказку.
|
||
*/
|
||
export type ChessMatrixMode = 'all' | 'manual' | 'half';
|
||
|
||
/** Текст для состояния «выбрана одна сторона» — в таблице и у фильтров один и тот же (openspec intercompany-matrix-ui). */
|
||
export const CHESS_HALF_FILTER_HINT = 'Для расчёта по счетам выберите счета и в Дт, и в Кт';
|
||
|
||
export const chessMatrixMode = (debit: readonly string[], credit: readonly string[]): ChessMatrixMode => {
|
||
if (debit.length > 0 && credit.length > 0) return 'manual';
|
||
if (debit.length === 0 && credit.length === 0) return 'all';
|
||
return 'half';
|
||
};
|