@things-factory/sales-base 4.3.638 → 4.3.642

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 (73) hide show
  1. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +33 -2
  2. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  3. package/dist-server/service/arrival-notice/arrival-notice-query.js +10 -3
  4. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
  5. package/dist-server/service/arrival-notice/arrival-notice-types.js +2 -2
  6. package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
  7. package/dist-server/service/delivery-order/delivery-order-mutation.js +3 -1
  8. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
  9. package/dist-server/service/delivery-order/delivery-order-query.js +11 -0
  10. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
  11. package/dist-server/service/delivery-order/delivery-order.js +5 -0
  12. package/dist-server/service/delivery-order/delivery-order.js.map +1 -1
  13. package/dist-server/service/inventory-check-item/inventory-check-item-types.js +48 -12
  14. package/dist-server/service/inventory-check-item/inventory-check-item-types.js.map +1 -1
  15. package/dist-server/service/inventory-check-item/inventory-check-item.js +56 -4
  16. package/dist-server/service/inventory-check-item/inventory-check-item.js.map +1 -1
  17. package/dist-server/service/order-inventory/order-inventory-query.js +5 -1
  18. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  19. package/dist-server/service/order-inventory/order-inventory-types.js +12 -12
  20. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
  21. package/dist-server/service/order-inventory/order-inventory.js +189 -13
  22. package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
  23. package/dist-server/service/order-package-item/order-package-item-types.js +14 -2
  24. package/dist-server/service/order-package-item/order-package-item-types.js.map +1 -1
  25. package/dist-server/service/order-package-item/order-package-item.js +28 -2
  26. package/dist-server/service/order-package-item/order-package-item.js.map +1 -1
  27. package/dist-server/service/order-product/order-product-types.js +18 -18
  28. package/dist-server/service/order-product/order-product-types.js.map +1 -1
  29. package/dist-server/service/order-product/order-product.js +104 -13
  30. package/dist-server/service/order-product/order-product.js.map +1 -1
  31. package/dist-server/service/order-tote-item/order-tote-item-types.js +2 -2
  32. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -1
  33. package/dist-server/service/order-tote-item/order-tote-item.js +15 -1
  34. package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -1
  35. package/dist-server/service/others/other-query.js +4 -4
  36. package/dist-server/service/others/other-query.js.map +1 -1
  37. package/dist-server/service/others/other-types.js +8 -4
  38. package/dist-server/service/others/other-types.js.map +1 -1
  39. package/dist-server/service/release-good/release-good-mutation.js +108 -16
  40. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  41. package/dist-server/service/release-good/release-good-query.js +33 -18
  42. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  43. package/dist-server/service/release-good/release-good-types.js +1 -1
  44. package/dist-server/service/release-good/release-good-types.js.map +1 -1
  45. package/dist-server/service/release-good/release-good.js +15 -0
  46. package/dist-server/service/release-good/release-good.js.map +1 -1
  47. package/dist-server/utils/inventory-util.js +18 -14
  48. package/dist-server/utils/inventory-util.js.map +1 -1
  49. package/package.json +8 -7
  50. package/server/service/arrival-notice/arrival-notice-mutation.ts +39 -2
  51. package/server/service/arrival-notice/arrival-notice-query.ts +40 -68
  52. package/server/service/arrival-notice/arrival-notice-types.ts +4 -4
  53. package/server/service/delivery-order/delivery-order-mutation.ts +25 -67
  54. package/server/service/delivery-order/delivery-order-query.ts +24 -29
  55. package/server/service/delivery-order/delivery-order.ts +5 -1
  56. package/server/service/inventory-check-item/inventory-check-item-types.ts +37 -10
  57. package/server/service/inventory-check-item/inventory-check-item.ts +52 -4
  58. package/server/service/order-inventory/order-inventory-query.ts +5 -0
  59. package/server/service/order-inventory/order-inventory-types.ts +12 -12
  60. package/server/service/order-inventory/order-inventory.ts +171 -13
  61. package/server/service/order-package-item/order-package-item-types.ts +12 -3
  62. package/server/service/order-package-item/order-package-item.ts +26 -2
  63. package/server/service/order-product/order-product-types.ts +18 -18
  64. package/server/service/order-product/order-product.ts +96 -12
  65. package/server/service/order-tote-item/order-tote-item-types.ts +3 -3
  66. package/server/service/order-tote-item/order-tote-item.ts +14 -1
  67. package/server/service/others/other-query.ts +8 -8
  68. package/server/service/others/other-types.ts +7 -4
  69. package/server/service/release-good/release-good-mutation.ts +148 -22
  70. package/server/service/release-good/release-good-query.ts +112 -129
  71. package/server/service/release-good/release-good-types.ts +1 -1
  72. package/server/service/release-good/release-good.ts +12 -0
  73. package/server/utils/inventory-util.ts +50 -60
@@ -1,36 +1,11 @@
1
- import {
2
- Arg,
3
- Args,
4
- Ctx,
5
- FieldResolver,
6
- Query,
7
- Resolver,
8
- Root
9
- } from 'type-graphql'
10
- import {
11
- EntityManager,
12
- getRepository,
13
- In,
14
- Not,
15
- Repository
16
- } from 'typeorm'
1
+ import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
+ import { EntityManager, getRepository, In, Not, Repository } from 'typeorm'
17
3
 
18
4
  import { Attachment } from '@things-factory/attachment-base'
19
5
  import { User } from '@things-factory/auth-base'
20
6
  import { getPermittedBizplaceIds } from '@things-factory/biz-base'
21
- import {
22
- Product,
23
- ProductDetail
24
- } from '@things-factory/product-base'
25
- import {
26
- buildQuery,
27
- convertListParams,
28
- Domain,
29
- Filter,
30
- ListParam,
31
- Pagination,
32
- Sorting
33
- } from '@things-factory/shell'
7
+ import { Product, ProductDetail } from '@things-factory/product-base'
8
+ import { buildQuery, convertListParams, Domain, Filter, ListParam, Pagination, Sorting } from '@things-factory/shell'
34
9
  import { Inventory } from '@things-factory/warehouse-base'
35
10
 
36
11
  import { ORDER_STATUS } from '../../constants'
@@ -130,6 +105,7 @@ export class DeliveryOrderQuery {
130
105
  qb.leftJoinAndSelect('do.releaseGood', 'releaseGood')
131
106
  qb.leftJoinAndSelect('do.transportDriver', 'td')
132
107
  qb.leftJoinAndSelect('do.transportVehicle', 'th')
108
+ qb.leftJoinAndSelect('releaseGood.lastMileDelivery', 'lmd')
133
109
  qb.leftJoin(
134
110
  subQuery => {
135
111
  return subQuery
@@ -177,6 +153,25 @@ export class DeliveryOrderQuery {
177
153
  qb.orderBy(sort)
178
154
 
179
155
  let [items, total] = await qb.getManyAndCount()
156
+
157
+ items = items.map(itm => {
158
+ let refNo2 = itm.refNo2 // default
159
+ if (
160
+ itm.releaseGood.lastMileDelivery &&
161
+ itm.releaseGood.lastMileDelivery.isTms === true &&
162
+ itm.releaseGood.lastMileDelivery.platform === 'VERSA_FLEET'
163
+ ) {
164
+ refNo2 = itm.truckNo ? itm.truckNo : itm.releaseGood?.vehicleNo
165
+ }
166
+ return {
167
+ ...itm,
168
+ releaseGood: {
169
+ ...itm.releaseGood,
170
+ refNo2
171
+ }
172
+ }
173
+ })
174
+
180
175
  if (orderProductsApiFilter?.value) {
181
176
  items = await Promise.all(
182
177
  items.map(async itm => {
@@ -224,7 +224,7 @@ export class DeliveryOrder {
224
224
  @Column({ nullable: true })
225
225
  @Field({ nullable: true })
226
226
  billingAddress: String
227
-
227
+
228
228
  @Column({ nullable: true })
229
229
  @Field({ nullable: true })
230
230
  billingAddress2: String
@@ -257,6 +257,10 @@ export class DeliveryOrder {
257
257
  @Field({ nullable: true })
258
258
  billingCity: String
259
259
 
260
+ @Column({ nullable: true })
261
+ @Field({ nullable: true })
262
+ taskId: string
263
+
260
264
  @CreateDateColumn()
261
265
  @Field()
262
266
  createdAt: Date
@@ -19,7 +19,22 @@ export class NewInventoryCheckItem {
19
19
  name: string
20
20
 
21
21
  @Field({ nullable: true })
22
- status: string
22
+ countNo?: number
23
+
24
+ @Field(type => Float, { nullable: true })
25
+ originQty?: number
26
+
27
+ @Field(type => Float, { nullable: true })
28
+ inspectedQty?: number
29
+
30
+ @Field(type => Float, { nullable: true })
31
+ originUomValue?: number
32
+
33
+ @Field(type => Float, { nullable: true })
34
+ inspectedUomValue?: number
35
+
36
+ @Field({ nullable: true })
37
+ status?: string
23
38
 
24
39
  @Field(type => InventoryPatch, { nullable: true })
25
40
  inventory: InventoryPatch
@@ -42,6 +57,27 @@ export class InventoryCheckItemPatch {
42
57
  @Field({ nullable: true })
43
58
  name: string
44
59
 
60
+ @Field({ nullable: true })
61
+ countNo?: number
62
+
63
+ @Field(type => Float, { nullable: true })
64
+ originQty?: number
65
+
66
+ @Field(type => Float, { nullable: true })
67
+ inspectedQty?: number
68
+
69
+ @Field(type => Float, { nullable: true })
70
+ originUomValue?: number
71
+
72
+ @Field(type => Float, { nullable: true })
73
+ inspectedUomValue?: number
74
+
75
+ @Field({ nullable: true })
76
+ status: string
77
+
78
+ @Field({ nullable: true })
79
+ cuFlag: string
80
+
45
81
  @Field(type => ObjectRef, { nullable: true })
46
82
  inventory: ObjectRef
47
83
 
@@ -51,12 +87,6 @@ export class InventoryCheckItemPatch {
51
87
  @Field({ nullable: true })
52
88
  batchIdRef: string
53
89
 
54
- @Field(type => Int, { nullable: true })
55
- inspectedQty: number
56
-
57
- @Field(type => Float, { nullable: true })
58
- inspectedUomValue: number
59
-
60
90
  @Field(type => ObjectRef, { nullable: true })
61
91
  inspectedLocation: ObjectRef
62
92
 
@@ -71,7 +101,4 @@ export class InventoryCheckItemPatch {
71
101
 
72
102
  @Field({ nullable: true })
73
103
  productDetailId: string
74
-
75
- @Field({ nullable: true })
76
- status: string
77
104
  }
@@ -64,19 +64,67 @@ export class InventoryCheckItem {
64
64
  @Field({ nullable: true })
65
65
  countNo: number
66
66
 
67
- @Column({ nullable: true })
67
+ @Column({
68
+ type: 'decimal',
69
+ scale: 3,
70
+ nullable: true,
71
+ transformer: {
72
+ to: (value: string | null) => value,
73
+ from: (value: string | null) => {
74
+ if (value === null || value === undefined) return null
75
+ const parsed = parseFloat(value)
76
+ return isNaN(parsed) ? null : parsed
77
+ }
78
+ }
79
+ })
68
80
  @Field({ nullable: true })
69
81
  originQty: number
70
82
 
71
- @Column({ nullable: true })
83
+ @Column({
84
+ type: 'decimal',
85
+ scale: 3,
86
+ nullable: true,
87
+ transformer: {
88
+ to: (value: string | null) => value,
89
+ from: (value: string | null) => {
90
+ if (value === null || value === undefined) return null
91
+ const parsed = parseFloat(value)
92
+ return isNaN(parsed) ? null : parsed
93
+ }
94
+ }
95
+ })
72
96
  @Field({ nullable: true })
73
97
  inspectedQty: number
74
98
 
75
- @Column({ nullable: true, type: 'float' })
99
+ @Column({
100
+ type: 'decimal',
101
+ scale: 3,
102
+ nullable: true,
103
+ transformer: {
104
+ to: (value: string | null) => value,
105
+ from: (value: string | null) => {
106
+ if (value === null || value === undefined) return null
107
+ const parsed = parseFloat(value)
108
+ return isNaN(parsed) ? null : parsed
109
+ }
110
+ }
111
+ })
76
112
  @Field({ nullable: true })
77
113
  originUomValue: number
78
114
 
79
- @Column({ nullable: true, type: 'float' })
115
+ @Column({
116
+ type: 'decimal',
117
+ scale: 3,
118
+ nullable: true,
119
+ transformer: {
120
+ to: (value: string | null) => value,
121
+ from: (value: string | null) => {
122
+ if (value === null || value === undefined) return null
123
+ const parsed = parseFloat(value)
124
+ return isNaN(parsed) ? null : parsed
125
+ }
126
+ }
127
+ })
80
128
  @Field({ nullable: true })
81
129
  inspectedUomValue: number
82
130
 
@@ -294,8 +294,12 @@ export class OrderInventoryQuery {
294
294
  value: releaseGood.id,
295
295
  relation: true
296
296
  })
297
+ } else {
298
+ // If no matching release good is found, return empty result
299
+ return { items: [], total: 0 }
297
300
  }
298
301
  }
302
+
299
303
  const qb: SelectQueryBuilder<OrderInventory> = getRepository(OrderInventory).createQueryBuilder('oi')
300
304
  buildQuery(qb, params, context)
301
305
 
@@ -327,6 +331,7 @@ export class OrderInventoryQuery {
327
331
  productName: item.inventory.product.name,
328
332
  productSKU: item.inventory.product.sku,
329
333
  productBrand: item.inventory.product.brand,
334
+ isInventoryDecimal: item.inventory.product.isInventoryDecimal,
330
335
  packingSize: item.inventory.packingSize
331
336
  }
332
337
  })
@@ -68,16 +68,16 @@ export class NewOrderInventory {
68
68
  @Field({ nullable: true })
69
69
  releaseOrderId: string
70
70
 
71
- @Field(type => Int, { nullable: true })
71
+ @Field(type => Float, { nullable: true })
72
72
  releaseQty: number
73
73
 
74
- @Field(type => Int, { nullable: true })
74
+ @Field(type => Float, { nullable: true })
75
75
  pickedQty: number
76
76
 
77
- @Field(type => Int, { nullable: true })
77
+ @Field(type => Float, { nullable: true })
78
78
  sortedQty: number
79
79
 
80
- @Field(type => Int, { nullable: true })
80
+ @Field(type => Float, { nullable: true })
81
81
  packedQty: number
82
82
 
83
83
  @Field(type => Float, { nullable: true })
@@ -104,13 +104,13 @@ export class NewOrderInventory {
104
104
  @Field({ nullable: true })
105
105
  existingRow: boolean
106
106
 
107
- @Field(type => Int, { nullable: true })
107
+ @Field(type => Float, { nullable: true })
108
108
  returnQty: number
109
109
 
110
110
  @Field(type => Float, { nullable: true })
111
111
  returnUomValue: number
112
112
 
113
- @Field(type => Int, { nullable: true })
113
+ @Field(type => Float, { nullable: true })
114
114
  returnToLocationQty: number
115
115
 
116
116
  @Field(type => Float, { nullable: true })
@@ -146,7 +146,7 @@ export class OrderInventoryPatch {
146
146
  @Field(type => ObjectRef, { nullable: true })
147
147
  inventory: ObjectRef
148
148
 
149
- @Field(type => Int, { nullable: true })
149
+ @Field(type => Float, { nullable: true })
150
150
  inspectedQty: number
151
151
 
152
152
  @Field(type => Float, { nullable: true })
@@ -188,19 +188,19 @@ export class OrderInventoryPatch {
188
188
  @Field({ nullable: true })
189
189
  extraJsonData: string
190
190
 
191
- @Field(type => Int, { nullable: true })
191
+ @Field(type => Float, { nullable: true })
192
192
  releaseQty: number
193
193
 
194
194
  @Field({ nullable: true })
195
195
  serialNumber: string
196
196
 
197
- @Field(type => Int, { nullable: true })
197
+ @Field(type => Float, { nullable: true })
198
198
  sortedQty: number
199
199
 
200
- @Field(type => Int, { nullable: true })
200
+ @Field(type => Float, { nullable: true })
201
201
  pickedQty: number
202
202
 
203
- @Field(type => Int, { nullable: true })
203
+ @Field(type => Float, { nullable: true })
204
204
  packedQty: number
205
205
 
206
206
  @Field({ nullable: true })
@@ -221,7 +221,7 @@ export class OrderInventoryPatch {
221
221
  @Field(type => Float, { nullable: true })
222
222
  returnUomValue: number
223
223
 
224
- @Field(type => Int, { nullable: true })
224
+ @Field(type => Float, { nullable: true })
225
225
  actualPackQty: number
226
226
 
227
227
  @Field(type => Int, { nullable: true })
@@ -153,7 +153,18 @@ export class OrderInventory {
153
153
  @Field(type => User, { nullable: true })
154
154
  putawayBy: User
155
155
 
156
- @Column({ nullable: true, type: 'float' })
156
+ @Column({
157
+ nullable: true,
158
+ type: 'decimal',
159
+ scale: 3,
160
+ transformer: {
161
+ to: (value: string | null) => value,
162
+ from: (value: string | null) => {
163
+ if (value === null || value === undefined) return null
164
+ const parsed = parseFloat(value)
165
+ return isNaN(parsed) ? null : parsed
166
+ }
167
+ } })
157
168
  @Field({ nullable: true })
158
169
  actualPackUomValue: number
159
170
 
@@ -229,7 +240,18 @@ export class OrderInventory {
229
240
  @Field({ nullable: true })
230
241
  originQty: number
231
242
 
232
- @Column({ nullable: true })
243
+ @Column({
244
+ nullable: true,
245
+ type: 'decimal',
246
+ scale: 3,
247
+ transformer: {
248
+ to: (value: string | null) => value,
249
+ from: (value: string | null) => {
250
+ if (value === null || value === undefined) return null
251
+ const parsed = parseFloat(value)
252
+ return isNaN(parsed) ? null : parsed
253
+ }
254
+ } })
233
255
  @Field({ nullable: true })
234
256
  inspectedQty: number
235
257
 
@@ -237,7 +259,18 @@ export class OrderInventory {
237
259
  @Field({ nullable: true })
238
260
  originUomValue: number
239
261
 
240
- @Column({ nullable: true, type: 'float' })
262
+ @Column({
263
+ nullable: true,
264
+ type: 'decimal',
265
+ scale: 3,
266
+ transformer: {
267
+ to: (value: string | null) => value,
268
+ from: (value: string | null) => {
269
+ if (value === null || value === undefined) return null
270
+ const parsed = parseFloat(value)
271
+ return isNaN(parsed) ? null : parsed
272
+ }
273
+ } })
241
274
  @Field({ nullable: true })
242
275
  inspectedUomValue: number
243
276
 
@@ -270,23 +303,86 @@ export class OrderInventory {
270
303
  @RelationId((orderInventory: OrderInventory) => orderInventory.binLocation)
271
304
  binLocationId: string
272
305
 
273
- @Column({ nullable: true, type: 'float' })
306
+ @Column({
307
+ nullable: true,
308
+ type: 'decimal',
309
+ scale: 3,
310
+ transformer: {
311
+ to: (value: string | null) => value,
312
+ from: (value: string | null) => {
313
+ if (value === null || value === undefined) return null
314
+ const parsed = parseFloat(value)
315
+ return isNaN(parsed) ? null : parsed
316
+ }
317
+ }
318
+ })
274
319
  @Field({ nullable: true })
275
320
  releaseQty: number
276
321
 
277
- @Column({ nullable: true, type: 'float', default: 0 })
322
+ @Column({
323
+ nullable: true,
324
+ type: 'decimal',
325
+ scale: 3,
326
+ default: 0,
327
+ transformer: {
328
+ to: (value: string | null) => value,
329
+ from: (value: string | null) => {
330
+ if (value === null || value === undefined) return null
331
+ const parsed = parseFloat(value)
332
+ return isNaN(parsed) ? null : parsed
333
+ }
334
+ }
335
+ })
278
336
  @Field({ nullable: true })
279
337
  pickedQty: number
280
338
 
281
- @Column({ nullable: true, type: 'float', default: 0 })
339
+ @Column({
340
+ nullable: true,
341
+ type: 'decimal',
342
+ scale: 3,
343
+ default: 0,
344
+ transformer: {
345
+ to: (value: string | null) => value,
346
+ from: (value: string | null) => {
347
+ if (value === null || value === undefined) return null
348
+ const parsed = parseFloat(value)
349
+ return isNaN(parsed) ? null : parsed
350
+ }
351
+ }
352
+ })
282
353
  @Field({ nullable: true })
283
354
  packedQty: number
284
355
 
285
- @Column({ nullable: true, type: 'float', default: 0 })
356
+ @Column({
357
+ nullable: true,
358
+ type: 'decimal',
359
+ scale: 3,
360
+ default: 0,
361
+ transformer: {
362
+ to: (value: string | null) => value,
363
+ from: (value: string | null) => {
364
+ if (value === null || value === undefined) return null
365
+ const parsed = parseFloat(value)
366
+ return isNaN(parsed) ? null : parsed
367
+ }
368
+ }
369
+ })
286
370
  @Field({ nullable: true })
287
371
  sortedQty: number
288
372
 
289
- @Column({ nullable: true, type: 'float' })
373
+ @Column({
374
+ nullable: true,
375
+ type: 'decimal',
376
+ scale: 3,
377
+ transformer: {
378
+ to: (value: string | null) => value,
379
+ from: (value: string | null) => {
380
+ if (value === null || value === undefined) return null
381
+ const parsed = parseFloat(value)
382
+ return isNaN(parsed) ? null : parsed
383
+ }
384
+ }
385
+ })
290
386
  @Field({ nullable: true })
291
387
  releaseUomValue: number
292
388
 
@@ -294,23 +390,82 @@ export class OrderInventory {
294
390
  @Field({ nullable: true })
295
391
  uom: string
296
392
 
297
- @Column({ nullable: true, type: 'float' })
393
+ @Column({
394
+ nullable: true,
395
+ type: 'decimal',
396
+ scale: 3,
397
+ transformer: {
398
+ to: (value: string | null) => value,
399
+ from: (value: string | null) => {
400
+ if (value === null || value === undefined) return null
401
+ const parsed = parseFloat(value)
402
+ return isNaN(parsed) ? null : parsed
403
+ }
404
+ }
405
+ })
298
406
  @Field({ nullable: true })
299
407
  returnQty: number
300
408
 
301
- @Column({ nullable: true, type: 'float' })
409
+ @Column({
410
+ nullable: true,
411
+ type: 'decimal',
412
+ scale: 3,
413
+ transformer: {
414
+ to: (value: string | null) => value,
415
+ from: (value: string | null) => {
416
+ if (value === null || value === undefined) return null
417
+ const parsed = parseFloat(value)
418
+ return isNaN(parsed) ? null : parsed
419
+ }
420
+ }
421
+ })
302
422
  @Field({ nullable: true })
303
423
  returnUomValue: number
304
424
 
305
- @Column({ nullable: true, type: 'float' })
425
+ @Column({
426
+ nullable: true,
427
+ type: 'decimal',
428
+ scale: 3,
429
+ transformer: {
430
+ to: (value: string | null) => value,
431
+ from: (value: string | null) => {
432
+ if (value === null || value === undefined) return null
433
+ const parsed = parseFloat(value)
434
+ return isNaN(parsed) ? null : parsed
435
+ }
436
+ }
437
+ })
306
438
  @Field({ nullable: true })
307
439
  returnToLocationQty: number
308
440
 
309
- @Column({ nullable: true, type: 'float' })
441
+ @Column({
442
+ nullable: true,
443
+ type: 'decimal',
444
+ scale: 3,
445
+ transformer: {
446
+ to: (value: string | null) => value,
447
+ from: (value: string | null) => {
448
+ if (value === null || value === undefined) return null
449
+ const parsed = parseFloat(value)
450
+ return isNaN(parsed) ? null : parsed
451
+ }
452
+ }
453
+ })
310
454
  @Field({ nullable: true })
311
455
  returnToLocationUomValue: number
312
456
 
313
- @Column({ nullable: true })
457
+ @Column({
458
+ nullable: true,
459
+ type: 'decimal',
460
+ scale: 3,
461
+ transformer: {
462
+ to: (value: string | null) => value,
463
+ from: (value: string | null) => {
464
+ if (value === null || value === undefined) return null
465
+ const parsed = parseFloat(value)
466
+ return isNaN(parsed) ? null : parsed
467
+ }
468
+ } })
314
469
  @Field({ nullable: true })
315
470
  actualPackQty: number
316
471
 
@@ -490,6 +645,9 @@ export class OrderInventory {
490
645
  @Field({ nullable: true })
491
646
  pickingBin: string
492
647
 
648
+ @Field({ nullable: true })
649
+ isInventoryDecimal: boolean
650
+
493
651
  @Field(type => [ProductDetail], { nullable: true })
494
652
  productDetails: ProductDetail[]
495
653
  }
@@ -1,4 +1,4 @@
1
- import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
1
+ import { Field, Float, ID, InputType, Int, ObjectType } from 'type-graphql'
2
2
 
3
3
  import { OrderPackageItem } from './order-package-item'
4
4
 
@@ -9,6 +9,12 @@ export class NewOrderPackageItem {
9
9
 
10
10
  @Field({ nullable: true })
11
11
  status?: string
12
+
13
+ @Field(type => Float, { nullable: true })
14
+ releaseQty?: number
15
+
16
+ @Field(type => Float, { nullable: true })
17
+ packedQty?: number
12
18
  }
13
19
 
14
20
  @InputType()
@@ -19,9 +25,12 @@ export class OrderPackageItemPatch {
19
25
  @Field({ nullable: true })
20
26
  name?: string
21
27
 
22
- @Field({ nullable: true })
28
+ @Field(type => Float, { nullable: true })
23
29
  releaseQty?: number
24
30
 
31
+ @Field(type => Float, { nullable: true })
32
+ packedQty?: number
33
+
25
34
  @Field({ nullable: true })
26
35
  status?: string
27
36
 
@@ -46,6 +55,6 @@ export class TrackingInformation {
46
55
  @Field(type => String)
47
56
  sku: string
48
57
 
49
- @Field(type => String)
58
+ @Field(type => Float)
50
59
  releaseQty: number
51
60
  }
@@ -70,11 +70,35 @@ export class OrderPackageItem {
70
70
  @Field({ nullable: true })
71
71
  status?: string
72
72
 
73
- @Column({ nullable: true })
73
+ @Column({
74
+ type: 'decimal',
75
+ scale: 3,
76
+ nullable: true,
77
+ transformer: {
78
+ to: (value: string | null) => value,
79
+ from: (value: string | null) => {
80
+ if (value === null || value === undefined) return null
81
+ const parsed = parseFloat(value)
82
+ return isNaN(parsed) ? null : parsed
83
+ }
84
+ }
85
+ })
74
86
  @Field({ nullable: true })
75
87
  releaseQty: number
76
88
 
77
- @Column({ nullable: true })
89
+ @Column({
90
+ type: 'decimal',
91
+ scale: 3,
92
+ nullable: true,
93
+ transformer: {
94
+ to: (value: string | null) => value,
95
+ from: (value: string | null) => {
96
+ if (value === null || value === undefined) return null
97
+ const parsed = parseFloat(value)
98
+ return isNaN(parsed) ? null : parsed
99
+ }
100
+ }
101
+ })
78
102
  @Field({ nullable: true })
79
103
  packedQty: number
80
104