@things-factory/warehouse-base 6.0.73 → 6.0.75
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/warehouse-base",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.75",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -23,12 +23,12 @@
|
|
|
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": "^6.0.
|
|
27
|
-
"@things-factory/id-rule-base": "^6.0.
|
|
28
|
-
"@things-factory/integration-sellercraft": "^6.0.
|
|
29
|
-
"@things-factory/marketplace-base": "^6.0.
|
|
30
|
-
"@things-factory/product-base": "^6.0.
|
|
31
|
-
"@things-factory/setting-base": "^6.0.
|
|
26
|
+
"@things-factory/biz-base": "^6.0.75",
|
|
27
|
+
"@things-factory/id-rule-base": "^6.0.75",
|
|
28
|
+
"@things-factory/integration-sellercraft": "^6.0.75",
|
|
29
|
+
"@things-factory/marketplace-base": "^6.0.75",
|
|
30
|
+
"@things-factory/product-base": "^6.0.75",
|
|
31
|
+
"@things-factory/setting-base": "^6.0.75"
|
|
32
32
|
},
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "f7ca179a7fabfc129a9981a7bd734380a3ac64f0"
|
|
34
34
|
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
-
import {
|
|
3
|
-
Brackets,
|
|
4
|
-
EntityManager,
|
|
5
|
-
Equal,
|
|
6
|
-
getRepository,
|
|
7
|
-
Not,
|
|
8
|
-
OrderByCondition,
|
|
9
|
-
Repository,
|
|
10
|
-
SelectQueryBuilder
|
|
11
|
-
} from 'typeorm'
|
|
2
|
+
import { Brackets, EntityManager, Equal, Not, OrderByCondition, Repository, SelectQueryBuilder } from 'typeorm'
|
|
12
3
|
|
|
13
4
|
import { User } from '@things-factory/auth-base'
|
|
14
5
|
import { Bizplace, getPartnersCompanyBizplaces, getPermittedBizplaceIds } from '@things-factory/biz-base'
|
|
15
6
|
import { logger } from '@things-factory/env'
|
|
16
7
|
import { Product, ProductBundleSetting } from '@things-factory/product-base'
|
|
17
8
|
import { Setting } from '@things-factory/setting-base'
|
|
18
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
buildQuery,
|
|
11
|
+
Domain,
|
|
12
|
+
Filter,
|
|
13
|
+
ListParam,
|
|
14
|
+
Pagination,
|
|
15
|
+
Sorting,
|
|
16
|
+
getQueryBuilderFromListParams,
|
|
17
|
+
getRepository
|
|
18
|
+
} from '@things-factory/shell'
|
|
19
19
|
|
|
20
20
|
import { INVENTORY_STATUS, LOCATION_TYPE } from '../../constants'
|
|
21
21
|
import { InventoryChange } from '../inventory-change/inventory-change'
|
|
@@ -58,20 +58,13 @@ export class InventoryQuery {
|
|
|
58
58
|
|
|
59
59
|
const params = { filters, pagination }
|
|
60
60
|
|
|
61
|
-
if (!bizplace) {
|
|
62
|
-
params.filters.push({
|
|
63
|
-
name: 'bizplace',
|
|
64
|
-
operator: 'in',
|
|
65
|
-
value: await getPermittedBizplaceIds(domain, user),
|
|
66
|
-
relation: true
|
|
67
|
-
})
|
|
68
|
-
}
|
|
69
|
-
|
|
70
61
|
const remainOnly: boolean = remainOnlyParam?.value || false
|
|
71
62
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
const qb: SelectQueryBuilder<Inventory> = getQueryBuilderFromListParams({
|
|
64
|
+
repository: tx.getRepository(Inventory),
|
|
65
|
+
params,
|
|
66
|
+
domain,
|
|
67
|
+
alias: 'inventory',
|
|
75
68
|
searchables: ['warehouse', 'product', 'batchId', 'location', 'palletId']
|
|
76
69
|
})
|
|
77
70
|
|
|
@@ -83,24 +76,31 @@ export class InventoryQuery {
|
|
|
83
76
|
.leftJoinAndSelect('inventory.creator', 'creator')
|
|
84
77
|
.leftJoinAndSelect('inventory.updater', 'updater')
|
|
85
78
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
'inventory_item_count'
|
|
94
|
-
)
|
|
95
|
-
.addSelect(`string_agg(inventoryItems.serial_number, ', ')`, 'serial_numbers')
|
|
96
|
-
.from('inventory_items', 'inventoryItems')
|
|
97
|
-
.where(`inventoryItems.domain_id = :domainId`, { domainId: domain.id })
|
|
98
|
-
.andWhere(`inventoryItems.status = :ivicStatus`, { ivicStatus: INVENTORY_STATUS.STORED })
|
|
99
|
-
.groupBy('inventoryItems.inventory_id')
|
|
100
|
-
},
|
|
101
|
-
'inventoryItems',
|
|
102
|
-
'"inventoryItems"."inventory_item_inventory_id" = "inventory"."id"'
|
|
79
|
+
if (!bizplace) {
|
|
80
|
+
const bizplaces = await getPermittedBizplaceIds(domain, user)
|
|
81
|
+
|
|
82
|
+
qb.andWhere(
|
|
83
|
+
new Brackets(qb => {
|
|
84
|
+
qb.orWhere('inventory.bizplace_id IN (:...bizplaces)', { bizplaces })
|
|
85
|
+
})
|
|
103
86
|
)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// To get aggregated serial number in csv and total number of stored serial number
|
|
90
|
+
qb.leftJoinAndSelect(
|
|
91
|
+
subQuery => {
|
|
92
|
+
return subQuery
|
|
93
|
+
.select('inventoryItems.inventory_id', 'inventory_item_inventory_id')
|
|
94
|
+
.addSelect(`SUM(case when "inventoryItems"."status" = 'STORED' then 1 else 0 end)`, 'inventory_item_count')
|
|
95
|
+
.addSelect(`string_agg(inventoryItems.serial_number, ', ')`, 'serial_numbers')
|
|
96
|
+
.from('inventory_items', 'inventoryItems')
|
|
97
|
+
.where(`inventoryItems.domain_id = :domainId`, { domainId: domain.id })
|
|
98
|
+
.andWhere(`inventoryItems.status = :ivicStatus`, { ivicStatus: INVENTORY_STATUS.STORED })
|
|
99
|
+
.groupBy('inventoryItems.inventory_id')
|
|
100
|
+
},
|
|
101
|
+
'inventoryItems',
|
|
102
|
+
'"inventoryItems"."inventory_item_inventory_id" = "inventory"."id"'
|
|
103
|
+
)
|
|
104
104
|
|
|
105
105
|
// To get inventory with remaining qty
|
|
106
106
|
if (remainOnly) {
|