@things-factory/warehouse-base 8.0.3 → 8.0.6

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.
Files changed (88) hide show
  1. package/dist-server/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +8 -8
  3. package/server/constants/index.ts +0 -5
  4. package/server/constants/inventory.ts +0 -67
  5. package/server/constants/location.ts +0 -14
  6. package/server/constants/pallet.ts +0 -10
  7. package/server/constants/rule-type.ts +0 -5
  8. package/server/constants/tote.ts +0 -5
  9. package/server/controllers/ecommerce/ecommerce-controller.ts +0 -108
  10. package/server/controllers/ecommerce/index.ts +0 -2
  11. package/server/controllers/ecommerce/sellercraft-controller.ts +0 -100
  12. package/server/controllers/index.ts +0 -2
  13. package/server/controllers/warehouse-controller.ts +0 -181
  14. package/server/index.ts +0 -9
  15. package/server/middlewares/index.ts +0 -0
  16. package/server/migrations/index.ts +0 -9
  17. package/server/service/index.ts +0 -80
  18. package/server/service/inventory/index.ts +0 -6
  19. package/server/service/inventory/inventory-mutation.ts +0 -530
  20. package/server/service/inventory/inventory-query.ts +0 -1263
  21. package/server/service/inventory/inventory-types.ts +0 -367
  22. package/server/service/inventory/inventory.ts +0 -408
  23. package/server/service/inventory-change/index.ts +0 -6
  24. package/server/service/inventory-change/inventory-change-mutation.ts +0 -969
  25. package/server/service/inventory-change/inventory-change-query.ts +0 -93
  26. package/server/service/inventory-change/inventory-change-types.ts +0 -36
  27. package/server/service/inventory-change/inventory-change.ts +0 -164
  28. package/server/service/inventory-history/index.ts +0 -6
  29. package/server/service/inventory-history/inventory-history-mutation.ts +0 -116
  30. package/server/service/inventory-history/inventory-history-query.ts +0 -1845
  31. package/server/service/inventory-history/inventory-history-types.ts +0 -444
  32. package/server/service/inventory-history/inventory-history.ts +0 -203
  33. package/server/service/inventory-item/index.ts +0 -6
  34. package/server/service/inventory-item/inventory-item-mutation.ts +0 -217
  35. package/server/service/inventory-item/inventory-item-query.ts +0 -226
  36. package/server/service/inventory-item/inventory-item-type.ts +0 -74
  37. package/server/service/inventory-item/inventory-item.ts +0 -105
  38. package/server/service/inventory-item-change/index.ts +0 -6
  39. package/server/service/inventory-item-change/inventory-item-change-mutation.ts +0 -119
  40. package/server/service/inventory-item-change/inventory-item-change-query.ts +0 -47
  41. package/server/service/inventory-item-change/inventory-item-change-type.ts +0 -68
  42. package/server/service/inventory-item-change/inventory-item-change.ts +0 -92
  43. package/server/service/inventory-product/index.ts +0 -6
  44. package/server/service/inventory-product/inventory-product-mutation.ts +0 -116
  45. package/server/service/inventory-product/inventory-product-query.ts +0 -47
  46. package/server/service/inventory-product/inventory-product-type.ts +0 -59
  47. package/server/service/inventory-product/inventory-product.ts +0 -88
  48. package/server/service/location/index.ts +0 -6
  49. package/server/service/location/location-mutation.ts +0 -134
  50. package/server/service/location/location-query.ts +0 -244
  51. package/server/service/location/location-types.ts +0 -173
  52. package/server/service/location/location.ts +0 -121
  53. package/server/service/movement/index.ts +0 -6
  54. package/server/service/movement/movement-mutation.ts +0 -60
  55. package/server/service/movement/movement-query.ts +0 -263
  56. package/server/service/movement/movement-types.ts +0 -74
  57. package/server/service/movement/movement.ts +0 -81
  58. package/server/service/pallet/index.ts +0 -6
  59. package/server/service/pallet/pallet-mutation.ts +0 -242
  60. package/server/service/pallet/pallet-query.ts +0 -106
  61. package/server/service/pallet/pallet-types.ts +0 -80
  62. package/server/service/pallet/pallet.ts +0 -92
  63. package/server/service/pallet-count/index.ts +0 -6
  64. package/server/service/pallet-count/pallet-count-mutation.ts +0 -151
  65. package/server/service/pallet-count/pallet-count-query.ts +0 -45
  66. package/server/service/pallet-count/pallet-count-types.ts +0 -36
  67. package/server/service/pallet-count/pallet-count.ts +0 -70
  68. package/server/service/pallet-history/index.ts +0 -6
  69. package/server/service/pallet-history/pallet-history-mutation.ts +0 -114
  70. package/server/service/pallet-history/pallet-history-query.ts +0 -48
  71. package/server/service/pallet-history/pallet-history-types.ts +0 -36
  72. package/server/service/pallet-history/pallet-history.ts +0 -89
  73. package/server/service/reduced-inventory-history/index.ts +0 -3
  74. package/server/service/reduced-inventory-history/reduced-inventory-history.ts +0 -92
  75. package/server/service/tote/index.ts +0 -6
  76. package/server/service/tote/tote-mutation.ts +0 -201
  77. package/server/service/tote/tote-query.ts +0 -106
  78. package/server/service/tote/tote-types.ts +0 -44
  79. package/server/service/tote/tote.ts +0 -77
  80. package/server/service/warehouse/index.ts +0 -6
  81. package/server/service/warehouse/warehouse-mutation.ts +0 -152
  82. package/server/service/warehouse/warehouse-query.ts +0 -58
  83. package/server/service/warehouse/warehouse-types.ts +0 -50
  84. package/server/service/warehouse/warehouse.ts +0 -95
  85. package/server/utils/datetime-util.ts +0 -54
  86. package/server/utils/index.ts +0 -3
  87. package/server/utils/inventory-no-generator.ts +0 -15
  88. package/server/utils/inventory-util.ts +0 -490
@@ -1,242 +0,0 @@
1
- import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
- import { In } from 'typeorm'
3
-
4
- import { Bizplace } from '@things-factory/biz-base'
5
-
6
- import { PalletHistory } from '../pallet-history/pallet-history'
7
- import { Pallet } from './pallet'
8
- import { NewPallet, PalletPatch } from './pallet-types'
9
-
10
- @Resolver(Pallet)
11
- export class PalletMutation {
12
- @Directive('@transaction')
13
- @Mutation(returns => Pallet)
14
- async createPallet(@Arg('pallet') pallet: NewPallet, @Ctx() context: ResolverContext): Promise<Pallet> {
15
- const { domain, user, tx } = context.state
16
-
17
- return await tx.getRepository(Pallet).save({
18
- ...pallet,
19
- domain: domain,
20
- creator: user,
21
- updater: user
22
- })
23
- }
24
-
25
- @Directive('@transaction')
26
- @Mutation(returns => Pallet)
27
- async updatePallet(
28
- @Arg('name') name: string,
29
- @Arg('patch') patch: PalletPatch,
30
- @Ctx() context: ResolverContext
31
- ): Promise<Pallet> {
32
- const { domain, user, tx } = context.state
33
-
34
- const repository = tx.getRepository(Pallet)
35
- const pallet = await repository.findOne({
36
- where: { domain: { id: domain.id }, name }
37
- })
38
-
39
- return await repository.save({
40
- ...pallet,
41
- ...patch,
42
- updater: user
43
- })
44
- }
45
-
46
- @Directive('@transaction')
47
- @Mutation(returns => [Pallet])
48
- async updateMultiplePallet(
49
- @Arg('patches', type => [PalletPatch]) patches: PalletPatch[],
50
- @Ctx() context: ResolverContext
51
- ): Promise<Pallet[]> {
52
- const { domain, user, tx } = context.state
53
-
54
- let results = []
55
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
56
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
57
-
58
- if (_createRecords.length > 0) {
59
- for (let i = 0; i < _createRecords.length; i++) {
60
- const newRecord = _createRecords[i]
61
-
62
- if (newRecord.owner && newRecord.owner.id) {
63
- newRecord.owner = (await tx.getRepository(Bizplace).findOneBy({ id: newRecord.owner.id })) as any
64
- }
65
-
66
- if (newRecord.holder && newRecord.holder.id) {
67
- newRecord.holder = (await tx.getRepository(Bizplace).findOneBy({ id: newRecord.holder.id })) as any
68
- }
69
-
70
- const result: Pallet = await tx.getRepository(Pallet).save({
71
- domain: domain,
72
- creator: user,
73
- updater: user,
74
- ...newRecord
75
- })
76
-
77
- await tx.getRepository(PalletHistory).save({
78
- ...newRecord,
79
- pallet: result,
80
- domain: domain,
81
- creator: user,
82
- updater: user,
83
- transactionType: 'NEW'
84
- })
85
-
86
- results.push({ ...result, cuFlag: '+' })
87
- }
88
- }
89
-
90
- if (_updateRecords.length > 0) {
91
- for (let i = 0; i < _updateRecords.length; i++) {
92
- const newRecord = _updateRecords[i]
93
- const pallet = await tx.getRepository(Pallet).findOne({
94
- where: { id: newRecord.id },
95
- relations: ['owner', 'holder']
96
- })
97
- const seq = pallet.seq + 1
98
-
99
- if (newRecord.owner && newRecord.owner.id) {
100
- newRecord.owner = (await tx.getRepository(Bizplace).findOneBy({ id: newRecord.owner.id })) as any
101
- }
102
-
103
- if (newRecord.holder && newRecord.holder.id) {
104
- newRecord.holder = (await tx.getRepository(Bizplace).findOneBy({ id: newRecord.holder.id })) as any
105
- }
106
-
107
- const result = await tx.getRepository(Pallet).save({
108
- ...pallet,
109
- ...newRecord,
110
- seq,
111
- updater: user,
112
- refOrderNo: null
113
- })
114
-
115
- let newHistory = {
116
- ...pallet,
117
- ...newRecord,
118
- pallet: result,
119
- seq,
120
- domain: domain,
121
- creator: user,
122
- updater: user,
123
- transactionType: 'UPDATE'
124
- }
125
-
126
- delete newHistory.id
127
-
128
- await tx.getRepository(PalletHistory).save({
129
- ...newHistory
130
- })
131
-
132
- results.push({ ...result, cuFlag: 'M' })
133
- }
134
- }
135
-
136
- return results
137
- }
138
-
139
- @Directive('@transaction')
140
- @Mutation(returns => Boolean)
141
- async deletePallet(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {
142
- const { domain, tx } = context.state
143
-
144
- await tx.getRepository(Pallet).delete({ domain: { id: domain.id }, name })
145
- return true
146
- }
147
-
148
- @Directive('@transaction')
149
- @Mutation(returns => Boolean)
150
- async deletePallets(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<Boolean> {
151
- const { domain, user, tx } = context.state
152
-
153
- const pallets = await tx.getRepository(Pallet).find({
154
- where: {
155
- domain: { id: domain.id },
156
- id: In(ids)
157
- },
158
- relations: ['owner', 'holder']
159
- })
160
-
161
- await Promise.all(
162
- pallets.map(async (pallet: Pallet) => {
163
- let seq = pallet.seq + 1
164
- await tx.getRepository(Pallet).save({
165
- ...pallet,
166
- status: 'TERMINATED',
167
- seq,
168
- updater: user
169
- })
170
-
171
- await tx.getRepository(PalletHistory).save({
172
- pallet: pallet,
173
- name: pallet.name,
174
- owner: pallet.owner,
175
- holder: pallet.holder,
176
- seq,
177
- domain: domain,
178
- creator: user,
179
- updater: user,
180
- status: 'TERMINATED',
181
- transactionType: 'UPDATE'
182
- })
183
- })
184
- )
185
- return true
186
- }
187
-
188
- @Directive('@transaction')
189
- @Mutation(returns => [Pallet])
190
- async palletReturn(
191
- @Arg('patches', type => [PalletPatch]) patches: PalletPatch[],
192
- @Ctx() context: ResolverContext
193
- ): Promise<Pallet[]> {
194
- const { domain, user, tx } = context.state
195
-
196
- let results = []
197
- const _updateRecords = patches
198
-
199
- if (_updateRecords.length > 0) {
200
- for (let i = 0; i < _updateRecords.length; i++) {
201
- const newRecord = _updateRecords[i]
202
- const pallet = await tx.getRepository(Pallet).findOne({
203
- where: { id: newRecord.id },
204
- relations: ['owner', 'holder']
205
- })
206
- const seq = pallet.seq + 1
207
-
208
- newRecord.owner = (await tx.getRepository(Bizplace).findOneBy({ id: newRecord.owner.id })) as any
209
- newRecord.holder = newRecord.owner
210
-
211
- const result = await tx.getRepository(Pallet).save({
212
- ...pallet,
213
- ...newRecord,
214
- seq,
215
- updater: user,
216
- refOrderNo: null
217
- })
218
-
219
- let newHistory = {
220
- ...pallet,
221
- ...newRecord,
222
- pallet: result,
223
- seq,
224
- domain: domain,
225
- creator: user,
226
- updater: user,
227
- transactionType: 'RETURN'
228
- }
229
-
230
- delete newHistory.id
231
-
232
- await tx.getRepository(PalletHistory).save({
233
- ...newHistory
234
- })
235
-
236
- results.push({ ...result, cuFlag: 'M' })
237
- }
238
- }
239
-
240
- return results
241
- }
242
- }
@@ -1,106 +0,0 @@
1
- import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
-
3
- import { User } from '@things-factory/auth-base'
4
- import { convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'
5
-
6
- import { Pallet } from './pallet'
7
- import { PalletList, PalletValidate } from './pallet-types'
8
-
9
- @Resolver(Pallet)
10
- export class PalletQuery {
11
- @Query(returns => PalletList)
12
- async pallets(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<PalletList> {
13
- const { domain } = context.state
14
-
15
- if (!params.filters.find((filter: any) => filter.name === 'status')) {
16
- params.filters.push({
17
- name: 'status',
18
- operator: 'noteq',
19
- value: 'TERMINATED'
20
- })
21
- }
22
-
23
- const convertedParams = convertListParams(params, { domain, searchables: ['name'] })
24
- const [items, total] = await getRepository(Pallet).findAndCount({
25
- ...convertedParams,
26
- relations: ['owner', 'holder', 'domain', 'creator', 'updater']
27
- })
28
- return { items, total }
29
- }
30
-
31
- @Query(returns => Pallet)
32
- async pallet(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Pallet> {
33
- const { domain } = context.state
34
-
35
- let records = await getRepository(Pallet).findOne({
36
- where: { domain: { id: domain.id }, name },
37
- relations: ['owner', 'holder', 'domain', 'creator', 'updater']
38
- })
39
- return records
40
- }
41
-
42
- @Query(returns => PalletValidate)
43
- async palletInboundValidate(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<PalletValidate> {
44
- try {
45
- const { domain } = context.state
46
-
47
- let item = await getRepository(Pallet).findOne({
48
- where: { domain: { id: domain.id }, name },
49
- relations: ['owner', 'holder', 'domain', 'creator', 'updater']
50
- })
51
- if (!item || item?.status != 'ACTIVE') return { error: 'Not found' }
52
- if (item?.owner?.id === item?.holder?.id) return { error: 'Pallet already in warehouse!' }
53
- return { item }
54
- } catch (error) {
55
- throw error
56
- }
57
- }
58
-
59
- @Query(returns => PalletValidate)
60
- async palletOutboundValidate(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<PalletValidate> {
61
- try {
62
- const { domain } = context.state
63
-
64
- let item = await getRepository(Pallet).findOne({
65
- where: { domain: { id: domain.id }, name },
66
- relations: ['owner', 'holder', 'domain', 'creator', 'updater']
67
- })
68
- if (!item || item?.status != 'ACTIVE') return { error: 'Not found' }
69
- if (item?.owner?.id != item?.holder?.id) return { error: 'Pallet not in warehouse!' }
70
- return { item }
71
- } catch (error) {
72
- throw error
73
- }
74
- }
75
-
76
- @Query(returns => Pallet, { nullable: true })
77
- async palletByStatus(
78
- @Arg('name') name: string,
79
- @Arg('status') status: string,
80
- @Ctx() context: ResolverContext
81
- ): Promise<Pallet | boolean> {
82
- const { domain } = context.state
83
-
84
- let records = await getRepository(Pallet).findOne({
85
- where: { domain: { id: domain.id }, name, status },
86
- relations: ['owner', 'holder', 'domain', 'creator', 'updater']
87
- })
88
-
89
- return records
90
- }
91
-
92
- @FieldResolver(type => Domain)
93
- async domain(@Root() pallet: Pallet) {
94
- return await getRepository(Domain).findOneBy({ id: pallet.domainId })
95
- }
96
-
97
- @FieldResolver(type => User)
98
- async updater(@Root() pallet: Pallet) {
99
- return await getRepository(User).findOneBy({ id: pallet.updaterId })
100
- }
101
-
102
- @FieldResolver(type => User)
103
- async creator(@Root() pallet: Pallet) {
104
- return await getRepository(User).findOneBy({ id: pallet.creatorId })
105
- }
106
- }
@@ -1,80 +0,0 @@
1
- import { Field, InputType, Int, ObjectType } from 'type-graphql'
2
-
3
- import { ObjectRef } from '@things-factory/shell'
4
-
5
- import { Pallet } from './pallet'
6
-
7
- @InputType()
8
- export class NewPallet {
9
- @Field()
10
- name: string
11
-
12
- @Field(type => Int, { nullable: true })
13
- seq?: number
14
-
15
- @Field(type => ObjectRef, { nullable: true })
16
- owner?: ObjectRef
17
-
18
- @Field(type => ObjectRef, { nullable: true })
19
- holder?: ObjectRef
20
-
21
- @Field({ nullable: true })
22
- status?: string
23
-
24
- @Field({ nullable: true })
25
- type?: string
26
-
27
- @Field({ nullable: true })
28
- printedAt?: Date
29
- }
30
-
31
- @ObjectType()
32
- export class PalletList {
33
- @Field(type => [Pallet], { nullable: true })
34
- items?: Pallet[]
35
-
36
- @Field(type => Int, { nullable: true })
37
- total?: number
38
- }
39
-
40
- @InputType()
41
- export class PalletPatch {
42
- @Field({ nullable: true })
43
- id?: string
44
-
45
- @Field({ nullable: true })
46
- name?: string
47
-
48
- @Field(type => Int, { nullable: true })
49
- seq?: number
50
-
51
- @Field(type => ObjectRef, { nullable: true })
52
- owner?: ObjectRef
53
-
54
- @Field(type => ObjectRef, { nullable: true })
55
- holder?: ObjectRef
56
-
57
- @Field(type => ObjectRef, { nullable: true })
58
- inventory?: ObjectRef
59
-
60
- @Field({ nullable: true })
61
- status?: string
62
-
63
- @Field({ nullable: true })
64
- type?: string
65
-
66
- @Field({ nullable: true })
67
- printedAt?: Date
68
-
69
- @Field({ nullable: true })
70
- cuFlag?: string
71
- }
72
-
73
- @ObjectType()
74
- export class PalletValidate {
75
- @Field(type => Pallet, { nullable: true })
76
- item?: Pallet
77
-
78
- @Field({ nullable: true })
79
- error?: string
80
- }
@@ -1,92 +0,0 @@
1
- import { Field, Int, ObjectType } from 'type-graphql'
2
- import { Column, CreateDateColumn, Entity, Index, JoinColumn, ManyToOne, OneToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn } from 'typeorm'
3
-
4
- import { User } from '@things-factory/auth-base'
5
- import { Bizplace } from '@things-factory/biz-base'
6
- import { Domain } from '@things-factory/shell'
7
-
8
- import { Inventory } from '../inventory/inventory'
9
-
10
- @Entity()
11
- @Index('ix_pallet_0', (pallet: Pallet) => [pallet.domain, pallet.name], { unique: true })
12
- @ObjectType()
13
- export class Pallet {
14
- @PrimaryGeneratedColumn('uuid')
15
- @Field()
16
- id: string
17
-
18
- @ManyToOne(type => Domain)
19
- @Field(type => Domain)
20
- domain: Domain
21
-
22
- @RelationId((pallet: Pallet) => pallet.domain)
23
- domainId: string
24
-
25
- @Column()
26
- @Field()
27
- name: string
28
-
29
- @Column({ default: 0 })
30
- @Field(type => Int)
31
- seq: number
32
-
33
- @ManyToOne(type => Bizplace)
34
- @Field()
35
- owner: Bizplace
36
-
37
- @ManyToOne(type => Bizplace)
38
- @Field()
39
- holder: Bizplace
40
-
41
- @OneToOne(type => Inventory, { nullable: true })
42
- @JoinColumn()
43
- @Field(type => Inventory, { nullable: true })
44
- inventory: Inventory
45
-
46
- @Column({
47
- nullable: true
48
- })
49
- @Field({ nullable: true })
50
- refOrderNo: string
51
-
52
- @Column()
53
- @Field()
54
- status: string
55
-
56
- @Column({
57
- nullable: true,
58
- default: 'NORMAL'
59
- })
60
- @Field({ nullable: true })
61
- type?: string = 'NORMAL'
62
-
63
- @Column({ nullable: true })
64
- @Field({ nullable: true })
65
- printedAt?: Date
66
-
67
- @CreateDateColumn()
68
- @Field({ nullable: true })
69
- createdAt: Date
70
-
71
- @UpdateDateColumn()
72
- @Field({ nullable: true })
73
- updatedAt: Date
74
-
75
- @ManyToOne(type => User, {
76
- nullable: true
77
- })
78
- @Field({ nullable: true })
79
- creator: User
80
-
81
- @RelationId((pallet: Pallet) => pallet.creator)
82
- creatorId: string
83
-
84
- @ManyToOne(type => User, {
85
- nullable: true
86
- })
87
- @Field({ nullable: true })
88
- updater: User
89
-
90
- @RelationId((pallet: Pallet) => pallet.updater)
91
- updaterId: string
92
- }
@@ -1,6 +0,0 @@
1
- import { PalletCount } from './pallet-count'
2
- import { PalletCountMutation } from './pallet-count-mutation'
3
- import { PalletCountQuery } from './pallet-count-query'
4
-
5
- export const entities = [PalletCount]
6
- export const resolvers = [PalletCountQuery, PalletCountMutation]
@@ -1,151 +0,0 @@
1
- import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
- import { In, MoreThan } from 'typeorm'
3
- import { v4 as uuidv4 } from 'uuid'
4
-
5
- import { PalletCount } from './pallet-count'
6
- import { NewPalletCount, PalletCountPatch } from './pallet-count-types'
7
-
8
- @Resolver(PalletCount)
9
- export class PalletCountMutation {
10
- @Directive('@transaction')
11
- @Mutation(returns => PalletCount)
12
- async createPalletCount(
13
- @Arg('palletCount') palletCount: NewPalletCount,
14
- @Ctx() context: ResolverContext
15
- ): Promise<PalletCount> {
16
- const { domain, user, tx } = context.state
17
-
18
- return await tx.getRepository(PalletCount).save({
19
- ...palletCount,
20
- domain: domain,
21
- creator: user,
22
- updater: user
23
- })
24
- }
25
-
26
- @Directive('@transaction')
27
- @Mutation(returns => PalletCount)
28
- async updatePalletCount(
29
- @Arg('name') name: string,
30
- @Arg('patch') patch: PalletCountPatch,
31
- @Ctx() context: ResolverContext
32
- ): Promise<PalletCount> {
33
- const { domain, user, tx } = context.state
34
-
35
- const repository = tx.getRepository(PalletCount)
36
- const palletCount = await repository.findOne({
37
- where: { domain: { id: domain.id }, name }
38
- })
39
-
40
- return await repository.save({
41
- ...palletCount,
42
- ...patch,
43
- updater: user
44
- })
45
- }
46
-
47
- @Directive('@transaction')
48
- @Mutation(returns => [PalletCount])
49
- async updateMultiplePalletCount(
50
- @Arg('patches', type => [PalletCountPatch]) patches: PalletCountPatch[],
51
- @Ctx() context: ResolverContext
52
- ): Promise<PalletCount[]> {
53
- const { domain, user, tx } = context.state
54
-
55
- let results = []
56
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
57
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
58
- const palletCountRepo = tx.getRepository(PalletCount)
59
-
60
- if (_createRecords.length > 0) {
61
- for (let i = 0; i < _createRecords.length; i++) {
62
- const newRecord = _createRecords[i]
63
-
64
- const result = await palletCountRepo.save({
65
- ...newRecord,
66
- domain: domain,
67
- creator: user,
68
- updater: user
69
- })
70
-
71
- results.push({ ...result, cuFlag: '+' })
72
- }
73
- }
74
-
75
- if (_updateRecords.length > 0) {
76
- for (let i = 0; i < _updateRecords.length; i++) {
77
- const newRecord = _updateRecords[i]
78
- const palletCount = await palletCountRepo.findOneBy({ id: newRecord.id })
79
-
80
- const result = await palletCountRepo.save({
81
- ...palletCount,
82
- ...newRecord,
83
- updater: user
84
- })
85
-
86
- results.push({ ...result, cuFlag: 'M' })
87
- }
88
- }
89
-
90
- return results
91
- }
92
-
93
- @Directive('@transaction')
94
- @Mutation(returns => Boolean)
95
- async deletePalletCount(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {
96
- const { domain, tx } = context.state
97
-
98
- await tx.getRepository(PalletCount).delete({ domain: { id: domain.id }, name })
99
- return true
100
- }
101
-
102
- @Directive('@transaction')
103
- @Mutation(returns => Boolean)
104
- async deletePalletCounts(
105
- @Arg('names', type => [String]) names: string[],
106
- @Ctx() context: ResolverContext
107
- ): Promise<Boolean> {
108
- const { domain, tx } = context.state
109
-
110
- await tx.getRepository(PalletCount).delete({
111
- domain: { id: domain.id },
112
- name: In(names)
113
- })
114
- return true
115
- }
116
-
117
- @Directive('@transaction')
118
- @Mutation(returns => PalletCount)
119
- async updatePalletCountSeq(@Arg('printQty') printQty: number, @Ctx() context: ResolverContext): Promise<PalletCount> {
120
- const { domain, user, tx } = context.state
121
-
122
- const repository = tx.getRepository(PalletCount)
123
- const todayDate = new Date()
124
- todayDate.setHours(0, 0, 0, 0)
125
- const palletCount = await repository.findOne({
126
- where: { domain: { id: domain.id }, createdAt: MoreThan(todayDate) }
127
- })
128
-
129
- if (!palletCount) {
130
- let newPallet = {
131
- name: uuidv4(),
132
- seq: 0,
133
- domain: domain,
134
- creator: user,
135
- updater: user
136
- }
137
-
138
- return await tx.getRepository(PalletCount).save({
139
- ...newPallet,
140
- seq: printQty
141
- })
142
- } else {
143
- await tx.getRepository(PalletCount).save({
144
- ...palletCount,
145
- seq: printQty + palletCount.seq
146
- })
147
-
148
- return palletCount
149
- }
150
- }
151
- }