@things-factory/sales-base 4.3.512 → 4.3.514
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/constants/order.js +5 -1
- package/dist-server/constants/order.js.map +1 -1
- package/dist-server/service/draft-release-good/draft-release-good-query.js +4 -2
- package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
- package/dist-server/service/order-vas/order-vas-types.js +72 -8
- package/dist-server/service/order-vas/order-vas-types.js.map +1 -1
- package/dist-server/service/order-vas/order-vas.js +102 -7
- package/dist-server/service/order-vas/order-vas.js.map +1 -1
- package/dist-server/service/order-vas-item/order-vas-item-type.js +13 -1
- package/dist-server/service/order-vas-item/order-vas-item-type.js.map +1 -1
- package/dist-server/service/order-vas-item/order-vas-item.js +20 -5
- package/dist-server/service/order-vas-item/order-vas-item.js.map +1 -1
- package/dist-server/service/release-good/release-good-mutation.js +4 -2
- package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
- package/dist-server/service/release-good/release-good-query.js +41 -0
- package/dist-server/service/release-good/release-good-query.js.map +1 -1
- package/dist-server/service/vas/vas-mutation.js +333 -25
- package/dist-server/service/vas/vas-mutation.js.map +1 -1
- package/package.json +3 -3
- package/server/constants/order.ts +5 -1
- package/server/service/draft-release-good/draft-release-good-query.ts +5 -2
- package/server/service/order-vas/order-vas-types.ts +48 -0
- package/server/service/order-vas/order-vas.ts +72 -0
- package/server/service/order-vas-item/order-vas-item-type.ts +12 -2
- package/server/service/order-vas-item/order-vas-item.ts +27 -13
- package/server/service/release-good/release-good-mutation.ts +6 -2
- package/server/service/release-good/release-good-query.ts +99 -9
- package/server/service/vas/vas-mutation.ts +399 -36
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { User } from '@things-factory/auth-base'
|
|
2
2
|
import { Domain } from '@things-factory/shell'
|
|
3
|
+
import { Bizplace } from '@things-factory/biz-base'
|
|
3
4
|
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
4
5
|
import { EntityManager } from 'typeorm'
|
|
5
|
-
import { NewVas, VasPatch, OrderVasPatch, OrderVasItemPatch, ReleaseGood, OrderVas, OrderVasItem } from '../'
|
|
6
|
+
import { NewVas, VasPatch, OrderVasPatch, OrderVasItemPatch, ReleaseGood, OrderVas, OrderVasItem, NewOrderVas } from '../'
|
|
6
7
|
import { Vas } from './vas'
|
|
7
8
|
import { v4 as uuidv4 } from 'uuid'
|
|
9
|
+
import { ORDER_STATUS, ORDER_VAS_STATUS } from '../../constants'
|
|
8
10
|
|
|
9
11
|
@Resolver(Vas)
|
|
10
12
|
export class VasMutation {
|
|
@@ -117,7 +119,21 @@ export class VasMutation {
|
|
|
117
119
|
): Promise<Boolean> {
|
|
118
120
|
const response = await editVas(orderVasPatch, orderVasItemPatch, context)
|
|
119
121
|
|
|
120
|
-
return response
|
|
122
|
+
return response ? true : false
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@Directive('@privilege(category: "vas", privilege: "mutation")')
|
|
126
|
+
@Directive('@transaction')
|
|
127
|
+
@Mutation(returns => Boolean)
|
|
128
|
+
async proceedVasChanges(
|
|
129
|
+
@Arg('releaseOrderNo') releaseOrderNo: String,
|
|
130
|
+
@Arg('bizplaceId') bizplaceId: String,
|
|
131
|
+
@Arg('approvedVas', type => [OrderVasPatch], { nullable: true }) approvedVas: OrderVasPatch[],
|
|
132
|
+
@Arg('rejectedVas', type => [OrderVasPatch], { nullable: true }) rejectedVas: OrderVasPatch[],
|
|
133
|
+
@Ctx() context: any
|
|
134
|
+
): Promise<Boolean> {
|
|
135
|
+
await proceedVasChanges({releaseOrderNo, bizplaceId, approvedVas, rejectedVas}, context)
|
|
136
|
+
return true
|
|
121
137
|
}
|
|
122
138
|
}
|
|
123
139
|
|
|
@@ -130,11 +146,12 @@ export async function editVas(
|
|
|
130
146
|
let results = []
|
|
131
147
|
const orderVasRepo = tx.getRepository(OrderVas)
|
|
132
148
|
const orderVasItemRepo = tx.getRepository(OrderVasItem)
|
|
149
|
+
|
|
133
150
|
// Order Vas
|
|
134
|
-
if (orderVasPatch
|
|
135
|
-
const _deleteRecords = orderVasPatch.filter((patch: any) => patch.cuFlag
|
|
136
|
-
const _createRecords = orderVasPatch.filter((patch: any) => patch.cuFlag
|
|
137
|
-
const _updateRecords = orderVasPatch.filter((patch: any) => patch.cuFlag
|
|
151
|
+
if (orderVasPatch?.length > 0) {
|
|
152
|
+
const _deleteRecords = orderVasPatch.filter((patch: any) => patch.cuFlag?.toUpperCase() === '-')
|
|
153
|
+
const _createRecords = orderVasPatch.filter((patch: any) => patch.cuFlag?.toUpperCase() === '+')
|
|
154
|
+
const _updateRecords = orderVasPatch.filter((patch: any) => patch.cuFlag?.toUpperCase() === 'M')
|
|
138
155
|
|
|
139
156
|
if (_deleteRecords.length > 0) {
|
|
140
157
|
for (let i = 0; i < _deleteRecords.length; i++) {
|
|
@@ -154,7 +171,7 @@ export async function editVas(
|
|
|
154
171
|
name: `${_createRecords[i].product.name} - ${new Date()}`,
|
|
155
172
|
domain: domain,
|
|
156
173
|
creator: user,
|
|
157
|
-
|
|
174
|
+
createdAt: new Date()
|
|
158
175
|
})
|
|
159
176
|
|
|
160
177
|
results.push({ ...result, cuFlag: '+' })
|
|
@@ -165,6 +182,7 @@ export async function editVas(
|
|
|
165
182
|
orderVas: result.id,
|
|
166
183
|
name: `${newRecord.orderVasItemsPatch[ii].vas.name} (${newRecord.orderVasItemsPatch[ii].vas.description})- ${result.id}`,
|
|
167
184
|
vas: newRecord.orderVasItemsPatch[ii].vas,
|
|
185
|
+
itemEditType: newRecord.orderVasItemsPatch[ii].itemEditType ? newRecord.orderVasItemsPatch[ii].itemEditType : undefined,
|
|
168
186
|
vasQty: newRecord.orderVasItemsPatch[ii].vasQty,
|
|
169
187
|
vasRemark: newRecord.orderVasItemsPatch[ii]?.vasRemark,
|
|
170
188
|
domain: domain,
|
|
@@ -183,33 +201,113 @@ export async function editVas(
|
|
|
183
201
|
relations: ['product', 'productDetail', 'newProduct', 'newProductDetail', 'releaseGood', 'orderVasItems']
|
|
184
202
|
})
|
|
185
203
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
204
|
+
if (newRecord.editType === ORDER_VAS_STATUS.REMOVED) {
|
|
205
|
+
const result = await orderVasRepo.update(
|
|
206
|
+
{ id: newRecord.id },
|
|
207
|
+
{
|
|
208
|
+
editType: newRecord.editType,
|
|
209
|
+
status: newRecord.status,
|
|
210
|
+
updater: user,
|
|
211
|
+
updatedAt: new Date()
|
|
212
|
+
})
|
|
191
213
|
|
|
192
|
-
|
|
214
|
+
results.push({ ...result, cuFlag: 'M' })
|
|
215
|
+
|
|
216
|
+
for (let ii = 0; ii < orderVas.orderVasItems.length; ii++) {
|
|
217
|
+
await orderVasItemRepo.update(
|
|
218
|
+
{ id: orderVas.orderVasItems[ii].id },
|
|
219
|
+
{
|
|
220
|
+
orderVas: { id: orderVas.id },
|
|
221
|
+
itemEditType: ORDER_VAS_STATUS.REMOVED,
|
|
222
|
+
updater: user,
|
|
223
|
+
updatedAt: new Date()
|
|
224
|
+
}
|
|
225
|
+
)
|
|
226
|
+
}
|
|
227
|
+
} else if (newRecord.editType === ORDER_VAS_STATUS.CHANGES) {
|
|
228
|
+
const result = await orderVasRepo.update(
|
|
229
|
+
{ id: newRecord.id },
|
|
230
|
+
{
|
|
231
|
+
adjustedBatchId: newRecord.batchId,
|
|
232
|
+
adjustedProduct: newRecord.product,
|
|
233
|
+
adjustedProductDetail: newRecord.productDetail,
|
|
234
|
+
adjustedPackingType: newRecord.packingType,
|
|
235
|
+
adjustedUom: newRecord.uom,
|
|
236
|
+
adjustedUomValue: newRecord.uomValue,
|
|
237
|
+
adjustedNewProduct: newRecord.newProduct,
|
|
238
|
+
adjustedNewProductDetail: newRecord.newProductDetail,
|
|
239
|
+
adjustedQty: newRecord.qty,
|
|
240
|
+
adjustedNewBatchId: newRecord.newBatchId,
|
|
241
|
+
adjustedNewPackingType: newRecord.newPackingType,
|
|
242
|
+
adjustedNewUom: newRecord.newUom,
|
|
243
|
+
adjustedNewUomValue: newRecord.newUomValue,
|
|
244
|
+
adjustedOutputQty: newRecord.outputQty,
|
|
245
|
+
status: newRecord.status,
|
|
246
|
+
editType: newRecord.editType,
|
|
247
|
+
updater: user,
|
|
248
|
+
updatedAt: new Date()
|
|
249
|
+
})
|
|
193
250
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
251
|
+
results.push({ ...result, cuFlag: 'M' })
|
|
252
|
+
|
|
253
|
+
// order Vas Item
|
|
254
|
+
for (const ovi of newRecord.orderVasItemsPatch) {
|
|
255
|
+
switch (ovi.itemEditType) {
|
|
256
|
+
case ORDER_VAS_STATUS.NEW:
|
|
257
|
+
await orderVasItemRepo.insert({
|
|
258
|
+
id: uuidv4(),
|
|
259
|
+
orderVas: { id: newRecord.id },
|
|
260
|
+
name: `${ovi.vas.name} (${ovi.vas.description})- ${newRecord.id}`,
|
|
261
|
+
itemEditType: ovi.itemEditType,
|
|
262
|
+
vas: ovi.vas,
|
|
263
|
+
vasQty: ovi.vasQty,
|
|
264
|
+
vasRemark: ovi?.vasRemark,
|
|
265
|
+
domain: domain,
|
|
266
|
+
creator: user,
|
|
267
|
+
createdAt: new Date()
|
|
268
|
+
})
|
|
269
|
+
break;
|
|
270
|
+
|
|
271
|
+
case ORDER_VAS_STATUS.CHANGES:
|
|
272
|
+
await orderVasItemRepo.update(
|
|
273
|
+
{ id: ovi.id },
|
|
274
|
+
{
|
|
275
|
+
orderVas: { id: newRecord.id },
|
|
276
|
+
name: `${ovi.vas.name} (${ovi.vas.description})- ${newRecord.id}`,
|
|
277
|
+
itemEditType: ovi.itemEditType,
|
|
278
|
+
vas: ovi.vas,
|
|
279
|
+
adjustedVasQty: ovi.vasQty,
|
|
280
|
+
adjustedVasRemark: ovi.vasRemark,
|
|
281
|
+
domain: domain,
|
|
282
|
+
updater: user,
|
|
283
|
+
updatedAt: new Date()
|
|
284
|
+
}
|
|
285
|
+
)
|
|
286
|
+
break;
|
|
287
|
+
|
|
288
|
+
case ORDER_VAS_STATUS.REMOVED:
|
|
289
|
+
await orderVasItemRepo.update(
|
|
290
|
+
{ id: ovi.id },
|
|
291
|
+
{
|
|
292
|
+
orderVas: { id: newRecord.id },
|
|
293
|
+
name: `${ovi.vas.name}- ${newRecord.id}`,
|
|
294
|
+
itemEditType: ovi.itemEditType,
|
|
295
|
+
vas: ovi.vas,
|
|
296
|
+
vasQty: ovi.vasQty,
|
|
297
|
+
vasRemark: ovi?.vasRemark,
|
|
298
|
+
domain: domain,
|
|
299
|
+
updater: user,
|
|
300
|
+
updatedAt: new Date()
|
|
301
|
+
}
|
|
302
|
+
)
|
|
303
|
+
|
|
206
304
|
}
|
|
207
|
-
|
|
305
|
+
}
|
|
208
306
|
}
|
|
209
307
|
}
|
|
210
308
|
}
|
|
211
309
|
}
|
|
212
|
-
|
|
310
|
+
|
|
213
311
|
// order Vas Item
|
|
214
312
|
if (orderVasItemPatch?.length > 0) {
|
|
215
313
|
const _deleteRecords = orderVasItemPatch.filter((patch: any) => patch.cuFlag.toUpperCase() === '-')
|
|
@@ -228,10 +326,11 @@ export async function editVas(
|
|
|
228
326
|
if (_createRecords.length > 0) {
|
|
229
327
|
for (let i = 0; i < _createRecords.length; i++) {
|
|
230
328
|
const newRecord = _createRecords[i]
|
|
231
|
-
const result = await orderVasItemRepo.
|
|
329
|
+
const result = await orderVasItemRepo.insert({
|
|
232
330
|
id: uuidv4(),
|
|
233
331
|
orderVas: newRecord.orderVas.id,
|
|
234
332
|
name: `${newRecord.vas.name}- ${newRecord.orderVas.id}`,
|
|
333
|
+
itemEditType: newRecord?.itemEditType,
|
|
235
334
|
vas: newRecord.vas,
|
|
236
335
|
vasQty: newRecord.vasQty,
|
|
237
336
|
vasRemark: newRecord?.vasRemark,
|
|
@@ -240,24 +339,288 @@ export async function editVas(
|
|
|
240
339
|
createdAt: new Date()
|
|
241
340
|
})
|
|
242
341
|
results.push({ ...result, cuFlag: '+' })
|
|
342
|
+
|
|
343
|
+
await orderVasRepo.update(
|
|
344
|
+
{ id: newRecord.orderVas.id },
|
|
345
|
+
{
|
|
346
|
+
editType: ORDER_VAS_STATUS.CHANGES,
|
|
347
|
+
status: ORDER_VAS_STATUS.PENDING_APPROVE,
|
|
348
|
+
updater: user,
|
|
349
|
+
updatedAt: new Date()
|
|
350
|
+
})
|
|
243
351
|
}
|
|
244
352
|
}
|
|
245
353
|
|
|
246
354
|
if (_updateRecords.length > 0) {
|
|
247
355
|
for (let i = 0; i < _updateRecords.length; i++) {
|
|
248
356
|
const newRecord = _updateRecords[i]
|
|
249
|
-
|
|
250
|
-
|
|
357
|
+
if (newRecord.itemEditType === ORDER_VAS_STATUS.CHANGES) {
|
|
358
|
+
const result = await orderVasItemRepo.update(
|
|
359
|
+
{ id: newRecord.id },
|
|
360
|
+
{
|
|
361
|
+
adjustedVasQty: newRecord.vasQty,
|
|
362
|
+
adjustedVasRemark: newRecord?.vasRemark,
|
|
363
|
+
itemEditType: newRecord.itemEditType,
|
|
364
|
+
updater: user,
|
|
365
|
+
updatedAt: new Date()
|
|
366
|
+
})
|
|
367
|
+
results.push({ ...result, cuFlag: 'M' })
|
|
368
|
+
} else if (newRecord.itemEditType === ORDER_VAS_STATUS.REMOVED) {
|
|
369
|
+
const result = await orderVasItemRepo.update(
|
|
370
|
+
{ id: newRecord.id },
|
|
251
371
|
{
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
372
|
+
itemEditType: newRecord.itemEditType,
|
|
373
|
+
updater: user,
|
|
374
|
+
updatedAt: new Date()
|
|
375
|
+
})
|
|
376
|
+
results.push({ ...result, cuFlag: 'M' })
|
|
377
|
+
}
|
|
256
378
|
|
|
257
|
-
|
|
379
|
+
await orderVasRepo.update(
|
|
380
|
+
{ id: newRecord.orderVas.id },
|
|
381
|
+
{
|
|
382
|
+
editType: ORDER_VAS_STATUS.CHANGES,
|
|
383
|
+
status: ORDER_VAS_STATUS.PENDING_APPROVE,
|
|
384
|
+
updater: user,
|
|
385
|
+
updatedAt: new Date()
|
|
386
|
+
})
|
|
258
387
|
}
|
|
259
388
|
}
|
|
260
389
|
}
|
|
261
|
-
|
|
262
390
|
return results ? true : false
|
|
263
391
|
}
|
|
392
|
+
|
|
393
|
+
export async function proceedVasChanges(
|
|
394
|
+
{ releaseOrderNo, bizplaceId, approvedVas, rejectedVas },
|
|
395
|
+
context: any
|
|
396
|
+
): Promise<void> {
|
|
397
|
+
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
398
|
+
|
|
399
|
+
let releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
|
|
400
|
+
where: {
|
|
401
|
+
name: releaseOrderNo,
|
|
402
|
+
domain,
|
|
403
|
+
bizplace: bizplaceId
|
|
404
|
+
}
|
|
405
|
+
})
|
|
406
|
+
|
|
407
|
+
if (!releaseGood) throw new Error(`Unable to find ${releaseGood.name} with edited VAS`)
|
|
408
|
+
|
|
409
|
+
// approved changes
|
|
410
|
+
if (approvedVas?.length) {
|
|
411
|
+
await _handleApprovedVas(tx, domain, user, releaseGood, approvedVas)
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
// rejected changes
|
|
415
|
+
if (rejectedVas?.length) {
|
|
416
|
+
await _handleRejectedVas(tx, domain, user, releaseGood, rejectedVas)
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
async function _handleApprovedVas(tx, domain, user, releaseGood, approvedVas) {
|
|
421
|
+
for(const ov of approvedVas) {
|
|
422
|
+
const orderVas: OrderVas = await tx.getRepository(OrderVas).findOne({
|
|
423
|
+
where: { domain, id: ov.id },
|
|
424
|
+
relations: ['product', 'productDetail', 'newProduct', 'newProductDetail', 'releaseGood', 'orderVasItems']
|
|
425
|
+
})
|
|
426
|
+
|
|
427
|
+
switch (ov.editType) {
|
|
428
|
+
case ORDER_VAS_STATUS.NEW:
|
|
429
|
+
await tx.getRepository(OrderVas).update(
|
|
430
|
+
{ id: ov.id},
|
|
431
|
+
{
|
|
432
|
+
editType: undefined,
|
|
433
|
+
status: await _getNewStatus(releaseGood),
|
|
434
|
+
updater: user,
|
|
435
|
+
updatedAt: new Date(),
|
|
436
|
+
})
|
|
437
|
+
|
|
438
|
+
for (const ovi of ov.orderVasItemsPatch) {
|
|
439
|
+
if (ovi.itemEditType === ORDER_VAS_STATUS.NEW) {
|
|
440
|
+
await tx.getRepository(OrderVasItem).update(
|
|
441
|
+
{ id: ovi.id },
|
|
442
|
+
{
|
|
443
|
+
itemEditType: undefined,
|
|
444
|
+
updater: user,
|
|
445
|
+
updatedAt: new Date()
|
|
446
|
+
})
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
break;
|
|
450
|
+
|
|
451
|
+
case ORDER_VAS_STATUS.CHANGES:
|
|
452
|
+
await tx.getRepository(OrderVas).update(
|
|
453
|
+
{ id: ov.id },
|
|
454
|
+
{
|
|
455
|
+
batchId: orderVas.adjustedBatchId ? orderVas.adjustedBatchId : orderVas.batchId,
|
|
456
|
+
product: orderVas.adjustedProduct ? orderVas.adjustedProduct : orderVas.product,
|
|
457
|
+
productDetail: orderVas.adjustedProductDetail ? orderVas.adjustedProductDetail : orderVas.productDetail,
|
|
458
|
+
uom: orderVas.adjustedUom ? orderVas.adjustedUom : orderVas.uom,
|
|
459
|
+
uomValue: orderVas.adjustedNewUom ? orderVas.adjustedUomValue : orderVas.uomValue,
|
|
460
|
+
packingType: orderVas.adjustedPackingType ? orderVas.adjustedPackingType : orderVas.packingType,
|
|
461
|
+
qty: orderVas.adjustedQty ? orderVas.adjustedQty : orderVas.qty,
|
|
462
|
+
outputQty: orderVas.adjustedOutputQty ? orderVas.adjustedOutputQty : orderVas.outputQty,
|
|
463
|
+
newProduct: orderVas.adjustedNewProduct ? orderVas.adjustedNewProduct : orderVas.newProduct,
|
|
464
|
+
newProductDetail: orderVas.adjustedNewProductDetail ? orderVas.adjustedNewProductDetail : orderVas.newProductDetail,
|
|
465
|
+
newBatchId: orderVas.adjustedNewBatchId ? orderVas.adjustedNewBatchId : orderVas.newBatchId,
|
|
466
|
+
newPackingType: orderVas.adjustedNewPackingType ? orderVas.adjustedNewPackingType : orderVas.newPackingType,
|
|
467
|
+
newUom: orderVas.adjustedNewUom ? orderVas.adjustedNewUom : orderVas.newUom,
|
|
468
|
+
newUomValue: orderVas.adjustedNewUomValue ? orderVas.adjustedNewUomValue : orderVas.newUomValue,
|
|
469
|
+
editType: undefined,
|
|
470
|
+
status: await _getNewStatus(releaseGood),
|
|
471
|
+
updater: user,
|
|
472
|
+
updatedAt: new Date(),
|
|
473
|
+
})
|
|
474
|
+
|
|
475
|
+
for (const ovi of ov.orderVasItemsPatch) {
|
|
476
|
+
const orderVasItem: OrderVasItem = await tx.getRepository(OrderVasItem).findOne({
|
|
477
|
+
where: { id: ovi.id }
|
|
478
|
+
})
|
|
479
|
+
|
|
480
|
+
switch (ovi.itemEditType) {
|
|
481
|
+
case ORDER_VAS_STATUS.NEW:
|
|
482
|
+
await tx.getRepository(OrderVasItem).update(
|
|
483
|
+
{ id: ovi.id },
|
|
484
|
+
{
|
|
485
|
+
itemEditType: undefined,
|
|
486
|
+
updater: user,
|
|
487
|
+
updatedAt: new Date()
|
|
488
|
+
})
|
|
489
|
+
break;
|
|
490
|
+
|
|
491
|
+
case ORDER_VAS_STATUS.CHANGES:
|
|
492
|
+
await tx.getRepository(OrderVasItem).update(
|
|
493
|
+
{ id: ovi.id },
|
|
494
|
+
{
|
|
495
|
+
orderVas: {id: orderVas.id},
|
|
496
|
+
vasRemark: orderVasItem.adjustedVasRemark ? orderVasItem.adjustedVasRemark : orderVasItem.vasRemark,
|
|
497
|
+
vasQty: orderVasItem.adjustedVasQty ? orderVasItem.adjustedVasQty : orderVasItem.vasQty,
|
|
498
|
+
itemEditType: undefined,
|
|
499
|
+
updater: user,
|
|
500
|
+
updatedAt: new Date()
|
|
501
|
+
})
|
|
502
|
+
break;
|
|
503
|
+
|
|
504
|
+
case ORDER_VAS_STATUS.REMOVED:
|
|
505
|
+
await tx.getRepository(OrderVasItem).delete(ovi.id)
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
break;
|
|
509
|
+
|
|
510
|
+
case ORDER_VAS_STATUS.REMOVED:
|
|
511
|
+
await tx.getRepository(OrderVasItem).delete({ orderVas: { id: ov.id } })
|
|
512
|
+
await tx.getRepository(OrderVas).delete(ov.id)
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
return true
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
async function _handleRejectedVas(tx, domain, user, releaseGood, rejectedVas) {
|
|
519
|
+
for (const ov of rejectedVas) {
|
|
520
|
+
const orderVas: OrderVas = await tx.getRepository(OrderVas).findOne({
|
|
521
|
+
where: { domain, id: ov.id },
|
|
522
|
+
relations: ['product', 'productDetail', 'newProduct', 'newProductDetail', 'releaseGood', 'orderVasItems']
|
|
523
|
+
})
|
|
524
|
+
|
|
525
|
+
switch (ov.editType) {
|
|
526
|
+
case ORDER_VAS_STATUS.NEW:
|
|
527
|
+
await tx.getRepository(OrderVasItem).delete({ orderVas: { id: ov.id } })
|
|
528
|
+
await tx.getRepository(OrderVas).delete(ov.id)
|
|
529
|
+
break;
|
|
530
|
+
|
|
531
|
+
case ORDER_VAS_STATUS.CHANGES:
|
|
532
|
+
await tx.getRepository(OrderVas).update(
|
|
533
|
+
{ id: ov.id },
|
|
534
|
+
{
|
|
535
|
+
adjustedProduct: undefined,
|
|
536
|
+
adjustedProductDetail: undefined,
|
|
537
|
+
adjustedBatchId: undefined,
|
|
538
|
+
adjustedQty: undefined,
|
|
539
|
+
adjustedOutputQty: undefined,
|
|
540
|
+
adjustedPackingType: undefined,
|
|
541
|
+
adjustedUom: undefined,
|
|
542
|
+
adjustedUomValue: undefined,
|
|
543
|
+
adjustedNewProduct: undefined,
|
|
544
|
+
adjustedNewProductDetail: undefined,
|
|
545
|
+
adjustedNewBatchId: undefined,
|
|
546
|
+
adjustedNewPackingType: undefined,
|
|
547
|
+
adjustedNewUom: undefined,
|
|
548
|
+
adjustedNewUomValue: undefined,
|
|
549
|
+
editType: undefined,
|
|
550
|
+
status: await _getNewStatus(releaseGood),
|
|
551
|
+
updater: user,
|
|
552
|
+
updatedAt: new Date(),
|
|
553
|
+
})
|
|
554
|
+
|
|
555
|
+
for (const ovi of ov.orderVasItemsPatch) {
|
|
556
|
+
switch (ovi.itemEditType) {
|
|
557
|
+
case ORDER_VAS_STATUS.NEW:
|
|
558
|
+
await tx.getRepository(OrderVasItem).delete(ovi.id)
|
|
559
|
+
break;
|
|
560
|
+
|
|
561
|
+
case ORDER_VAS_STATUS.CHANGES:
|
|
562
|
+
await tx.getRepository(OrderVasItem).update(
|
|
563
|
+
{ id: ovi.id },
|
|
564
|
+
{
|
|
565
|
+
orderVas: {id: orderVas.id},
|
|
566
|
+
adjustedVasRemark: undefined,
|
|
567
|
+
adjustedVasQty: undefined,
|
|
568
|
+
itemEditType: undefined,
|
|
569
|
+
updater: user,
|
|
570
|
+
updatedAt: new Date()
|
|
571
|
+
})
|
|
572
|
+
break;
|
|
573
|
+
|
|
574
|
+
case ORDER_VAS_STATUS.REMOVED:
|
|
575
|
+
await tx.getRepository(OrderVasItem).update(
|
|
576
|
+
{ id: ovi.id },
|
|
577
|
+
{
|
|
578
|
+
itemEditType: undefined,
|
|
579
|
+
updater: user,
|
|
580
|
+
updatedAt: new Date()
|
|
581
|
+
})
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
break;
|
|
585
|
+
|
|
586
|
+
case ORDER_VAS_STATUS.REMOVED:
|
|
587
|
+
await tx.getRepository(OrderVas).update(
|
|
588
|
+
{ id: orderVas.id },
|
|
589
|
+
{
|
|
590
|
+
status: await _getNewStatus(releaseGood),
|
|
591
|
+
editType: undefined,
|
|
592
|
+
updater: user,
|
|
593
|
+
updatedAt: new Date()
|
|
594
|
+
})
|
|
595
|
+
|
|
596
|
+
for (const ovi of ov.orderVasItemsPatch) {
|
|
597
|
+
await tx.getRepository(OrderVasItem).update(
|
|
598
|
+
{ id: ovi.id },
|
|
599
|
+
{
|
|
600
|
+
orderVas: {id: orderVas.id},
|
|
601
|
+
itemEditType: undefined,
|
|
602
|
+
updater: user,
|
|
603
|
+
updatedAt: new Date()
|
|
604
|
+
})
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
return true
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
async function _getNewStatus(releaseGood) {
|
|
612
|
+
let orderVasStatus = ''
|
|
613
|
+
switch (releaseGood.status) {
|
|
614
|
+
case ORDER_STATUS.PENDING:
|
|
615
|
+
orderVasStatus = ORDER_VAS_STATUS.PENDING
|
|
616
|
+
break;
|
|
617
|
+
case ORDER_STATUS.PENDING_RECEIVE:
|
|
618
|
+
orderVasStatus = ORDER_VAS_STATUS.PENDING_RECEIVE
|
|
619
|
+
break;
|
|
620
|
+
case ORDER_STATUS.PENDING_WORKSHEET:
|
|
621
|
+
case ORDER_STATUS.READY_TO_PICK:
|
|
622
|
+
case ORDER_STATUS.PICKING:
|
|
623
|
+
orderVasStatus = ORDER_VAS_STATUS.READY_TO_PROCESS
|
|
624
|
+
}
|
|
625
|
+
return orderVasStatus
|
|
626
|
+
}
|