@things-factory/warehouse-base 3.6.55 → 3.7.3
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/graphql/resolvers/inventory/inventories-by-bundle.js +9 -5
- package/dist-server/graphql/resolvers/inventory/inventories-by-bundle.js.map +1 -1
- package/dist-server/graphql/resolvers/inventory/inventories-by-strategy.js +19 -4
- package/dist-server/graphql/resolvers/inventory/inventories-by-strategy.js.map +1 -1
- package/dist-server/graphql/types/inventory/index.js +1 -1
- package/dist-server/graphql/types/inventory/inventory-bundle-group.js +1 -0
- package/dist-server/graphql/types/inventory/inventory-bundle-group.js.map +1 -1
- package/package.json +8 -8
- package/server/graphql/resolvers/inventory/inventories-by-bundle.ts +9 -4
- package/server/graphql/resolvers/inventory/inventories-by-strategy.ts +44 -5
- package/server/graphql/types/inventory/index.ts +1 -1
- package/server/graphql/types/inventory/inventory-bundle-group.ts +1 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.inventoriesByBundleResolver = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
4
5
|
const biz_base_1 = require("@things-factory/biz-base");
|
|
6
|
+
const product_base_1 = require("@things-factory/product-base");
|
|
5
7
|
const shell_1 = require("@things-factory/shell");
|
|
6
|
-
const typeorm_1 = require("typeorm");
|
|
7
8
|
const entities_1 = require("../../../entities");
|
|
8
|
-
const product_base_1 = require("@things-factory/product-base");
|
|
9
9
|
exports.inventoriesByBundleResolver = {
|
|
10
10
|
async inventoriesByBundle(_, { filters, pagination, sortings }, context) {
|
|
11
11
|
var _a, _b;
|
|
@@ -51,6 +51,7 @@ exports.inventoriesByBundleResolver = {
|
|
|
51
51
|
.addSelect('iv.batch_id', 'batchId')
|
|
52
52
|
.addSelect('iv.batch_id_ref', 'batchIdRef')
|
|
53
53
|
.addSelect('iv.packing_type', 'packingType')
|
|
54
|
+
.addSelect('iv.uom', 'uom')
|
|
54
55
|
.addSelect('SUM(iv.qty)', 'qty')
|
|
55
56
|
.addSelect('SUM(iv.locked_qty)', 'lockedQty')
|
|
56
57
|
.addSelect('SUM(iv.uom_value)', 'uomValue')
|
|
@@ -59,7 +60,7 @@ exports.inventoriesByBundleResolver = {
|
|
|
59
60
|
.addSelect('prd.name', 'productName')
|
|
60
61
|
.addSelect('prd.description', 'productDescription')
|
|
61
62
|
.addSelect('prd.type', 'productType')
|
|
62
|
-
.addSelect('prd.primary_unit', '
|
|
63
|
+
// .addSelect('prd.primary_unit', 'productUom')
|
|
63
64
|
.leftJoin('iv.product', 'prd');
|
|
64
65
|
if (remainOnly) {
|
|
65
66
|
qb.andWhere('iv.qty > 0')
|
|
@@ -76,16 +77,19 @@ exports.inventoriesByBundleResolver = {
|
|
|
76
77
|
.addGroupBy('iv.batch_id')
|
|
77
78
|
.addGroupBy('iv.batch_id_ref')
|
|
78
79
|
.addGroupBy('iv.packing_type')
|
|
80
|
+
.addGroupBy('iv.uom')
|
|
79
81
|
.addGroupBy('prd.sku')
|
|
80
82
|
.addGroupBy('prd.name')
|
|
81
83
|
.addGroupBy('prd.description')
|
|
82
84
|
.addGroupBy('prd.type')
|
|
83
85
|
.addOrderBy('prd.name')
|
|
84
|
-
.addGroupBy('prd.primary_unit')
|
|
86
|
+
// .addGroupBy('prd.primary_unit')
|
|
85
87
|
.addOrderBy('iv.batch_id');
|
|
86
88
|
let bundleGroup = await qb.getRawMany();
|
|
87
89
|
bundleGroup = bundleGroup.map((item) => {
|
|
88
|
-
return Object.assign(Object.assign({}, item), { bundleId: productBundleId, remainQty: item.qty - (item.lockedQty ? item.lockedQty : 0), remainUomValue: item.uomValue - (item.lockedUomValue ? item.lockedUomValue : 0),
|
|
90
|
+
return Object.assign(Object.assign({}, item), { bundleId: productBundleId, remainQty: item.qty - (item.lockedQty ? item.lockedQty : 0), remainUomValue: item.uomValue - (item.lockedUomValue ? item.lockedUomValue : 0),
|
|
91
|
+
// productUom: item.productUom,
|
|
92
|
+
uom: item.uom, bundleQty: productBundleSettings.filter(pbs => pbs.product.id === item.productId)[0].bundleQty });
|
|
89
93
|
});
|
|
90
94
|
const bundleSetting = productBundleSettings.map(pbs => {
|
|
91
95
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inventories-by-bundle.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/inventory/inventories-by-bundle.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"inventories-by-bundle.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/inventory/inventories-by-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ exports.inventoriesByStrategy = exports.inventoriesByStrategyResolver = void 0;
|
|
|
4
4
|
const setting_base_1 = require("@things-factory/setting-base");
|
|
5
5
|
const entities_1 = require("../../../entities");
|
|
6
6
|
exports.inventoriesByStrategyResolver = {
|
|
7
|
-
async inventoriesByStrategy(_, { worksheetId, batchId, bizplaceId, productName, productSku, packingType, pickingStrategy, locationSortingRules }, context) {
|
|
7
|
+
async inventoriesByStrategy(_, { worksheetId, batchId, bizplaceId, productName, productSku, packingType, packingSize, uom, pickingStrategy, locationSortingRules }, context) {
|
|
8
8
|
const { domain, tx } = context.state;
|
|
9
9
|
const inventoryAssignmentSetting = await tx.getRepository(setting_base_1.Setting).findOne({
|
|
10
10
|
where: { domain, name: 'rule-for-inventory-assignment' }
|
|
@@ -16,10 +16,21 @@ exports.inventoriesByStrategyResolver = {
|
|
|
16
16
|
locationSortingRules.push({ name: key, desc: locationSetting[key] == 'ASC' ? false : true });
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
return inventoriesByStrategy({
|
|
19
|
+
return inventoriesByStrategy({
|
|
20
|
+
worksheetId,
|
|
21
|
+
batchId,
|
|
22
|
+
bizplaceId,
|
|
23
|
+
productName,
|
|
24
|
+
productSku,
|
|
25
|
+
packingType,
|
|
26
|
+
packingSize,
|
|
27
|
+
uom,
|
|
28
|
+
pickingStrategy,
|
|
29
|
+
locationSortingRules
|
|
30
|
+
}, domain, tx);
|
|
20
31
|
}
|
|
21
32
|
};
|
|
22
|
-
async function inventoriesByStrategy({ worksheetId, batchId, bizplaceId, productName, productSku, packingType, pickingStrategy, locationSortingRules }, domain, trxMgr) {
|
|
33
|
+
async function inventoriesByStrategy({ worksheetId, batchId, bizplaceId, productName, productSku, packingType, packingSize, uom, pickingStrategy, locationSortingRules }, domain, trxMgr) {
|
|
23
34
|
const qb = await trxMgr.getRepository(entities_1.Inventory).createQueryBuilder('INV');
|
|
24
35
|
qb.leftJoinAndSelect('INV.product', 'PROD')
|
|
25
36
|
.leftJoinAndSelect('INV.location', 'LOC')
|
|
@@ -39,12 +50,16 @@ async function inventoriesByStrategy({ worksheetId, batchId, bizplaceId, product
|
|
|
39
50
|
.andWhere('"PROD"."name" = :productName')
|
|
40
51
|
.andWhere('"PROD"."sku" = :productSku')
|
|
41
52
|
.andWhere('"INV"."packing_type" = :packingType')
|
|
53
|
+
.andWhere('"INV"."packing_size" = :packingSize')
|
|
54
|
+
.andWhere('"INV"."uom" = :uom')
|
|
42
55
|
.andWhere('"INV"."status" = :status', { status: 'STORED' })
|
|
43
56
|
.setParameters({
|
|
44
57
|
domainId: domain.id,
|
|
45
58
|
productName,
|
|
46
59
|
productSku,
|
|
47
|
-
packingType
|
|
60
|
+
packingType,
|
|
61
|
+
packingSize,
|
|
62
|
+
uom
|
|
48
63
|
});
|
|
49
64
|
if (batchId !== '') {
|
|
50
65
|
qb.andWhere('"INV"."batch_id" = :batchId', { batchId });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inventories-by-strategy.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/inventory/inventories-by-strategy.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"inventories-by-strategy.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/inventory/inventories-by-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ exports.Query = `
|
|
|
45
45
|
inventory(palletId: String!): Inventory @privilege(category: "inventory", privilege: "query")
|
|
46
46
|
inventoryByPallet(palletId: String!): Inventory @privilege(category: "inventory", privilege: "query")
|
|
47
47
|
inventoriesByProduct(filters: [Filter], pagination: Pagination, sortings: [Sorting]): InventoryList @privilege(category: "inventory", privilege: "query") @transaction
|
|
48
|
-
inventoriesByStrategy(worksheetId: String!, batchId: String!, bizplaceId: String, productName: String!, productSku: String!, packingType: String!, pickingStrategy: String! locationSortingRules: [Sorting]): InventoryList @transaction
|
|
48
|
+
inventoriesByStrategy(worksheetId: String!, batchId: String!, bizplaceId: String, productName: String!, productSku: String!, packingType: String!, packingSize: Float!, uom: String!, pickingStrategy: String! locationSortingRules: [Sorting]): InventoryList @transaction
|
|
49
49
|
checkProductIdenticality(palletA: String!, palletB: String!): Boolean @transaction
|
|
50
50
|
checkCartonIdenticality(cartonA: String!, palletA: String!, cartonB: String!): Boolean
|
|
51
51
|
checkInventoryOwner(palletId: String!, bizplaceName: String!): Boolean
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inventory-bundle-group.js","sourceRoot":"","sources":["../../../../server/graphql/types/inventory/inventory-bundle-group.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,oBAAoB,GAAG,IAAA,qBAAG,EAAA
|
|
1
|
+
{"version":3,"file":"inventory-bundle-group.js","sourceRoot":"","sources":["../../../../server/graphql/types/inventory/inventory-bundle-group.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,oBAAoB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BtC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/warehouse-base",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.7.3",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@things-factory/biz-base": "^3.
|
|
28
|
-
"@things-factory/id-rule-base": "^3.
|
|
29
|
-
"@things-factory/integration-sellercraft": "^3.
|
|
30
|
-
"@things-factory/marketplace-base": "^3.
|
|
31
|
-
"@things-factory/product-base": "^3.
|
|
32
|
-
"@things-factory/setting-base": "^3.
|
|
27
|
+
"@things-factory/biz-base": "^3.7.3",
|
|
28
|
+
"@things-factory/id-rule-base": "^3.7.3",
|
|
29
|
+
"@things-factory/integration-sellercraft": "^3.7.3",
|
|
30
|
+
"@things-factory/marketplace-base": "^3.7.3",
|
|
31
|
+
"@things-factory/product-base": "^3.7.3",
|
|
32
|
+
"@things-factory/setting-base": "^3.7.3"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "3b30ef85d2381113969ee345b4058c3716cf1c0d"
|
|
35
35
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { getRepository, SelectQueryBuilder } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { User } from '@things-factory/auth-base'
|
|
2
4
|
import { getPermittedBizplaceIds } from '@things-factory/biz-base'
|
|
5
|
+
import { ProductBundleSetting } from '@things-factory/product-base'
|
|
3
6
|
import { buildQuery, Domain } from '@things-factory/shell'
|
|
4
|
-
|
|
7
|
+
|
|
5
8
|
import { Inventory } from '../../../entities'
|
|
6
|
-
import { ProductBundleSetting } from '@things-factory/product-base'
|
|
7
9
|
|
|
8
10
|
export const inventoriesByBundleResolver = {
|
|
9
11
|
async inventoriesByBundle(_: any, { filters, pagination, sortings }, context: any) {
|
|
@@ -70,6 +72,7 @@ export const inventoriesByBundleResolver = {
|
|
|
70
72
|
.addSelect('iv.batch_id', 'batchId')
|
|
71
73
|
.addSelect('iv.batch_id_ref', 'batchIdRef')
|
|
72
74
|
.addSelect('iv.packing_type', 'packingType')
|
|
75
|
+
.addSelect('iv.uom', 'uom')
|
|
73
76
|
.addSelect('SUM(iv.qty)', 'qty')
|
|
74
77
|
.addSelect('SUM(iv.locked_qty)', 'lockedQty')
|
|
75
78
|
.addSelect('SUM(iv.uom_value)', 'uomValue')
|
|
@@ -78,7 +81,7 @@ export const inventoriesByBundleResolver = {
|
|
|
78
81
|
.addSelect('prd.name', 'productName')
|
|
79
82
|
.addSelect('prd.description', 'productDescription')
|
|
80
83
|
.addSelect('prd.type', 'productType')
|
|
81
|
-
.addSelect('prd.primary_unit', '
|
|
84
|
+
// .addSelect('prd.primary_unit', 'productUom')
|
|
82
85
|
.leftJoin('iv.product', 'prd')
|
|
83
86
|
|
|
84
87
|
if (remainOnly) {
|
|
@@ -98,12 +101,13 @@ export const inventoriesByBundleResolver = {
|
|
|
98
101
|
.addGroupBy('iv.batch_id')
|
|
99
102
|
.addGroupBy('iv.batch_id_ref')
|
|
100
103
|
.addGroupBy('iv.packing_type')
|
|
104
|
+
.addGroupBy('iv.uom')
|
|
101
105
|
.addGroupBy('prd.sku')
|
|
102
106
|
.addGroupBy('prd.name')
|
|
103
107
|
.addGroupBy('prd.description')
|
|
104
108
|
.addGroupBy('prd.type')
|
|
105
109
|
.addOrderBy('prd.name')
|
|
106
|
-
.addGroupBy('prd.primary_unit')
|
|
110
|
+
// .addGroupBy('prd.primary_unit')
|
|
107
111
|
.addOrderBy('iv.batch_id')
|
|
108
112
|
|
|
109
113
|
let bundleGroup = await qb.getRawMany()
|
|
@@ -114,6 +118,7 @@ export const inventoriesByBundleResolver = {
|
|
|
114
118
|
bundleId: productBundleId,
|
|
115
119
|
remainQty: item.qty - (item.lockedQty ? item.lockedQty : 0),
|
|
116
120
|
remainUomValue: item.uomValue - (item.lockedUomValue ? item.lockedUomValue : 0),
|
|
121
|
+
// productUom: item.productUom,
|
|
117
122
|
uom: item.uom,
|
|
118
123
|
bundleQty: productBundleSettings.filter(pbs => pbs.product.id === item.productId)[0].bundleQty
|
|
119
124
|
}
|
|
@@ -1,12 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EntityManager } from 'typeorm'
|
|
2
|
+
|
|
2
3
|
import { Setting } from '@things-factory/setting-base'
|
|
3
4
|
import { Domain } from '@things-factory/shell'
|
|
5
|
+
|
|
4
6
|
import { Inventory } from '../../../entities'
|
|
5
7
|
|
|
6
8
|
export const inventoriesByStrategyResolver = {
|
|
7
9
|
async inventoriesByStrategy(
|
|
8
10
|
_: any,
|
|
9
|
-
{
|
|
11
|
+
{
|
|
12
|
+
worksheetId,
|
|
13
|
+
batchId,
|
|
14
|
+
bizplaceId,
|
|
15
|
+
productName,
|
|
16
|
+
productSku,
|
|
17
|
+
packingType,
|
|
18
|
+
packingSize,
|
|
19
|
+
uom,
|
|
20
|
+
pickingStrategy,
|
|
21
|
+
locationSortingRules
|
|
22
|
+
},
|
|
10
23
|
context: any
|
|
11
24
|
) {
|
|
12
25
|
const { domain, tx }: { domain: Domain; tx: EntityManager } = context.state
|
|
@@ -24,7 +37,18 @@ export const inventoriesByStrategyResolver = {
|
|
|
24
37
|
}
|
|
25
38
|
|
|
26
39
|
return inventoriesByStrategy(
|
|
27
|
-
{
|
|
40
|
+
{
|
|
41
|
+
worksheetId,
|
|
42
|
+
batchId,
|
|
43
|
+
bizplaceId,
|
|
44
|
+
productName,
|
|
45
|
+
productSku,
|
|
46
|
+
packingType,
|
|
47
|
+
packingSize,
|
|
48
|
+
uom,
|
|
49
|
+
pickingStrategy,
|
|
50
|
+
locationSortingRules
|
|
51
|
+
},
|
|
28
52
|
domain,
|
|
29
53
|
tx
|
|
30
54
|
)
|
|
@@ -32,7 +56,18 @@ export const inventoriesByStrategyResolver = {
|
|
|
32
56
|
}
|
|
33
57
|
|
|
34
58
|
export async function inventoriesByStrategy(
|
|
35
|
-
{
|
|
59
|
+
{
|
|
60
|
+
worksheetId,
|
|
61
|
+
batchId,
|
|
62
|
+
bizplaceId,
|
|
63
|
+
productName,
|
|
64
|
+
productSku,
|
|
65
|
+
packingType,
|
|
66
|
+
packingSize,
|
|
67
|
+
uom,
|
|
68
|
+
pickingStrategy,
|
|
69
|
+
locationSortingRules
|
|
70
|
+
},
|
|
36
71
|
domain: Domain,
|
|
37
72
|
trxMgr: EntityManager
|
|
38
73
|
) {
|
|
@@ -59,12 +94,16 @@ export async function inventoriesByStrategy(
|
|
|
59
94
|
.andWhere('"PROD"."name" = :productName')
|
|
60
95
|
.andWhere('"PROD"."sku" = :productSku')
|
|
61
96
|
.andWhere('"INV"."packing_type" = :packingType')
|
|
97
|
+
.andWhere('"INV"."packing_size" = :packingSize')
|
|
98
|
+
.andWhere('"INV"."uom" = :uom')
|
|
62
99
|
.andWhere('"INV"."status" = :status', { status: 'STORED' })
|
|
63
100
|
.setParameters({
|
|
64
101
|
domainId: domain.id,
|
|
65
102
|
productName,
|
|
66
103
|
productSku,
|
|
67
|
-
packingType
|
|
104
|
+
packingType,
|
|
105
|
+
packingSize,
|
|
106
|
+
uom
|
|
68
107
|
})
|
|
69
108
|
|
|
70
109
|
if (batchId !== '') {
|
|
@@ -44,7 +44,7 @@ export const Query = /* GraphQL */ `
|
|
|
44
44
|
inventory(palletId: String!): Inventory @privilege(category: "inventory", privilege: "query")
|
|
45
45
|
inventoryByPallet(palletId: String!): Inventory @privilege(category: "inventory", privilege: "query")
|
|
46
46
|
inventoriesByProduct(filters: [Filter], pagination: Pagination, sortings: [Sorting]): InventoryList @privilege(category: "inventory", privilege: "query") @transaction
|
|
47
|
-
inventoriesByStrategy(worksheetId: String!, batchId: String!, bizplaceId: String, productName: String!, productSku: String!, packingType: String!, pickingStrategy: String! locationSortingRules: [Sorting]): InventoryList @transaction
|
|
47
|
+
inventoriesByStrategy(worksheetId: String!, batchId: String!, bizplaceId: String, productName: String!, productSku: String!, packingType: String!, packingSize: Float!, uom: String!, pickingStrategy: String! locationSortingRules: [Sorting]): InventoryList @transaction
|
|
48
48
|
checkProductIdenticality(palletA: String!, palletB: String!): Boolean @transaction
|
|
49
49
|
checkCartonIdenticality(cartonA: String!, palletA: String!, cartonB: String!): Boolean
|
|
50
50
|
checkInventoryOwner(palletId: String!, bizplaceName: String!): Boolean
|