fix: change from mock up data to backend data
This commit is contained in:
parent
bb933d7c87
commit
00d221a343
@ -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;",
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user