diff --git a/public/js/statistics.js b/public/js/statistics.js index da7891a..e8be97f 100644 --- a/public/js/statistics.js +++ b/public/js/statistics.js @@ -835,31 +835,17 @@ function renderClientLastTicketCard() { }).join('')}`; } -function getTaskCreator(task) { - // Ищем создателя по lifetime: самая ранняя запись с usertype=20 (внешний/клиент). - // lifetime.data отсортирован по убыванию (новые первые), поэтому ищем с конца. - const entries = task.lifetime?.data || []; - // Сначала ищем внешнего пользователя (клиента) - for (let i = entries.length - 1; i >= 0; i--) { - if (entries[i].usertype === 20 && entries[i].username) return entries[i].username; - } - // Fallback: последняя запись (самая ранняя) с любым username - for (let i = entries.length - 1; i >= 0; i--) { - if (entries[i].username) return entries[i].username; - } - return null; -} - function renderClientUsersCard() { const wrap = document.getElementById('stats-client-users-wrap'); if (!wrap) return; - // Собираем: организация → { total, users: { creator → count } } + // createdby — строка с именем создателя, приходит прямо из API + // Собираем: организация → { total, users: { createdby → count } } const cMap = {}; allData.forEach((item) => { const t = item.task; const org = t._clientname || t.clientname || 'Неизвестно'; - const creator = getTaskCreator(t) || '—'; + const creator = t.createdby || '—'; if (!cMap[org]) cMap[org] = { total: 0, users: {} }; cMap[org].total++; cMap[org].users[creator] = (cMap[org].users[creator] || 0) + 1;