-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathloadstock.ts
More file actions
42 lines (35 loc) · 1.02 KB
/
loadstock.ts
File metadata and controls
42 lines (35 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { prisma } from "./@/storage/database"
import { createClient } from "redis"
import { REDIS_HASHMAPS } from "./@/functions/redisKey"
;(async () => {
const url = process.env.REDIS_URI
if (!url) throw new Error("REDIS_URI is not defined in env vars")
const redis = createClient({
url,
})
await redis.connect()
console.time("STOCK_CALC")
redis.del(REDIS_HASHMAPS.product_stock)
const summary = await prisma.productInOutLog.groupBy({
by: ["productSid"],
_sum: {
delta: true,
},
orderBy: {
_sum: {
delta: "asc",
},
},
})
for (const product of summary) {
if (product.productSid === null || product._sum.delta === null) continue
redis.hSet(
REDIS_HASHMAPS.product_stock,
product.productSid,
product._sum.delta.toString(),
)
}
console.timeEnd("STOCK_CALC")
console.log("Stock calculation has done!")
process.exit()
})()