@things-factory/worksheet-base 4.3.468 → 4.3.470

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.
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.inventoriesByPalletResolver = void 0;
4
4
  const typeorm_1 = require("typeorm");
5
- const biz_base_1 = require("@things-factory/biz-base");
6
5
  const sales_base_1 = require("@things-factory/sales-base");
7
6
  const shell_1 = require("@things-factory/shell");
8
7
  const warehouse_base_1 = require("@things-factory/warehouse-base");
@@ -10,36 +9,37 @@ exports.inventoriesByPalletResolver = {
10
9
  async inventoriesByPallet(_, { filters, pagination, sortings, locationSortingRules }, context) {
11
10
  const { domain, user } = context.state;
12
11
  const params = { filters, pagination };
13
- let permittedBizplaceIds = await (0, biz_base_1.getPermittedBizplaceIds)(domain, user);
14
- const bizplaceId = params.filters.find(x => x.name == 'bizplace_id');
15
- const productFilters = params.filters.filter(x => x.name == 'productName');
16
- const recallFilters = params.filters.find(x => x.name === 'recall');
17
- const skipLockCheckFilters = params.filters.find(x => x.name === 'skipLockCheck');
18
- let skipLockCheck = skipLockCheckFilters && (skipLockCheckFilters === null || skipLockCheckFilters === void 0 ? void 0 : skipLockCheckFilters.value) ? skipLockCheckFilters === null || skipLockCheckFilters === void 0 ? void 0 : skipLockCheckFilters.value : false;
19
- const productFilterColumns = ['sku', 'brandSku', 'name', 'description', 'brand', 'subBrand'];
20
- params.filters = params.filters.filter(x => x.name != 'productName');
21
- const batchIdFilters = params.filters.find(x => x.name == 'batchId');
22
- if (!params.filters.find((filter) => filter.name === 'bizplace_id')) {
23
- throw new Error('No Bizplace found');
24
- }
25
- const locationFilters = params.filters.find(x => x.name == 'locationName');
26
- params.filters = params.filters.filter(x => x.name != 'locationName');
27
- const qb = (0, typeorm_1.getRepository)(warehouse_base_1.Inventory).createQueryBuilder('iv');
28
- (0, shell_1.buildQuery)(qb, params, context);
29
- qb.leftJoinAndSelect('iv.domain', 'domain')
30
- .leftJoinAndSelect('iv.bizplace', 'bizplace')
31
- .leftJoinAndSelect('iv.product', 'product')
32
- .leftJoinAndSelect('iv.productDetail', 'productDetail')
33
- .leftJoin('product_detail_stocks', 'pds', 'pds.product_detail_id = iv.product_detail_id')
34
- .leftJoinAndSelect('iv.warehouse', 'warehouse')
35
- .leftJoinAndSelect('iv.location', 'location')
36
- .leftJoinAndSelect('iv.creator', 'creator')
37
- .leftJoinAndSelect('iv.updater', 'updater')
38
- .andWhere('iv.qty > 0')
39
- .andWhere('iv.transfer_qty <= 0')
40
- .andWhere('iv.transfer_uom_value <= 0')
41
- .andWhere(`location.type ${(recallFilters === null || recallFilters === void 0 ? void 0 : recallFilters.value) === true ? '' : 'NOT'} IN ('${warehouse_base_1.LOCATION_TYPE.QUARANTINE}', '${warehouse_base_1.LOCATION_TYPE.RESERVE}', '${warehouse_base_1.LOCATION_TYPE.DAMAGE}')`)
42
- .andWhere(`(iv.batch_id, product.name, iv.packing_type, product.brand) NOT IN (
12
+ try {
13
+ const bizplaceId = params.filters.find(x => x.name == 'bizplace_id');
14
+ const productFilters = params.filters.filter(x => x.name == 'productName');
15
+ const inventoriesFilters = params.filters.find(x => x.name == 'invFilter');
16
+ const recallFilters = params.filters.find(x => x.name === 'recall');
17
+ const skipLockCheckFilters = params.filters.find(x => x.name === 'skipLockCheck');
18
+ let skipLockCheck = skipLockCheckFilters && (skipLockCheckFilters === null || skipLockCheckFilters === void 0 ? void 0 : skipLockCheckFilters.value) ? skipLockCheckFilters === null || skipLockCheckFilters === void 0 ? void 0 : skipLockCheckFilters.value : false;
19
+ const productFilterColumns = ['sku', 'brandSku', 'name', 'description', 'brand', 'subBrand'];
20
+ params.filters = params.filters.filter(x => x.name != 'productName' && x.name != 'invFilter');
21
+ const batchIdFilters = params.filters.find(x => x.name == 'batchId');
22
+ if (!params.filters.find((filter) => filter.name === 'bizplace_id')) {
23
+ throw new Error('No Bizplace found');
24
+ }
25
+ const locationFilters = params.filters.find(x => x.name == 'locationName');
26
+ params.filters = params.filters.filter(x => x.name != 'locationName');
27
+ const qb = (0, typeorm_1.getRepository)(warehouse_base_1.Inventory).createQueryBuilder('iv');
28
+ (0, shell_1.buildQuery)(qb, params, context);
29
+ qb.leftJoinAndSelect('iv.domain', 'domain')
30
+ .leftJoinAndSelect('iv.bizplace', 'bizplace')
31
+ .leftJoinAndSelect('iv.product', 'product')
32
+ .leftJoinAndSelect('iv.productDetail', 'productDetail')
33
+ .leftJoin('product_detail_stocks', 'pds', 'pds.product_detail_id = iv.product_detail_id')
34
+ .leftJoinAndSelect('iv.warehouse', 'warehouse')
35
+ .leftJoinAndSelect('iv.location', 'location')
36
+ .leftJoinAndSelect('iv.creator', 'creator')
37
+ .leftJoinAndSelect('iv.updater', 'updater')
38
+ .andWhere('iv.qty > 0')
39
+ .andWhere('iv.transfer_qty <= 0')
40
+ .andWhere('iv.transfer_uom_value <= 0')
41
+ .andWhere(`location.type ${(recallFilters === null || recallFilters === void 0 ? void 0 : recallFilters.value) === true ? '' : 'NOT'} IN ('${warehouse_base_1.LOCATION_TYPE.QUARANTINE}', '${warehouse_base_1.LOCATION_TYPE.RESERVE}', '${warehouse_base_1.LOCATION_TYPE.DAMAGE}')`)
42
+ .andWhere(`(iv.batch_id, product.name, iv.packing_type, product.brand) NOT IN (
43
43
  SELECT
44
44
  oi.batch_id, p2.name, oi.packing_type, p2.brand
45
45
  FROM
@@ -53,27 +53,14 @@ exports.inventoriesByPalletResolver = {
53
53
  AND oi.domain_id = (:domainId)
54
54
  AND oi.bizplace_id = (:bizplaceId)
55
55
  )`, { bizplaceId: bizplaceId.value, domainId: domain.id });
56
- if (locationFilters) {
57
- qb.andWhere(`location.name ilike '${locationFilters.value}'`);
58
- }
59
- if (productFilters && productFilters.length > 0) {
60
- let productInfo = productFilters[0];
61
- qb.andWhere(new typeorm_1.Brackets(qb2 => {
62
- productFilterColumns.forEach(filter => {
63
- const condition = (0, shell_1.buildCondition)('product', filter, 'i_like', productInfo.value, false, Object.keys(qb.getParameters()).length);
64
- qb2.orWhere(condition.clause, condition.parameters);
65
- });
66
- }));
67
- }
68
- if (!skipLockCheck) {
69
- qb.andWhere('CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END >= 0');
70
- qb.andWhere('iv.qty - CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END > 0');
71
- }
72
- if ((recallFilters === null || recallFilters === void 0 ? void 0 : recallFilters.value) === true) {
73
- qb.orWhere('(iv.domain_id = (:domainId) and iv.bizplace_id = (:bizplaceId)');
74
56
  if (locationFilters) {
75
57
  qb.andWhere(`location.name ilike '${locationFilters.value}'`);
76
58
  }
59
+ if (inventoriesFilters.value.length > 0) {
60
+ qb.andWhere('iv.id NOT IN (:...inventoriesIds)', {
61
+ inventoriesIds: inventoriesFilters.value
62
+ });
63
+ }
77
64
  if (productFilters && productFilters.length > 0) {
78
65
  let productInfo = productFilters[0];
79
66
  qb.andWhere(new typeorm_1.Brackets(qb2 => {
@@ -83,38 +70,60 @@ exports.inventoriesByPalletResolver = {
83
70
  });
84
71
  }));
85
72
  }
86
- if (batchIdFilters) {
87
- qb.andWhere(`iv.batch_id ilike '${batchIdFilters.value}'`);
73
+ if (!skipLockCheck) {
74
+ qb.andWhere('CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END >= 0');
75
+ qb.andWhere('iv.qty - CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END > 0');
88
76
  }
89
- qb.andWhere('iv.obsolete = true and case when iv.expiration_date is not null and product.min_outbound_shelf_life is not null then CURRENT_DATE > iv.expiration_date - product.min_outbound_shelf_life else true end)');
90
- }
91
- else {
92
- qb.andWhere('iv.obsolete = false');
93
- qb.andWhere('case when iv.expiration_date is not null and product.min_outbound_shelf_life is not null then CURRENT_DATE < iv.expiration_date - product.min_outbound_shelf_life else true end');
94
- }
95
- if ((sortings === null || sortings === void 0 ? void 0 : sortings.length) !== 0) {
96
- const arrChildSortData = ['productName', 'productSKU'];
97
- const remapChildSortData = ['name', 'sku'];
98
- const sort = (sortings || []).reduce((acc, sort, idx) => (Object.assign(Object.assign({}, acc), { [arrChildSortData.indexOf(sort.name) >= 0 ? 'product' + '.' + remapChildSortData[idx] : 'iv.' + sort.name]: sort.desc ? 'DESC' : 'ASC' })), {});
99
- qb.orderBy(sort);
100
- }
101
- if ((locationSortingRules === null || locationSortingRules === void 0 ? void 0 : locationSortingRules.length) > 0) {
102
- locationSortingRules.forEach((rule) => {
103
- qb.addOrderBy(`location.${rule.name}`, rule.desc ? 'DESC' : 'ASC');
104
- });
77
+ if ((recallFilters === null || recallFilters === void 0 ? void 0 : recallFilters.value) === true) {
78
+ qb.orWhere('(iv.domain_id = (:domainId) and iv.bizplace_id = (:bizplaceId)');
79
+ if (locationFilters) {
80
+ qb.andWhere(`location.name ilike '${locationFilters.value}'`);
81
+ }
82
+ if (productFilters && productFilters.length > 0) {
83
+ let productInfo = productFilters[0];
84
+ qb.andWhere(new typeorm_1.Brackets(qb2 => {
85
+ productFilterColumns.forEach(filter => {
86
+ const condition = (0, shell_1.buildCondition)('product', filter, 'i_like', productInfo.value, false, Object.keys(qb.getParameters()).length);
87
+ qb2.orWhere(condition.clause, condition.parameters);
88
+ });
89
+ }));
90
+ }
91
+ if (batchIdFilters) {
92
+ qb.andWhere(`iv.batch_id ilike '${batchIdFilters.value}'`);
93
+ }
94
+ qb.andWhere('iv.obsolete = true and case when iv.expiration_date is not null and product.min_outbound_shelf_life is not null then CURRENT_DATE > iv.expiration_date - product.min_outbound_shelf_life else true end)');
95
+ }
96
+ else {
97
+ qb.andWhere('iv.obsolete = false');
98
+ qb.andWhere('case when iv.expiration_date is not null and product.min_outbound_shelf_life is not null then CURRENT_DATE < iv.expiration_date - product.min_outbound_shelf_life else true end');
99
+ }
100
+ if ((sortings === null || sortings === void 0 ? void 0 : sortings.length) !== 0) {
101
+ const arrChildSortData = ['productName', 'productSKU'];
102
+ const remapChildSortData = ['name', 'sku'];
103
+ const sort = (sortings || []).reduce((acc, sort, idx) => (Object.assign(Object.assign({}, acc), { [arrChildSortData.indexOf(sort.name) >= 0 ? 'product' + '.' + remapChildSortData[idx] : 'iv.' + sort.name]: sort.desc ? 'DESC' : 'ASC' })), {});
104
+ qb.orderBy(sort);
105
+ }
106
+ if ((locationSortingRules === null || locationSortingRules === void 0 ? void 0 : locationSortingRules.length) > 0) {
107
+ locationSortingRules.forEach((rule) => {
108
+ qb.addOrderBy(`location.${rule.name}`, rule.desc ? 'DESC' : 'ASC');
109
+ });
110
+ }
111
+ else {
112
+ qb.addOrderBy('location.name', 'DESC');
113
+ }
114
+ let [items, total] = await qb.getManyAndCount();
115
+ items = await Promise.all(items.map(async (item) => {
116
+ const { remainQty, remainUomValue } = await getRemainAmount(item);
117
+ return Object.assign(Object.assign({}, item), { remainQty,
118
+ remainUomValue, remainUomValueWithUom: remainUomValue + ' ' + item.uom,
119
+ // product: item.product,
120
+ productName: `${item.product.name}(${item.product.description})`, productSKU: item.product.sku, productBrand: item.product.brand, productId: item.product.id, productDetailId: item.productDetail.id });
121
+ }));
122
+ return { items, total };
105
123
  }
106
- else {
107
- qb.addOrderBy('location.name', 'DESC');
124
+ catch (error) {
125
+ throw new Error(error);
108
126
  }
109
- let [items, total] = await qb.getManyAndCount();
110
- items = await Promise.all(items.map(async (item) => {
111
- const { remainQty, remainUomValue } = await getRemainAmount(item);
112
- return Object.assign(Object.assign({}, item), { remainQty,
113
- remainUomValue, remainUomValueWithUom: remainUomValue + ' ' + item.uom,
114
- // product: item.product,
115
- productName: `${item.product.name}(${item.product.description})`, productSKU: item.product.sku, productBrand: item.product.brand, productId: item.product.id, productDetailId: item.productDetail.id });
116
- }));
117
- return { items, total };
118
127
  }
119
128
  };
120
129
  async function getRemainAmount(inventory) {
@@ -1 +1 @@
1
- {"version":3,"file":"inventories-by-pallet.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/inventories-by-pallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inventories-by-pallet.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/inventories-by-pallet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/worksheet-base",
3
- "version": "4.3.468",
3
+ "version": "4.3.470",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -29,21 +29,21 @@
29
29
  "@things-factory/id-rule-base": "^4.3.452",
30
30
  "@things-factory/integration-accounting": "^4.3.452",
31
31
  "@things-factory/integration-base": "^4.3.452",
32
- "@things-factory/integration-lmd": "^4.3.468",
33
- "@things-factory/integration-marketplace": "^4.3.468",
34
- "@things-factory/integration-powrup": "^4.3.468",
35
- "@things-factory/integration-sellercraft": "^4.3.468",
32
+ "@things-factory/integration-lmd": "^4.3.470",
33
+ "@things-factory/integration-marketplace": "^4.3.470",
34
+ "@things-factory/integration-powrup": "^4.3.470",
35
+ "@things-factory/integration-sellercraft": "^4.3.470",
36
36
  "@things-factory/integration-sftp": "^4.3.452",
37
- "@things-factory/marketplace-base": "^4.3.468",
37
+ "@things-factory/marketplace-base": "^4.3.470",
38
38
  "@things-factory/notification": "^4.3.452",
39
- "@things-factory/sales-base": "^4.3.468",
39
+ "@things-factory/sales-base": "^4.3.470",
40
40
  "@things-factory/setting-base": "^4.3.452",
41
41
  "@things-factory/shell": "^4.3.434",
42
42
  "@things-factory/transport-base": "^4.3.452",
43
- "@things-factory/warehouse-base": "^4.3.468",
43
+ "@things-factory/warehouse-base": "^4.3.470",
44
44
  "jspdf": "2.5.1",
45
45
  "puppeteer": "21.0.3",
46
46
  "uuid": "^9.0.0"
47
47
  },
48
- "gitHead": "308509a0473091e998ebef189d11ecfa1c27a581"
48
+ "gitHead": "8e72b695084f81b57770f574336df8588b769eb6"
49
49
  }
@@ -1,7 +1,6 @@
1
1
  import { Brackets, getRepository, SelectQueryBuilder } from 'typeorm'
2
2
 
3
3
  import { User } from '@things-factory/auth-base'
4
- import { getPermittedBizplaceIds } from '@things-factory/biz-base'
5
4
  import { ORDER_INVENTORY_STATUS } from '@things-factory/sales-base'
6
5
  import { buildCondition, buildQuery, Domain } from '@things-factory/shell'
7
6
  import { Inventory, LOCATION_TYPE } from '@things-factory/warehouse-base'
@@ -10,15 +9,16 @@ export const inventoriesByPalletResolver = {
10
9
  async inventoriesByPallet(_: any, { filters, pagination, sortings, locationSortingRules }, context: any) {
11
10
  const { domain, user }: { domain: Domain; user: User } = context.state
12
11
  const params = { filters, pagination }
13
- let permittedBizplaceIds: string[] = await getPermittedBizplaceIds(domain, user)
12
+ try {
14
13
  const bizplaceId = params.filters.find(x => x.name == 'bizplace_id')
15
14
  const productFilters = params.filters.filter(x => x.name == 'productName')
15
+ const inventoriesFilters = params.filters.find(x => x.name == 'invFilter')
16
16
  const recallFilters = params.filters.find(x => x.name === 'recall')
17
17
  const skipLockCheckFilters = params.filters.find(x => x.name === 'skipLockCheck')
18
18
  let skipLockCheck: Boolean =
19
19
  skipLockCheckFilters && skipLockCheckFilters?.value ? skipLockCheckFilters?.value : false
20
20
  const productFilterColumns = ['sku', 'brandSku', 'name', 'description', 'brand', 'subBrand']
21
- params.filters = params.filters.filter(x => x.name != 'productName')
21
+ params.filters = params.filters.filter(x => x.name != 'productName' && x.name != 'invFilter')
22
22
  const batchIdFilters = params.filters.find(x => x.name == 'batchId')
23
23
 
24
24
  if (!params.filters.find((filter: any) => filter.name === 'bizplace_id')) {
@@ -28,28 +28,28 @@ export const inventoriesByPalletResolver = {
28
28
  const locationFilters = params.filters.find(x => x.name == 'locationName')
29
29
  params.filters = params.filters.filter(x => x.name != 'locationName')
30
30
 
31
- const qb: SelectQueryBuilder<Inventory> = getRepository(Inventory).createQueryBuilder('iv')
32
- buildQuery(qb, params, context)
33
-
34
- qb.leftJoinAndSelect('iv.domain', 'domain')
35
- .leftJoinAndSelect('iv.bizplace', 'bizplace')
36
- .leftJoinAndSelect('iv.product', 'product')
37
- .leftJoinAndSelect('iv.productDetail', 'productDetail')
38
- .leftJoin('product_detail_stocks', 'pds', 'pds.product_detail_id = iv.product_detail_id')
39
- .leftJoinAndSelect('iv.warehouse', 'warehouse')
40
- .leftJoinAndSelect('iv.location', 'location')
41
- .leftJoinAndSelect('iv.creator', 'creator')
42
- .leftJoinAndSelect('iv.updater', 'updater')
43
- .andWhere('iv.qty > 0')
44
- .andWhere('iv.transfer_qty <= 0')
45
- .andWhere('iv.transfer_uom_value <= 0')
46
- .andWhere(
47
- `location.type ${recallFilters?.value === true ? '' : 'NOT'} IN ('${LOCATION_TYPE.QUARANTINE}', '${
48
- LOCATION_TYPE.RESERVE
49
- }', '${LOCATION_TYPE.DAMAGE}')`
50
- )
51
- .andWhere(
52
- `(iv.batch_id, product.name, iv.packing_type, product.brand) NOT IN (
31
+ const qb: SelectQueryBuilder<Inventory> = getRepository(Inventory).createQueryBuilder('iv')
32
+ buildQuery(qb, params, context)
33
+
34
+ qb.leftJoinAndSelect('iv.domain', 'domain')
35
+ .leftJoinAndSelect('iv.bizplace', 'bizplace')
36
+ .leftJoinAndSelect('iv.product', 'product')
37
+ .leftJoinAndSelect('iv.productDetail', 'productDetail')
38
+ .leftJoin('product_detail_stocks', 'pds', 'pds.product_detail_id = iv.product_detail_id')
39
+ .leftJoinAndSelect('iv.warehouse', 'warehouse')
40
+ .leftJoinAndSelect('iv.location', 'location')
41
+ .leftJoinAndSelect('iv.creator', 'creator')
42
+ .leftJoinAndSelect('iv.updater', 'updater')
43
+ .andWhere('iv.qty > 0')
44
+ .andWhere('iv.transfer_qty <= 0')
45
+ .andWhere('iv.transfer_uom_value <= 0')
46
+ .andWhere(
47
+ `location.type ${recallFilters?.value === true ? '' : 'NOT'} IN ('${LOCATION_TYPE.QUARANTINE}', '${
48
+ LOCATION_TYPE.RESERVE
49
+ }', '${LOCATION_TYPE.DAMAGE}')`
50
+ )
51
+ .andWhere(
52
+ `(iv.batch_id, product.name, iv.packing_type, product.brand) NOT IN (
53
53
  SELECT
54
54
  oi.batch_id, p2.name, oi.packing_type, p2.brand
55
55
  FROM
@@ -63,43 +63,21 @@ export const inventoriesByPalletResolver = {
63
63
  AND oi.domain_id = (:domainId)
64
64
  AND oi.bizplace_id = (:bizplaceId)
65
65
  )`,
66
- { bizplaceId: bizplaceId.value, domainId: domain.id }
67
- )
68
-
69
- if (locationFilters) {
70
- qb.andWhere(`location.name ilike '${locationFilters.value}'`)
71
- }
72
-
73
- if (productFilters && productFilters.length > 0) {
74
- let productInfo = productFilters[0]
75
- qb.andWhere(
76
- new Brackets(qb2 => {
77
- productFilterColumns.forEach(filter => {
78
- const condition = buildCondition(
79
- 'product',
80
- filter,
81
- 'i_like',
82
- productInfo.value,
83
- false,
84
- Object.keys(qb.getParameters()).length
85
- )
86
-
87
- qb2.orWhere(condition.clause, condition.parameters)
88
- })
89
- })
90
- )
91
- }
92
-
93
- if (!skipLockCheck) {
94
- qb.andWhere('CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END >= 0')
95
- qb.andWhere('iv.qty - CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END > 0')
96
- }
66
+ { bizplaceId: bizplaceId.value, domainId: domain.id }
67
+ )
97
68
 
98
- if (recallFilters?.value === true) {
99
- qb.orWhere('(iv.domain_id = (:domainId) and iv.bizplace_id = (:bizplaceId)')
100
69
  if (locationFilters) {
101
70
  qb.andWhere(`location.name ilike '${locationFilters.value}'`)
102
71
  }
72
+
73
+ if (inventoriesFilters.value.length > 0) {
74
+
75
+ qb.andWhere('iv.id NOT IN (:...inventoriesIds)', {
76
+ inventoriesIds: inventoriesFilters.value
77
+
78
+ })
79
+ }
80
+
103
81
  if (productFilters && productFilters.length > 0) {
104
82
  let productInfo = productFilters[0]
105
83
  qb.andWhere(
@@ -119,64 +97,97 @@ export const inventoriesByPalletResolver = {
119
97
  })
120
98
  )
121
99
  }
122
- if (batchIdFilters) {
123
- qb.andWhere(`iv.batch_id ilike '${batchIdFilters.value}'`)
100
+
101
+ if (!skipLockCheck) {
102
+ qb.andWhere('CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END >= 0')
103
+ qb.andWhere('iv.qty - CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END > 0')
124
104
  }
125
- qb.andWhere(
126
- 'iv.obsolete = true and case when iv.expiration_date is not null and product.min_outbound_shelf_life is not null then CURRENT_DATE > iv.expiration_date - product.min_outbound_shelf_life else true end)'
127
- )
128
- } else {
129
- qb.andWhere('iv.obsolete = false')
130
- qb.andWhere(
131
- 'case when iv.expiration_date is not null and product.min_outbound_shelf_life is not null then CURRENT_DATE < iv.expiration_date - product.min_outbound_shelf_life else true end'
132
- )
133
- }
134
105
 
135
- if (sortings?.length !== 0) {
136
- const arrChildSortData = ['productName', 'productSKU']
137
-
138
- const remapChildSortData = ['name', 'sku']
139
- const sort = (sortings || []).reduce(
140
- (acc, sort, idx) => ({
141
- ...acc,
142
- [arrChildSortData.indexOf(sort.name) >= 0 ? 'product' + '.' + remapChildSortData[idx] : 'iv.' + sort.name]:
143
- sort.desc ? 'DESC' : 'ASC'
144
- }),
145
- {}
146
- )
147
- qb.orderBy(sort)
148
- }
106
+ if (recallFilters?.value === true) {
107
+ qb.orWhere('(iv.domain_id = (:domainId) and iv.bizplace_id = (:bizplaceId)')
108
+ if (locationFilters) {
109
+ qb.andWhere(`location.name ilike '${locationFilters.value}'`)
110
+ }
111
+ if (productFilters && productFilters.length > 0) {
112
+ let productInfo = productFilters[0]
113
+ qb.andWhere(
114
+ new Brackets(qb2 => {
115
+ productFilterColumns.forEach(filter => {
116
+ const condition = buildCondition(
117
+ 'product',
118
+ filter,
119
+ 'i_like',
120
+ productInfo.value,
121
+ false,
122
+ Object.keys(qb.getParameters()).length
123
+ )
124
+
125
+ qb2.orWhere(condition.clause, condition.parameters)
126
+ })
127
+ })
128
+ )
129
+ }
130
+ if (batchIdFilters) {
131
+ qb.andWhere(`iv.batch_id ilike '${batchIdFilters.value}'`)
132
+ }
133
+ qb.andWhere(
134
+ 'iv.obsolete = true and case when iv.expiration_date is not null and product.min_outbound_shelf_life is not null then CURRENT_DATE > iv.expiration_date - product.min_outbound_shelf_life else true end)'
135
+ )
136
+ } else {
137
+ qb.andWhere('iv.obsolete = false')
138
+ qb.andWhere(
139
+ 'case when iv.expiration_date is not null and product.min_outbound_shelf_life is not null then CURRENT_DATE < iv.expiration_date - product.min_outbound_shelf_life else true end'
140
+ )
141
+ }
149
142
 
150
- if (locationSortingRules?.length > 0) {
151
- locationSortingRules.forEach((rule: { name: string; desc: boolean }) => {
152
- qb.addOrderBy(`location.${rule.name}`, rule.desc ? 'DESC' : 'ASC')
153
- })
154
- } else {
155
- qb.addOrderBy('location.name', 'DESC')
156
- }
143
+ if (sortings?.length !== 0) {
144
+ const arrChildSortData = ['productName', 'productSKU']
145
+
146
+ const remapChildSortData = ['name', 'sku']
147
+ const sort = (sortings || []).reduce(
148
+ (acc, sort, idx) => ({
149
+ ...acc,
150
+ [arrChildSortData.indexOf(sort.name) >= 0 ? 'product' + '.' + remapChildSortData[idx] : 'iv.' + sort.name]:
151
+ sort.desc ? 'DESC' : 'ASC'
152
+ }),
153
+ {}
154
+ )
155
+ qb.orderBy(sort)
156
+ }
157
157
 
158
- let [items, total] = await qb.getManyAndCount()
159
-
160
- items = await Promise.all(
161
- items.map(async (item: Inventory) => {
162
- const { remainQty, remainUomValue } = await getRemainAmount(item)
163
-
164
- return {
165
- ...item,
166
- remainQty,
167
- remainUomValue,
168
- remainUomValueWithUom: remainUomValue + ' ' + item.uom,
169
- // product: item.product,
170
- productName: `${item.product.name}(${item.product.description})`,
171
- productSKU: item.product.sku,
172
- productBrand: item.product.brand,
173
- productId: item.product.id,
174
- productDetailId: item.productDetail.id
175
- }
176
- })
177
- )
158
+ if (locationSortingRules?.length > 0) {
159
+ locationSortingRules.forEach((rule: { name: string; desc: boolean }) => {
160
+ qb.addOrderBy(`location.${rule.name}`, rule.desc ? 'DESC' : 'ASC')
161
+ })
162
+ } else {
163
+ qb.addOrderBy('location.name', 'DESC')
164
+ }
178
165
 
179
- return { items, total }
166
+ let [items, total] = await qb.getManyAndCount()
167
+
168
+ items = await Promise.all(
169
+ items.map(async (item: Inventory) => {
170
+ const { remainQty, remainUomValue } = await getRemainAmount(item)
171
+
172
+ return {
173
+ ...item,
174
+ remainQty,
175
+ remainUomValue,
176
+ remainUomValueWithUom: remainUomValue + ' ' + item.uom,
177
+ // product: item.product,
178
+ productName: `${item.product.name}(${item.product.description})`,
179
+ productSKU: item.product.sku,
180
+ productBrand: item.product.brand,
181
+ productId: item.product.id,
182
+ productDetailId: item.productDetail.id
183
+ }
184
+ })
185
+ )
186
+
187
+ return { items, total }
188
+ } catch (error) {
189
+ throw new Error(error)
190
+ }
180
191
  }
181
192
  }
182
193