feat(statistics): implement top alert stocks, top last sales, top supplier debts, and top selling products endpoints with SQL queries

This commit is contained in:
2026-01-04 13:45:26 +03:30
parent eb6e0e7a0d
commit a2db2daa70
72 changed files with 11934 additions and 2559 deletions
+10 -10
View File
@@ -25,13 +25,13 @@ DECLARE fromInv INT;
-- OUT from source
INSERT INTO Stock_Movements
(type, quantity, fee, totalCost, avgCost, referenceType, referenceId, productId, inventoryId, counterInventoryId, createdAt, remainedInStock)
(type, quantity, unitPrice, totalCost, avgCost, referenceType, referenceId, productId, inventoryId, counterInventoryId, createdAt, remainedInStock)
VALUES
('OUT', NEW.count, _avgCost, _avgCost*NEW.count, _avgCost, 'INVENTORY_TRANSFER', NEW.transferId, NEW.productId, fromInv, toInv, NOW(), latestQuantityInOrigin-NEW.count);
-- IN to destination
INSERT INTO Stock_Movements
(type, quantity, fee, totalCost, avgCost, referenceType, referenceId, productId, inventoryId, counterInventoryId, createdAt, remainedInStock)
(type, quantity, unitPrice, totalCost, avgCost, referenceType, referenceId, productId, inventoryId, counterInventoryId, createdAt, remainedInStock)
VALUES
('IN', NEW.count,_avgCost, _avgCost*NEW.count,_avgCost, 'INVENTORY_TRANSFER', NEW.transferId, NEW.productId, toInv, fromInv, NOW(), latestQuantityInOrigin-NEW.count);
end;
@@ -66,7 +66,7 @@ DECLARE invId INT;
INSERT INTO Stock_Movements (
type,
quantity,
fee,
unitPrice,
totalCost,
referenceType,
referenceId,
@@ -80,7 +80,7 @@ DECLARE invId INT;
VALUES (
'IN',
NEW.count,
NEW.fee,
NEW.unitPrice,
NEW.total,
'PURCHASE',
NEW.receiptId,
@@ -157,7 +157,7 @@ DECLARE customer_id INT;
INSERT INTO Stock_Movements (
type,
quantity,
fee,
unitPrice,
totalCost,
referenceType,
referenceId,
@@ -171,7 +171,7 @@ DECLARE customer_id INT;
VALUES (
'OUT',
NEW.count,
NEW.fee,
NEW.unitPrice,
NEW.total,
'SALES',
NEW.invoiceId,
@@ -260,8 +260,8 @@ VALUES (
NEW.productId,
NEW.inventoryId,
- NEW.quantity,
- COALESCE(NEW.fee, 0) * NEW.quantity,
COALESCE(NEW.fee, 0),
- COALESCE(NEW.unitPrice, 0) * NEW.quantity,
COALESCE(NEW.unitPrice, 0),
NOW()
);
@@ -294,7 +294,7 @@ INSERT INTO
VALUES (
NEW.productId,
NEW.quantity,
NEW.fee,
NEW.unitPrice,
NEW.totalCost,
NEW.inventoryId,
NOW()
@@ -329,7 +329,7 @@ INSERT INTO
VALUES (
NEW.productId,
NEW.quantity,
NEW.fee,
NEW.unitPrice,
NEW.totalCost,
NEW.inventoryId,
NOW()