@things-factory/warehouse-base 5.0.14 → 6.0.0-alpha.0
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
|
@@ -14,7 +14,7 @@ export class InventoryItemMutation {
|
|
|
14
14
|
@Mutation(returns => InventoryItem, { description: 'To create new InventoryItem' })
|
|
15
15
|
async createInventoryItem(
|
|
16
16
|
@Arg('inventoryItem') inventoryItem: NewInventoryItem,
|
|
17
|
-
@Ctx() context:
|
|
17
|
+
@Ctx() context: ResolverContext
|
|
18
18
|
): Promise<InventoryItem> {
|
|
19
19
|
const { domain, user, tx } = context.state
|
|
20
20
|
|
|
@@ -31,13 +31,13 @@ export class InventoryItemMutation {
|
|
|
31
31
|
async updateInventoryItem(
|
|
32
32
|
@Arg('id') id: string,
|
|
33
33
|
@Arg('patch') patch: InventoryItemPatch,
|
|
34
|
-
@Ctx() context:
|
|
34
|
+
@Ctx() context: ResolverContext
|
|
35
35
|
): Promise<InventoryItem> {
|
|
36
36
|
const { domain, user, tx } = context.state
|
|
37
37
|
|
|
38
38
|
const repository = tx.getRepository(InventoryItem)
|
|
39
39
|
const inventoryItem = await repository.findOne({
|
|
40
|
-
where: { domain, id }
|
|
40
|
+
where: { domain: { id: domain.id }, id }
|
|
41
41
|
})
|
|
42
42
|
|
|
43
43
|
return await repository.save({
|
|
@@ -52,7 +52,7 @@ export class InventoryItemMutation {
|
|
|
52
52
|
async updateInventoryItemSerialNumber(
|
|
53
53
|
@Arg('id') id: string,
|
|
54
54
|
@Arg('serialNumber') serialNumber: string,
|
|
55
|
-
@Ctx() context:
|
|
55
|
+
@Ctx() context: ResolverContext
|
|
56
56
|
): Promise<boolean> {
|
|
57
57
|
try {
|
|
58
58
|
const { domain, user, tx } = context.state
|
|
@@ -60,14 +60,14 @@ export class InventoryItemMutation {
|
|
|
60
60
|
const repository = tx.getRepository(InventoryItem)
|
|
61
61
|
|
|
62
62
|
const inventoryItem = await repository.findOne({
|
|
63
|
-
where: { domain, id },
|
|
63
|
+
where: { domain: { id: domain.id }, id },
|
|
64
64
|
relations: ['product']
|
|
65
65
|
})
|
|
66
66
|
|
|
67
67
|
const product: Product = inventoryItem.product
|
|
68
|
-
const duplicatedSerialNumberCnt: number = await repository.
|
|
69
|
-
domain,
|
|
70
|
-
product,
|
|
68
|
+
const duplicatedSerialNumberCnt: number = await repository.countBy({
|
|
69
|
+
domain: { id: domain.id },
|
|
70
|
+
product: { id: product.id },
|
|
71
71
|
serialNumber
|
|
72
72
|
})
|
|
73
73
|
|
|
@@ -85,7 +85,7 @@ export class InventoryItemMutation {
|
|
|
85
85
|
@Mutation(returns => [InventoryItem], { description: "To modify multiple InventoryItems' information" })
|
|
86
86
|
async updateMultipleInventoryItem(
|
|
87
87
|
@Arg('patches', type => [InventoryItemPatch]) patches: InventoryItemPatch[],
|
|
88
|
-
@Ctx() context:
|
|
88
|
+
@Ctx() context: ResolverContext
|
|
89
89
|
): Promise<InventoryItem[]> {
|
|
90
90
|
const { domain, user, tx } = context.state
|
|
91
91
|
|
|
@@ -112,7 +112,7 @@ export class InventoryItemMutation {
|
|
|
112
112
|
if (_updateRecords.length > 0) {
|
|
113
113
|
for (let i = 0; i < _updateRecords.length; i++) {
|
|
114
114
|
const newRecord = _updateRecords[i]
|
|
115
|
-
const inventoryItem = await inventoryItemRepo.
|
|
115
|
+
const inventoryItem = await inventoryItemRepo.findOneBy({ id: newRecord.id })
|
|
116
116
|
|
|
117
117
|
const result = await inventoryItemRepo.save({
|
|
118
118
|
...inventoryItem,
|
|
@@ -129,21 +129,24 @@ export class InventoryItemMutation {
|
|
|
129
129
|
|
|
130
130
|
@Directive('@transaction')
|
|
131
131
|
@Mutation(returns => Boolean, { description: 'To delete InventoryItem' })
|
|
132
|
-
async deleteInventoryItem(@Arg('id') id: string, @Ctx() context:
|
|
132
|
+
async deleteInventoryItem(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
|
|
133
133
|
const { domain, tx } = context.state
|
|
134
134
|
|
|
135
|
-
await tx.getRepository(InventoryItem).delete({ domain, id })
|
|
135
|
+
await tx.getRepository(InventoryItem).delete({ domain: { id: domain.id }, id })
|
|
136
136
|
|
|
137
137
|
return true
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
@Directive('@transaction')
|
|
141
141
|
@Mutation(returns => Boolean, { description: 'To delete multiple inventoryItems' })
|
|
142
|
-
async deleteInventoryItems(
|
|
142
|
+
async deleteInventoryItems(
|
|
143
|
+
@Arg('ids', type => [String]) ids: string[],
|
|
144
|
+
@Ctx() context: ResolverContext
|
|
145
|
+
): Promise<boolean> {
|
|
143
146
|
const { domain, tx } = context.state
|
|
144
147
|
|
|
145
148
|
await tx.getRepository(InventoryItem).delete({
|
|
146
|
-
domain,
|
|
149
|
+
domain: { id: domain.id },
|
|
147
150
|
id: In(ids)
|
|
148
151
|
})
|
|
149
152
|
|
|
@@ -155,13 +158,13 @@ export class InventoryItemMutation {
|
|
|
155
158
|
async replacePickedInventoryItem(
|
|
156
159
|
@Arg('selectedSerialNumber') selectedSerialNumber: InventoryItemPatch,
|
|
157
160
|
@Arg('newSerialNumber') newSerialNumber: string,
|
|
158
|
-
@Ctx() context:
|
|
161
|
+
@Ctx() context: ResolverContext
|
|
159
162
|
): Promise<InventoryItem> {
|
|
160
163
|
const { domain, user, tx } = context.state
|
|
161
164
|
|
|
162
165
|
const repository = tx.getRepository(InventoryItem)
|
|
163
166
|
const foundSerialNumber = await repository.findOne({
|
|
164
|
-
where: { domain, serialNumber: newSerialNumber }
|
|
167
|
+
where: { domain: { id: domain.id }, serialNumber: newSerialNumber }
|
|
165
168
|
})
|
|
166
169
|
|
|
167
170
|
if ((selectedSerialNumber.source = INVENTORY_ITEM_SOURCE.OUTBOUND)) {
|
|
@@ -169,7 +172,7 @@ export class InventoryItemMutation {
|
|
|
169
172
|
} else {
|
|
170
173
|
await repository.update(
|
|
171
174
|
{
|
|
172
|
-
domain,
|
|
175
|
+
domain: { id: domain.id },
|
|
173
176
|
id: selectedSerialNumber.id
|
|
174
177
|
},
|
|
175
178
|
{
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
-
import { Brackets, EntityManager,
|
|
2
|
+
import { Brackets, EntityManager, In, Not, OrderByCondition, SelectQueryBuilder } from 'typeorm'
|
|
3
3
|
|
|
4
4
|
import { User } from '@things-factory/auth-base'
|
|
5
5
|
import { Product } from '@things-factory/product-base'
|
|
6
|
-
import { convertListParams, Domain, ListParam } from '@things-factory/shell'
|
|
6
|
+
import { convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'
|
|
7
7
|
|
|
8
8
|
import { INVENTORY_STATUS } from '../../constants'
|
|
9
9
|
import { Inventory } from '../inventory/inventory'
|
|
@@ -13,16 +13,16 @@ import { InventoryItemList } from './inventory-item-type'
|
|
|
13
13
|
@Resolver(InventoryItem)
|
|
14
14
|
export class InventoryItemQuery {
|
|
15
15
|
@Query(returns => InventoryItem, { description: 'To fetch a InventoryItem' })
|
|
16
|
-
async inventoryItem(@Arg('id') id: string, @Ctx() context:
|
|
16
|
+
async inventoryItem(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<InventoryItem> {
|
|
17
17
|
const { domain } = context.state
|
|
18
18
|
|
|
19
19
|
return await getRepository(InventoryItem).findOne({
|
|
20
|
-
where: { domain, id }
|
|
20
|
+
where: { domain: { id: domain.id }, id }
|
|
21
21
|
})
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
@Query(returns => InventoryItemList, { description: 'To fetch multiple InventoryItems' })
|
|
25
|
-
async inventoryItems(@Args() params: ListParam, @Ctx() context:
|
|
25
|
+
async inventoryItems(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<InventoryItemList> {
|
|
26
26
|
const { domain } = context.state
|
|
27
27
|
|
|
28
28
|
const convertedParams = convertListParams(params, { domain })
|
|
@@ -36,8 +36,11 @@ export class InventoryItemQuery {
|
|
|
36
36
|
|
|
37
37
|
@Directive('@transaction')
|
|
38
38
|
@Query(returns => InventoryItemList, { description: 'To fetch multiple InventoryItems with InventoryItemChanges' })
|
|
39
|
-
async inventoryItemsWithChanges(
|
|
40
|
-
|
|
39
|
+
async inventoryItemsWithChanges(
|
|
40
|
+
@Args() params: ListParam,
|
|
41
|
+
@Ctx() context: ResolverContext
|
|
42
|
+
): Promise<InventoryItemList> {
|
|
43
|
+
const { domain, tx } = context.state
|
|
41
44
|
|
|
42
45
|
const page = params?.pagination?.page
|
|
43
46
|
const limit = params?.pagination?.limit
|
|
@@ -102,7 +105,10 @@ export class InventoryItemQuery {
|
|
|
102
105
|
}
|
|
103
106
|
|
|
104
107
|
@Query(returns => InventoryItemList, { description: 'To fetch multiple InventoryItems by inventory' })
|
|
105
|
-
async inventoryItemsByInventory(
|
|
108
|
+
async inventoryItemsByInventory(
|
|
109
|
+
@Args() params: ListParam,
|
|
110
|
+
@Ctx() context: ResolverContext
|
|
111
|
+
): Promise<InventoryItemList> {
|
|
106
112
|
const { domain } = context.state
|
|
107
113
|
|
|
108
114
|
const page = params.pagination.page
|
|
@@ -153,7 +159,7 @@ export class InventoryItemQuery {
|
|
|
153
159
|
|
|
154
160
|
if (sortings?.length !== 0) {
|
|
155
161
|
const arrChildSortData = ['serial_number']
|
|
156
|
-
const sort = (sortings || []).reduce(
|
|
162
|
+
const sort: OrderByCondition = (sortings || []).reduce(
|
|
157
163
|
(acc, sort) => ({
|
|
158
164
|
...acc,
|
|
159
165
|
[arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'ivi.' + sort.name]: sort.desc
|
|
@@ -175,17 +181,17 @@ export class InventoryItemQuery {
|
|
|
175
181
|
|
|
176
182
|
@FieldResolver(type => Domain)
|
|
177
183
|
async domain(@Root() inventoryItem: InventoryItem): Promise<Domain> {
|
|
178
|
-
return await getRepository(Domain).
|
|
184
|
+
return await getRepository(Domain).findOneBy({ id: inventoryItem.domainId })
|
|
179
185
|
}
|
|
180
186
|
|
|
181
187
|
@FieldResolver(type => User)
|
|
182
188
|
async updater(@Root() inventoryItem: InventoryItem): Promise<User> {
|
|
183
|
-
return await getRepository(User).
|
|
189
|
+
return await getRepository(User).findOneBy({ id: inventoryItem.updaterId })
|
|
184
190
|
}
|
|
185
191
|
|
|
186
192
|
@FieldResolver(type => User)
|
|
187
193
|
async creator(@Root() inventoryItem: InventoryItem): Promise<User> {
|
|
188
|
-
return await getRepository(User).
|
|
194
|
+
return await getRepository(User).findOneBy({ id: inventoryItem.creatorId })
|
|
189
195
|
}
|
|
190
196
|
}
|
|
191
197
|
|
|
@@ -196,18 +202,22 @@ export async function checkExistingSerialNumber(
|
|
|
196
202
|
inventory?: Inventory,
|
|
197
203
|
tx?: EntityManager
|
|
198
204
|
) {
|
|
199
|
-
const { domain }
|
|
205
|
+
const { domain } = context.state
|
|
200
206
|
|
|
201
207
|
let countCondition: any = {
|
|
202
|
-
domain,
|
|
203
|
-
product,
|
|
208
|
+
domain: { id: domain.id },
|
|
209
|
+
product: { id: product.id },
|
|
204
210
|
serialNumber,
|
|
205
211
|
status: Not(In([INVENTORY_STATUS.DELETED, INVENTORY_STATUS.TERMINATED]))
|
|
206
212
|
}
|
|
207
213
|
|
|
208
|
-
if (inventory)
|
|
214
|
+
if (inventory) {
|
|
215
|
+
countCondition = { ...countCondition, inventory: { id: inventory.id } }
|
|
216
|
+
}
|
|
209
217
|
|
|
210
|
-
const duplicatedSerialNumberCnt: number = await tx.getRepository(InventoryItem).
|
|
218
|
+
const duplicatedSerialNumberCnt: number = await tx.getRepository(InventoryItem).countBy(countCondition)
|
|
211
219
|
|
|
212
|
-
if (duplicatedSerialNumberCnt)
|
|
220
|
+
if (duplicatedSerialNumberCnt) {
|
|
221
|
+
return true
|
|
222
|
+
}
|
|
213
223
|
}
|
|
@@ -11,7 +11,7 @@ export class InventoryItemChangeMutation {
|
|
|
11
11
|
@Mutation(returns => InventoryItemChange, { description: 'To create new InventoryItemChange' })
|
|
12
12
|
async createInventoryItemChange(
|
|
13
13
|
@Arg('inventoryItemChange') inventoryItemChange: NewInventoryItemChange,
|
|
14
|
-
@Ctx() context:
|
|
14
|
+
@Ctx() context: ResolverContext
|
|
15
15
|
): Promise<InventoryItemChange> {
|
|
16
16
|
const { domain, user, tx } = context.state
|
|
17
17
|
|
|
@@ -30,13 +30,13 @@ export class InventoryItemChangeMutation {
|
|
|
30
30
|
async updateInventoryItemChange(
|
|
31
31
|
@Arg('id') id: string,
|
|
32
32
|
@Arg('patch') patch: InventoryItemChangePatch,
|
|
33
|
-
@Ctx() context:
|
|
33
|
+
@Ctx() context: ResolverContext
|
|
34
34
|
): Promise<InventoryItemChange> {
|
|
35
35
|
const { domain, user, tx } = context.state
|
|
36
36
|
|
|
37
37
|
const repository = tx.getRepository(InventoryItemChange)
|
|
38
38
|
const inventoryItemChange = await repository.findOne({
|
|
39
|
-
where: { domain, id }
|
|
39
|
+
where: { domain: { id: domain.id }, id }
|
|
40
40
|
})
|
|
41
41
|
|
|
42
42
|
return await repository.save({
|
|
@@ -50,7 +50,7 @@ export class InventoryItemChangeMutation {
|
|
|
50
50
|
@Mutation(returns => [InventoryItemChange], { description: "To modify multiple InventoryItemChanges' information" })
|
|
51
51
|
async updateMultipleInventoryItemChange(
|
|
52
52
|
@Arg('patches', type => [InventoryItemChangePatch]) patches: InventoryItemChangePatch[],
|
|
53
|
-
@Ctx() context:
|
|
53
|
+
@Ctx() context: ResolverContext
|
|
54
54
|
): Promise<InventoryItemChange[]> {
|
|
55
55
|
const { domain, user, tx } = context.state
|
|
56
56
|
|
|
@@ -77,7 +77,7 @@ export class InventoryItemChangeMutation {
|
|
|
77
77
|
if (_updateRecords.length > 0) {
|
|
78
78
|
for (let i = 0; i < _updateRecords.length; i++) {
|
|
79
79
|
const newRecord = _updateRecords[i]
|
|
80
|
-
const inventoryItemChange = await inventoryItemChangeRepo.
|
|
80
|
+
const inventoryItemChange = await inventoryItemChangeRepo.findOneBy({ id: newRecord.id })
|
|
81
81
|
|
|
82
82
|
const result = await inventoryItemChangeRepo.save({
|
|
83
83
|
...inventoryItemChange,
|
|
@@ -94,20 +94,23 @@ export class InventoryItemChangeMutation {
|
|
|
94
94
|
|
|
95
95
|
@Directive('@transaction')
|
|
96
96
|
@Mutation(returns => Boolean, { description: 'To delete InventoryItemChange' })
|
|
97
|
-
async deleteInventoryItemChange(@Arg('id') id: string, @Ctx() context:
|
|
97
|
+
async deleteInventoryItemChange(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
|
|
98
98
|
const { domain, tx } = context.state
|
|
99
99
|
|
|
100
|
-
await tx.getRepository(InventoryItemChange).delete({ domain, id })
|
|
100
|
+
await tx.getRepository(InventoryItemChange).delete({ domain: { id: domain.id }, id })
|
|
101
101
|
return true
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
@Directive('@transaction')
|
|
105
105
|
@Mutation(returns => Boolean, { description: 'To delete multiple inventoryItemChanges' })
|
|
106
|
-
async deleteInventoryItemChanges(
|
|
106
|
+
async deleteInventoryItemChanges(
|
|
107
|
+
@Arg('ids', type => [String]) ids: string[],
|
|
108
|
+
@Ctx() context: ResolverContext
|
|
109
|
+
): Promise<boolean> {
|
|
107
110
|
const { domain, tx } = context.state
|
|
108
111
|
|
|
109
112
|
await tx.getRepository(InventoryItemChange).delete({
|
|
110
|
-
domain,
|
|
113
|
+
domain: { id: domain.id },
|
|
111
114
|
id: In(ids)
|
|
112
115
|
})
|
|
113
116
|
|
|
@@ -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 { InventoryItemChange } from './inventory-item-change'
|
|
8
7
|
import { InventoryItemChangeList } from './inventory-item-change-type'
|
|
@@ -10,16 +9,19 @@ import { InventoryItemChangeList } from './inventory-item-change-type'
|
|
|
10
9
|
@Resolver(InventoryItemChange)
|
|
11
10
|
export class InventoryItemChangeQuery {
|
|
12
11
|
@Query(returns => InventoryItemChange, { description: 'To fetch a InventoryItemChange' })
|
|
13
|
-
async inventoryItemChange(@Arg('id') id: string, @Ctx() context:
|
|
12
|
+
async inventoryItemChange(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<InventoryItemChange> {
|
|
14
13
|
const { domain } = context.state
|
|
15
14
|
|
|
16
15
|
return await getRepository(InventoryItemChange).findOne({
|
|
17
|
-
where: { domain, id }
|
|
16
|
+
where: { domain: { id: domain.id }, id }
|
|
18
17
|
})
|
|
19
18
|
}
|
|
20
19
|
|
|
21
20
|
@Query(returns => InventoryItemChangeList, { description: 'To fetch multiple InventoryItemChanges' })
|
|
22
|
-
async inventoryItemChanges(
|
|
21
|
+
async inventoryItemChanges(
|
|
22
|
+
@Args() params: ListParam,
|
|
23
|
+
@Ctx() context: ResolverContext
|
|
24
|
+
): Promise<InventoryItemChangeList> {
|
|
23
25
|
const { domain } = context.state
|
|
24
26
|
|
|
25
27
|
const convertedParams = convertListParams(params, { domain })
|
|
@@ -30,16 +32,16 @@ export class InventoryItemChangeQuery {
|
|
|
30
32
|
|
|
31
33
|
@FieldResolver(type => Domain)
|
|
32
34
|
async domain(@Root() inventoryItemChange: InventoryItemChange): Promise<Domain> {
|
|
33
|
-
return await getRepository(Domain).
|
|
35
|
+
return await getRepository(Domain).findOneBy({ id: inventoryItemChange.domainId })
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
@FieldResolver(type => User)
|
|
37
39
|
async updater(@Root() inventoryItemChange: InventoryItemChange): Promise<User> {
|
|
38
|
-
return await getRepository(User).
|
|
40
|
+
return await getRepository(User).findOneBy({ id: inventoryItemChange.updaterId })
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
@FieldResolver(type => User)
|
|
42
44
|
async creator(@Root() inventoryItemChange: InventoryItemChange): Promise<User> {
|
|
43
|
-
return await getRepository(User).
|
|
45
|
+
return await getRepository(User).findOneBy({ id: inventoryItemChange.creatorId })
|
|
44
46
|
}
|
|
45
47
|
}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
2
|
+
import { In } from 'typeorm'
|
|
3
|
+
|
|
3
4
|
import { InventoryProduct } from './inventory-product'
|
|
4
|
-
import {
|
|
5
|
+
import { InventoryProductPatch, NewInventoryProduct } from './inventory-product-type'
|
|
5
6
|
|
|
6
7
|
@Resolver(InventoryProduct)
|
|
7
8
|
export class InventoryProductMutation {
|
|
8
9
|
@Directive('@transaction')
|
|
9
10
|
@Mutation(returns => InventoryProduct, { description: 'To create new InventoryProduct' })
|
|
10
|
-
async createInventoryProduct(
|
|
11
|
+
async createInventoryProduct(
|
|
12
|
+
@Arg('inventoryProduct') inventoryProduct: NewInventoryProduct,
|
|
13
|
+
@Ctx() context: ResolverContext
|
|
14
|
+
): Promise<InventoryProduct> {
|
|
11
15
|
const { domain, user, tx } = context.state
|
|
12
16
|
|
|
13
17
|
return await tx.getRepository(InventoryProduct).save({
|
|
@@ -23,13 +27,13 @@ export class InventoryProductMutation {
|
|
|
23
27
|
async updateInventoryProduct(
|
|
24
28
|
@Arg('id') id: string,
|
|
25
29
|
@Arg('patch') patch: InventoryProductPatch,
|
|
26
|
-
@Ctx() context:
|
|
30
|
+
@Ctx() context: ResolverContext
|
|
27
31
|
): Promise<InventoryProduct> {
|
|
28
32
|
const { domain, user, tx } = context.state
|
|
29
33
|
|
|
30
34
|
const repository = tx.getRepository(InventoryProduct)
|
|
31
35
|
const inventoryProduct = await repository.findOne({
|
|
32
|
-
where: { domain, id }
|
|
36
|
+
where: { domain: { id: domain.id }, id }
|
|
33
37
|
})
|
|
34
38
|
|
|
35
39
|
return await repository.save({
|
|
@@ -43,7 +47,7 @@ export class InventoryProductMutation {
|
|
|
43
47
|
@Mutation(returns => [InventoryProduct], { description: "To modify multiple InventoryProducts' information" })
|
|
44
48
|
async updateMultipleInventoryProduct(
|
|
45
49
|
@Arg('patches', type => [InventoryProductPatch]) patches: InventoryProductPatch[],
|
|
46
|
-
@Ctx() context:
|
|
50
|
+
@Ctx() context: ResolverContext
|
|
47
51
|
): Promise<InventoryProduct[]> {
|
|
48
52
|
const { domain, user, tx } = context.state
|
|
49
53
|
|
|
@@ -70,7 +74,7 @@ export class InventoryProductMutation {
|
|
|
70
74
|
if (_updateRecords.length > 0) {
|
|
71
75
|
for (let i = 0; i < _updateRecords.length; i++) {
|
|
72
76
|
const newRecord = _updateRecords[i]
|
|
73
|
-
const inventoryProduct = await inventoryProductRepo.
|
|
77
|
+
const inventoryProduct = await inventoryProductRepo.findOneBy({ id: newRecord.id })
|
|
74
78
|
|
|
75
79
|
const result = await inventoryProductRepo.save({
|
|
76
80
|
...inventoryProduct,
|
|
@@ -87,10 +91,10 @@ export class InventoryProductMutation {
|
|
|
87
91
|
|
|
88
92
|
@Directive('@transaction')
|
|
89
93
|
@Mutation(returns => Boolean, { description: 'To delete InventoryProduct' })
|
|
90
|
-
async deleteInventoryProduct(@Arg('id') id: string, @Ctx() context:
|
|
94
|
+
async deleteInventoryProduct(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
|
|
91
95
|
const { domain, tx } = context.state
|
|
92
96
|
|
|
93
|
-
await tx.getRepository(InventoryProduct).delete({ domain, id })
|
|
97
|
+
await tx.getRepository(InventoryProduct).delete({ domain: { id: domain.id }, id })
|
|
94
98
|
return true
|
|
95
99
|
}
|
|
96
100
|
|
|
@@ -98,12 +102,12 @@ export class InventoryProductMutation {
|
|
|
98
102
|
@Mutation(returns => Boolean, { description: 'To delete multiple inventoryProducts' })
|
|
99
103
|
async deleteInventoryProducts(
|
|
100
104
|
@Arg('ids', type => [String]) ids: string[],
|
|
101
|
-
@Ctx() context:
|
|
105
|
+
@Ctx() context: ResolverContext
|
|
102
106
|
): Promise<boolean> {
|
|
103
107
|
const { domain, tx } = context.state
|
|
104
108
|
|
|
105
109
|
await tx.getRepository(InventoryProduct).delete({
|
|
106
|
-
domain,
|
|
110
|
+
domain: { id: domain.id },
|
|
107
111
|
id: In(ids)
|
|
108
112
|
})
|
|
109
113
|
|
|
@@ -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 { InventoryProduct } from './inventory-product'
|
|
8
7
|
import { InventoryProductList } from './inventory-product-type'
|
|
@@ -10,16 +9,16 @@ import { InventoryProductList } from './inventory-product-type'
|
|
|
10
9
|
@Resolver(InventoryProduct)
|
|
11
10
|
export class InventoryProductQuery {
|
|
12
11
|
@Query(returns => InventoryProduct, { description: 'To fetch a InventoryProduct' })
|
|
13
|
-
async inventoryProduct(@Arg('id') id: string, @Ctx() context:
|
|
12
|
+
async inventoryProduct(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<InventoryProduct> {
|
|
14
13
|
const { domain } = context.state
|
|
15
14
|
|
|
16
15
|
return await getRepository(InventoryProduct).findOne({
|
|
17
|
-
where: { domain, id }
|
|
16
|
+
where: { domain: { id: domain.id }, id }
|
|
18
17
|
})
|
|
19
18
|
}
|
|
20
19
|
|
|
21
20
|
@Query(returns => InventoryProductList, { description: 'To fetch multiple InventoryProducts' })
|
|
22
|
-
async inventoryProducts(@Args() params: ListParam, @Ctx() context:
|
|
21
|
+
async inventoryProducts(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<InventoryProductList> {
|
|
23
22
|
const { domain } = context.state
|
|
24
23
|
|
|
25
24
|
const convertedParams = convertListParams(params, { domain })
|
|
@@ -30,16 +29,16 @@ export class InventoryProductQuery {
|
|
|
30
29
|
|
|
31
30
|
@FieldResolver(type => Domain)
|
|
32
31
|
async domain(@Root() inventoryProduct: InventoryProduct): Promise<Domain> {
|
|
33
|
-
return await getRepository(Domain).
|
|
32
|
+
return await getRepository(Domain).findOneBy({ id: inventoryProduct.domainId })
|
|
34
33
|
}
|
|
35
34
|
|
|
36
35
|
@FieldResolver(type => User)
|
|
37
36
|
async updater(@Root() inventoryProduct: InventoryProduct): Promise<User> {
|
|
38
|
-
return await getRepository(User).
|
|
37
|
+
return await getRepository(User).findOneBy({ id: inventoryProduct.updaterId })
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
@FieldResolver(type => User)
|
|
42
41
|
async creator(@Root() inventoryProduct: InventoryProduct): Promise<User> {
|
|
43
|
-
return await getRepository(User).
|
|
42
|
+
return await getRepository(User).findOneBy({ id: inventoryProduct.creatorId })
|
|
44
43
|
}
|
|
45
44
|
}
|
|
@@ -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 { Location } from '../location/location'
|
|
8
5
|
import { Warehouse } from '../warehouse/warehouse'
|
|
@@ -13,7 +10,7 @@ export class LocationMutation {
|
|
|
13
10
|
@Directive('@privilege(category: "warehouse", privilege: "mutation")')
|
|
14
11
|
@Directive('@transaction')
|
|
15
12
|
@Mutation(returns => Location)
|
|
16
|
-
async createLocation(@Arg('location') location: NewLocation, @Ctx() context:
|
|
13
|
+
async createLocation(@Arg('location') location: NewLocation, @Ctx() context: ResolverContext): Promise<Location> {
|
|
17
14
|
return await createLocation(location, context)
|
|
18
15
|
}
|
|
19
16
|
|
|
@@ -23,9 +20,9 @@ export class LocationMutation {
|
|
|
23
20
|
async updateLocation(
|
|
24
21
|
@Arg('id') id: string,
|
|
25
22
|
@Arg('patch') patch: LocationPatch,
|
|
26
|
-
@Ctx() context:
|
|
23
|
+
@Ctx() context: ResolverContext
|
|
27
24
|
): Promise<Location> {
|
|
28
|
-
return await updateLocation(id, patch, context
|
|
25
|
+
return await updateLocation(id, patch, context)
|
|
29
26
|
}
|
|
30
27
|
|
|
31
28
|
@Directive('@privilege(category: "warehouse", privilege: "mutation")')
|
|
@@ -33,7 +30,7 @@ export class LocationMutation {
|
|
|
33
30
|
@Mutation(returns => [Location])
|
|
34
31
|
async updateMultipleLocation(
|
|
35
32
|
@Arg('patches', type => [LocationPatch]) patches: LocationPatch[],
|
|
36
|
-
@Ctx() context:
|
|
33
|
+
@Ctx() context: ResolverContext
|
|
37
34
|
): Promise<Location[]> {
|
|
38
35
|
let results = []
|
|
39
36
|
const _createRecords = patches.filter((patch: any) => patch.cuFlag === '+')
|
|
@@ -61,53 +58,56 @@ export class LocationMutation {
|
|
|
61
58
|
@Directive('@privilege(category: "warehouse", privilege: "mutation")')
|
|
62
59
|
@Directive('@transaction')
|
|
63
60
|
@Mutation(returns => Boolean)
|
|
64
|
-
async deleteLocation(@Arg('id') id: string, @Ctx() context:
|
|
61
|
+
async deleteLocation(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Boolean> {
|
|
65
62
|
return await deleteLocation(id, context)
|
|
66
63
|
}
|
|
67
64
|
|
|
68
65
|
@Directive('@privilege(category: "warehouse", privilege: "mutation")')
|
|
69
66
|
@Directive('@transaction')
|
|
70
67
|
@Mutation(returns => Boolean)
|
|
71
|
-
async deleteLocations(
|
|
68
|
+
async deleteLocations(
|
|
69
|
+
@Arg('ids', type => [String]) ids: string[],
|
|
70
|
+
@Ctx() context: ResolverContext
|
|
71
|
+
): Promise<Boolean> {
|
|
72
72
|
return await deleteLocations(ids, context)
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
@Directive('@privilege(category: "warehouse", privilege: "mutation")')
|
|
76
76
|
@Directive('@transaction')
|
|
77
77
|
@Mutation(returns => Boolean)
|
|
78
|
-
async deleteAllLocations(@Arg('warehouseId') warehouseId: string, @Ctx() context:
|
|
79
|
-
const { tx }
|
|
78
|
+
async deleteAllLocations(@Arg('warehouseId') warehouseId: string, @Ctx() context: ResolverContext) {
|
|
79
|
+
const { tx } = context.state
|
|
80
80
|
|
|
81
81
|
await tx.getRepository(Location).delete({
|
|
82
|
-
warehouse:
|
|
82
|
+
warehouse: { id: warehouseId }
|
|
83
83
|
})
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
export async function createLocation(location: NewLocation, context:
|
|
88
|
-
const { domain, user, tx }
|
|
87
|
+
export async function createLocation(location: NewLocation, context: ResolverContext) {
|
|
88
|
+
const { domain, user, tx } = context.state
|
|
89
89
|
|
|
90
90
|
const locationRepository: Repository<Location> = tx.getRepository(Location)
|
|
91
91
|
const warehouseRepository: Repository<Warehouse> = tx.getRepository(Warehouse)
|
|
92
92
|
|
|
93
93
|
return await locationRepository.save({
|
|
94
94
|
...location,
|
|
95
|
-
warehouse: await warehouseRepository.
|
|
95
|
+
warehouse: await warehouseRepository.findOneBy({ id: location.warehouse.id }),
|
|
96
96
|
domain,
|
|
97
97
|
creator: user,
|
|
98
98
|
updater: user
|
|
99
99
|
})
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
export async function updateLocation(id: string, patch: LocationPatch, context:
|
|
103
|
-
const { user, tx }
|
|
102
|
+
export async function updateLocation(id: string, patch: LocationPatch, context: ResolverContext) {
|
|
103
|
+
const { user, tx } = context.state
|
|
104
104
|
|
|
105
105
|
const locationRepository: Repository<Location> = tx.getRepository(Location)
|
|
106
106
|
const warehouseRepository: Repository<Warehouse> = tx.getRepository(Warehouse)
|
|
107
|
-
const location: Location = await locationRepository.
|
|
107
|
+
const location: Location = await locationRepository.findOneBy({ id })
|
|
108
108
|
|
|
109
109
|
if (patch.warehouse && patch.warehouse.id) {
|
|
110
|
-
patch.warehouse = await warehouseRepository.
|
|
110
|
+
patch.warehouse = await warehouseRepository.findOneBy({ id: patch.warehouse.id })
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
return await locationRepository.save({
|
|
@@ -117,16 +117,16 @@ export async function updateLocation(id: string, patch: LocationPatch, context:
|
|
|
117
117
|
})
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
export async function deleteLocation(id: string, context:
|
|
121
|
-
const { tx }
|
|
120
|
+
export async function deleteLocation(id: string, context: ResolverContext) {
|
|
121
|
+
const { tx } = context.state
|
|
122
122
|
|
|
123
123
|
const repository: Repository<Location> = tx.getRepository(Location)
|
|
124
124
|
await repository.delete(id)
|
|
125
125
|
return true
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
export async function deleteLocations(ids: string[], context:
|
|
129
|
-
const { tx }
|
|
128
|
+
export async function deleteLocations(ids: string[], context: ResolverContext) {
|
|
129
|
+
const { tx } = context.state
|
|
130
130
|
|
|
131
131
|
const repository: Repository<Location> = tx.getRepository(Location)
|
|
132
132
|
await repository.delete(ids)
|