date drop added
This commit is contained in:
39
database.js
39
database.js
@@ -301,8 +301,16 @@ class DatabaseManager {
|
||||
params.push(filters.status);
|
||||
}
|
||||
|
||||
if (filters.date) {
|
||||
// Get orders from start of day to end of day
|
||||
if (filters.startDate && filters.endDate) {
|
||||
query += ' AND created_at BETWEEN ? AND ?';
|
||||
params.push(filters.startDate, filters.endDate);
|
||||
} else if (filters.startDate) {
|
||||
query += ' AND created_at >= ?';
|
||||
params.push(filters.startDate);
|
||||
} else if (filters.endDate) {
|
||||
query += ' AND created_at <= ?';
|
||||
params.push(filters.endDate);
|
||||
} else if (filters.date) {
|
||||
const startOfDay = Math.floor(new Date(filters.date).setHours(0, 0, 0, 0) / 1000);
|
||||
const endOfDay = Math.floor(new Date(filters.date).setHours(23, 59, 59, 999) / 1000);
|
||||
query += ' AND created_at BETWEEN ? AND ?';
|
||||
@@ -333,9 +341,7 @@ class DatabaseManager {
|
||||
}));
|
||||
}
|
||||
|
||||
getOrderStats() {
|
||||
const today = Math.floor(new Date().setHours(0, 0, 0, 0) / 1000);
|
||||
|
||||
getOrderStats(startDate = null, endDate = null) {
|
||||
const stats = {
|
||||
total: 0,
|
||||
new: 0,
|
||||
@@ -343,12 +349,23 @@ class DatabaseManager {
|
||||
ready: 0
|
||||
};
|
||||
|
||||
const rows = this.db.prepare(`
|
||||
SELECT local_status, COUNT(*) as count
|
||||
FROM orders
|
||||
WHERE created_at >= ?
|
||||
GROUP BY local_status
|
||||
`).all(today);
|
||||
let query, params;
|
||||
if (startDate != null && endDate != null) {
|
||||
query = 'SELECT local_status, COUNT(*) as count FROM orders WHERE created_at BETWEEN ? AND ? GROUP BY local_status';
|
||||
params = [startDate, endDate];
|
||||
} else if (startDate != null) {
|
||||
query = 'SELECT local_status, COUNT(*) as count FROM orders WHERE created_at >= ? GROUP BY local_status';
|
||||
params = [startDate];
|
||||
} else if (endDate != null) {
|
||||
query = 'SELECT local_status, COUNT(*) as count FROM orders WHERE created_at <= ? GROUP BY local_status';
|
||||
params = [endDate];
|
||||
} else {
|
||||
const today = Math.floor(new Date().setHours(0, 0, 0, 0) / 1000);
|
||||
query = 'SELECT local_status, COUNT(*) as count FROM orders WHERE created_at >= ? GROUP BY local_status';
|
||||
params = [today];
|
||||
}
|
||||
|
||||
const rows = this.db.prepare(query).all(...params);
|
||||
|
||||
for (const row of rows) {
|
||||
if (row.local_status === 'new') stats.new = row.count;
|
||||
|
||||
Reference in New Issue
Block a user