diff --git a/client-di2/src/pages/calculations.tsx b/client-di2/src/pages/calculations.tsx index 0ab5f6a..bacfeb7 100644 --- a/client-di2/src/pages/calculations.tsx +++ b/client-di2/src/pages/calculations.tsx @@ -595,12 +595,19 @@ function formatQuarterLabel(q: string): string { return `${q.slice(0, 4)} Q${quarter}`; } -function ChartTooltip({ active, payload, label, formatValue }: any) { +function ChartTooltip({ active, payload, label, formatValue, seriesOrder }: any) { if (!active || !payload?.length) return null; + const items = seriesOrder + ? [...payload].sort((a: any, b: any) => { + const ia = seriesOrder.indexOf(a.dataKey); + const ib = seriesOrder.indexOf(b.dataKey); + return (ia === -1 ? 999 : ia) - (ib === -1 ? 999 : ib); + }) + : payload; return (

{label}

- {payload.map((entry: any) => ( + {items.map((entry: any) => (
{entry.name} @@ -688,7 +695,6 @@ function VatTab({ data, quarters, balance, sync, tracker, quarterControl }: { const purchasesByRate = (data.byRate ?? []).filter((r: any) => r.direction === "purchases"); const quarter = data.currentQuarter ?? null; const redHanging: any[] = quarterControl?.redHanging ?? []; - const redNoAdvance: any[] = quarterControl?.redNoAdvance ?? []; const contractTotals = quarterControl?.totals ?? null; const markerCounts: any[] = quarterControl?.byMarker ?? []; const allContractRows: any[] = allContractsQuery.data?.rows ?? []; @@ -795,14 +801,24 @@ function VatTab({ data, quarters, balance, sync, tracker, quarterControl }: { tickLine={false} /> - } /> + ( + + )} + /> {groupBy === "month" ? ( <> - - + + ) : ( <> @@ -962,7 +978,7 @@ function VatTab({ data, quarters, balance, sync, tracker, quarterControl }: { ) : (
{redHanging.length > 0 ? ( -
+
@@ -990,19 +1006,6 @@ function VatTab({ data, quarters, balance, sync, tracker, quarterControl }: {

Договоров с висячим авансом и без отгрузки нет

)} - {redNoAdvance.length > 0 && ( -
-

- Оплачено, аванс не висячий — проверить зачёт у бухгалтерии ({redNoAdvance.length}): -

-
- {redNoAdvance.map((r: any, i: number) => ( - {r.counterparty} — {formatCurrency(r.paid)} - ))} -
-
- )} -

Итого по списку: {redHanging.length} договоров, сумма авансов {formatCurrency(redHangingAdvanceSum)}