@things-factory/warehouse-base 5.0.14 → 6.0.0-alpha.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/controllers/ecommerce/ecommerce-controller.js +1 -1
- package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +64 -60
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/controllers/warehouse-controller.js +7 -5
- package/dist-server/controllers/warehouse-controller.js.map +1 -1
- package/dist-server/service/inventory/inventory-mutation.js +6 -6
- package/dist-server/service/inventory/inventory-mutation.js.map +1 -1
- package/dist-server/service/inventory/inventory-query.js +217 -195
- package/dist-server/service/inventory/inventory-query.js.map +1 -1
- package/dist-server/service/inventory/inventory-types.js +14 -15
- package/dist-server/service/inventory/inventory-types.js.map +1 -1
- package/dist-server/service/inventory/inventory.js +62 -42
- package/dist-server/service/inventory/inventory.js.map +1 -1
- package/dist-server/service/inventory-change/inventory-change-mutation.js +252 -216
- package/dist-server/service/inventory-change/inventory-change-mutation.js.map +1 -1
- package/dist-server/service/inventory-change/inventory-change-query.js +6 -7
- package/dist-server/service/inventory-change/inventory-change-query.js.map +1 -1
- package/dist-server/service/inventory-change/inventory-change.js +7 -7
- package/dist-server/service/inventory-change/inventory-change.js.map +1 -1
- package/dist-server/service/inventory-history/inventory-history-mutation.js +1 -1
- package/dist-server/service/inventory-history/inventory-history-mutation.js.map +1 -1
- package/dist-server/service/inventory-history/inventory-history-query.js +89 -99
- package/dist-server/service/inventory-history/inventory-history-query.js.map +1 -1
- package/dist-server/service/inventory-history/inventory-history-types.js +3 -3
- package/dist-server/service/inventory-history/inventory-history-types.js.map +1 -1
- package/dist-server/service/inventory-history/inventory-history.js +7 -7
- package/dist-server/service/inventory-history/inventory-history.js.map +1 -1
- package/dist-server/service/inventory-item/inventory-item-mutation.js +10 -10
- package/dist-server/service/inventory-item/inventory-item-mutation.js.map +1 -1
- package/dist-server/service/inventory-item/inventory-item-query.js +18 -17
- package/dist-server/service/inventory-item/inventory-item-query.js.map +1 -1
- package/dist-server/service/inventory-item/inventory-item-type.js +4 -5
- package/dist-server/service/inventory-item/inventory-item-type.js.map +1 -1
- package/dist-server/service/inventory-item/inventory-item.js +5 -5
- package/dist-server/service/inventory-item/inventory-item.js.map +1 -1
- package/dist-server/service/inventory-item-change/inventory-item-change-mutation.js +4 -4
- package/dist-server/service/inventory-item-change/inventory-item-change-mutation.js.map +1 -1
- package/dist-server/service/inventory-item-change/inventory-item-change-query.js +7 -9
- package/dist-server/service/inventory-item-change/inventory-item-change-query.js.map +1 -1
- package/dist-server/service/inventory-item-change/inventory-item-change-type.js +6 -7
- package/dist-server/service/inventory-item-change/inventory-item-change-type.js.map +1 -1
- package/dist-server/service/inventory-item-change/inventory-item-change.js +3 -4
- package/dist-server/service/inventory-item-change/inventory-item-change.js.map +1 -1
- package/dist-server/service/inventory-product/inventory-product-mutation.js +4 -4
- package/dist-server/service/inventory-product/inventory-product-mutation.js.map +1 -1
- package/dist-server/service/inventory-product/inventory-product-query.js +7 -9
- package/dist-server/service/inventory-product/inventory-product-query.js.map +1 -1
- package/dist-server/service/inventory-product/inventory-product-type.js +1 -2
- package/dist-server/service/inventory-product/inventory-product-type.js.map +1 -1
- package/dist-server/service/inventory-product/inventory-product.js +5 -5
- package/dist-server/service/inventory-product/inventory-product.js.map +1 -1
- package/dist-server/service/location/location-mutation.js +5 -5
- package/dist-server/service/location/location-mutation.js.map +1 -1
- package/dist-server/service/location/location-query.js +17 -19
- package/dist-server/service/location/location-query.js.map +1 -1
- package/dist-server/service/location/location-types.js +3 -3
- package/dist-server/service/location/location-types.js.map +1 -1
- package/dist-server/service/location/location.js +14 -14
- package/dist-server/service/location/location.js.map +1 -1
- package/dist-server/service/movement/movement-mutation.js +6 -5
- package/dist-server/service/movement/movement-mutation.js.map +1 -1
- package/dist-server/service/movement/movement-query.js +15 -15
- package/dist-server/service/movement/movement-query.js.map +1 -1
- package/dist-server/service/movement/movement-types.js +4 -5
- package/dist-server/service/movement/movement-types.js.map +1 -1
- package/dist-server/service/movement/movement.js +5 -5
- package/dist-server/service/movement/movement.js.map +1 -1
- package/dist-server/service/pallet/pallet-mutation.js +5 -5
- package/dist-server/service/pallet/pallet-mutation.js.map +1 -1
- package/dist-server/service/pallet/pallet-query.js +9 -11
- package/dist-server/service/pallet/pallet-query.js.map +1 -1
- package/dist-server/service/pallet/pallet-types.js +5 -6
- package/dist-server/service/pallet/pallet-types.js.map +1 -1
- package/dist-server/service/pallet/pallet.js +6 -6
- package/dist-server/service/pallet/pallet.js.map +1 -1
- package/dist-server/service/pallet-count/pallet-count-mutation.js +1 -1
- package/dist-server/service/pallet-count/pallet-count-mutation.js.map +1 -1
- package/dist-server/service/pallet-count/pallet-count-query.js +6 -8
- package/dist-server/service/pallet-count/pallet-count-query.js.map +1 -1
- package/dist-server/service/pallet-count/pallet-count.js +3 -4
- package/dist-server/service/pallet-count/pallet-count.js.map +1 -1
- package/dist-server/service/pallet-history/pallet-history-mutation.js +1 -1
- package/dist-server/service/pallet-history/pallet-history-mutation.js.map +1 -1
- package/dist-server/service/pallet-history/pallet-history-query.js +6 -8
- package/dist-server/service/pallet-history/pallet-history-query.js.map +1 -1
- package/dist-server/service/pallet-history/pallet-history.js +6 -6
- package/dist-server/service/pallet-history/pallet-history.js.map +1 -1
- package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js +1 -1
- package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js.map +1 -1
- package/dist-server/service/tote/tote-mutation.js +4 -4
- package/dist-server/service/tote/tote-mutation.js.map +1 -1
- package/dist-server/service/tote/tote-query.js +12 -13
- package/dist-server/service/tote/tote-query.js.map +1 -1
- package/dist-server/service/tote/tote-types.js +2 -3
- package/dist-server/service/tote/tote-types.js.map +1 -1
- package/dist-server/service/tote/tote.js +5 -5
- package/dist-server/service/tote/tote.js.map +1 -1
- package/dist-server/service/warehouse/warehouse-mutation.js +1 -1
- package/dist-server/service/warehouse/warehouse-mutation.js.map +1 -1
- package/dist-server/service/warehouse/warehouse-query.js +9 -10
- package/dist-server/service/warehouse/warehouse-query.js.map +1 -1
- package/dist-server/service/warehouse/warehouse.js +12 -12
- package/dist-server/service/warehouse/warehouse.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/utils/inventory-util.js +16 -16
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +8 -8
- package/server/controllers/ecommerce/ecommerce-controller.ts +1 -1
- package/server/controllers/ecommerce/sellercraft-controller.ts +75 -65
- package/server/controllers/warehouse-controller.ts +9 -4
- package/server/service/inventory/inventory-mutation.ts +28 -24
- package/server/service/inventory/inventory-query.ts +269 -304
- package/server/service/inventory/inventory.ts +50 -35
- package/server/service/inventory-change/inventory-change-mutation.ts +305 -256
- package/server/service/inventory-change/inventory-change-query.ts +9 -9
- package/server/service/inventory-history/inventory-history-mutation.ts +12 -15
- package/server/service/inventory-history/inventory-history-query.ts +158 -133
- package/server/service/inventory-item/inventory-item-mutation.ts +20 -17
- package/server/service/inventory-item/inventory-item-query.ts +28 -18
- package/server/service/inventory-item-change/inventory-item-change-mutation.ts +12 -9
- package/server/service/inventory-item-change/inventory-item-change-query.ts +10 -8
- package/server/service/inventory-product/inventory-product-mutation.ts +16 -12
- package/server/service/inventory-product/inventory-product-query.ts +7 -8
- package/server/service/location/location-mutation.ts +24 -24
- package/server/service/location/location-query.ts +27 -23
- package/server/service/location/location.ts +11 -10
- package/server/service/movement/movement-mutation.ts +7 -8
- package/server/service/movement/movement-query.ts +18 -16
- package/server/service/pallet/pallet-mutation.ts +18 -20
- package/server/service/pallet/pallet-query.ts +13 -14
- package/server/service/pallet-count/pallet-count-mutation.ts +20 -17
- package/server/service/pallet-count/pallet-count-query.ts +6 -7
- package/server/service/pallet-history/pallet-history-mutation.ts +15 -15
- package/server/service/pallet-history/pallet-history-query.ts +7 -8
- package/server/service/reduced-inventory-history/reduced-inventory-history.ts +1 -1
- package/server/service/tote/tote-mutation.ts +23 -22
- package/server/service/tote/tote-query.ts +18 -14
- package/server/service/warehouse/warehouse-mutation.ts +21 -18
- package/server/service/warehouse/warehouse-query.ts +11 -11
- package/server/service/warehouse/warehouse.ts +7 -7
- package/server/utils/inventory-util.ts +10 -10
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import { Domain } from '@things-factory/shell'
|
|
2
|
+
import { In } from 'typeorm'
|
|
6
3
|
|
|
7
4
|
import { PalletHistory } from './pallet-history'
|
|
8
5
|
import { NewPalletHistory, PalletHistoryPatch } from './pallet-history-types'
|
|
@@ -13,9 +10,9 @@ export class PalletHistoryMutation {
|
|
|
13
10
|
@Mutation(returns => PalletHistory)
|
|
14
11
|
async createPalletHistory(
|
|
15
12
|
@Arg('palletHistory') palletHistory: NewPalletHistory,
|
|
16
|
-
@Ctx() context:
|
|
13
|
+
@Ctx() context: ResolverContext
|
|
17
14
|
): Promise<PalletHistory> {
|
|
18
|
-
const { domain, user, tx }
|
|
15
|
+
const { domain, user, tx } = context.state
|
|
19
16
|
|
|
20
17
|
return await tx.getRepository(PalletHistory).save({
|
|
21
18
|
...palletHistory,
|
|
@@ -30,9 +27,9 @@ export class PalletHistoryMutation {
|
|
|
30
27
|
async updatePalletHistory(
|
|
31
28
|
@Arg('name') name: string,
|
|
32
29
|
@Arg('patch') patch: PalletHistoryPatch,
|
|
33
|
-
@Ctx() context:
|
|
30
|
+
@Ctx() context: ResolverContext
|
|
34
31
|
): Promise<PalletHistory> {
|
|
35
|
-
const { domain, user, tx }
|
|
32
|
+
const { domain, user, tx } = context.state
|
|
36
33
|
|
|
37
34
|
const repository = tx.getRepository(PalletHistory)
|
|
38
35
|
const palletHistory = await repository.findOne({
|
|
@@ -50,9 +47,9 @@ export class PalletHistoryMutation {
|
|
|
50
47
|
@Mutation(returns => [PalletHistory])
|
|
51
48
|
async updateMultiplePalletHistory(
|
|
52
49
|
@Arg('patches', type => [PalletHistoryPatch]) patches: PalletHistoryPatch[],
|
|
53
|
-
@Ctx() context:
|
|
50
|
+
@Ctx() context: ResolverContext
|
|
54
51
|
): Promise<PalletHistory[]> {
|
|
55
|
-
const { domain, user, tx }
|
|
52
|
+
const { domain, user, tx } = context.state
|
|
56
53
|
let results = []
|
|
57
54
|
const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
|
|
58
55
|
const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
|
|
@@ -76,7 +73,7 @@ export class PalletHistoryMutation {
|
|
|
76
73
|
if (_updateRecords.length > 0) {
|
|
77
74
|
for (let i = 0; i < _updateRecords.length; i++) {
|
|
78
75
|
const newRecord = _updateRecords[i]
|
|
79
|
-
const palletHistory = await palletHistoryRepo.
|
|
76
|
+
const palletHistory = await palletHistoryRepo.findOneBy({ id: newRecord.id })
|
|
80
77
|
|
|
81
78
|
const result = await palletHistoryRepo.save({
|
|
82
79
|
...palletHistory,
|
|
@@ -93,8 +90,8 @@ export class PalletHistoryMutation {
|
|
|
93
90
|
|
|
94
91
|
@Directive('@transaction')
|
|
95
92
|
@Mutation(returns => Boolean)
|
|
96
|
-
async deletePalletHistory(@Arg('name') name: string, @Ctx() context:
|
|
97
|
-
const { domain, user, tx }
|
|
93
|
+
async deletePalletHistory(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {
|
|
94
|
+
const { domain, user, tx } = context.state
|
|
98
95
|
|
|
99
96
|
await tx.getRepository(PalletHistory).delete({ domain: domain, name })
|
|
100
97
|
return true
|
|
@@ -102,8 +99,11 @@ export class PalletHistoryMutation {
|
|
|
102
99
|
|
|
103
100
|
@Directive('@transaction')
|
|
104
101
|
@Mutation(returns => Boolean)
|
|
105
|
-
async deletePalletHistories(
|
|
106
|
-
|
|
102
|
+
async deletePalletHistories(
|
|
103
|
+
@Arg('names', type => [String]) names: string[],
|
|
104
|
+
@Ctx() context: ResolverContext
|
|
105
|
+
): Promise<Boolean> {
|
|
106
|
+
const { domain, user, tx } = context.state
|
|
107
107
|
|
|
108
108
|
await tx.getRepository(PalletHistory).delete({
|
|
109
109
|
domain: domain,
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
-
import { getRepository } from 'typeorm'
|
|
3
2
|
|
|
4
3
|
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import { convertListParams, Domain, ListParam } from '@things-factory/shell'
|
|
4
|
+
import { convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'
|
|
6
5
|
|
|
7
6
|
import { PalletHistory } from './pallet-history'
|
|
8
7
|
import { PalletHistoryList } from './pallet-history-types'
|
|
@@ -10,7 +9,7 @@ import { PalletHistoryList } from './pallet-history-types'
|
|
|
10
9
|
@Resolver(PalletHistory)
|
|
11
10
|
export class PalletHistoryQuery {
|
|
12
11
|
@Query(returns => PalletHistoryList)
|
|
13
|
-
async palletHistories(@Args() params: ListParam, @Ctx() context:
|
|
12
|
+
async palletHistories(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<PalletHistoryList> {
|
|
14
13
|
const convertedParams = convertListParams(params)
|
|
15
14
|
const [items, total] = await getRepository(PalletHistory).findAndCount({
|
|
16
15
|
...convertedParams,
|
|
@@ -20,8 +19,8 @@ export class PalletHistoryQuery {
|
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
@Query(returns => PalletHistory)
|
|
23
|
-
async palletHistory(@Arg('name') name: string, @Ctx() context:
|
|
24
|
-
const { domain }
|
|
22
|
+
async palletHistory(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<PalletHistory> {
|
|
23
|
+
const { domain } = context.state
|
|
25
24
|
|
|
26
25
|
return await getRepository(PalletHistory).findOne({
|
|
27
26
|
where: { domain: domain, name },
|
|
@@ -31,16 +30,16 @@ export class PalletHistoryQuery {
|
|
|
31
30
|
|
|
32
31
|
@FieldResolver(type => Domain)
|
|
33
32
|
async domain(@Root() palletHistory: PalletHistory) {
|
|
34
|
-
return await getRepository(Domain).
|
|
33
|
+
return await getRepository(Domain).findOneBy({ id: palletHistory.domainId })
|
|
35
34
|
}
|
|
36
35
|
|
|
37
36
|
@FieldResolver(type => User)
|
|
38
37
|
async updater(@Root() palletHistory: PalletHistory) {
|
|
39
|
-
return await getRepository(User).
|
|
38
|
+
return await getRepository(User).findOneBy({ id: palletHistory.updaterId })
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
@FieldResolver(type => User)
|
|
43
42
|
async creator(@Root() palletHistory: PalletHistory) {
|
|
44
|
-
return await getRepository(User).
|
|
43
|
+
return await getRepository(User).findOneBy({ id: palletHistory.creatorId })
|
|
45
44
|
}
|
|
46
45
|
}
|
|
@@ -9,7 +9,7 @@ import { ViewColumn, ViewEntity } from 'typeorm'
|
|
|
9
9
|
AND (
|
|
10
10
|
((ih2.transaction_type::text = 'CANCEL_ORDER'::text) AND ih2.ref_order_id::text = ih.ref_order_id::TEXT)
|
|
11
11
|
OR
|
|
12
|
-
((ih2.seq = (ih.seq + 1) OR ih2.seq = ih.seq) AND (ih2.transaction_type::text = 'UNDO_UNLOADING'::TEXT
|
|
12
|
+
((ih2.seq = (ih.seq + 1) OR ih2.seq = ih.seq) AND (ih2.transaction_type::text = 'UNDO_UNLOADING'::TEXT))
|
|
13
13
|
)
|
|
14
14
|
)
|
|
15
15
|
`
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
2
|
-
import {
|
|
2
|
+
import { In } from 'typeorm'
|
|
3
3
|
|
|
4
|
-
import { User } from '@things-factory/auth-base'
|
|
5
4
|
import { Bizplace } from '@things-factory/biz-base'
|
|
6
|
-
import { Domain } from '@things-factory/shell'
|
|
7
5
|
|
|
8
|
-
import { PalletHistory } from '../pallet-history/pallet-history'
|
|
9
6
|
import { Tote } from './tote'
|
|
10
7
|
import { NewTote, TotePatch } from './tote-types'
|
|
11
8
|
|
|
@@ -13,8 +10,8 @@ import { NewTote, TotePatch } from './tote-types'
|
|
|
13
10
|
export class ToteMutation {
|
|
14
11
|
@Directive('@transaction')
|
|
15
12
|
@Mutation(returns => Tote)
|
|
16
|
-
async createTote(@Arg('pallet') tote: NewTote, @Ctx() context:
|
|
17
|
-
const { domain, user, tx }
|
|
13
|
+
async createTote(@Arg('pallet') tote: NewTote, @Ctx() context: ResolverContext): Promise<Tote> {
|
|
14
|
+
const { domain, user, tx } = context.state
|
|
18
15
|
|
|
19
16
|
const existingTote: string[] = (await tx.getRepository(Tote).find({ relations: ['user'] })).map(tote => tote.name)
|
|
20
17
|
if (existingTote.includes(tote.name)) throw new Error('tote box already exists')
|
|
@@ -29,8 +26,12 @@ export class ToteMutation {
|
|
|
29
26
|
|
|
30
27
|
@Directive('@transaction')
|
|
31
28
|
@Mutation(returns => Tote)
|
|
32
|
-
async updateTote(
|
|
33
|
-
|
|
29
|
+
async updateTote(
|
|
30
|
+
@Arg('name') name: string,
|
|
31
|
+
@Arg('patch') patch: TotePatch,
|
|
32
|
+
@Ctx() context: ResolverContext
|
|
33
|
+
): Promise<Tote> {
|
|
34
|
+
const { domain, user, tx } = context.state
|
|
34
35
|
|
|
35
36
|
const repository = tx.getRepository(Tote)
|
|
36
37
|
const tote = await repository.findOne({
|
|
@@ -48,9 +49,9 @@ export class ToteMutation {
|
|
|
48
49
|
@Mutation(returns => [Tote])
|
|
49
50
|
async updateMultipleTote(
|
|
50
51
|
@Arg('patches', type => [TotePatch]) patches: TotePatch[],
|
|
51
|
-
@Ctx() context:
|
|
52
|
+
@Ctx() context: ResolverContext
|
|
52
53
|
): Promise<Tote[]> {
|
|
53
|
-
const { domain, user, tx }
|
|
54
|
+
const { domain, user, tx } = context.state
|
|
54
55
|
|
|
55
56
|
let results = []
|
|
56
57
|
const _createRecords = patches.filter((patch: any) => patch.cuFlag === '+')
|
|
@@ -61,12 +62,12 @@ export class ToteMutation {
|
|
|
61
62
|
const newRecord = _createRecords[i]
|
|
62
63
|
|
|
63
64
|
if (newRecord.bizplace && newRecord.bizplace.id) {
|
|
64
|
-
newRecord.bizplace = await tx.getRepository(Bizplace).
|
|
65
|
+
newRecord.bizplace = (await tx.getRepository(Bizplace).findOneBy({ id: newRecord.bizplace.id })) as any
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
let foundTote = await tx
|
|
68
69
|
.getRepository(Tote)
|
|
69
|
-
.findOne({ where: { domain, name: newRecord.name, bizplace: newRecord.bizplace } })
|
|
70
|
+
.findOne({ where: { domain: { id: domain.id }, name: newRecord.name, bizplace: newRecord.bizplace } })
|
|
70
71
|
|
|
71
72
|
if (foundTote) {
|
|
72
73
|
throw new Error('Duplicated tote found')
|
|
@@ -92,12 +93,12 @@ export class ToteMutation {
|
|
|
92
93
|
})
|
|
93
94
|
|
|
94
95
|
if (newRecord.bizplace && newRecord.bizplace.id) {
|
|
95
|
-
newRecord.bizplace = await tx.getRepository(Bizplace).
|
|
96
|
+
newRecord.bizplace = (await tx.getRepository(Bizplace).findOneBy({ id: newRecord.bizplace.id })) as any
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
let foundTote = await tx
|
|
99
100
|
.getRepository(Tote)
|
|
100
|
-
.findOne({ where: { domain, name: newRecord.name, bizplace: newRecord.bizplace } })
|
|
101
|
+
.findOne({ where: { domain: { id: domain.id }, name: newRecord.name, bizplace: newRecord.bizplace } })
|
|
101
102
|
|
|
102
103
|
if (foundTote) {
|
|
103
104
|
throw new Error('Duplicated tote found')
|
|
@@ -118,8 +119,8 @@ export class ToteMutation {
|
|
|
118
119
|
|
|
119
120
|
@Directive('@transaction')
|
|
120
121
|
@Mutation(returns => Boolean)
|
|
121
|
-
async deleteTote(@Arg('name') id: string, @Ctx() context:
|
|
122
|
-
const { domain, user, tx }
|
|
122
|
+
async deleteTote(@Arg('name') id: string, @Ctx() context: ResolverContext): Promise<Boolean> {
|
|
123
|
+
const { domain, user, tx } = context.state
|
|
123
124
|
|
|
124
125
|
const foundTote = await tx.getRepository(Tote).find({ where: { id } })
|
|
125
126
|
|
|
@@ -133,8 +134,8 @@ export class ToteMutation {
|
|
|
133
134
|
|
|
134
135
|
@Directive('@transaction')
|
|
135
136
|
@Mutation(returns => Boolean)
|
|
136
|
-
async deleteTotes(@Arg('ids', type => [String]) ids: string[], @Ctx() context:
|
|
137
|
-
const { domain, user, tx }
|
|
137
|
+
async deleteTotes(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<Boolean> {
|
|
138
|
+
const { domain, user, tx } = context.state
|
|
138
139
|
|
|
139
140
|
const totes = await tx.getRepository(Tote).find({
|
|
140
141
|
where: {
|
|
@@ -158,8 +159,8 @@ export class ToteMutation {
|
|
|
158
159
|
|
|
159
160
|
@Directive('@transaction')
|
|
160
161
|
@Mutation(returns => Boolean)
|
|
161
|
-
async undeleteTotes(@Arg('ids', type => [String]) ids: string[], @Ctx() context:
|
|
162
|
-
const { tx, user }
|
|
162
|
+
async undeleteTotes(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<Boolean> {
|
|
163
|
+
const { tx, user } = context.state
|
|
163
164
|
const toteRepo = tx.getRepository(Tote)
|
|
164
165
|
|
|
165
166
|
await toteRepo.update(
|
|
@@ -180,9 +181,9 @@ export class ToteMutation {
|
|
|
180
181
|
async bulkUpdateToteStatus(
|
|
181
182
|
@Arg('ids', type => [String]) ids: string[],
|
|
182
183
|
@Arg('status', type => String) status: string,
|
|
183
|
-
@Ctx() context:
|
|
184
|
+
@Ctx() context: ResolverContext
|
|
184
185
|
): Promise<Boolean> {
|
|
185
|
-
const { tx, user }
|
|
186
|
+
const { tx, user } = context.state
|
|
186
187
|
const toteRepo = tx.getRepository(Tote)
|
|
187
188
|
|
|
188
189
|
await toteRepo.update(
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Arg, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
-
import {
|
|
2
|
+
import { IsNull } from 'typeorm'
|
|
3
3
|
|
|
4
4
|
import { User } from '@things-factory/auth-base'
|
|
5
5
|
import { Bizplace } from '@things-factory/biz-base'
|
|
6
|
-
import { buildQuery, Domain, Filter, Pagination, Sorting } from '@things-factory/shell'
|
|
6
|
+
import { buildQuery, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'
|
|
7
7
|
|
|
8
8
|
import { Tote } from './tote'
|
|
9
9
|
import { ToteList } from './tote-types'
|
|
@@ -12,12 +12,12 @@ import { ToteList } from './tote-types'
|
|
|
12
12
|
export class ToteQuery {
|
|
13
13
|
@Query(returns => ToteList)
|
|
14
14
|
async totes(
|
|
15
|
-
@Ctx() context:
|
|
15
|
+
@Ctx() context: ResolverContext,
|
|
16
16
|
@Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
|
|
17
17
|
@Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
|
|
18
18
|
@Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
|
|
19
19
|
): Promise<ToteList> {
|
|
20
|
-
const { domain }
|
|
20
|
+
const { domain } = context.state
|
|
21
21
|
|
|
22
22
|
const deletedFilter: any = filters.find((filter: any) => filter.name === 'deleted' && filter.value === true)
|
|
23
23
|
|
|
@@ -43,12 +43,16 @@ export class ToteQuery {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
@Query(returns => Tote)
|
|
46
|
-
async tote(
|
|
47
|
-
|
|
46
|
+
async tote(
|
|
47
|
+
@Arg('name') name: string,
|
|
48
|
+
@Arg('bizplace') bizplace: string,
|
|
49
|
+
@Ctx() context: ResolverContext
|
|
50
|
+
): Promise<Tote> {
|
|
51
|
+
const { domain } = context.state
|
|
48
52
|
let foundBizplace = await getRepository(Bizplace).findOne({ where: { name: bizplace } })
|
|
49
53
|
|
|
50
54
|
let foundTote = await getRepository(Tote).findOne({
|
|
51
|
-
where: { domain, bizplace: foundBizplace, name, deletedAt: IsNull() },
|
|
55
|
+
where: { domain: { id: domain.id }, bizplace: foundBizplace, name, deletedAt: IsNull() },
|
|
52
56
|
relations: ['domain', 'bizplace', 'creator', 'updater']
|
|
53
57
|
})
|
|
54
58
|
|
|
@@ -63,13 +67,13 @@ export class ToteQuery {
|
|
|
63
67
|
async checkToteStatus(
|
|
64
68
|
@Arg('name') name: string,
|
|
65
69
|
@Arg('bizplace') bizplace: string,
|
|
66
|
-
@Ctx() context:
|
|
70
|
+
@Ctx() context: ResolverContext
|
|
67
71
|
): Promise<String> {
|
|
68
|
-
const { domain }
|
|
72
|
+
const { domain } = context.state
|
|
69
73
|
let foundBizplace = await getRepository(Bizplace).findOne({ where: { name: bizplace } })
|
|
70
74
|
|
|
71
75
|
let foundTote = await getRepository(Tote).findOne({
|
|
72
|
-
where: { domain, bizplace: foundBizplace, name, deletedAt: IsNull() },
|
|
76
|
+
where: { domain: { id: domain.id }, bizplace: foundBizplace, name, deletedAt: IsNull() },
|
|
73
77
|
relations: ['domain', 'bizplace', 'creator', 'updater']
|
|
74
78
|
})
|
|
75
79
|
|
|
@@ -82,21 +86,21 @@ export class ToteQuery {
|
|
|
82
86
|
|
|
83
87
|
@FieldResolver()
|
|
84
88
|
async domain(@Root() tote: Tote) {
|
|
85
|
-
return await getRepository(Domain).
|
|
89
|
+
return await getRepository(Domain).findOneBy({ id: tote.domainId })
|
|
86
90
|
}
|
|
87
91
|
|
|
88
92
|
@FieldResolver()
|
|
89
93
|
async bizplace(@Root() tote: Tote) {
|
|
90
|
-
return await getRepository(Bizplace).
|
|
94
|
+
return await getRepository(Bizplace).findOneBy({ id: tote.bizplaceId })
|
|
91
95
|
}
|
|
92
96
|
|
|
93
97
|
@FieldResolver()
|
|
94
98
|
async updater(@Root() tote: Tote) {
|
|
95
|
-
return await getRepository(User).
|
|
99
|
+
return await getRepository(User).findOneBy({ id: tote.updaterId })
|
|
96
100
|
}
|
|
97
101
|
|
|
98
102
|
@FieldResolver()
|
|
99
103
|
async creator(@Root() tote: Tote) {
|
|
100
|
-
return await getRepository(User).
|
|
104
|
+
return await getRepository(User).findOneBy({ id: tote.creatorId })
|
|
101
105
|
}
|
|
102
106
|
}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import { Domain } from '@things-factory/shell'
|
|
2
|
+
import { Repository } from 'typeorm'
|
|
6
3
|
|
|
7
4
|
import { Warehouse } from './warehouse'
|
|
8
5
|
import { NewWarehouse, WarehousePatch } from './warehouse-types'
|
|
@@ -12,7 +9,10 @@ export class WarehouseMutation {
|
|
|
12
9
|
@Directive('@privilege(category: "warehouse", privilege: "mutation")')
|
|
13
10
|
@Directive('@transaction')
|
|
14
11
|
@Mutation(returns => Warehouse)
|
|
15
|
-
async createWarehouse(
|
|
12
|
+
async createWarehouse(
|
|
13
|
+
@Arg('warehouse') warehouse: NewWarehouse,
|
|
14
|
+
@Ctx() context: ResolverContext
|
|
15
|
+
): Promise<Warehouse> {
|
|
16
16
|
return await createWarehouse(warehouse, context)
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -22,7 +22,7 @@ export class WarehouseMutation {
|
|
|
22
22
|
async updateWarehouse(
|
|
23
23
|
@Arg('id') id: string,
|
|
24
24
|
@Arg('patch') patch: WarehousePatch,
|
|
25
|
-
@Ctx() context:
|
|
25
|
+
@Ctx() context: ResolverContext
|
|
26
26
|
): Promise<Warehouse> {
|
|
27
27
|
return await updateWarehouse(id, patch, context)
|
|
28
28
|
}
|
|
@@ -32,7 +32,7 @@ export class WarehouseMutation {
|
|
|
32
32
|
@Mutation(returns => [Warehouse])
|
|
33
33
|
async updateMultipleWarehouse(
|
|
34
34
|
@Arg('patches', type => [WarehousePatch]) patches: WarehousePatch[],
|
|
35
|
-
@Ctx() context:
|
|
35
|
+
@Ctx() context: ResolverContext
|
|
36
36
|
): Promise<Warehouse[]> {
|
|
37
37
|
let results = []
|
|
38
38
|
const _createRecords = patches.filter((patch: any) => patch.cuFlag === '+')
|
|
@@ -60,20 +60,23 @@ export class WarehouseMutation {
|
|
|
60
60
|
@Directive('@privilege(category: "warehouse", privilege: "mutation")')
|
|
61
61
|
@Directive('@transaction')
|
|
62
62
|
@Mutation(returns => Boolean)
|
|
63
|
-
async deleteWarehouse(@Arg('id') id: string, @Ctx() context:
|
|
63
|
+
async deleteWarehouse(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Boolean> {
|
|
64
64
|
return await deleteWarehouse(id, context)
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
@Directive('@privilege(category: "warehouse", privilege: "mutation")')
|
|
68
68
|
@Directive('@transaction')
|
|
69
69
|
@Mutation(returns => Boolean)
|
|
70
|
-
async deleteWarehouses(
|
|
70
|
+
async deleteWarehouses(
|
|
71
|
+
@Arg('ids', type => [String]) ids: string[],
|
|
72
|
+
@Ctx() context: ResolverContext
|
|
73
|
+
): Promise<Boolean> {
|
|
71
74
|
return await deleteWarehouses(ids, context)
|
|
72
75
|
}
|
|
73
76
|
}
|
|
74
77
|
|
|
75
|
-
export async function createWarehouse(warehouse: NewWarehouse, context:
|
|
76
|
-
const { domain, user, tx }
|
|
78
|
+
export async function createWarehouse(warehouse: NewWarehouse, context: ResolverContext) {
|
|
79
|
+
const { domain, user, tx } = context.state
|
|
77
80
|
|
|
78
81
|
const repository: Repository<Warehouse> = tx.getRepository(Warehouse)
|
|
79
82
|
return await repository.save({
|
|
@@ -84,11 +87,11 @@ export async function createWarehouse(warehouse: NewWarehouse, context: any) {
|
|
|
84
87
|
})
|
|
85
88
|
}
|
|
86
89
|
|
|
87
|
-
export async function updateWarehouse(id: string, patch: WarehousePatch, context:
|
|
88
|
-
const { domain, user, tx }
|
|
90
|
+
export async function updateWarehouse(id: string, patch: WarehousePatch, context: ResolverContext) {
|
|
91
|
+
const { domain, user, tx } = context.state
|
|
89
92
|
|
|
90
93
|
const repository: Repository<Warehouse> = tx.getRepository(Warehouse)
|
|
91
|
-
const warehouse = await repository.
|
|
94
|
+
const warehouse = await repository.findOneBy({ id })
|
|
92
95
|
|
|
93
96
|
return await repository.save({
|
|
94
97
|
...warehouse,
|
|
@@ -97,16 +100,16 @@ export async function updateWarehouse(id: string, patch: WarehousePatch, context
|
|
|
97
100
|
})
|
|
98
101
|
}
|
|
99
102
|
|
|
100
|
-
export async function deleteWarehouse(id: string, context) {
|
|
101
|
-
const { tx }
|
|
103
|
+
export async function deleteWarehouse(id: string, context: ResolverContext) {
|
|
104
|
+
const { tx } = context.state
|
|
102
105
|
|
|
103
106
|
const repository: Repository<Warehouse> = tx.getRepository(Warehouse)
|
|
104
107
|
await repository.delete(id)
|
|
105
108
|
return true
|
|
106
109
|
}
|
|
107
110
|
|
|
108
|
-
export async function deleteWarehouses(ids: string[], context:
|
|
109
|
-
const { tx }
|
|
111
|
+
export async function deleteWarehouses(ids: string[], context: ResolverContext) {
|
|
112
|
+
const { tx } = context.state
|
|
110
113
|
|
|
111
114
|
const repository: Repository<Warehouse> = tx.getRepository(Warehouse)
|
|
112
115
|
await repository.delete(ids)
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
-
import { getRepository } from 'typeorm'
|
|
3
2
|
|
|
4
3
|
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import { convertListParams, Domain, ListParam } from '@things-factory/shell'
|
|
4
|
+
import { convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'
|
|
6
5
|
|
|
7
6
|
import { Warehouse } from './warehouse'
|
|
8
7
|
import { WarehouseList } from './warehouse-types'
|
|
@@ -10,21 +9,22 @@ import { WarehouseList } from './warehouse-types'
|
|
|
10
9
|
@Resolver(Warehouse)
|
|
11
10
|
export class WarehouseQuery {
|
|
12
11
|
@Query(returns => Warehouse)
|
|
13
|
-
async warehouse(@Arg('id') id: string, @Ctx() context:
|
|
14
|
-
const { domain }
|
|
12
|
+
async warehouse(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Warehouse> {
|
|
13
|
+
const { domain } = context.state
|
|
15
14
|
|
|
16
15
|
return await getRepository(Warehouse).findOne({
|
|
17
16
|
where: {
|
|
18
|
-
domain: domain,
|
|
19
|
-
|
|
17
|
+
domain: { id: domain.id },
|
|
18
|
+
id
|
|
19
|
+
/* name */
|
|
20
20
|
},
|
|
21
21
|
relations: ['domain', 'locations', 'creator', 'updater']
|
|
22
22
|
})
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
@Query(returns => WarehouseList)
|
|
26
|
-
async warehouses(@Args() params: ListParam, @Ctx() context:
|
|
27
|
-
const { domain }
|
|
26
|
+
async warehouses(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<WarehouseList> {
|
|
27
|
+
const { domain } = context.state
|
|
28
28
|
|
|
29
29
|
const convertedParams = convertListParams(params, {
|
|
30
30
|
domain: domain.id,
|
|
@@ -39,16 +39,16 @@ export class WarehouseQuery {
|
|
|
39
39
|
|
|
40
40
|
@FieldResolver(type => Domain)
|
|
41
41
|
async domain(@Root() warehouse: Warehouse) {
|
|
42
|
-
return await getRepository(Domain).
|
|
42
|
+
return await getRepository(Domain).findOneBy({ id: warehouse.domainId })
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
@FieldResolver(type => User)
|
|
46
46
|
async updater(@Root() warehouse: Warehouse) {
|
|
47
|
-
return await getRepository(User).
|
|
47
|
+
return await getRepository(User).findOneBy({ id: warehouse.updaterId })
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
@FieldResolver(type => User)
|
|
51
51
|
async creator(@Root() warehouse: Warehouse) {
|
|
52
|
-
return await getRepository(User).
|
|
52
|
+
return await getRepository(User).findOneBy({ id: warehouse.creatorId })
|
|
53
53
|
}
|
|
54
54
|
}
|
|
@@ -83,13 +83,13 @@ export class Warehouse {
|
|
|
83
83
|
|
|
84
84
|
constructor(obj?) {
|
|
85
85
|
if (obj) {
|
|
86
|
-
this.id = obj.
|
|
87
|
-
this.name = obj.
|
|
88
|
-
this.locations = obj.
|
|
89
|
-
this.type = obj.
|
|
90
|
-
this.description = obj.
|
|
91
|
-
this.createdAt = obj.
|
|
92
|
-
this.updatedAt = obj.
|
|
86
|
+
this.id = obj.warehouse_id
|
|
87
|
+
this.name = obj.warehouse_name
|
|
88
|
+
this.locations = obj.warehouse_locations
|
|
89
|
+
this.type = obj.warehouse_type
|
|
90
|
+
this.description = obj.warehouse_description
|
|
91
|
+
this.createdAt = obj.warehouse_created_at
|
|
92
|
+
this.updatedAt = obj.warehouse_updated_at
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { EntityManager,
|
|
1
|
+
import { EntityManager, Repository } from 'typeorm'
|
|
2
2
|
|
|
3
3
|
import { User } from '@things-factory/auth-base'
|
|
4
4
|
import { Bizplace } from '@things-factory/biz-base'
|
|
5
5
|
import { Product } from '@things-factory/product-base'
|
|
6
|
-
import { Domain } from '@things-factory/shell'
|
|
6
|
+
import { Domain, getRepository } from '@things-factory/shell'
|
|
7
7
|
|
|
8
8
|
import { INVENTORY_STATUS, INVENTORY_TRANSACTION_TYPE, LOCATION_STATUS, LOCATION_TYPE } from '../constants'
|
|
9
9
|
import { Inventory, InventoryHistory, Location } from '../service'
|
|
@@ -229,10 +229,10 @@ export async function switchLocationStatus(
|
|
|
229
229
|
): Promise<Location> {
|
|
230
230
|
const invRepo: Repository<Inventory> = trxMgr?.getRepository(Inventory) || getRepository(Inventory)
|
|
231
231
|
const locationRepo: Repository<Location> = trxMgr?.getRepository(Location) || getRepository(Location)
|
|
232
|
-
const allocatedItemsCnt: number = await invRepo.
|
|
233
|
-
domain,
|
|
232
|
+
const allocatedItemsCnt: number = await invRepo.countBy({
|
|
233
|
+
domain: { id: domain.id },
|
|
234
234
|
status: INVENTORY_STATUS.STORED,
|
|
235
|
-
location
|
|
235
|
+
location: { id: location.id }
|
|
236
236
|
})
|
|
237
237
|
|
|
238
238
|
if (!allocatedItemsCnt && location.status !== LOCATION_STATUS.EMPTY) {
|
|
@@ -259,9 +259,9 @@ export async function checkPalletDuplication(
|
|
|
259
259
|
trxMgr?: EntityManager
|
|
260
260
|
): Promise<boolean> {
|
|
261
261
|
const invRepo: Repository<Inventory> = trxMgr?.getRepository(Inventory) || getRepository(Inventory)
|
|
262
|
-
const duplicatedPalletCnt: number = await invRepo.
|
|
263
|
-
domain,
|
|
264
|
-
bizplace,
|
|
262
|
+
const duplicatedPalletCnt: number = await invRepo.countBy({
|
|
263
|
+
domain: { id: domain.id },
|
|
264
|
+
bizplace: { id: bizplace.id },
|
|
265
265
|
palletId
|
|
266
266
|
})
|
|
267
267
|
|
|
@@ -291,13 +291,13 @@ export async function checkPalletIdenticallity(
|
|
|
291
291
|
const invRepo: Repository<Inventory> = trxMgr?.getRepository(Inventory) || getRepository(Inventory)
|
|
292
292
|
|
|
293
293
|
if (typeof product === 'string') {
|
|
294
|
-
const foundProduct: Product = await productRepo.
|
|
294
|
+
const foundProduct: Product = await productRepo.findOneBy({ id: product }) /* TODO check migration typeorm 0.3 */
|
|
295
295
|
if (!foundProduct) throw new Error(`Failed to find product with ${product}`)
|
|
296
296
|
product = foundProduct
|
|
297
297
|
}
|
|
298
298
|
|
|
299
299
|
const inv: Inventory = await invRepo.findOne({
|
|
300
|
-
where: { domain, bizplace, palletId },
|
|
300
|
+
where: { domain: { id: domain.id }, bizplace, palletId },
|
|
301
301
|
relations: ['product']
|
|
302
302
|
})
|
|
303
303
|
|