@things-factory/sales-base 4.3.637 → 4.3.638
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/service/arrival-notice/arrival-notice-mutation.js +3 -34
- package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-query.js +3 -10
- package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-types.js +2 -2
- package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
- package/dist-server/service/inventory-check-item/inventory-check-item-types.js +12 -48
- package/dist-server/service/inventory-check-item/inventory-check-item-types.js.map +1 -1
- package/dist-server/service/inventory-check-item/inventory-check-item.js +4 -56
- package/dist-server/service/inventory-check-item/inventory-check-item.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-query.js +1 -5
- package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-types.js +12 -12
- package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory.js +13 -189
- package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
- package/dist-server/service/order-package-item/order-package-item-types.js +2 -14
- package/dist-server/service/order-package-item/order-package-item-types.js.map +1 -1
- package/dist-server/service/order-package-item/order-package-item.js +2 -28
- package/dist-server/service/order-package-item/order-package-item.js.map +1 -1
- package/dist-server/service/order-product/order-product-types.js +18 -18
- package/dist-server/service/order-product/order-product-types.js.map +1 -1
- package/dist-server/service/order-product/order-product.js +13 -104
- package/dist-server/service/order-product/order-product.js.map +1 -1
- package/dist-server/service/order-tote-item/order-tote-item-types.js +2 -2
- package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -1
- package/dist-server/service/order-tote-item/order-tote-item.js +1 -13
- package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -1
- package/dist-server/service/others/other-types.js +0 -4
- package/dist-server/service/others/other-types.js.map +1 -1
- package/dist-server/service/release-good/release-good-mutation.js +6 -35
- package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
- package/dist-server/service/release-good/release-good-query.js +19 -24
- package/dist-server/service/release-good/release-good-query.js.map +1 -1
- package/dist-server/service/release-good/release-good-types.js +1 -1
- package/dist-server/service/release-good/release-good-types.js.map +1 -1
- package/dist-server/utils/inventory-util.js +8 -12
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +7 -7
- package/server/service/arrival-notice/arrival-notice-mutation.ts +3 -40
- package/server/service/arrival-notice/arrival-notice-query.ts +68 -40
- package/server/service/arrival-notice/arrival-notice-types.ts +4 -4
- package/server/service/inventory-check-item/inventory-check-item-types.ts +10 -37
- package/server/service/inventory-check-item/inventory-check-item.ts +4 -52
- package/server/service/order-inventory/order-inventory-query.ts +0 -5
- package/server/service/order-inventory/order-inventory-types.ts +12 -12
- package/server/service/order-inventory/order-inventory.ts +13 -171
- package/server/service/order-package-item/order-package-item-types.ts +3 -12
- package/server/service/order-package-item/order-package-item.ts +2 -26
- package/server/service/order-product/order-product-types.ts +18 -18
- package/server/service/order-product/order-product.ts +12 -96
- package/server/service/order-tote-item/order-tote-item-types.ts +3 -3
- package/server/service/order-tote-item/order-tote-item.ts +1 -12
- package/server/service/others/other-types.ts +0 -3
- package/server/service/release-good/release-good-mutation.ts +9 -51
- package/server/service/release-good/release-good-query.ts +124 -89
- package/server/service/release-good/release-good-types.ts +1 -1
- package/server/utils/inventory-util.ts +54 -44
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Field,
|
|
1
|
+
import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
|
|
2
2
|
|
|
3
3
|
import { OrderPackageItem } from './order-package-item'
|
|
4
4
|
|
|
@@ -9,12 +9,6 @@ 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
|
|
18
12
|
}
|
|
19
13
|
|
|
20
14
|
@InputType()
|
|
@@ -25,12 +19,9 @@ export class OrderPackageItemPatch {
|
|
|
25
19
|
@Field({ nullable: true })
|
|
26
20
|
name?: string
|
|
27
21
|
|
|
28
|
-
@Field(
|
|
22
|
+
@Field({ nullable: true })
|
|
29
23
|
releaseQty?: number
|
|
30
24
|
|
|
31
|
-
@Field(type => Float, { nullable: true })
|
|
32
|
-
packedQty?: number
|
|
33
|
-
|
|
34
25
|
@Field({ nullable: true })
|
|
35
26
|
status?: string
|
|
36
27
|
|
|
@@ -55,6 +46,6 @@ export class TrackingInformation {
|
|
|
55
46
|
@Field(type => String)
|
|
56
47
|
sku: string
|
|
57
48
|
|
|
58
|
-
@Field(type =>
|
|
49
|
+
@Field(type => String)
|
|
59
50
|
releaseQty: number
|
|
60
51
|
}
|
|
@@ -70,35 +70,11 @@ export class OrderPackageItem {
|
|
|
70
70
|
@Field({ nullable: true })
|
|
71
71
|
status?: string
|
|
72
72
|
|
|
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
|
-
})
|
|
73
|
+
@Column({ nullable: true })
|
|
86
74
|
@Field({ nullable: true })
|
|
87
75
|
releaseQty: number
|
|
88
76
|
|
|
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
|
-
})
|
|
77
|
+
@Column({ nullable: true })
|
|
102
78
|
@Field({ nullable: true })
|
|
103
79
|
packedQty: number
|
|
104
80
|
|
|
@@ -132,25 +132,25 @@ export class OrderProductPatch {
|
|
|
132
132
|
@Field(type => Float, { nullable: true })
|
|
133
133
|
unpackUomValue: number
|
|
134
134
|
|
|
135
|
-
@Field(type =>
|
|
135
|
+
@Field(type => Int, { nullable: true })
|
|
136
136
|
packQty: number
|
|
137
137
|
|
|
138
|
-
@Field(type =>
|
|
138
|
+
@Field(type => Int, { nullable: true })
|
|
139
139
|
adjustedPackQty: number
|
|
140
140
|
|
|
141
|
-
@Field(type =>
|
|
141
|
+
@Field(type => Int, { nullable: true })
|
|
142
142
|
actualPackQty: number
|
|
143
143
|
|
|
144
|
-
@Field(type =>
|
|
144
|
+
@Field(type => Int, { nullable: true })
|
|
145
145
|
unpackQty: number
|
|
146
146
|
|
|
147
|
-
@Field(type =>
|
|
147
|
+
@Field(type => Int, { nullable: true })
|
|
148
148
|
palletQty: number
|
|
149
149
|
|
|
150
|
-
@Field(type =>
|
|
150
|
+
@Field(type => Int, { nullable: true })
|
|
151
151
|
actualPalletQty: number
|
|
152
152
|
|
|
153
|
-
@Field(type =>
|
|
153
|
+
@Field(type => Int, { nullable: true })
|
|
154
154
|
adjustedPalletQty: number
|
|
155
155
|
|
|
156
156
|
@Field({ nullable: true })
|
|
@@ -162,7 +162,7 @@ export class OrderProductPatch {
|
|
|
162
162
|
@Field({ nullable: true })
|
|
163
163
|
totalUomValue: string
|
|
164
164
|
|
|
165
|
-
@Field(type =>
|
|
165
|
+
@Field(type => Int, { nullable: true })
|
|
166
166
|
releaseQty: number
|
|
167
167
|
|
|
168
168
|
@Field(type => Float, { nullable: true })
|
|
@@ -282,37 +282,37 @@ export class NewOrderProduct {
|
|
|
282
282
|
@Field(type => Float, { nullable: true })
|
|
283
283
|
unpackUomValue: number
|
|
284
284
|
|
|
285
|
-
@Field(type =>
|
|
285
|
+
@Field(type => Int, { nullable: true })
|
|
286
286
|
packQty: number
|
|
287
287
|
|
|
288
|
-
@Field(type =>
|
|
288
|
+
@Field(type => Int, { nullable: true })
|
|
289
289
|
adjustedPackQty: number
|
|
290
290
|
|
|
291
|
-
@Field(type =>
|
|
291
|
+
@Field(type => Int, { nullable: true })
|
|
292
292
|
actualPackQty: number
|
|
293
293
|
|
|
294
|
-
@Field(type =>
|
|
294
|
+
@Field(type => Int, { nullable: true })
|
|
295
295
|
unpackQty: number
|
|
296
296
|
|
|
297
|
-
@Field(type =>
|
|
297
|
+
@Field(type => Int, { nullable: true })
|
|
298
298
|
palletQty: number
|
|
299
299
|
|
|
300
|
-
@Field(type =>
|
|
300
|
+
@Field(type => Int, { nullable: true })
|
|
301
301
|
actualPalletQty: number
|
|
302
302
|
|
|
303
|
-
@Field(type =>
|
|
303
|
+
@Field(type => Int, { nullable: true })
|
|
304
304
|
adjustedPalletQty: number
|
|
305
305
|
|
|
306
306
|
@Field({ nullable: true })
|
|
307
|
-
|
|
307
|
+
palletId: string
|
|
308
308
|
|
|
309
309
|
@Field({ nullable: true })
|
|
310
|
-
|
|
310
|
+
adjustedTotalUomValue: string
|
|
311
311
|
|
|
312
312
|
@Field({ nullable: true })
|
|
313
313
|
totalUomValue: string
|
|
314
314
|
|
|
315
|
-
@Field(type =>
|
|
315
|
+
@Field(type => Int, { nullable: true })
|
|
316
316
|
releaseQty: number
|
|
317
317
|
|
|
318
318
|
@Field(type => Float, { nullable: true })
|
|
@@ -254,101 +254,25 @@ export class OrderProduct {
|
|
|
254
254
|
@Field({ nullable: true })
|
|
255
255
|
adjustedUomValue: number
|
|
256
256
|
|
|
257
|
-
@Column({
|
|
258
|
-
nullable: true,
|
|
259
|
-
type: 'decimal',
|
|
260
|
-
scale: 3,
|
|
261
|
-
transformer: {
|
|
262
|
-
to: (value: string | null) => value,
|
|
263
|
-
from: (value: string | null) => {
|
|
264
|
-
if (value === null || value === undefined) return null
|
|
265
|
-
const parsed = parseFloat(value)
|
|
266
|
-
return isNaN(parsed) ? null : parsed
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
})
|
|
270
|
-
@Field({ nullable: true })
|
|
271
|
-
unpackQty: number
|
|
272
|
-
|
|
273
|
-
@Column({
|
|
274
|
-
nullable: true,
|
|
275
|
-
type: 'decimal',
|
|
276
|
-
scale: 3,
|
|
277
|
-
transformer: {
|
|
278
|
-
to: (value: string | null) => value,
|
|
279
|
-
from: (value: string | null) => {
|
|
280
|
-
if (value === null || value === undefined) return null
|
|
281
|
-
const parsed = parseFloat(value)
|
|
282
|
-
return isNaN(parsed) ? null : parsed
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
})
|
|
257
|
+
@Column('float', { nullable: true })
|
|
286
258
|
@Field({ nullable: true })
|
|
287
259
|
unpackUomValue: number
|
|
288
260
|
|
|
289
|
-
@Column(
|
|
290
|
-
|
|
291
|
-
type: 'decimal',
|
|
292
|
-
scale: 3,
|
|
293
|
-
transformer: {
|
|
294
|
-
to: (value: string | null) => value,
|
|
295
|
-
from: (value: string | null) => {
|
|
296
|
-
if (value === null || value === undefined) return null
|
|
297
|
-
const parsed = parseFloat(value)
|
|
298
|
-
return isNaN(parsed) ? null : parsed
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
})
|
|
302
|
-
@Field({ nullable: true })
|
|
261
|
+
@Column()
|
|
262
|
+
@Field()
|
|
303
263
|
packQty: number
|
|
304
264
|
|
|
305
|
-
@Column({
|
|
306
|
-
nullable: true,
|
|
307
|
-
type: 'decimal',
|
|
308
|
-
scale: 3,
|
|
309
|
-
transformer: {
|
|
310
|
-
to: (value: string | null) => value,
|
|
311
|
-
from: (value: string | null) => {
|
|
312
|
-
if (value === null || value === undefined) return null
|
|
313
|
-
const parsed = parseFloat(value)
|
|
314
|
-
return isNaN(parsed) ? null : parsed
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
})
|
|
265
|
+
@Column({ nullable: true })
|
|
318
266
|
@Field({ nullable: true })
|
|
319
267
|
adjustedPackQty: number
|
|
320
268
|
|
|
321
|
-
@Column({
|
|
322
|
-
nullable: true,
|
|
323
|
-
type: 'decimal',
|
|
324
|
-
scale: 3,
|
|
325
|
-
transformer: {
|
|
326
|
-
to: (value: string | null) => value,
|
|
327
|
-
from: (value: string | null) => {
|
|
328
|
-
if (value === null || value === undefined) return null
|
|
329
|
-
const parsed = parseFloat(value)
|
|
330
|
-
return isNaN(parsed) ? null : parsed
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
})
|
|
269
|
+
@Column({ nullable: true })
|
|
334
270
|
@Field({ nullable: true })
|
|
335
271
|
actualPackQty: number
|
|
336
272
|
|
|
337
|
-
@Column({
|
|
338
|
-
nullable: true,
|
|
339
|
-
type: 'decimal',
|
|
340
|
-
scale: 3,
|
|
341
|
-
transformer: {
|
|
342
|
-
to: (value: string | null) => value,
|
|
343
|
-
from: (value: string | null) => {
|
|
344
|
-
if (value === null || value === undefined) return null
|
|
345
|
-
const parsed = parseFloat(value)
|
|
346
|
-
return isNaN(parsed) ? null : parsed
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
})
|
|
273
|
+
@Column('float', { nullable: true })
|
|
350
274
|
@Field({ nullable: true })
|
|
351
|
-
|
|
275
|
+
unpackQty: number
|
|
352
276
|
|
|
353
277
|
@Column('float', { nullable: true })
|
|
354
278
|
@Field({ nullable: true })
|
|
@@ -402,22 +326,14 @@ export class OrderProduct {
|
|
|
402
326
|
@Field({ nullable: true })
|
|
403
327
|
adjustedTotalUomValue: string
|
|
404
328
|
|
|
405
|
-
@Column({
|
|
406
|
-
nullable: true,
|
|
407
|
-
type: 'decimal',
|
|
408
|
-
scale: 3,
|
|
409
|
-
transformer: {
|
|
410
|
-
to: (value: string | null) => value,
|
|
411
|
-
from: (value: string | null) => {
|
|
412
|
-
if (value === null || value === undefined) return null
|
|
413
|
-
const parsed = parseFloat(value)
|
|
414
|
-
return isNaN(parsed) ? null : parsed
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
})
|
|
329
|
+
@Column({ nullable: true })
|
|
418
330
|
@Field({ nullable: true })
|
|
419
331
|
releaseQty: number
|
|
420
332
|
|
|
333
|
+
@Column({ nullable: true, type: 'float' })
|
|
334
|
+
@Field({ nullable: true })
|
|
335
|
+
releaseUomValue: number
|
|
336
|
+
|
|
421
337
|
@Column({ nullable: true })
|
|
422
338
|
@Field({ nullable: true })
|
|
423
339
|
remark: string
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Field,
|
|
1
|
+
import { Field, InputType, Int, ObjectType } from 'type-graphql'
|
|
2
2
|
|
|
3
3
|
import { ObjectRef } from '@things-factory/shell'
|
|
4
4
|
|
|
@@ -30,7 +30,7 @@ export class NewOrderToteItem {
|
|
|
30
30
|
@Field(type => ObjectRef, { nullable: true })
|
|
31
31
|
orderTote: ObjectRef
|
|
32
32
|
|
|
33
|
-
@Field(type =>
|
|
33
|
+
@Field(type => Int)
|
|
34
34
|
qty: number
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -51,6 +51,6 @@ export class OrderToteItemPatch {
|
|
|
51
51
|
@Field(type => ObjectRef, { nullable: true })
|
|
52
52
|
orderTote: ObjectRef
|
|
53
53
|
|
|
54
|
-
@Field(type =>
|
|
54
|
+
@Field(type => Int)
|
|
55
55
|
qty: number
|
|
56
56
|
}
|
|
@@ -47,18 +47,7 @@ export class OrderToteItem {
|
|
|
47
47
|
@RelationId((orderToteItem: OrderToteItem) => orderToteItem.orderTote)
|
|
48
48
|
orderToteId: string
|
|
49
49
|
|
|
50
|
-
@Column(
|
|
51
|
-
type: 'decimal',
|
|
52
|
-
scale: 3,
|
|
53
|
-
transformer: {
|
|
54
|
-
to: (value: string | null) => value,
|
|
55
|
-
from: (value: string | null) => {
|
|
56
|
-
if (value === null || value === undefined) return null
|
|
57
|
-
const parsed = parseFloat(value)
|
|
58
|
-
return isNaN(parsed) ? null : parsed
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
})
|
|
50
|
+
@Column('int')
|
|
62
51
|
@Field({ nullable: true })
|
|
63
52
|
qty?: number
|
|
64
53
|
|
|
@@ -65,40 +65,6 @@ import { editVas } from '../vas'
|
|
|
65
65
|
import { ReleaseGood } from './release-good'
|
|
66
66
|
import { bulkReleaseGoodsAvailableItemsFunction } from './release-good-query'
|
|
67
67
|
|
|
68
|
-
// Utility function for safe decimal arithmetic
|
|
69
|
-
function safeDecimalOperation(value1: number, value2: number, operation: 'add' | 'subtract' | 'multiply'): number {
|
|
70
|
-
// Convert to string with fixed precision to avoid floating point issues
|
|
71
|
-
const num1 = parseFloat(value1.toFixed(3))
|
|
72
|
-
const num2 = parseFloat(value2.toFixed(3))
|
|
73
|
-
|
|
74
|
-
let result: number
|
|
75
|
-
switch (operation) {
|
|
76
|
-
case 'add':
|
|
77
|
-
result = num1 + num2
|
|
78
|
-
break
|
|
79
|
-
case 'subtract':
|
|
80
|
-
result = num1 - num2
|
|
81
|
-
break
|
|
82
|
-
case 'multiply':
|
|
83
|
-
result = num1 * num2
|
|
84
|
-
break
|
|
85
|
-
default:
|
|
86
|
-
throw new Error('Invalid operation')
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// Ensure result is within valid range and has correct precision
|
|
90
|
-
if (result < 0) {
|
|
91
|
-
throw new Error('Decimal value cannot be negative')
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Check if result exceeds maximum precision (10 digits total with 3 decimal places)
|
|
95
|
-
if (result > 9999999.999) {
|
|
96
|
-
throw new Error('Decimal value exceeds maximum allowed precision')
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
return parseFloat(result.toFixed(3))
|
|
100
|
-
}
|
|
101
|
-
|
|
102
68
|
@Resolver(ReleaseGood)
|
|
103
69
|
export class ReleaseGoodMutation {
|
|
104
70
|
@Directive('@privilege(category: "order_customer", privilege: "mutation")')
|
|
@@ -478,8 +444,8 @@ export async function deleteReleaseGood(tx: EntityManager, name: string, user: U
|
|
|
478
444
|
|
|
479
445
|
await tx.getRepository(Inventory).save({
|
|
480
446
|
...oi.inventory,
|
|
481
|
-
lockedQty:
|
|
482
|
-
lockedUomValue:
|
|
447
|
+
lockedQty: oi.inventory.lockedQty - oi.releaseQty,
|
|
448
|
+
lockedUomValue: oi.inventory.lockedUomValue - oi.releaseUomValue,
|
|
483
449
|
updater: user
|
|
484
450
|
})
|
|
485
451
|
}
|
|
@@ -840,12 +806,8 @@ export async function generateReleaseGoodFunction(
|
|
|
840
806
|
pbSettings.forEach(pbs => {
|
|
841
807
|
splitOI = {
|
|
842
808
|
...oi,
|
|
843
|
-
releaseQty:
|
|
844
|
-
releaseUomValue:
|
|
845
|
-
safeDecimalOperation(oi.releaseUomValue, pbs.bundleQty, 'multiply'),
|
|
846
|
-
pbs.product.primaryValue,
|
|
847
|
-
'multiply'
|
|
848
|
-
),
|
|
809
|
+
releaseQty: oi.releaseQty * pbs.bundleQty,
|
|
810
|
+
releaseUomValue: oi.releaseUomValue * pbs.bundleQty * pbs.product.primaryValue,
|
|
849
811
|
packingType: pbs.product.packingType,
|
|
850
812
|
batchId: '',
|
|
851
813
|
product: {
|
|
@@ -1435,8 +1397,8 @@ export async function rejectReleaseGood(
|
|
|
1435
1397
|
|
|
1436
1398
|
await tx.getRepository(Inventory).save({
|
|
1437
1399
|
...oi.inventory,
|
|
1438
|
-
lockedQty:
|
|
1439
|
-
lockedUomValue:
|
|
1400
|
+
lockedQty: oi.inventory.lockedQty - oi.releaseQty,
|
|
1401
|
+
lockedUomValue: oi.inventory.lockedUomValue - oi.releaseUomValue,
|
|
1440
1402
|
updater: user
|
|
1441
1403
|
})
|
|
1442
1404
|
}
|
|
@@ -1927,11 +1889,7 @@ function extractRawReleaseGoods(rawReleaseGoods): Partial<ReleaseGood[]> {
|
|
|
1927
1889
|
|
|
1928
1890
|
// if there is duplicated SKU, merge them and sum up the releaseQty
|
|
1929
1891
|
if (duplicateSkuIdx >= 0) {
|
|
1930
|
-
releaseGoods[idx].orderInventories[duplicateSkuIdx].releaseQty
|
|
1931
|
-
releaseGoods[idx].orderInventories[duplicateSkuIdx].releaseQty,
|
|
1932
|
-
item.releaseQty,
|
|
1933
|
-
'add'
|
|
1934
|
-
)
|
|
1892
|
+
releaseGoods[idx].orderInventories[duplicateSkuIdx].releaseQty += item.releaseQty
|
|
1935
1893
|
} else {
|
|
1936
1894
|
releaseGoods[idx].orderInventories.push({
|
|
1937
1895
|
sku: item.sku,
|
|
@@ -1939,8 +1897,8 @@ function extractRawReleaseGoods(rawReleaseGoods): Partial<ReleaseGood[]> {
|
|
|
1939
1897
|
packingType: item.packingType,
|
|
1940
1898
|
packingSize: item.packingSize,
|
|
1941
1899
|
uom: item.uom,
|
|
1942
|
-
releaseQty:
|
|
1943
|
-
releaseUomValue:
|
|
1900
|
+
releaseQty: item.releaseQty,
|
|
1901
|
+
releaseUomValue: item.releaseUomValue
|
|
1944
1902
|
})
|
|
1945
1903
|
}
|
|
1946
1904
|
} else {
|