@things-factory/warehouse-base 4.3.135 → 4.3.138
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-server/controllers/warehouse-controller.js.map +1 -1
- package/dist-server/service/inventory/inventory-query.js +74 -68
- package/dist-server/service/inventory/inventory-query.js.map +1 -1
- package/dist-server/service/inventory/inventory-types.js +16 -12
- package/dist-server/service/inventory/inventory-types.js.map +1 -1
- package/dist-server/service/inventory/inventory.js +4 -0
- package/dist-server/service/inventory/inventory.js.map +1 -1
- package/dist-server/service/inventory-change/inventory-change-mutation.js +7 -3
- package/dist-server/service/inventory-change/inventory-change-mutation.js.map +1 -1
- package/dist-server/service/inventory-history/inventory-history-query.js +14 -7
- package/dist-server/service/inventory-history/inventory-history-query.js.map +1 -1
- package/dist-server/service/inventory-item/inventory-item.js +8 -3
- package/dist-server/service/inventory-item/inventory-item.js.map +1 -1
- package/dist-server/service/inventory-product/inventory-product.js +8 -3
- package/dist-server/service/inventory-product/inventory-product.js.map +1 -1
- package/dist-server/service/location/location-mutation.js +3 -1
- package/dist-server/service/location/location-mutation.js.map +1 -1
- package/dist-server/service/pallet/pallet-mutation.js +35 -33
- package/dist-server/service/pallet/pallet-mutation.js.map +1 -1
- package/dist-server/service/tote/tote-mutation.js +1 -1
- package/dist-server/service/tote/tote-mutation.js.map +1 -1
- package/dist-server/service/tote/tote-query.js +4 -3
- package/dist-server/service/tote/tote-query.js.map +1 -1
- package/dist-server/service/warehouse/warehouse-mutation.js +30 -16
- package/dist-server/service/warehouse/warehouse-mutation.js.map +1 -1
- package/dist-server/utils/inventory-util.js +86 -25
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +9 -9
- package/server/controllers/warehouse-controller.ts +0 -1
- package/server/service/inventory/inventory-query.ts +88 -121
- package/server/service/inventory/inventory-types.ts +3 -0
- package/server/service/inventory/inventory.ts +3 -0
- package/server/service/inventory-change/inventory-change-mutation.ts +10 -5
- package/server/service/inventory-history/inventory-history-query.ts +16 -7
- package/server/service/inventory-item/inventory-item.ts +9 -2
- package/server/service/inventory-product/inventory-product.ts +5 -1
- package/server/service/location/location-mutation.ts +3 -1
- package/server/service/pallet/pallet-mutation.ts +50 -69
- package/server/service/tote/tote-mutation.ts +1 -1
- package/server/service/tote/tote-query.ts +6 -5
- package/server/service/warehouse/warehouse-mutation.ts +35 -18
- package/server/utils/inventory-util.ts +116 -51
- package/translations/en.json +4 -2
- package/translations/ko.json +4 -2
- package/translations/ms.json +4 -2
- package/translations/zh.json +14 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inventory-util.js","sourceRoot":"","sources":["../../server/utils/inventory-util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inventory-util.js","sourceRoot":"","sources":["../../server/utils/inventory-util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/warehouse-base",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.138",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@things-factory/biz-base": "^4.3.
|
|
27
|
-
"@things-factory/id-rule-base": "^4.3.
|
|
28
|
-
"@things-factory/integration-accounting": "^4.3.
|
|
29
|
-
"@things-factory/integration-sellercraft": "^4.3.
|
|
30
|
-
"@things-factory/marketplace-base": "^4.3.
|
|
31
|
-
"@things-factory/product-base": "^4.3.
|
|
32
|
-
"@things-factory/setting-base": "^4.3.
|
|
26
|
+
"@things-factory/biz-base": "^4.3.138",
|
|
27
|
+
"@things-factory/id-rule-base": "^4.3.138",
|
|
28
|
+
"@things-factory/integration-accounting": "^4.3.138",
|
|
29
|
+
"@things-factory/integration-sellercraft": "^4.3.138",
|
|
30
|
+
"@things-factory/marketplace-base": "^4.3.138",
|
|
31
|
+
"@things-factory/product-base": "^4.3.138",
|
|
32
|
+
"@things-factory/setting-base": "^4.3.138"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "1d4e0a3ff6b8792c843b9735a28a3f5fb946b144"
|
|
35
35
|
}
|
|
@@ -2,7 +2,6 @@ import { EntityManager } from 'typeorm'
|
|
|
2
2
|
|
|
3
3
|
import { Role, User } from '@things-factory/auth-base'
|
|
4
4
|
import { Bizplace, getDomainUsers } from '@things-factory/biz-base'
|
|
5
|
-
import { sendNotification } from '@things-factory/notification'
|
|
6
5
|
import { ProductDetail } from '@things-factory/product-base'
|
|
7
6
|
import { Domain } from '@things-factory/shell'
|
|
8
7
|
|
|
@@ -1,55 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
Args,
|
|
4
|
-
Ctx,
|
|
5
|
-
Directive,
|
|
6
|
-
FieldResolver,
|
|
7
|
-
Query,
|
|
8
|
-
Resolver,
|
|
9
|
-
Root
|
|
10
|
-
} from 'type-graphql'
|
|
11
|
-
import {
|
|
12
|
-
Brackets,
|
|
13
|
-
EntityManager,
|
|
14
|
-
Equal,
|
|
15
|
-
getRepository,
|
|
16
|
-
Not,
|
|
17
|
-
Repository,
|
|
18
|
-
SelectQueryBuilder
|
|
19
|
-
} from 'typeorm'
|
|
1
|
+
import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
+
import { Brackets, EntityManager, Equal, getRepository, Not, Repository, SelectQueryBuilder } from 'typeorm'
|
|
20
3
|
|
|
21
4
|
import { User } from '@things-factory/auth-base'
|
|
22
|
-
import {
|
|
23
|
-
Bizplace,
|
|
24
|
-
getPartnersCompanyBizplaces,
|
|
25
|
-
getPermittedBizplaceIds
|
|
26
|
-
} from '@things-factory/biz-base'
|
|
5
|
+
import { Bizplace, getPartnersCompanyBizplaces, getPermittedBizplaceIds } from '@things-factory/biz-base'
|
|
27
6
|
import { logger } from '@things-factory/env'
|
|
28
|
-
import {
|
|
29
|
-
Product,
|
|
30
|
-
ProductBundleSetting,
|
|
31
|
-
ProductDetail
|
|
32
|
-
} from '@things-factory/product-base'
|
|
7
|
+
import { Product, ProductBundleSetting, ProductDetail } from '@things-factory/product-base'
|
|
33
8
|
import { Setting } from '@things-factory/setting-base'
|
|
34
|
-
import {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Filter,
|
|
38
|
-
ListParam,
|
|
39
|
-
Pagination,
|
|
40
|
-
Sorting
|
|
41
|
-
} from '@things-factory/shell'
|
|
42
|
-
|
|
43
|
-
import {
|
|
44
|
-
INVENTORY_STATUS,
|
|
45
|
-
LOCATION_TYPE
|
|
46
|
-
} from '../../constants'
|
|
9
|
+
import { buildQuery, Domain, Filter, ListParam, Pagination, Sorting } from '@things-factory/shell'
|
|
10
|
+
|
|
11
|
+
import { INVENTORY_STATUS, LOCATION_TYPE } from '../../constants'
|
|
47
12
|
import { InventoryChange } from '../inventory-change/inventory-change'
|
|
48
13
|
import { Inventory } from './inventory'
|
|
49
|
-
import {
|
|
50
|
-
InventoryBundleGroupDetail,
|
|
51
|
-
InventoryList
|
|
52
|
-
} from './inventory-types'
|
|
14
|
+
import { InventoryBundleGroupDetail, InventoryList } from './inventory-types'
|
|
53
15
|
|
|
54
16
|
@Resolver(Inventory)
|
|
55
17
|
export class InventoryQuery {
|
|
@@ -104,7 +66,12 @@ export class InventoryQuery {
|
|
|
104
66
|
|
|
105
67
|
qb.leftJoinAndSelect('inventory.bizplace', 'bizplace')
|
|
106
68
|
.leftJoinAndSelect('inventory.product', 'product')
|
|
107
|
-
|
|
69
|
+
.leftJoinAndSelect('inventory.productDetail', 'productDetail')
|
|
70
|
+
.leftJoinAndSelect(
|
|
71
|
+
'product.productDetails',
|
|
72
|
+
'productDetails',
|
|
73
|
+
'productDetails.id = inventory.product_detail_id'
|
|
74
|
+
)
|
|
108
75
|
.leftJoinAndSelect('inventory.warehouse', 'warehouse')
|
|
109
76
|
.leftJoinAndSelect('inventory.location', 'location')
|
|
110
77
|
.leftJoinAndSelect('inventory.creator', 'creator')
|
|
@@ -184,36 +151,17 @@ export class InventoryQuery {
|
|
|
184
151
|
qb.offset((page - 1) * limit).limit(limit)
|
|
185
152
|
}
|
|
186
153
|
|
|
187
|
-
let items
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
productDetail = productDetails.filter(
|
|
196
|
-
(itm: ProductDetail) =>
|
|
197
|
-
itm.packingType == item.inventory_packing_type && itm.packingSize == item.inventory_packing_size
|
|
198
|
-
)
|
|
199
|
-
|
|
200
|
-
//if more than one with same packingType and packingSize
|
|
201
|
-
if (productDetail.length > 1) {
|
|
202
|
-
productDetail = productDetail.find((itm: ProductDetail) => itm.isDefault == true)
|
|
203
|
-
} else {
|
|
204
|
-
productDetail = productDetail[0]
|
|
205
|
-
}
|
|
206
|
-
} else {
|
|
207
|
-
productDetail = productDetails[0]
|
|
208
|
-
}
|
|
209
|
-
item = {
|
|
210
|
-
...new Inventory(item),
|
|
211
|
-
serialNumbers: item.serial_numbers,
|
|
212
|
-
productDetail
|
|
154
|
+
let items = (await qb.getRawMany()).map(item => {
|
|
155
|
+
return {
|
|
156
|
+
...new Inventory(item),
|
|
157
|
+
serialNumbers: item.serial_numbers,
|
|
158
|
+
productDetail: {
|
|
159
|
+
id: item.productDetail_id,
|
|
160
|
+
name: item.productDetail_name,
|
|
161
|
+
gtin: item.productDetail_gtin
|
|
213
162
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
)
|
|
163
|
+
}
|
|
164
|
+
})
|
|
217
165
|
let total = await qb.getCount()
|
|
218
166
|
|
|
219
167
|
return {
|
|
@@ -269,6 +217,7 @@ export class InventoryQuery {
|
|
|
269
217
|
let quarantineStockFilter = params.filters.find(filter => filter.name == 'quarantineStock')
|
|
270
218
|
let reserveStockFilter = params.filters.find(filter => filter.name == 'reserveStock')
|
|
271
219
|
let productTypeFilter = params.filters.find(filter => filter.name == 'type')
|
|
220
|
+
let expirationDateFilter = params.filters.find(filter => filter.name == 'expirationDate')
|
|
272
221
|
|
|
273
222
|
if (bizplaceFilter) {
|
|
274
223
|
const bizplaceQueryBuilder: SelectQueryBuilder<Bizplace> = getRepository(Bizplace).createQueryBuilder('b')
|
|
@@ -382,6 +331,14 @@ export class InventoryQuery {
|
|
|
382
331
|
` AND (
|
|
383
332
|
Lower("Inventory"."packing_type") LIKE ANY(ARRAY[${packingTypeValue}])
|
|
384
333
|
)`
|
|
334
|
+
}
|
|
335
|
+
let expirationDateQuery = ''
|
|
336
|
+
if (expirationDateFilter) {
|
|
337
|
+
let expirationDateValue = expirationDateFilter.value
|
|
338
|
+
|
|
339
|
+
expirationDateQuery =
|
|
340
|
+
expirationDateQuery +
|
|
341
|
+
` AND "Inventory"."expiration_date" = '${expirationDateValue}'`
|
|
385
342
|
}
|
|
386
343
|
|
|
387
344
|
let thresholdQuery = ''
|
|
@@ -406,12 +363,13 @@ export class InventoryQuery {
|
|
|
406
363
|
// [domain.id]
|
|
407
364
|
// )
|
|
408
365
|
|
|
366
|
+
// correction on the as --> AS
|
|
409
367
|
await tx.query(
|
|
410
368
|
`
|
|
411
369
|
create temp table temp_inv_history AS
|
|
412
370
|
(
|
|
413
371
|
SELECT "Product"."id" AS "id", "Product"."sku" AS "sku", "Product"."brand" AS "brand", "Product"."name" AS "name", "Product"."type" AS "type", "Product"."description" AS "description",
|
|
414
|
-
"Inventory"."packing_type" AS "packingType",
|
|
372
|
+
"Inventory"."packing_type" AS "packingType","Inventory"."expiration_date" AS "expirationDate",
|
|
415
373
|
"Product"."weight" AS "weight", "ProductRef"."id" AS "productRefId",
|
|
416
374
|
"ProductRef"."description" AS "productRefDesciption", "Bizplace"."id" AS "bizplaceId", "Bizplace"."name" AS "bizplaceName",
|
|
417
375
|
CASE WHEN SUM("Inventory"."qty") > 0 THEN SUM(COALESCE("Inventory"."unit_cost", 0) * "Inventory"."qty")/ SUM("Inventory"."qty") ELSE 0 END AS "averageUnitCost",
|
|
@@ -419,15 +377,15 @@ export class InventoryQuery {
|
|
|
419
377
|
COALESCE("ProductDetailBizplaceSetting"."max_qty", "Product"."max_qty",0) AS "maxQty",
|
|
420
378
|
COALESCE(putawayinv.putaway_qty, 0) AS "putawayQty",
|
|
421
379
|
(CASE WHEN "Location"."type" NOT IN ('${LOCATION_TYPE.QUARANTINE}','${LOCATION_TYPE.RESERVE}')
|
|
422
|
-
|
|
380
|
+
THEN
|
|
423
381
|
CASE WHEN SUM("Inventory"."qty") > 0
|
|
424
382
|
THEN SUM("Inventory"."qty")
|
|
425
383
|
ELSE 0 END
|
|
426
384
|
ELSE 0 END) AS "qty",
|
|
427
385
|
(CASE WHEN "Location"."type" NOT IN ('${LOCATION_TYPE.QUARANTINE}','${LOCATION_TYPE.RESERVE}')
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
386
|
+
THEN
|
|
387
|
+
CASE WHEN SUM("Inventory"."qty") > 0 THEN SUM("Inventory"."qty") ELSE 0 END - SUM(COALESCE("Inventory"."locked_qty", 0)) - COALESCE("opd"."total_release_qty", 0)
|
|
388
|
+
ELSE 0 END) AS "availableQty",
|
|
431
389
|
(CASE WHEN "Location"."type" NOT IN ('${LOCATION_TYPE.QUARANTINE}','${LOCATION_TYPE.RESERVE}')
|
|
432
390
|
THEN SUM(COALESCE("Inventory"."locked_qty", 0)) ELSE 0 END) AS "releaseQty",
|
|
433
391
|
CASE WHEN "Location"."type" = '${LOCATION_TYPE.QUARANTINE}'
|
|
@@ -458,12 +416,12 @@ export class InventoryQuery {
|
|
|
458
416
|
select "op"."product_id", COALESCE(SUM("op"."release_qty")) as "total_release_qty",
|
|
459
417
|
"op"."packing_type", "op"."packing_size", "op"."uom"
|
|
460
418
|
from "order_products" op
|
|
461
|
-
INNER JOIN "draft_release_goods" drg
|
|
419
|
+
INNER JOIN "draft_release_goods" drg ON drg.id = op.draft_release_good_id
|
|
462
420
|
WHERE "drg"."status" = 'DRAFT'
|
|
463
421
|
AND "op"."draft_release_good_id" IS NOT null
|
|
464
422
|
AND "drg"."domain_id" = $1
|
|
465
|
-
|
|
466
|
-
)
|
|
423
|
+
GROUP BY "op"."product_id","op"."packing_type" ,"op"."packing_size", "op"."uom"
|
|
424
|
+
) AS "opd"
|
|
467
425
|
ON "Inventory"."product_id" = "opd"."product_id" AND "Inventory"."packing_type" = "opd"."packing_type"
|
|
468
426
|
AND "Inventory"."packing_size" = "opd"."packing_size"
|
|
469
427
|
AND "Inventory"."uom" = "opd"."uom"
|
|
@@ -472,18 +430,19 @@ export class InventoryQuery {
|
|
|
472
430
|
SELECT sum(i.qty) as "putaway_qty", i.product_id, i.packing_type, i.packing_size, i.uom FROM "inventories" i
|
|
473
431
|
WHERE i.status = 'PUTTING_AWAY' and i.domain_id = $1
|
|
474
432
|
GROUP BY i.product_id, i.packing_type, i.packing_size, i.uom
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
433
|
+
) as "putawayinv" ON "Inventory"."product_id" = "putawayinv"."product_id" AND "Inventory"."packing_type" = "putawayinv"."packing_type"
|
|
434
|
+
AND "Inventory"."packing_size" = "putawayinv"."packing_size"
|
|
435
|
+
AND "Inventory"."uom" = "putawayinv"."uom"
|
|
436
|
+
INNER JOIN "bizplaces" "Bizplace" ON "Bizplace"."id"="Inventory"."bizplace_id"
|
|
437
|
+
INNER JOIN "locations" "Location" ON "Location"."id" = "Inventory"."location_id"
|
|
438
|
+
WHERE "Inventory"."qty" >= 0
|
|
439
|
+
AND "Inventory"."status" <> 'MISSING' AND "Inventory"."status" <> 'PUTTING_AWAY'
|
|
482
440
|
AND "Inventory"."domain_id" = $1
|
|
483
441
|
${bizplaceQuery}
|
|
484
442
|
${productQuery}
|
|
485
|
-
|
|
486
|
-
|
|
443
|
+
${expirationDateQuery}
|
|
444
|
+
GROUP BY "Inventory"."expiration_date","Product"."id","Bizplace"."id", "ProductDetailBizplaceSetting"."id"
|
|
445
|
+
, "Inventory"."packing_type", "Inventory"."packing_size", "Inventory"."uom"
|
|
487
446
|
, "Location"."type", "ProductRef"."id", "opd"."total_release_qty", "putawayinv"."putaway_qty"
|
|
488
447
|
HAVING 1 = 1
|
|
489
448
|
${availableStockQuery}
|
|
@@ -493,21 +452,21 @@ export class InventoryQuery {
|
|
|
493
452
|
|
|
494
453
|
await tx.query(
|
|
495
454
|
`
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
455
|
+
CREATE TEMP TABLE grouped_inventories_product AS (
|
|
456
|
+
SELECT "id", "sku", "brand", "name", "description","expirationDate",
|
|
457
|
+
"packingType", "bizplaceId", "bizplaceName", sum("averageUnitCost") AS "averageUnitCost",
|
|
458
|
+
sum("minQty") AS "minQty", sum("maxQty") AS "maxQty",
|
|
459
|
+
sum("putawayQty") AS "putawayQty",
|
|
460
|
+
sum("qty") AS "qty",
|
|
461
|
+
sum("quarantineQty") AS "quarantineQty",
|
|
462
|
+
sum("reserveQty") AS "reserveQty",
|
|
463
|
+
sum("releaseQty") AS "releaseQty",
|
|
464
|
+
sum("draftQty") AS "draftQty",
|
|
465
|
+
sum("availableQty") AS "availableQty",
|
|
466
|
+
sum("putawayQty" + "quarantineQty" + "reserveQty" + "availableQty") AS "warehouseQty"
|
|
467
|
+
FROM temp_inv_history
|
|
468
|
+
GROUP BY "expirationDate","id", "sku", "brand", "name", "description", "packingType", "bizplaceId", "bizplaceName"
|
|
469
|
+
HAVING 1=1
|
|
511
470
|
${qtyStockQuery}
|
|
512
471
|
${thresholdQuery}
|
|
513
472
|
)
|
|
@@ -542,6 +501,7 @@ export class InventoryQuery {
|
|
|
542
501
|
id: item.bizplaceId,
|
|
543
502
|
name: item.bizplaceName
|
|
544
503
|
},
|
|
504
|
+
expirationDate: item.expirationDate,
|
|
545
505
|
packingType: item.packingType,
|
|
546
506
|
averageUnitCost: item.averageUnitCost,
|
|
547
507
|
putawayQty: item.putawayQty,
|
|
@@ -672,23 +632,27 @@ export class InventoryQuery {
|
|
|
672
632
|
@Arg('bizplaceName') bizplaceName: string,
|
|
673
633
|
@Ctx() context: any
|
|
674
634
|
): Promise<Boolean> {
|
|
675
|
-
|
|
676
|
-
|
|
635
|
+
try {
|
|
636
|
+
const invRepo: Repository<Inventory> = getRepository(Inventory)
|
|
637
|
+
const bizRepo: Repository<Bizplace> = getRepository(Bizplace)
|
|
677
638
|
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
639
|
+
const inventory: Inventory = await invRepo.findOne({
|
|
640
|
+
where: { domain: context.state.domain, palletId, status: INVENTORY_STATUS.STORED },
|
|
641
|
+
relations: ['bizplace']
|
|
642
|
+
})
|
|
682
643
|
|
|
683
|
-
|
|
644
|
+
if (!inventory) throw new Error('This inventory status is not stored.')
|
|
684
645
|
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
646
|
+
const ownerBizplace: Bizplace = await bizRepo.findOne({
|
|
647
|
+
where: { name: bizplaceName }
|
|
648
|
+
})
|
|
688
649
|
|
|
689
|
-
|
|
650
|
+
const foundBizplace: Bizplace = inventory.bizplace
|
|
690
651
|
|
|
691
|
-
|
|
652
|
+
return Boolean(ownerBizplace.id === foundBizplace.id)
|
|
653
|
+
} catch (e) {
|
|
654
|
+
return false
|
|
655
|
+
}
|
|
692
656
|
}
|
|
693
657
|
|
|
694
658
|
@Directive('@privilege(category: "inventory", privilege: "query")')
|
|
@@ -748,7 +712,7 @@ export class InventoryQuery {
|
|
|
748
712
|
|
|
749
713
|
const productBundleSettings: ProductBundleSetting[] = await getRepository(ProductBundleSetting).find({
|
|
750
714
|
where: { productBundle: productBundleId },
|
|
751
|
-
relations: ['product', 'productBundle']
|
|
715
|
+
relations: ['product', 'productDetail', 'productBundle']
|
|
752
716
|
})
|
|
753
717
|
|
|
754
718
|
if (!productBundleSettings.length) {
|
|
@@ -759,6 +723,7 @@ export class InventoryQuery {
|
|
|
759
723
|
buildQuery(qb, params, context)
|
|
760
724
|
|
|
761
725
|
qb.select('iv.product_id', 'productId')
|
|
726
|
+
.addSelect('iv.product_detail_id', 'productDetailId')
|
|
762
727
|
.addSelect('iv.batch_id', 'batchId')
|
|
763
728
|
.addSelect('iv.batch_id_ref', 'batchIdRef')
|
|
764
729
|
.addSelect('iv.packing_type', 'packingType')
|
|
@@ -787,6 +752,7 @@ export class InventoryQuery {
|
|
|
787
752
|
productIds: productBundleSettings.map(productBundle => productBundle.product.id)
|
|
788
753
|
})
|
|
789
754
|
.groupBy('iv.product_id')
|
|
755
|
+
.addGroupBy('iv.product_detail_id')
|
|
790
756
|
.addGroupBy('iv.batch_id')
|
|
791
757
|
.addGroupBy('iv.batch_id_ref')
|
|
792
758
|
.addGroupBy('iv.packing_type')
|
|
@@ -815,6 +781,7 @@ export class InventoryQuery {
|
|
|
815
781
|
return {
|
|
816
782
|
id: pbs.id,
|
|
817
783
|
productId: pbs.product.id,
|
|
784
|
+
productDetailId: pbs.productDetail.id,
|
|
818
785
|
bundleId: pbs.productBundle.id,
|
|
819
786
|
bundleQty: pbs.bundleQty,
|
|
820
787
|
releaseQty: bundleReleaseQty * pbs.bundleQty,
|
|
@@ -7,7 +7,7 @@ import { generateId } from '@things-factory/id-rule-base'
|
|
|
7
7
|
import { Account } from '@things-factory/integration-accounting'
|
|
8
8
|
import { MarketplaceStore } from '@things-factory/integration-marketplace'
|
|
9
9
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
10
|
-
import { Product } from '@things-factory/product-base'
|
|
10
|
+
import { Product, ProductDetail } from '@things-factory/product-base'
|
|
11
11
|
import { PartnerSetting, Setting } from '@things-factory/setting-base'
|
|
12
12
|
import { Domain } from '@things-factory/shell'
|
|
13
13
|
|
|
@@ -215,7 +215,9 @@ export class InventoryChangeMutation {
|
|
|
215
215
|
newRecord.bizplace = bizplace
|
|
216
216
|
|
|
217
217
|
var product: Product = await tx.getRepository(Product).findOne(newRecord.product.id)
|
|
218
|
+
var productDetail: ProductDetail = await tx.getRepository(ProductDetail).findOne(newRecord.productDetailId)
|
|
218
219
|
newRecord.product = product
|
|
220
|
+
newRecord.productDetail = productDetail
|
|
219
221
|
|
|
220
222
|
newRecord.status = 'PENDING'
|
|
221
223
|
newRecord.transactionType = 'NEW'
|
|
@@ -589,6 +591,7 @@ async function upsertInventoryItems(context, inventoryChange, approvalStatus, tx
|
|
|
589
591
|
inventoryItem.serialNumber = inventoryItemChange.serialNumber
|
|
590
592
|
inventoryItem.status = INVENTORY_STATUS.STORED
|
|
591
593
|
inventoryItem.product = inventoryChange.inventory.product
|
|
594
|
+
inventoryItem.productDetail = inventoryChange.inventory.productDetail
|
|
592
595
|
inventoryItem.domain = inventoryItemChange.domain
|
|
593
596
|
inventoryItem.inventory = inventoryChange.inventory
|
|
594
597
|
inventoryItem.source = INVENTORY_ITEM_SOURCE.ADJUSTMENT
|
|
@@ -608,7 +611,8 @@ async function upsertInventoryItems(context, inventoryChange, approvalStatus, tx
|
|
|
608
611
|
inventoryItem = {
|
|
609
612
|
...existingInventoryItem,
|
|
610
613
|
serialNumber: inventoryItemChange.serialNumber,
|
|
611
|
-
product: inventoryItemChange.inventory.product
|
|
614
|
+
product: inventoryItemChange.inventory.product,
|
|
615
|
+
productDetail: inventoryItemChange.inventory.productDetail
|
|
612
616
|
}
|
|
613
617
|
} else if (changeType == INVENTORY_ITEM_CHANGE_TYPE.REMOVED) {
|
|
614
618
|
inventoryItem = {
|
|
@@ -645,6 +649,7 @@ export async function approveInventoryChanges(patches: any, context: any) {
|
|
|
645
649
|
'bizplace.company',
|
|
646
650
|
'bizplace.company.domain',
|
|
647
651
|
'product',
|
|
652
|
+
'productDetail',
|
|
648
653
|
'product.productDetails',
|
|
649
654
|
'product.productDetails.childProductDetail',
|
|
650
655
|
'location'
|
|
@@ -680,6 +685,7 @@ export async function approveInventoryChanges(patches: any, context: any) {
|
|
|
680
685
|
'bizplace.company',
|
|
681
686
|
'bizplace.company.domain',
|
|
682
687
|
'product',
|
|
688
|
+
'productDetail',
|
|
683
689
|
'product.productDetails',
|
|
684
690
|
'product.productDetails.childProductDetail',
|
|
685
691
|
'warehouse',
|
|
@@ -689,8 +695,6 @@ export async function approveInventoryChanges(patches: any, context: any) {
|
|
|
689
695
|
]
|
|
690
696
|
})
|
|
691
697
|
|
|
692
|
-
const customerDomain: Domain = inventory.bizplace.domain
|
|
693
|
-
|
|
694
698
|
// Check for locked inventory, and stop from udpating inventory
|
|
695
699
|
if (inventory.qty < inventory.lockedQty) {
|
|
696
700
|
arrLockedInventory.push(_inventoryChanges[i])
|
|
@@ -860,7 +864,8 @@ export async function approveInventoryChanges(patches: any, context: any) {
|
|
|
860
864
|
id: inventoryId,
|
|
861
865
|
status: statusFilter,
|
|
862
866
|
updater: user,
|
|
863
|
-
lastSeq: lastSeq
|
|
867
|
+
lastSeq: lastSeq,
|
|
868
|
+
createdAt: inventory.createdAt
|
|
864
869
|
})
|
|
865
870
|
|
|
866
871
|
//Check and set latest location status
|
|
@@ -230,6 +230,8 @@ export class InventoryHistoryQuery {
|
|
|
230
230
|
Lower(prd.name) LIKE ANY(ARRAY[${productValue}])
|
|
231
231
|
OR Lower(prd.sku) LIKE ANY(ARRAY[${productValue}])
|
|
232
232
|
OR Lower(prd.description) LIKE ANY(ARRAY[${productValue}])
|
|
233
|
+
OR Lower(prd.brand) LIKE ANY(ARRAY[${productValue}])
|
|
234
|
+
OR Lower(prd.brand_sku) LIKE ANY(ARRAY[${productValue}])
|
|
233
235
|
)`
|
|
234
236
|
}
|
|
235
237
|
|
|
@@ -1043,7 +1045,7 @@ export class InventoryHistoryQuery {
|
|
|
1043
1045
|
and (lower(prd.name) like any(array[${products}])
|
|
1044
1046
|
or lower(prd.description) like any(array[${products}])
|
|
1045
1047
|
or lower(prd.sku) like any(array[${products}])
|
|
1046
|
-
or lower(prd.
|
|
1048
|
+
or lower(prd.brand_sku) like any(array[${products}]))
|
|
1047
1049
|
and prd.id = rih.product_id
|
|
1048
1050
|
group by prd.id
|
|
1049
1051
|
)`
|
|
@@ -1400,7 +1402,14 @@ export class InventoryHistoryQuery {
|
|
|
1400
1402
|
|
|
1401
1403
|
let foundProductDetail = await tx
|
|
1402
1404
|
.getRepository(ProductDetail)
|
|
1403
|
-
.
|
|
1405
|
+
.createQueryBuilder('pd')
|
|
1406
|
+
.where('pd.domain = :domainId ', { domainId: companyDomain.id })
|
|
1407
|
+
.andWhere(
|
|
1408
|
+
new Brackets(qb => {
|
|
1409
|
+
qb.where('pd.volume = 0').orWhere('pd.volume is null')
|
|
1410
|
+
})
|
|
1411
|
+
)
|
|
1412
|
+
.getOne()
|
|
1404
1413
|
|
|
1405
1414
|
if (foundProductDetail) {
|
|
1406
1415
|
throw new Error('there is product master with empty volume')
|
|
@@ -1425,7 +1434,7 @@ export class InventoryHistoryQuery {
|
|
|
1425
1434
|
rih.bizplace_id as bizplace_id,
|
|
1426
1435
|
cast(rih.created_at + (interval '8 hour') as DATE) as "tempDate"
|
|
1427
1436
|
from reduced_inventory_histories rih
|
|
1428
|
-
left join product_details pd on pd.
|
|
1437
|
+
left join product_details pd on pd.id = rih.product_detail_id
|
|
1429
1438
|
where rih.status not like 'TERMINATED' and rih.bizplace_id = $1
|
|
1430
1439
|
group by CAST(rih.created_at + (interval '8 hour') as DATE), rih.bizplace_id
|
|
1431
1440
|
)
|
|
@@ -1465,8 +1474,8 @@ export class InventoryHistoryQuery {
|
|
|
1465
1474
|
await tx.query(
|
|
1466
1475
|
`
|
|
1467
1476
|
create temp table temp_result ON COMMIT drop as(
|
|
1468
|
-
select lag(sub."closingQty", 1, 0) over (partition by sub.bizplace_id order by sub.date) as "openingQty",
|
|
1469
|
-
lag(sub."closingVolume", 1, 0) over (partition by sub.bizplace_id order by sub.date) as "openingVolume", sub.* from(
|
|
1477
|
+
select lag(sub."closingQty", 1, 0::double precision) over (partition by sub.bizplace_id order by sub.date) as "openingQty",
|
|
1478
|
+
lag(sub."closingVolume", 1, 0::numeric) over (partition by sub.bizplace_id order by sub.date) as "openingVolume", sub.* from(
|
|
1470
1479
|
select (select sum(tmp2.total) from temp_reduced_inventory_histories_with_date_range tmp2 where tmp2.row <= tmp.row) as "closingQty",
|
|
1471
1480
|
(select sum(tmp2."totalVolume") from temp_reduced_inventory_histories_with_date_range tmp2 where tmp2.row <= tmp.row) as "closingVolume", tmp.* from
|
|
1472
1481
|
temp_reduced_inventory_histories_with_date_range tmp) sub
|
|
@@ -1556,8 +1565,8 @@ async function massageInventorySummary(tx: EntityManager, params: ListParam, biz
|
|
|
1556
1565
|
sum(case when ih.created_at >= $1 and ih.transaction_type = 'ADJUSTMENT' then ih.qty else 0 end) as adjustment_qty,
|
|
1557
1566
|
sum(case when ih.created_at < $1 then qty else 0 end) as opening_qty,
|
|
1558
1567
|
sum(case when ih.status = 'MISSING' then -ih.opening_qty else 0 end) as missing_qty,
|
|
1559
|
-
sum(case when ih.created_at >= $1 then case when ih.qty > 0 and ih.transaction_type <> 'ADJUSTMENT' then ih.qty else 0 end else 0 end) as total_in_qty,
|
|
1560
|
-
sum(case when ih.created_at >= $1 then case when ih.qty < 0 and ih.transaction_type <> 'ADJUSTMENT' then ih.qty else 0 end else 0 end) as total_out_qty,
|
|
1568
|
+
sum(case when ih.created_at >= $1 then case when ih.qty > 0 and ih.transaction_type <> 'ADJUSTMENT' and ih.transaction_type <> 'RELOCATE' then ih.qty else 0 end else 0 end) as total_in_qty,
|
|
1569
|
+
sum(case when ih.created_at >= $1 then case when ih.qty < 0 and ih.transaction_type <> 'ADJUSTMENT' and ih.transaction_type <> 'RELOCATE' then ih.qty else 0 end else 0 end) as total_out_qty,
|
|
1561
1570
|
ih.product_id
|
|
1562
1571
|
from temp_inv_history ih
|
|
1563
1572
|
inner join temp_products prd on prd.id = ih.product_id
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from 'typeorm'
|
|
12
12
|
|
|
13
13
|
import { User } from '@things-factory/auth-base'
|
|
14
|
-
import { Product } from '@things-factory/product-base'
|
|
14
|
+
import { Product, ProductDetail} from '@things-factory/product-base'
|
|
15
15
|
import { Domain } from '@things-factory/shell'
|
|
16
16
|
|
|
17
17
|
import { Inventory } from '../inventory/inventory'
|
|
@@ -32,7 +32,8 @@ export class InventoryItem {
|
|
|
32
32
|
|
|
33
33
|
@RelationId((inventoryItem: InventoryItem) => inventoryItem.domain)
|
|
34
34
|
domainId?: string
|
|
35
|
-
|
|
35
|
+
|
|
36
|
+
|
|
36
37
|
@Column()
|
|
37
38
|
@Field()
|
|
38
39
|
name: string
|
|
@@ -57,13 +58,19 @@ export class InventoryItem {
|
|
|
57
58
|
@Field({ nullable: true })
|
|
58
59
|
outboundOrderId: string
|
|
59
60
|
|
|
61
|
+
|
|
60
62
|
@ManyToOne(type => Product)
|
|
61
63
|
@Field(type => Product, { nullable: true })
|
|
62
64
|
product?: Product
|
|
63
65
|
|
|
66
|
+
|
|
64
67
|
@RelationId((inventoryItem: InventoryItem) => inventoryItem.product)
|
|
65
68
|
productId?: string
|
|
66
69
|
|
|
70
|
+
@ManyToOne(type => ProductDetail, { nullable: true })
|
|
71
|
+
@Field({ nullable: true })
|
|
72
|
+
productDetail: ProductDetail
|
|
73
|
+
|
|
67
74
|
@ManyToOne(type => Inventory)
|
|
68
75
|
@Field(type => Inventory)
|
|
69
76
|
inventory?: Inventory
|