updated and connected dashboard

This commit is contained in:
Angie 2025-07-29 01:08:08 +02:00
parent 5729d140ac
commit 7ab1fdca74
2 changed files with 35 additions and 20 deletions

View File

@ -151,13 +151,13 @@ async function loadUsers() {
}
const users = result.users;
usersList = users;
window.usersList = users;
users.forEach((user) => {
const userStores =
user.stores
.map((storeId) => {
const store = database.stores.find((s) => s.id === storeId);
const store = (window.storesList || []).find((s) => s.id === storeId);
return store ? store.name : "Нет доступа";
})
.join(", ") || "Нет доступа";

View File

@ -245,16 +245,16 @@ function showUserInterface() {
}
// Показать интерфейс администратора
function showAdminInterface() {
async function showAdminInterface() {
document.getElementById("adminInterface").classList.remove("hidden");
document.getElementById(
"adminWelcome"
).textContent = `Добро пожаловать, ${currentUser.username}!`;
await Promise.all([loadUsers(), loadReports(), loadStores()]);
updateDashboard();
loadReports();
loadUsers();
loadStores();
loadTodos();
setupAdminTabs();
}
@ -1004,13 +1004,15 @@ function setupAdminTabs() {
// Обновление дашборда
function updateDashboard() {
const reports = database.reports;
// const reports = database.reports;
const reports = window.reportsList || [];
const users = window.usersList || [];
// Расчет статистики
const totalRevenue = reports.reduce((sum, r) => sum + r.totalIncome, 0);
const totalExpenses = reports.reduce((sum, r) => sum + r.totalExpenses, 0);
const totalReports = reports.length;
const totalUsers = database.users.filter((u) => u.role === "employee").length;
const totalUsers = users.length;
// Обновление карточек
document.getElementById(
@ -1029,6 +1031,10 @@ function updateDashboard() {
// Создание графиков
function createCharts() {
// График доходов по дням
const reports = window.reportsList || [];
const stores = window.storesList || [];
const revenueCtx = document.getElementById("revenueChart");
if (revenueCtx) {
destroyChart(revenueChartInstance);
@ -1041,8 +1047,15 @@ function createCharts() {
const dateStr = date.toISOString().split("T")[0];
last7Days.push(dateStr);
const dayReports = database.reports.filter((r) => r.date === dateStr);
const dayRevenue = dayReports.reduce((sum, r) => sum + r.totalIncome, 0);
const dayReports = reports.filter(
(r) => (r.reportDate || r.date) === dateStr
);
const dayRevenue = dayReports.reduce(
(sum, r) => sum + (Number(r.totalIncome) || 0),
0
);
revenueData.push(dayRevenue);
}
@ -1086,12 +1099,12 @@ function createCharts() {
const expensesCtx = document.getElementById("expensesChart");
if (expensesCtx) {
destroyChart(expensesChartInstance);
const totalWages = database.reports.reduce(
(sum, r) => sum + r.totalWages,
const totalWages = reports.reduce(
(sum, r) => sum + (Number(r.totalWages) || 0),
0
);
const totalInternal = database.reports.reduce(
(sum, r) => sum + r.totalExpensesInternal,
const totalInternal = reports.reduce(
(sum, r) => sum + (Number(r.totalExpenses) || 0),
0
);
@ -1122,13 +1135,12 @@ function createCharts() {
const storesCtx = document.getElementById("storesChart");
if (storesCtx) {
destroyChart(storesChartInstance);
const storeData = database.stores.map((store) => {
const storeReports = database.reports.filter(
(r) => r.storeId === store.id
);
const storeData = stores.map((store) => {
const storeReports = reports.filter((r) => r.storeId === store.id);
const revenue = storeReports.reduce((sum, r) => sum + r.totalIncome, 0);
return { name: store.name, revenue };
});
console.log("storeData for bar chart:", storeData);
storesChartInstance = new Chart(storesCtx, {
type: "bar",
@ -1177,9 +1189,12 @@ function createCharts() {
const dateStr = date.toISOString().split("T")[0];
last30Days.push(dateStr);
const dayReports = database.reports.filter((r) => r.date === dateStr);
const dayReports = reports.filter(
(r) => (r.reportDate || r.date) === dateStr
);
const dayProfit = dayReports.reduce(
(sum, r) => sum + (r.totalIncome - r.totalExpenses),
(sum, r) =>
sum + ((Number(r.totalIncome) || 0) - (Number(r.totalExpenses) || 0)),
0
);
profitData.push(dayProfit);