АРЧ АП11 - Архитектура после регресса: Архитектура: сделать counterparty и contract ranking-ответы business-first без отчетного preamble
This commit is contained in:
+12
-18
@@ -419,14 +419,12 @@ export function composeCounterpartyAnalyticsReply(
|
||||
|
||||
const lines: string[] = longevityQuestion
|
||||
? [
|
||||
`Заказчиков с самым длинным горизонтом сотрудничества: ${counterparties.length}.`,
|
||||
"Собран профиль длительности сотрудничества по годам и частоте активности.",
|
||||
`Строк агрегата: ${rows.length}.`
|
||||
`Коротко: заказчиков с самым длинным горизонтом сотрудничества — ${counterparties.length}.`,
|
||||
`Оценка собрана по подтвержденной активности в 1С: ${rows.length} строк в выборке.`
|
||||
]
|
||||
: [
|
||||
`Активные заказчики ${scopeLabel}: ${counterparties.length}.`,
|
||||
"Собран профиль активности заказчиков по платежным документам.",
|
||||
`Строк агрегата: ${rows.length}.`
|
||||
`Коротко: активных заказчиков ${scopeLabel} — ${counterparties.length}.`,
|
||||
`Оценка собрана по подтвержденным платежным документам: ${rows.length} строк в выборке.`
|
||||
];
|
||||
|
||||
if (counterparties.length === 0) {
|
||||
@@ -481,9 +479,8 @@ export function composeCounterpartyAnalyticsReply(
|
||||
: `Использованных договоров с подтвержденной связью с операциями: ${usedContracts}.`;
|
||||
|
||||
const lines: string[] = [
|
||||
usageLead,
|
||||
"Профиль договорной базы собран по справочнику и подтвержденным операциям.",
|
||||
`Строк агрегата: ${rows.length}.`
|
||||
`Коротко: ${usageLead.replace(/\.$/, "")}.`,
|
||||
`Что видно по договорной базе: ${rows.length} строк в подтвержденной выборке.`
|
||||
];
|
||||
|
||||
if (totalContracts > 0) {
|
||||
@@ -598,10 +595,9 @@ export function composeCounterpartyAnalyticsReply(
|
||||
|
||||
const lines: string[] = [
|
||||
isSupplier
|
||||
? "Собран профиль выплат поставщикам по платежным документам."
|
||||
: "Собран профиль поступлений от заказчиков по платежным документам.",
|
||||
`Строк источника: ${rows.length}.`,
|
||||
`Уникальных контрагентов: ${profileRows.length}.`
|
||||
? `Коротко: в выборке ${profileRows.length} поставщиков по ${rows.length} подтвержденным платежным строкам.`
|
||||
: `Коротко: в выборке ${profileRows.length} заказчиков по ${rows.length} подтвержденным платежным строкам.`,
|
||||
`Подтвержденный денежный поток в выборке: ${deps.formatMoneyRub(totalFlow)}.`
|
||||
];
|
||||
|
||||
if (profileRows.length === 0) {
|
||||
@@ -809,10 +805,8 @@ export function composeCounterpartyAnalyticsReply(
|
||||
.sort((a, b) => a.turnover - b.turnover || b.docs - a.docs || a.contract.localeCompare(b.contract));
|
||||
|
||||
const lines: string[] = [
|
||||
`Активных договоров: ${contractRows.length}.`,
|
||||
"Собран профиль договоров по обороту и подтвержденным операциям.",
|
||||
`Строк источника: ${rows.length}.`,
|
||||
`Договорных агрегатов: ${contractRows.length}.`
|
||||
`Коротко: активных договоров в выборке — ${contractRows.length}.`,
|
||||
`Подтвержденных операций по договорам: ${rows.length}.`
|
||||
];
|
||||
|
||||
if (contractRows.length === 0) {
|
||||
@@ -834,7 +828,7 @@ export function composeCounterpartyAnalyticsReply(
|
||||
|
||||
if (focus === "bottom_by_turnover_active") {
|
||||
const visible = rankedBottomActive.slice(0, limit);
|
||||
lines.unshift(`Топ-${visible.length} активных договоров с минимальным оборотом:`);
|
||||
lines.unshift(`Топ-${visible.length} активных договоров с минимальным бюджетом:`);
|
||||
lines.push(
|
||||
...visible.map(
|
||||
(item, index) =>
|
||||
|
||||
Reference in New Issue
Block a user