@things-factory/sales-base 4.2.12 → 4.3.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.
Files changed (109) hide show
  1. package/dist-server/constants/attachment-type.js +2 -1
  2. package/dist-server/constants/attachment-type.js.map +1 -1
  3. package/dist-server/constants/index.js +1 -0
  4. package/dist-server/constants/index.js.map +1 -1
  5. package/dist-server/constants/order.js +12 -3
  6. package/dist-server/constants/order.js.map +1 -1
  7. package/dist-server/constants/release-good.js +9 -0
  8. package/dist-server/constants/release-good.js.map +1 -0
  9. package/dist-server/service/draft-release-good/draft-release-good-mutation.js +501 -0
  10. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -0
  11. package/dist-server/service/draft-release-good/draft-release-good-query.js +289 -0
  12. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -0
  13. package/dist-server/service/draft-release-good/draft-release-good-type.js +364 -0
  14. package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -0
  15. package/dist-server/service/draft-release-good/draft-release-good.js +321 -0
  16. package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -0
  17. package/dist-server/service/draft-release-good/index.js +21 -0
  18. package/dist-server/service/draft-release-good/index.js.map +1 -0
  19. package/dist-server/service/index.js +47 -19
  20. package/dist-server/service/index.js.map +1 -1
  21. package/dist-server/service/order-inventory/order-inventory-query.js +38 -1
  22. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  23. package/dist-server/service/order-inventory/order-inventory-types.js +9 -1
  24. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
  25. package/dist-server/service/order-inventory/order-inventory.js +5 -1
  26. package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
  27. package/dist-server/service/order-product/order-product-types.js +13 -13
  28. package/dist-server/service/order-product/order-product-types.js.map +1 -1
  29. package/dist-server/service/order-product/order-product.js +39 -4
  30. package/dist-server/service/order-product/order-product.js.map +1 -1
  31. package/dist-server/service/order-tote/index.js +21 -0
  32. package/dist-server/service/order-tote/index.js.map +1 -0
  33. package/dist-server/service/order-tote/order-tote-mutation.js +56 -0
  34. package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -0
  35. package/dist-server/service/order-tote/order-tote-query.js +123 -0
  36. package/dist-server/service/order-tote/order-tote-query.js.map +1 -0
  37. package/dist-server/service/order-tote/order-tote-types.js +79 -0
  38. package/dist-server/service/order-tote/order-tote-types.js.map +1 -0
  39. package/dist-server/service/order-tote/order-tote.js +91 -0
  40. package/dist-server/service/order-tote/order-tote.js.map +1 -0
  41. package/dist-server/service/order-tote-item/index.js +21 -0
  42. package/dist-server/service/order-tote-item/index.js.map +1 -0
  43. package/dist-server/service/order-tote-item/order-tote-item-mutation.js +56 -0
  44. package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -0
  45. package/dist-server/service/order-tote-item/order-tote-item-query.js +100 -0
  46. package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -0
  47. package/dist-server/service/order-tote-item/order-tote-item-types.js +91 -0
  48. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -0
  49. package/dist-server/service/order-tote-item/order-tote-item.js +104 -0
  50. package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -0
  51. package/dist-server/service/order-tote-seal/index.js +21 -0
  52. package/dist-server/service/order-tote-seal/index.js.map +1 -0
  53. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +56 -0
  54. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -0
  55. package/dist-server/service/order-tote-seal/order-tote-seal-query.js +97 -0
  56. package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -0
  57. package/dist-server/service/order-tote-seal/order-tote-seal-types.js +71 -0
  58. package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -0
  59. package/dist-server/service/order-tote-seal/order-tote-seal.js +71 -0
  60. package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -0
  61. package/dist-server/service/others/other-query.js +37 -2
  62. package/dist-server/service/others/other-query.js.map +1 -1
  63. package/dist-server/service/release-good/release-good-mutation.js +23 -1
  64. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  65. package/dist-server/service/release-good/release-good-query.js +28 -2
  66. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  67. package/dist-server/service/release-good/release-good.js +32 -12
  68. package/dist-server/service/release-good/release-good.js.map +1 -1
  69. package/dist-server/utils/inventory-util.js +258 -99
  70. package/dist-server/utils/inventory-util.js.map +1 -1
  71. package/dist-server/utils/order-no-generator.js +7 -0
  72. package/dist-server/utils/order-no-generator.js.map +1 -1
  73. package/package.json +13 -13
  74. package/server/constants/attachment-type.ts +2 -1
  75. package/server/constants/index.ts +1 -0
  76. package/server/constants/order.ts +12 -2
  77. package/server/constants/release-good.ts +6 -0
  78. package/server/service/draft-release-good/draft-release-good-mutation.ts +671 -0
  79. package/server/service/draft-release-good/draft-release-good-query.ts +314 -0
  80. package/server/service/draft-release-good/draft-release-good-type.ts +261 -0
  81. package/server/service/draft-release-good/draft-release-good.ts +270 -0
  82. package/server/service/draft-release-good/index.ts +9 -0
  83. package/server/service/index.ts +51 -21
  84. package/server/service/order-inventory/order-inventory-query.ts +40 -2
  85. package/server/service/order-inventory/order-inventory-types.ts +6 -0
  86. package/server/service/order-inventory/order-inventory.ts +5 -5
  87. package/server/service/order-product/order-product-types.ts +5 -3
  88. package/server/service/order-product/order-product.ts +30 -3
  89. package/server/service/order-tote/index.ts +9 -0
  90. package/server/service/order-tote/order-tote-mutation.ts +30 -0
  91. package/server/service/order-tote/order-tote-query.ts +114 -0
  92. package/server/service/order-tote/order-tote-types.ts +47 -0
  93. package/server/service/order-tote/order-tote.ts +62 -0
  94. package/server/service/order-tote-item/index.ts +9 -0
  95. package/server/service/order-tote-item/order-tote-item-mutation.ts +30 -0
  96. package/server/service/order-tote-item/order-tote-item-query.ts +88 -0
  97. package/server/service/order-tote-item/order-tote-item-types.ts +56 -0
  98. package/server/service/order-tote-item/order-tote-item.ts +72 -0
  99. package/server/service/order-tote-seal/index.ts +9 -0
  100. package/server/service/order-tote-seal/order-tote-seal-mutation.ts +30 -0
  101. package/server/service/order-tote-seal/order-tote-seal-query.ts +60 -0
  102. package/server/service/order-tote-seal/order-tote-seal-types.ts +41 -0
  103. package/server/service/order-tote-seal/order-tote-seal.ts +46 -0
  104. package/server/service/others/other-query.ts +43 -8
  105. package/server/service/release-good/release-good-mutation.ts +24 -2
  106. package/server/service/release-good/release-good-query.ts +57 -30
  107. package/server/service/release-good/release-good.ts +28 -9
  108. package/server/utils/inventory-util.ts +287 -106
  109. package/server/utils/order-no-generator.ts +42 -48
@@ -0,0 +1,270 @@
1
+ import { Field, ID, Float, ObjectType, registerEnumType } from 'type-graphql'
2
+ import {
3
+ Column,
4
+ CreateDateColumn,
5
+ Entity,
6
+ Index,
7
+ JoinColumn,
8
+ ManyToOne,
9
+ OneToMany,
10
+ OneToOne,
11
+ PrimaryGeneratedColumn,
12
+ RelationId,
13
+ UpdateDateColumn
14
+ } from 'typeorm'
15
+
16
+ import { Attachment } from '@things-factory/attachment-base'
17
+ import { User } from '@things-factory/auth-base'
18
+ import { Bizplace, ContactPoint } from '@things-factory/biz-base'
19
+ import { config } from '@things-factory/env'
20
+ import { Domain } from '@things-factory/shell'
21
+
22
+ import { OrderProduct, ReleaseGood, ShippingOrder, ShippingOrderInfo } from '../'
23
+ import { ReleaseOrderType } from '../../constants'
24
+
25
+ const ORMCONFIG = config.get('ormconfig', {})
26
+ const DATABASE_TYPE = ORMCONFIG.type
27
+
28
+ // export enum DraftReleaseGoodStatus {
29
+ // STATUS_A = 'STATUS_A',
30
+ // STATUS_B = 'STATUS_B'
31
+ // }
32
+
33
+ // registerEnumType(DraftReleaseGoodStatus, {
34
+ // name: 'DraftReleaseGoodStatus',
35
+ // description: 'state enumeration of a draftReleaseGood'
36
+ // })
37
+
38
+ @Entity()
39
+ @Index(
40
+ 'ix_draft_release_good_0',
41
+ (draftReleaseGood: DraftReleaseGood) => [draftReleaseGood.domain, draftReleaseGood.name],
42
+ { unique: true }
43
+ )
44
+ @ObjectType({ description: 'Entity for DraftReleaseGood' })
45
+ export class DraftReleaseGood {
46
+ @PrimaryGeneratedColumn('uuid')
47
+ @Field(type => ID)
48
+ readonly id: string
49
+
50
+ @ManyToOne(type => Domain)
51
+ @Field(type => Domain, { nullable: true })
52
+ domain: Domain
53
+
54
+ @RelationId((draftReleaseGood: DraftReleaseGood) => draftReleaseGood.domain)
55
+ domainId: string
56
+
57
+ @ManyToOne(type => Bizplace)
58
+ @Field(type => Bizplace, { nullable: true })
59
+ bizplace: Bizplace
60
+
61
+ @RelationId((draftReleaseGood: DraftReleaseGood) => draftReleaseGood.bizplace)
62
+ bizplaceId: string
63
+
64
+ @Column({ nullable: true })
65
+ @Field({ nullable: true })
66
+ name: string
67
+
68
+ @OneToOne(type => ReleaseGood)
69
+ @JoinColumn()
70
+ @Field(type => ReleaseGood, { nullable: true })
71
+ releaseGood: ReleaseGood
72
+
73
+ @RelationId((draftReleaseGood: DraftReleaseGood) => draftReleaseGood.releaseGood)
74
+ releaseGoodId: string
75
+
76
+ @OneToOne(type => ShippingOrder)
77
+ @JoinColumn()
78
+ @Field(type => ShippingOrder, { nullable: true })
79
+ shippingOrder: ShippingOrder
80
+
81
+ @RelationId((releaseGood: ReleaseGood) => releaseGood.shippingOrder)
82
+ shippingOrderId: string
83
+
84
+ @Column({ nullable: true })
85
+ @Field({ nullable: true })
86
+ collectionOrderNo: string
87
+
88
+ @Column({ nullable: true })
89
+ @Field({ nullable: true })
90
+ description: string
91
+
92
+ @Column({ nullable: true })
93
+ @Field({ nullable: true })
94
+ truckNo: string
95
+
96
+ @Column({
97
+ type:
98
+ DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
99
+ ? 'enum'
100
+ : DATABASE_TYPE == 'oracle'
101
+ ? 'varchar2'
102
+ : 'smallint',
103
+ enum: ReleaseOrderType,
104
+ default: ReleaseOrderType.B2B
105
+ })
106
+ @Field()
107
+ type: ReleaseOrderType
108
+
109
+ @Column({ default: false })
110
+ @Field()
111
+ exportOption: Boolean
112
+
113
+ @Column({ default: false })
114
+ @Field()
115
+ courierOption: Boolean
116
+
117
+ @Column({ default: false })
118
+ @Field()
119
+ packingOption: Boolean
120
+
121
+ @Column()
122
+ @Field()
123
+ ownTransport: Boolean
124
+
125
+ @Field(type => ShippingOrderInfo, { nullable: true })
126
+ shippingOrderInfo?: ShippingOrderInfo
127
+
128
+ @OneToMany(type => OrderProduct, orderProduct => orderProduct.draftReleaseGood)
129
+ @Field(type => [OrderProduct], { nullable: true })
130
+ orderProducts: OrderProduct[]
131
+
132
+ @Column()
133
+ @Field()
134
+ status: string
135
+
136
+ @Column({ nullable: true })
137
+ @Field({ nullable: true })
138
+ refNo: String
139
+
140
+ @Column({ nullable: true })
141
+ @Field({ nullable: true })
142
+ refNo2: String
143
+
144
+ @Column({ nullable: true })
145
+ @Field({ nullable: true })
146
+ refNo3: String
147
+
148
+ @Column({ nullable: true })
149
+ @Field({ nullable: true })
150
+ releaseDate: string
151
+
152
+ @Column({ nullable: true })
153
+ @Field({ nullable: true })
154
+ remark: string
155
+
156
+ @Column({ nullable: true })
157
+ @Field({ nullable: true })
158
+ marketplaceOrderStatus: string
159
+
160
+ @Column({ nullable: true })
161
+ @Field({ nullable: true })
162
+ billingAddress: string
163
+
164
+ @Column({ nullable: true })
165
+ @Field({ nullable: true })
166
+ pickupAddress: string
167
+
168
+ @Column({ nullable: true })
169
+ @Field({ nullable: true })
170
+ pickupTime: Date
171
+
172
+ @Column({ nullable: true })
173
+ @Field({ nullable: true })
174
+ handoverType: string
175
+
176
+ @Column({ nullable: true })
177
+ @Field({ nullable: true })
178
+ dropoffAddress: string
179
+
180
+ @Column({ nullable: true })
181
+ @Field({ nullable: true })
182
+ deliveryAddress1: string
183
+
184
+ @Column({ nullable: true })
185
+ @Field({ nullable: true })
186
+ deliveryAddress2: string
187
+
188
+ @Column({ nullable: true })
189
+ @Field({ nullable: true })
190
+ deliveryAddress3: string
191
+
192
+ @Column({ nullable: true })
193
+ @Field({ nullable: true })
194
+ deliveryAddress4: string
195
+
196
+ @Column({ nullable: true })
197
+ @Field({ nullable: true })
198
+ deliveryAddress5: string
199
+
200
+ @Column({ nullable: true })
201
+ @Field({ nullable: true })
202
+ attentionTo: string
203
+
204
+ @Column({ nullable: true })
205
+ @Field({ nullable: true })
206
+ attentionCompany: string
207
+
208
+ @Column({ nullable: true })
209
+ @Field({ nullable: true })
210
+ city: string
211
+
212
+ @Column({ nullable: true })
213
+ @Field({ nullable: true })
214
+ state: string
215
+
216
+ @Column({ nullable: true })
217
+ @Field({ nullable: true })
218
+ postalCode: string
219
+
220
+ @Column({ nullable: true })
221
+ @Field({ nullable: true })
222
+ country: string
223
+
224
+ @Column({ nullable: true })
225
+ @Field({ nullable: true })
226
+ phone1: string
227
+
228
+ @Column({ nullable: true })
229
+ @Field({ nullable: true })
230
+ phone2: string
231
+
232
+ @Column({ nullable: true })
233
+ @Field({ nullable: true })
234
+ email: string
235
+
236
+ @ManyToOne(type => ContactPoint)
237
+ @Field(type => ContactPoint, { nullable: true })
238
+ deliverTo: ContactPoint
239
+
240
+ @RelationId((draftReleaseGood: DraftReleaseGood) => draftReleaseGood.deliverTo)
241
+ deliverToId: string
242
+
243
+ @Field(type => [Attachment], { nullable: true })
244
+ attachment?: Attachment[]
245
+
246
+ @CreateDateColumn()
247
+ @Field()
248
+ createdAt: Date
249
+
250
+ @UpdateDateColumn()
251
+ @Field()
252
+ updatedAt: Date
253
+
254
+ @ManyToOne(type => User)
255
+ @Field(type => User, { nullable: true })
256
+ creator: User
257
+
258
+ @RelationId((draftReleaseGood: DraftReleaseGood) => draftReleaseGood.creator)
259
+ creatorId: string
260
+
261
+ @ManyToOne(type => User)
262
+ @Field(type => User, { nullable: true })
263
+ updater: User
264
+
265
+ @RelationId((draftReleaseGood: DraftReleaseGood) => draftReleaseGood.updater)
266
+ updaterId: string
267
+
268
+ @Field()
269
+ computedStatus: string
270
+ }
@@ -0,0 +1,9 @@
1
+ import { DraftReleaseGood } from './draft-release-good'
2
+ import { DraftReleaseGoodQuery } from './draft-release-good-query'
3
+ import { DraftReleaseGoodMutation } from './draft-release-good-mutation'
4
+
5
+ export const entities = [DraftReleaseGood]
6
+ export const resolvers = [DraftReleaseGoodQuery, DraftReleaseGoodMutation]
7
+
8
+ export * from './draft-release-good-mutation'
9
+ export * from './draft-release-good-query'
@@ -10,6 +10,7 @@ import { entities as InvoiceEntity, resolvers as InvoiceResolvers } from './invo
10
10
  import { entities as InvoiceProductEntity, resolvers as InvoiceProductResolvers } from './invoice-product'
11
11
  import { entities as JobSheetEntity, resolvers as JobSheetResolvers } from './job-sheet'
12
12
  /* IMPORT ENTITIES AND RESOLVERS */
13
+ import { entities as DraftReleaseGoodEntities, resolvers as DraftReleaseGoodResolvers } from './draft-release-good'
13
14
  import { entities as ManifestEntities, resolvers as ManifestResolvers } from './manifest'
14
15
  import { entities as OrderInventoryEntity, resolvers as OrderInventoryResolvers } from './order-inventory'
15
16
  import { entities as OrderProductEntity, resolvers as OrderProductResolvers } from './order-product'
@@ -17,8 +18,7 @@ import { entities as OrderVasEntity, resolvers as OrderVasResolvers } from './or
17
18
  import { resolvers as OthersResolvers } from './others'
18
19
  import { entities as PurchaseOrderEntity, resolvers as PurchaseOrderResolvers } from './purchase-order'
19
20
  import {
20
- entities as PurchaseOrderOtherChargeEntity,
21
- resolvers as PurchaseOrderOtherChargeResolvers
21
+ entities as PurchaseOrderOtherChargeEntity, resolvers as PurchaseOrderOtherChargeResolvers
22
22
  } from './purchase-order-other-charge'
23
23
  import { entities as ReleaseGoodEntity, resolvers as ReleaseGoodResolvers } from './release-good'
24
24
  import {
@@ -38,22 +38,26 @@ import { entities as ShippingOrderEntity, resolvers as ShippingOrderResolvers }
38
38
  import { entities as TransferOrderEntity, resolvers as TransferOrderResolvers } from './transfer-order'
39
39
  import { entities as VasEntity, resolvers as VasResolvers } from './vas'
40
40
  import { entities as VasOrderEntity, resolvers as VasOrderResolvers } from './vas-order'
41
+ import { entities as OrderToteEntity, resolvers as OrderToteResolvers } from './order-tote'
42
+ import { entities as OrderToteItemEntity, resolvers as OrderToteItemResolvers } from './order-tote-item'
43
+ import { entities as OrderToteSealEntity, resolvers as OrderToteSealResolvers } from './order-tote-seal'
44
+ import { OrderTote } from './order-tote/order-tote'
45
+ import { OrderToteSeal } from './order-tote-seal/order-tote-seal'
41
46
 
42
47
  /* EXPORT ENTITY TYPES */
43
- export * from './manifest/manifest'
44
- export * from './reverse-kitting-order-inventory/reverse-kitting-order-inventory'
45
- export * from './reverse-kitting-order/reverse-kitting-order'
46
48
  export * from './arrival-notice/arrival-notice'
47
49
  export * from './claim-detail/claim-detail'
48
50
  export * from './claim-order/claim-order'
49
51
  export * from './claim/claim'
50
52
  export * from './collection-order/collection-order'
51
53
  export * from './delivery-order/delivery-order'
54
+ export * from './draft-release-good/draft-release-good'
52
55
  export * from './goods-receival-note/goods-receival-note'
53
56
  export * from './inventory-check/inventory-check'
54
- export * from './invoice/invoice'
55
57
  export * from './invoice-product/invoice-product'
58
+ export * from './invoice/invoice'
56
59
  export * from './job-sheet/job-sheet'
60
+ export * from './manifest/manifest'
57
61
  export * from './order-inventory/order-inventory'
58
62
  export * from './order-product/order-product'
59
63
  export * from './order-vas/order-vas'
@@ -62,10 +66,15 @@ export * from './purchase-order/purchase-order'
62
66
  export * from './release-good/release-good'
63
67
  export * from './retail-replenishment-order/retail-replenishment-order'
64
68
  export * from './return-order/return-order'
69
+ export * from './reverse-kitting-order-inventory/reverse-kitting-order-inventory'
70
+ export * from './reverse-kitting-order/reverse-kitting-order'
65
71
  export * from './shipping-order/shipping-order'
66
72
  export * from './transfer-order/transfer-order'
67
73
  export * from './vas-order/vas-order'
68
74
  export * from './vas/vas'
75
+ export * from './order-tote/order-tote'
76
+ export * from './order-tote-item/order-tote-item'
77
+ export * from './order-tote-seal/order-tote-seal'
69
78
 
70
79
  /* EXPORT TYPES */
71
80
  export * from './arrival-notice/arrival-notice-types'
@@ -74,10 +83,11 @@ export * from './claim-order/claim-order-types'
74
83
  export * from './claim/claim-types'
75
84
  export * from './collection-order/collection-order-types'
76
85
  export * from './delivery-order/delivery-order-types'
86
+ export * from './draft-release-good/draft-release-good-type'
77
87
  export * from './goods-receival-note/goods-receival-note-types'
78
88
  export * from './inventory-check/inventory-check-types'
79
- export * from './invoice/invoice-types'
80
89
  export * from './invoice-product/invoice-product-types'
90
+ export * from './invoice/invoice-types'
81
91
  export * from './job-sheet/job-sheet-types'
82
92
  export * from './order-inventory/order-inventory-types'
83
93
  export * from './order-product/order-product-types'
@@ -92,6 +102,10 @@ export * from './shipping-order/shipping-order-types'
92
102
  export * from './transfer-order/transfer-order-types'
93
103
  export * from './vas-order/vas-order-types'
94
104
  export * from './vas/vas-types'
105
+ export * from './order-tote/order-tote-types'
106
+ export * from './order-tote-item/order-tote-item-types'
107
+ export * from './order-tote-seal/order-tote-seal-types'
108
+
95
109
 
96
110
  /* EXPORT MUTATIONS */
97
111
  export * from './arrival-notice/arrival-notice-mutation'
@@ -100,10 +114,11 @@ export * from './claim-order/claim-order-mutation'
100
114
  export * from './claim/claim-mutation'
101
115
  export * from './collection-order/collection-order-mutation'
102
116
  export * from './delivery-order/delivery-order-mutation'
117
+ export * from './draft-release-good/draft-release-good-mutation'
103
118
  export * from './goods-receival-note/goods-receival-note-mutation'
104
119
  export * from './inventory-check/inventory-check-mutation'
105
- export * from './invoice/invoice-mutation'
106
120
  export * from './invoice-product/invoice-product-mutation'
121
+ export * from './invoice/invoice-mutation'
107
122
  export * from './job-sheet/job-sheet-mutation'
108
123
  export * from './order-inventory/order-inventory-mutation'
109
124
  export * from './order-product/order-product-mutation'
@@ -117,6 +132,9 @@ export * from './shipping-order/shipping-order-mutation'
117
132
  export * from './transfer-order/transfer-order-mutation'
118
133
  export * from './vas-order/vas-order-mutation'
119
134
  export * from './vas/vas-mutation'
135
+ export * from './order-tote/order-tote-mutation'
136
+ export * from './order-tote-item/order-tote-item-mutation'
137
+ export * from './order-tote-seal/order-tote-seal-mutation'
120
138
 
121
139
  /* EXPORT QUERIES */
122
140
  export * from './arrival-notice/arrival-notice-query'
@@ -125,10 +143,11 @@ export * from './claim-order/claim-order-query'
125
143
  export * from './claim/claim-query'
126
144
  export * from './collection-order/collection-order-query'
127
145
  export * from './delivery-order/delivery-order-query'
146
+ export * from './draft-release-good/draft-release-good-query'
128
147
  export * from './goods-receival-note/goods-receival-note-query'
129
148
  export * from './inventory-check/inventory-check-query'
130
- export * from './invoice/invoice-query'
131
149
  export * from './invoice-product/invoice-product-query'
150
+ export * from './invoice/invoice-query'
132
151
  export * from './job-sheet/job-sheet-query'
133
152
  export * from './order-inventory/order-inventory-query'
134
153
  export * from './order-product/order-product-query'
@@ -143,23 +162,25 @@ export * from './shipping-order/shipping-order-query'
143
162
  export * from './transfer-order/transfer-order-query'
144
163
  export * from './vas-order/vas-order-query'
145
164
  export * from './vas/vas-query'
165
+ export * from './order-tote/order-tote-query'
166
+ export * from './order-tote-item/order-tote-item-query'
167
+ export * from './order-tote-seal/order-tote-seal-query'
146
168
 
147
169
  export const entities = [
148
170
  /* ENTITIES */
149
- ...ManifestEntities,
150
- ...ReverseKittingOrderInventoryEntities,
151
- ...ReverseKittingOrderEntities,
152
171
  ...ArrivalNoticeEntity,
153
- ...ClaimEntity,
154
172
  ...ClaimDetailEntity,
173
+ ...ClaimEntity,
155
174
  ...ClaimOrderEntity,
156
175
  ...CollectionOrderEntity,
157
176
  ...DeliveryOrderEntity,
177
+ ...DraftReleaseGoodEntities,
158
178
  ...GoodsReceivalNoteEntity,
159
179
  ...InventoryCheckEntity,
160
180
  ...InvoiceEntity,
161
181
  ...InvoiceProductEntity,
162
182
  ...JobSheetEntity,
183
+ ...ManifestEntities,
163
184
  ...OrderInventoryEntity,
164
185
  ...OrderProductEntity,
165
186
  ...OrderVasEntity,
@@ -168,41 +189,50 @@ export const entities = [
168
189
  ...ReleaseGoodEntity,
169
190
  ...RetailReplenishmentOrderEntity,
170
191
  ...ReturnOrderEntity,
192
+ ...ReverseKittingOrderEntities,
193
+ ...ReverseKittingOrderInventoryEntities,
171
194
  ...ShippingOrderEntity,
172
195
  ...TransferOrderEntity,
173
196
  ...VasEntity,
174
- ...VasOrderEntity
197
+ ...VasOrderEntity,
198
+ ...OrderToteEntity,
199
+ ...OrderToteItemEntity,
200
+ ...OrderToteSealEntity
175
201
  ]
176
202
 
177
203
  export const schema = {
178
204
  resolverClasses: [
179
205
  /* RESOLVER CLASSES */
180
- ...ManifestResolvers,
181
- ...ReverseKittingOrderInventoryResolvers,
182
- ...ReverseKittingOrderResolvers,
183
206
  ...ArrivalNoticeResolvers,
184
- ...ClaimResolvers,
185
207
  ...ClaimDetailResolvers,
186
208
  ...ClaimOrderResolvers,
209
+ ...ClaimResolvers,
187
210
  ...CollectionOrderResolvers,
188
211
  ...DeliveryOrderResolvers,
212
+ ...DraftReleaseGoodResolvers,
189
213
  ...GoodsReceivalNoteResolvers,
190
214
  ...InventoryCheckResolvers,
191
- ...InvoiceResolvers,
192
215
  ...InvoiceProductResolvers,
216
+ ...InvoiceResolvers,
193
217
  ...JobSheetResolvers,
218
+ ...ManifestResolvers,
194
219
  ...OrderInventoryResolvers,
195
220
  ...OrderProductResolvers,
196
221
  ...OrderVasResolvers,
197
222
  ...OthersResolvers,
198
- ...PurchaseOrderResolvers,
199
223
  ...PurchaseOrderOtherChargeResolvers,
224
+ ...PurchaseOrderResolvers,
200
225
  ...ReleaseGoodResolvers,
201
226
  ...RetailReplenishmentOrderResolvers,
202
227
  ...ReturnOrderResolvers,
228
+ ...ReverseKittingOrderInventoryResolvers,
229
+ ...ReverseKittingOrderResolvers,
203
230
  ...ShippingOrderResolvers,
204
231
  ...TransferOrderResolvers,
205
232
  ...VasResolvers,
206
- ...VasOrderResolvers
233
+ ...VasOrderResolvers,
234
+ ...OrderToteResolvers,
235
+ ...OrderToteItemResolvers,
236
+ ...OrderToteSealResolvers
207
237
  ]
208
238
  }
@@ -1,17 +1,17 @@
1
1
  import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
- import { Brackets, getRepository, Like, SelectQueryBuilder, In, Not, IsNull } from 'typeorm'
2
+ import { Brackets, EntityManager, getRepository, Like, SelectQueryBuilder } from 'typeorm'
3
3
 
4
4
  import { User } from '@things-factory/auth-base'
5
5
  import { getPermittedBizplaceIds } from '@things-factory/biz-base'
6
6
  import { Product } from '@things-factory/product-base'
7
7
  import { buildQuery, convertListParams, Domain, Filter, ListParam, Pagination, Sorting } from '@things-factory/shell'
8
+ import { Inventory, InventoryPatch, Location } from '@things-factory/warehouse-base'
8
9
 
9
10
  import { ORDER_INVENTORY_STATUS, ORDER_STATUS } from '../../constants'
10
11
  import { ArrivalNotice } from '../arrival-notice/arrival-notice'
11
12
  import { OrderInventoryList } from '../order-inventory/order-inventory-types'
12
13
  import { ReleaseGood } from '../release-good/release-good'
13
14
  import { OrderInventory } from './order-inventory'
14
- import { Location } from '@things-factory/warehouse-base'
15
15
 
16
16
  interface filterInterface {
17
17
  name: string
@@ -172,6 +172,44 @@ export class OrderInventoryQuery {
172
172
  })
173
173
  }
174
174
 
175
+ @Query(returns => Boolean)
176
+ async validateOrderInventory(
177
+ @Arg('patches', type => [InventoryPatch]) patches: InventoryPatch[],
178
+ @Ctx() context: any
179
+ ) {
180
+ const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
181
+
182
+ let error = []
183
+
184
+ for (let i = 0; i < patches.length; i++) {
185
+ let foundExistingPallet: Inventory = await getRepository(Inventory).findOne({
186
+ where: { domain, palletId: patches[i]?.palletId }
187
+ })
188
+
189
+ if (!foundExistingPallet) {
190
+ foundExistingPallet = await getRepository(Inventory).findOne({
191
+ where: { id: patches[i]?.id }
192
+ })
193
+ }
194
+
195
+ if (patches[i]?.batchId != null) {
196
+ const worksheet: OrderInventory[] = await getRepository(OrderInventory).find({
197
+ where: { inventory: foundExistingPallet?.id, status: 'PICKING' }
198
+ })
199
+
200
+ if (worksheet.length > 0) {
201
+ error = [...worksheet]
202
+ }
203
+ }
204
+ }
205
+
206
+ if (error.length == 0) {
207
+ return true
208
+ } else {
209
+ return false
210
+ }
211
+ }
212
+
175
213
  @Query(returns => OrderInventoryList)
176
214
  async inventoriesByOrder(@Ctx() context: any, @Args() params: ListParam): Promise<OrderInventoryList> {
177
215
  const { domain, user }: { domain: Domain; user: User } = context.state
@@ -158,6 +158,9 @@ export class OrderInventoryPatch {
158
158
  @Field(type => ObjectRef, { nullable: true })
159
159
  product: ObjectRef
160
160
 
161
+ @Field(type => ObjectRef, { nullable: true })
162
+ orderProduct: ObjectRef
163
+
161
164
  @Field({ nullable: true })
162
165
  batchId: string
163
166
 
@@ -197,6 +200,9 @@ export class OrderInventoryPatch {
197
200
  @Field({ nullable: true })
198
201
  productId: string
199
202
 
203
+ @Field({ nullable: true })
204
+ orderProductId: string
205
+
200
206
  @Field({ nullable: true })
201
207
  uom: string
202
208
 
@@ -37,11 +37,11 @@ import { TransferOrder } from '../transfer-order/transfer-order'
37
37
  ],
38
38
  { unique: true }
39
39
  )
40
- @Index(
41
- 'ix_order-inventory_2',
42
- (orderInventory: OrderInventory) => [orderInventory.bizplace, orderInventory.deliveryOrder, orderInventory.inventory],
43
- { unique: true }
44
- )
40
+ @Index('ix_order-inventory_2', (orderInventory: OrderInventory) => [
41
+ orderInventory.bizplace,
42
+ orderInventory.deliveryOrder,
43
+ orderInventory.inventory
44
+ ])
45
45
  @Index(
46
46
  'ix_order-inventory_3',
47
47
  (orderInventory: OrderInventory) => [
@@ -1,5 +1,7 @@
1
- import { ObjectRef, ScalarDate } from '@things-factory/shell'
2
1
  import { Field, Float, InputType, Int, ObjectType } from 'type-graphql'
2
+
3
+ import { ObjectRef, ScalarDate } from '@things-factory/shell'
4
+
3
5
  import { OrderProduct } from './order-product'
4
6
 
5
7
  @ObjectType()
@@ -82,8 +84,8 @@ export class OrderProductPatch {
82
84
  @Field(type => ObjectRef, { nullable: true })
83
85
  toInventory: ObjectRef
84
86
 
85
- @Field(type => ObjectRef, { nullable: true })
86
- product: ObjectRef
87
+ @Field(type => InboundProduct, { nullable: true })
88
+ product: InboundProduct
87
89
 
88
90
  @Field({ nullable: true })
89
91
  batchId: string
@@ -1,4 +1,4 @@
1
- import { Field, ID, ObjectType } from 'type-graphql'
1
+ import { Field, ID, ObjectType, Float } from 'type-graphql'
2
2
  import {
3
3
  Column,
4
4
  CreateDateColumn,
@@ -12,7 +12,7 @@ import {
12
12
 
13
13
  import { User } from '@things-factory/auth-base'
14
14
  import { Bizplace } from '@things-factory/biz-base'
15
- import { Product } from '@things-factory/product-base'
15
+ import { Product, ProductBundle } from '@things-factory/product-base'
16
16
  import { Domain, ScalarDate } from '@things-factory/shell'
17
17
  import { Inventory } from '@things-factory/warehouse-base'
18
18
 
@@ -21,6 +21,7 @@ import { CollectionOrder } from '../collection-order/collection-order'
21
21
  import { DeliveryOrder } from '../delivery-order/delivery-order'
22
22
  import { PurchaseOrder } from '../purchase-order/purchase-order'
23
23
  import { ReleaseGood } from '../release-good/release-good'
24
+ import { DraftReleaseGood } from '../draft-release-good/draft-release-good'
24
25
  import { RetailReplenishmentOrder } from '../retail-replenishment-order/retail-replenishment-order'
25
26
 
26
27
  @Entity()
@@ -102,6 +103,13 @@ export class OrderProduct {
102
103
  @RelationId((orderProduct: OrderProduct) => orderProduct.releaseGood)
103
104
  releaseGoodId: string
104
105
 
106
+ @ManyToOne(type => DraftReleaseGood)
107
+ @Field(type => DraftReleaseGood, { nullable: true })
108
+ draftReleaseGood: DraftReleaseGood
109
+
110
+ @RelationId((orderProduct: OrderProduct) => orderProduct.draftReleaseGood)
111
+ draftReleaseGoodId: string
112
+
105
113
  @ManyToOne(type => CollectionOrder)
106
114
  @Field(type => CollectionOrder, { nullable: true })
107
115
  collectionOrder: CollectionOrder
@@ -151,13 +159,20 @@ export class OrderProduct {
151
159
  @RelationId((orderProduct: OrderProduct) => orderProduct.toInventory)
152
160
  toInventoryId: string
153
161
 
154
- @ManyToOne(type => Product, { nullable: false })
162
+ @ManyToOne(type => Product, { nullable: true })
155
163
  @Field(type => Product)
156
164
  product: Product
157
165
 
158
166
  @RelationId((orderProduct: OrderProduct) => orderProduct.product)
159
167
  productId: string
160
168
 
169
+ @ManyToOne(type => ProductBundle, { nullable: true })
170
+ @Field(type => ProductBundle)
171
+ productBundle: ProductBundle
172
+
173
+ @RelationId((orderProduct: OrderProduct) => orderProduct.productBundle)
174
+ productBundleId: string
175
+
161
176
  @Column()
162
177
  @Field()
163
178
  batchId: string
@@ -311,4 +326,16 @@ export class OrderProduct {
311
326
 
312
327
  @RelationId((orderProduct: OrderProduct) => orderProduct.updater)
313
328
  updaterId: string
329
+
330
+ @Field(type => Float, { nullable: true })
331
+ remainQty: number
332
+
333
+ @Field(type => Float, { nullable: true })
334
+ remainUomValue: number
335
+
336
+ @Field({ nullable: true })
337
+ remainUomValueWithUom: string
338
+
339
+ @Field({ nullable: true })
340
+ groupType: string
314
341
  }