mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-20 21:49:07 +02:00
Merge pull request #315 from R0m1k3/1.1
Improve product filtering by adding dynamic status options for expiry…
This commit is contained in:
2 files changed
+38
-2
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 183 KiB |
+38
-2
@@ -1508,9 +1508,45 @@ export class DatabaseStorage implements IStorage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (filters) {
|
if (filters) {
|
||||||
if (filters.status) {
|
// Handle dynamic status filtering based on expiry date calculation
|
||||||
conditions.push(eq(dlcProducts.status, filters.status));
|
if (filters.status && filters.status !== 'all') {
|
||||||
|
const today = new Date();
|
||||||
|
|
||||||
|
if (filters.status === 'expires_soon') {
|
||||||
|
// Products expiring within 15 days but not expired yet
|
||||||
|
const in15Days = new Date();
|
||||||
|
in15Days.setDate(today.getDate() + 15);
|
||||||
|
conditions.push(
|
||||||
|
and(
|
||||||
|
sql`${dlcProducts.expiryDate} > ${today}`,
|
||||||
|
sql`${dlcProducts.expiryDate} <= ${in15Days}`,
|
||||||
|
ne(dlcProducts.status, 'valides')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else if (filters.status === 'expires') {
|
||||||
|
// Products already expired
|
||||||
|
conditions.push(
|
||||||
|
and(
|
||||||
|
sql`${dlcProducts.expiryDate} <= ${today}`,
|
||||||
|
ne(dlcProducts.status, 'valides')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else if (filters.status === 'en_cours') {
|
||||||
|
// Products active (more than 15 days until expiry)
|
||||||
|
const in15Days = new Date();
|
||||||
|
in15Days.setDate(today.getDate() + 15);
|
||||||
|
conditions.push(
|
||||||
|
and(
|
||||||
|
sql`${dlcProducts.expiryDate} > ${in15Days}`,
|
||||||
|
ne(dlcProducts.status, 'valides')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else if (filters.status === 'valides') {
|
||||||
|
// Products that are validated regardless of date
|
||||||
|
conditions.push(eq(dlcProducts.status, 'valides'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filters.supplierId) {
|
if (filters.supplierId) {
|
||||||
conditions.push(eq(dlcProducts.supplierId, filters.supplierId));
|
conditions.push(eq(dlcProducts.supplierId, filters.supplierId));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user