Open-World: закрепить границу просрочки долгов
This commit is contained in:
@@ -311,6 +311,9 @@ function hasReceivablesDebtAgingFocus(userMessage) {
|
||||
const hasCounterpartySignal = /(?:заказчик|клиент|покупател|контрагент|должник|counterpart|customer|client|buyer)/iu.test(text);
|
||||
return hasDebtSignal && hasLongevitySignal && hasCounterpartySignal;
|
||||
}
|
||||
function receivablesDueDateBoundaryLine() {
|
||||
return "Граница доказанности: это возрастной сигнал/хвост дебиторки по 62/76, а не подтвержденная договорная просрочка или due-date aging; для due-date нужны сроки оплаты из договора или условий оплаты.";
|
||||
}
|
||||
function formatAgeYearsMonthsDays(daysRaw) {
|
||||
const safeDays = Math.max(0, Math.floor(daysRaw));
|
||||
const years = Math.floor(safeDays / 365);
|
||||
@@ -3229,7 +3232,8 @@ function composeFactualReplyBody(intent, rows, options = {}) {
|
||||
"Проверил должников по сроку жизни задолженности (контур 62/76).",
|
||||
`Дата среза: ${formatDateRu(asOfDate)}.`,
|
||||
`Строк в выборке: ${rows.length}.`,
|
||||
`Контрагентов с сигналом: ${aging.length}.`
|
||||
`Контрагентов с сигналом: ${aging.length}.`,
|
||||
receivablesDueDateBoundaryLine()
|
||||
];
|
||||
if (aging.length > 0) {
|
||||
lines.push("Приоритет ручной проверки (по возрасту долга, по убыванию):");
|
||||
@@ -3255,7 +3259,8 @@ function composeFactualReplyBody(intent, rows, options = {}) {
|
||||
const lines = [
|
||||
"Проверил покупателей с признаками затянутой оплаты (контур 62/76).",
|
||||
`Строк в выборке: ${rows.length}.`,
|
||||
`Контрагентов с сигналом: ${counterparties.length}.`
|
||||
`Контрагентов с сигналом: ${counterparties.length}.`,
|
||||
receivablesDueDateBoundaryLine()
|
||||
];
|
||||
if (counterparties.length > 0) {
|
||||
lines.push("Приоритет ручной проверки (по сумме/частоте хвостов):");
|
||||
|
||||
Reference in New Issue
Block a user