fix: change from mock up data to backend data

This commit is contained in:
Angie 2025-07-26 22:48:51 +02:00
parent bb933d7c87
commit 00d221a343

View File

@ -1336,18 +1336,20 @@ function applyReportsFilters() {
const dateFrom = document.getElementById("filterDateFrom").value;
const dateTo = document.getElementById("filterDateTo").value;
let filteredReports = database.reports;
let filteredReports = window.reportsList || [];
if (storeFilter) {
filteredReports = filteredReports.filter((r) => r.storeId == storeFilter);
filteredReports = filteredReports.filter(
(r) => String(r.storeId) === String(storeFilter)
);
}
if (dateFrom) {
filteredReports = filteredReports.filter((r) => r.date >= dateFrom);
filteredReports = filteredReports.filter((r) => r.reportDate >= dateFrom);
}
if (dateTo) {
filteredReports = filteredReports.filter((r) => r.date <= dateTo);
filteredReports = filteredReports.filter((r) => r.reportDate <= dateTo);
}
// Обновление таблицы с отфильтрованными данными
@ -1355,19 +1357,18 @@ function applyReportsFilters() {
tbody.innerHTML = "";
filteredReports.forEach((report) => {
const store = database.stores.find((s) => s.id === report.storeId);
const user = database.users.find((u) => u.id === report.userId);
const profit = report.totalIncome - report.totalExpenses;
const storeName = report.storeName || report.storeId;
const username = report.username || report.userId;
const profit =
(Number(report.totalIncome) || 0) - (Number(report.totalExpenses) || 0);
const row = document.createElement("tr");
row.className = "hover:bg-gray-50";
row.innerHTML = `
<td class="px-6 py-4 text-sm text-gray-900">${
report.date
}</td>
<td class="px-6 py-4 text-sm text-gray-900">${
store ? store.name : "Неизвестно"
report.reportDate || report.date || ""
}</td>
<td class="px-6 py-4 text-sm text-gray-900">${storeName}</td>
<td class="px-6 py-4 text-sm text-gray-900">${report.totalIncome.toFixed(
2
)}</td>
@ -1377,16 +1378,14 @@ function applyReportsFilters() {
<td class="px-6 py-4 text-sm ${
profit >= 0 ? "text-green-600" : "text-red-600"
}">${profit.toFixed(2)}</td>
<td class="px-6 py-4 text-sm text-gray-900">${
user ? user.username : "Неизвестно"
}</td>
<td class="px-6 py-4 text-sm text-gray-900">${username}</td>
<td class="px-6 py-4">
<span class="px-2 py-1 text-xs rounded-full ${
report.verified
report.isVerified
? "bg-green-100 text-green-800"
: "bg-yellow-100 text-yellow-800"
}">
${report.verified ? "Проверен" : "Не проверен"}
${report.isVerified ? "Проверен" : "Не проверен"}
</span>
</td>
<td class="px-6 py-4 text-sm">
@ -1409,31 +1408,98 @@ function applyReportsFilters() {
}
// Экспорт в Excel
// function exportToExcel() {
// const data = database.reports.map((report) => {
// const store = database.stores.find((s) => s.id === report.storeId);
// const user = database.users.find((u) => u.id === report.userId);
// const profit = report.totalIncome - report.totalExpenses;
// return {
// Дата: report.date,
// Магазин: store ? store.name : "Неизвестно",
// Доход: `€${report.totalIncome.toFixed(2)}`,
// Расходы: `€${report.totalExpenses.toFixed(2)}`,
// Прибыль: `€${profit.toFixed(2)}`,
// Пользователь: user ? user.username : "Неизвестно",
// Статус: report.verified ? "Проверен" : "Не проверен",
// };
// });
// // Создание CSV
// const headers = Object.keys(data[0]);
// const csvContent = [
// headers.join(","),
// ...data.map((row) => headers.map((header) => `"${row[header]}"`).join(",")),
// ].join("\n");
// // Скачивание файла
// const blob = new Blob([csvContent], {
// type: "text/csv;charset=utf-8;",
// });
// const link = document.createElement("a");
// const url = URL.createObjectURL(blob);
// link.setAttribute("href", url);
// link.setAttribute(
// "download",
// `cash_reports_${new Date().toISOString().split("T")[0]}.csv`
// );
// link.style.visibility = "hidden";
// document.body.appendChild(link);
// link.click();
// document.body.removeChild(link);
// showNotification("Отчет экспортирован!");
// }
function exportToExcel() {
const data = database.reports.map((report) => {
const store = database.stores.find((s) => s.id === report.storeId);
const user = database.users.find((u) => u.id === report.userId);
const profit = report.totalIncome - report.totalExpenses;
// Use backend data
const reports = window.reportsList || [];
const stores = window.storesList || [];
const users = window.usersList || [];
if (!reports.length) {
showNotification("Нет отчетов для экспорта", "info");
return;
}
const data = reports.map((report) => {
// Find store and user by id
const store =
stores.find((s) => Number(s.id) === Number(report.storeId)) || {};
const user =
users.find((u) => Number(u.id) === Number(report.userId)) || {};
const profit =
(Number(report.totalIncome) || 0) - (Number(report.totalExpenses) || 0);
return {
Дата: report.date,
Магазин: store ? store.name : "Неизвестно",
Доход: `${report.totalIncome.toFixed(2)}`,
Расходы: `${report.totalExpenses.toFixed(2)}`,
Дата: report.reportDate || report.date || "",
Магазин: store.name || report.storeName || "Неизвестно",
Доход: `${Number(report.totalIncome || 0).toFixed(2)}`,
Расходы: `${Number(report.totalExpenses || 0).toFixed(2)}`,
Прибыль: `${profit.toFixed(2)}`,
Пользователь: user ? user.username : "Неизвестно",
Статус: report.verified ? "Проверен" : "Не проверен",
Пользователь: user.username || report.username || "Неизвестно",
Статус: report.isVerified
? "Проверен"
: report.verified
? "Проверен"
: "Не проверен",
};
});
// Создание CSV
if (!data.length) {
showNotification("Нет отчетов для экспорта", "info");
return;
}
// Create CSV
const headers = Object.keys(data[0]);
const csvContent = [
headers.join(","),
...data.map((row) => headers.map((header) => `"${row[header]}"`).join(",")),
].join("\n");
// Скачивание файла
// Download file
const blob = new Blob([csvContent], {
type: "text/csv;charset=utf-8;",
});