@things-factory/worksheet-base 4.3.46 → 4.3.50
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/controllers/ecommerce/sellercraft-controller.js +223 -191
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js +19 -14
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js +30 -23
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +8 -8
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +6 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheets.js +36 -11
- package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
- package/dist-server/graphql/types/worksheet/index.js +1 -1
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/package.json +17 -17
- package/server/controllers/ecommerce/sellercraft-controller.ts +274 -223
- package/server/controllers/inbound/unloading-worksheet-controller.ts +31 -27
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.ts +35 -27
- package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +8 -8
- package/server/graphql/resolvers/worksheet/worksheet.ts +6 -1
- package/server/graphql/resolvers/worksheet/worksheets.ts +56 -15
- package/server/graphql/types/worksheet/index.ts +2 -3
|
@@ -47,33 +47,37 @@ export type UnloadingWorksheetDetail = Partial<WorksheetDetail> & {
|
|
|
47
47
|
|
|
48
48
|
export class UnloadingWorksheetController extends VasWorksheetController {
|
|
49
49
|
async generateUnloadingWorksheet(arrivalNoticeNo: string, bufferLocationId: string): Promise<Worksheet> {
|
|
50
|
-
|
|
51
|
-
ArrivalNotice
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const worksheet: Worksheet = await this.generateWorksheet(
|
|
64
|
-
WORKSHEET_TYPE.UNLOADING,
|
|
65
|
-
arrivalNotice,
|
|
66
|
-
orderProducts,
|
|
67
|
-
ORDER_STATUS.READY_TO_UNLOAD,
|
|
68
|
-
ORDER_PRODUCT_STATUS.READY_TO_UNLOAD,
|
|
69
|
-
{ bufferLocation }
|
|
70
|
-
)
|
|
50
|
+
try {
|
|
51
|
+
let arrivalNotice: ArrivalNotice = await this.findRefOrder(
|
|
52
|
+
ArrivalNotice,
|
|
53
|
+
{
|
|
54
|
+
domain: this.domain,
|
|
55
|
+
name: arrivalNoticeNo,
|
|
56
|
+
status: ORDER_STATUS.ARRIVED
|
|
57
|
+
},
|
|
58
|
+
['bizplace', 'orderProducts', 'orderVass']
|
|
59
|
+
)
|
|
60
|
+
const orderProducts: OrderProduct[] = arrivalNotice.orderProducts
|
|
61
|
+
const orderVASs: OrderVas[] = arrivalNotice.orderVass
|
|
62
|
+
const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne(bufferLocationId)
|
|
71
63
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
64
|
+
const worksheet: Worksheet = await this.generateWorksheet(
|
|
65
|
+
WORKSHEET_TYPE.UNLOADING,
|
|
66
|
+
arrivalNotice,
|
|
67
|
+
orderProducts,
|
|
68
|
+
ORDER_STATUS.READY_TO_UNLOAD,
|
|
69
|
+
ORDER_PRODUCT_STATUS.READY_TO_UNLOAD,
|
|
70
|
+
{ bufferLocation }
|
|
71
|
+
)
|
|
75
72
|
|
|
76
|
-
|
|
73
|
+
if (orderVASs?.length > 0) {
|
|
74
|
+
await this.generateVasWorksheet(arrivalNotice)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return worksheet
|
|
78
|
+
} catch (e) {
|
|
79
|
+
throw new Error(e)
|
|
80
|
+
}
|
|
77
81
|
}
|
|
78
82
|
|
|
79
83
|
async unload(worksheetDetailName: string, inventory: Partial<Inventory>, productBarcode: string): Promise<void> {
|
|
@@ -396,7 +400,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
396
400
|
foundInventory = await this.trxMgr.getRepository(Inventory).save(newInventory)
|
|
397
401
|
} else {
|
|
398
402
|
const updatedQty: number = foundInventory.qty + qty
|
|
399
|
-
foundInventory.expirationDate = new Date(foundInventory.expirationDate)
|
|
403
|
+
foundInventory.expirationDate = foundInventory.expirationDate ? new Date(foundInventory.expirationDate) : null
|
|
400
404
|
foundInventory.qty = updatedQty
|
|
401
405
|
foundInventory.uomValue +=
|
|
402
406
|
Math.round(
|
|
@@ -613,7 +617,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
613
617
|
await this.trxMgr.getRepository(Inventory).save(newInventory)
|
|
614
618
|
} else {
|
|
615
619
|
const updatedQty: number = foundInventory.qty + qty
|
|
616
|
-
foundInventory.expirationDate = new Date(foundInventory.expirationDate)
|
|
620
|
+
foundInventory.expirationDate = foundInventory.expirationDate ? new Date(foundInventory.expirationDate) : null
|
|
617
621
|
foundInventory.qty = updatedQty
|
|
618
622
|
foundInventory.uomValue +=
|
|
619
623
|
Math.round(
|
package/server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.ts
CHANGED
|
@@ -6,35 +6,43 @@ import { PickingWorksheetController, UnloadingWorksheetController } from '../../
|
|
|
6
6
|
import { Worksheet } from '../../../../entities'
|
|
7
7
|
|
|
8
8
|
export const generateArrivalNoticeWorksheetResolver = {
|
|
9
|
-
async generateArrivalNoticeWorksheet(_: any, {
|
|
9
|
+
async generateArrivalNoticeWorksheet(_: any, { arrivalNoticeNos, bufferLocation }, context: any) {
|
|
10
10
|
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
await Promise.all(
|
|
12
|
+
arrivalNoticeNos.map(async arrivalNoticeNo => {
|
|
13
|
+
try {
|
|
14
|
+
let unloadingWorksheet = await generateUnloadingWorksheet(tx, domain, user, arrivalNoticeNo, bufferLocation)
|
|
15
|
+
|
|
16
|
+
if (!unloadingWorksheet.arrivalNotice?.id) {
|
|
17
|
+
unloadingWorksheet = await tx.getRepository(Worksheet).findOne({
|
|
18
|
+
where: unloadingWorksheet,
|
|
19
|
+
relations: ['arrivalNotice']
|
|
20
|
+
})
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
let arrivalNotice: ArrivalNotice = unloadingWorksheet.arrivalNotice
|
|
24
|
+
const crossDocking: boolean = unloadingWorksheet.arrivalNotice.crossDocking
|
|
25
|
+
|
|
26
|
+
if (crossDocking) {
|
|
27
|
+
arrivalNotice = await tx
|
|
28
|
+
.getRepository(ArrivalNotice)
|
|
29
|
+
.findOne({ where: { domain: domain, name: arrivalNoticeNo }, relations: ['releaseGood'] })
|
|
30
|
+
|
|
31
|
+
const releaseGoodNo: string = arrivalNotice.releaseGood.name
|
|
32
|
+
const pickingWSCtrl: PickingWorksheetController = new PickingWorksheetController(tx, domain, user)
|
|
33
|
+
await pickingWSCtrl.generatePickingWorksheet(releaseGoodNo)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const vasWorksheet: Worksheet = await tx.getRepository(Worksheet).findOne({
|
|
37
|
+
where: { domain: domain, arrivalNotice }
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
return { unloadingWorksheet, vasWorksheet }
|
|
41
|
+
} catch (e) {
|
|
42
|
+
throw new Error(e)
|
|
43
|
+
}
|
|
17
44
|
})
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
let arrivalNotice: ArrivalNotice = unloadingWorksheet.arrivalNotice
|
|
21
|
-
const crossDocking: boolean = unloadingWorksheet.arrivalNotice.crossDocking
|
|
22
|
-
|
|
23
|
-
if (crossDocking) {
|
|
24
|
-
arrivalNotice = await tx
|
|
25
|
-
.getRepository(ArrivalNotice)
|
|
26
|
-
.findOne({ where: { domain: domain, name: arrivalNoticeNo }, relations: ['releaseGood'] })
|
|
27
|
-
|
|
28
|
-
const releaseGoodNo: string = arrivalNotice.releaseGood.name
|
|
29
|
-
const pickingWSCtrl: PickingWorksheetController = new PickingWorksheetController(tx, domain, user)
|
|
30
|
-
await pickingWSCtrl.generatePickingWorksheet(releaseGoodNo)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const vasWorksheet: Worksheet = await tx.getRepository(Worksheet).findOne({
|
|
34
|
-
where: { domain: domain, arrivalNotice }
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
return { unloadingWorksheet, vasWorksheet }
|
|
45
|
+
)
|
|
38
46
|
}
|
|
39
47
|
}
|
|
40
48
|
|
|
@@ -74,14 +74,14 @@ export async function completeLoading(
|
|
|
74
74
|
where: { domain, outboundOrderId: releaseGood.id }
|
|
75
75
|
})
|
|
76
76
|
|
|
77
|
-
if (responseFileTypes.enableShipment) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
77
|
+
// if (responseFileTypes.enableShipment) {
|
|
78
|
+
// let shipmentResult: Sftp = await SftpAPI.createShipment(customerAvailableSftp, {
|
|
79
|
+
// releaseGood,
|
|
80
|
+
// orderInventories: targetInventories,
|
|
81
|
+
// sftp: customerAvailableSftp
|
|
82
|
+
// })
|
|
83
|
+
// customerAvailableSftp = await tx.getRepository(Sftp).save(shipmentResult)
|
|
84
|
+
// }
|
|
85
85
|
|
|
86
86
|
if (responseFileTypes.enableSerialNumber) {
|
|
87
87
|
let snResult: Sftp = await SftpAPI.createSerialNumber(customerAvailableSftp, {
|
|
@@ -36,6 +36,7 @@ export const worksheetResolver = {
|
|
|
36
36
|
'releaseGood',
|
|
37
37
|
'releaseGood.arrivalNotice',
|
|
38
38
|
'releaseGood.shippingOrder',
|
|
39
|
+
'releaseGood.manifest',
|
|
39
40
|
'returnOrder',
|
|
40
41
|
'inventoryCheck',
|
|
41
42
|
'vasOrder',
|
|
@@ -121,7 +122,11 @@ export const worksheetResolver = {
|
|
|
121
122
|
let inventory: Inventory = wsd.targetInventory.inventory
|
|
122
123
|
|
|
123
124
|
let foundUnloadedHistory: InventoryHistory = await getRepository(InventoryHistory).findOne({
|
|
124
|
-
where:
|
|
125
|
+
where: [
|
|
126
|
+
{ inventory, refOrderId: worksheet.arrivalNotice.id, status: INVENTORY_STATUS.UNLOADED },
|
|
127
|
+
{ inventory, refOrderId: worksheet.arrivalNotice.id, status: INVENTORY_STATUS.PARTIALLY_UNLOADED },
|
|
128
|
+
{ inventory, refOrderId: worksheet.arrivalNotice.id, status: INVENTORY_STATUS.CHECKED }
|
|
129
|
+
],
|
|
125
130
|
relations: ['location', 'product']
|
|
126
131
|
})
|
|
127
132
|
|
|
@@ -94,12 +94,20 @@ export const worksheetsResolver = {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
////For outbound worksheet filter
|
|
97
|
+
let outboundOrderInfoFilter
|
|
98
|
+
const outboundOrderInfoParamIdx = params.filters.findIndex(param => param.name === 'outboundOrderInfo')
|
|
99
|
+
if (outboundOrderInfoParamIdx >= 0) {
|
|
100
|
+
outboundOrderInfoFilter = params.filters[outboundOrderInfoParamIdx].value.toLowerCase().split(',').join('|')
|
|
101
|
+
|
|
102
|
+
params.filters.splice(outboundOrderInfoParamIdx, 1)
|
|
103
|
+
}
|
|
97
104
|
const releaseGoodParam = params.filters.find(param => param.name === 'releaseGoodNo')
|
|
98
105
|
const releaseGoodRefNoParam = params.filters.find(param => param.name === 'releaseGoodRefNo')
|
|
99
106
|
const releaseGoodCrossDockingParam = params.filters.find(param => param.name === 'crossDocking')
|
|
100
107
|
const releaseGoodCourierOptionParam = params.filters.find(param => param.name === 'courierOption')
|
|
101
108
|
const releaseGoodPackingOptionParam = params.filters.find(param => param.name === 'packingOption')
|
|
102
109
|
const orderRemarkParam = params.filters.find(param => param.name === 'orderRemark')
|
|
110
|
+
const manifestParam = params.filters.find(param => param.name === 'manifest')
|
|
103
111
|
|
|
104
112
|
const releaseGoodPickerOptionParam = params.filters.find(param => param.name === 'assignee')
|
|
105
113
|
if (
|
|
@@ -107,8 +115,7 @@ export const worksheetsResolver = {
|
|
|
107
115
|
releaseGoodRefNoParam ||
|
|
108
116
|
releaseGoodCrossDockingParam ||
|
|
109
117
|
releaseGoodCourierOptionParam ||
|
|
110
|
-
releaseGoodPackingOptionParam
|
|
111
|
-
orderRemarkParam
|
|
118
|
+
releaseGoodPackingOptionParam
|
|
112
119
|
) {
|
|
113
120
|
let arrFilters = []
|
|
114
121
|
if (releaseGoodParam) {
|
|
@@ -151,19 +158,6 @@ export const worksheetsResolver = {
|
|
|
151
158
|
arrFilters.push({ ...releaseGoodPackingOptionParam, name: 'packingOption' })
|
|
152
159
|
}
|
|
153
160
|
|
|
154
|
-
if (orderRemarkParam) {
|
|
155
|
-
params.filters.splice(
|
|
156
|
-
params.filters.findIndex(item => item.name == 'orderRemark'),
|
|
157
|
-
1
|
|
158
|
-
)
|
|
159
|
-
|
|
160
|
-
if (orderRemarkParam?.value == true) {
|
|
161
|
-
arrFilters.push({ operator: 'is_not_null', name: 'remark' })
|
|
162
|
-
} else if (orderRemarkParam?.value == false) {
|
|
163
|
-
arrFilters.push({ operator: 'is_null', name: 'remark' })
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
161
|
const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({
|
|
168
162
|
...convertListParams({ filters: arrFilters })
|
|
169
163
|
})
|
|
@@ -295,6 +289,20 @@ export const worksheetsResolver = {
|
|
|
295
289
|
}
|
|
296
290
|
}
|
|
297
291
|
|
|
292
|
+
//check packing worksheet checkbox filter
|
|
293
|
+
if (manifestParam) {
|
|
294
|
+
params.filters.splice(
|
|
295
|
+
params.filters.findIndex(item => item.name == 'manifest'),
|
|
296
|
+
1
|
|
297
|
+
)
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
if (orderRemarkParam) {
|
|
301
|
+
params.filters.splice(
|
|
302
|
+
params.filters.findIndex(item => item.name == 'orderRemark'),
|
|
303
|
+
1
|
|
304
|
+
)
|
|
305
|
+
}
|
|
298
306
|
////Set default bizplace filter
|
|
299
307
|
const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')
|
|
300
308
|
if (!bizplaceFilter && typeParam.value[0] !== WORKSHEET_TYPE.BATCH_PICKING) {
|
|
@@ -331,6 +339,39 @@ export const worksheetsResolver = {
|
|
|
331
339
|
)
|
|
332
340
|
}
|
|
333
341
|
|
|
342
|
+
if (outboundOrderInfoFilter) {
|
|
343
|
+
qb.andWhere(
|
|
344
|
+
'(releaseGood.name ~* :outboundOrderInfoFilter or releaseGood.ref_no ~* :outboundOrderInfoFilter or releaseGood.ref_no_2 ~* :outboundOrderInfoFilter or releaseGood.ref_no_3 ~* :outboundOrderInfoFilter)',
|
|
345
|
+
{ outboundOrderInfoFilter }
|
|
346
|
+
)
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
if (manifestParam) {
|
|
350
|
+
params.filters.splice(
|
|
351
|
+
params.filters.findIndex(item => item.name == 'manifest'),
|
|
352
|
+
1
|
|
353
|
+
)
|
|
354
|
+
|
|
355
|
+
if (manifestParam?.value == true) {
|
|
356
|
+
qb.andWhere('releaseGood.manifest_id is not null')
|
|
357
|
+
} else if (manifestParam?.value == false) {
|
|
358
|
+
qb.andWhere('releaseGood.manifest_id is null')
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
if (orderRemarkParam) {
|
|
363
|
+
params.filters.splice(
|
|
364
|
+
params.filters.findIndex(item => item.name == 'orderRemark'),
|
|
365
|
+
1
|
|
366
|
+
)
|
|
367
|
+
|
|
368
|
+
if (orderRemarkParam?.value == true) {
|
|
369
|
+
qb.andWhere('releaseGood.remark is not null')
|
|
370
|
+
} else if (orderRemarkParam?.value == false) {
|
|
371
|
+
qb.andWhere('releaseGood.remark is null')
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
334
375
|
qb.addSelect('COALESCE("cc".rank, 99999)', 'rank')
|
|
335
376
|
qb.leftJoinAndSelect('ws.domain', 'domain')
|
|
336
377
|
qb.leftJoinAndSelect('ws.bizplace', 'bizplace')
|
|
@@ -25,7 +25,6 @@ import { WorksheetPatch } from './worksheet-patch'
|
|
|
25
25
|
import { WorksheetWithPagination } from './worksheet-with-pagination'
|
|
26
26
|
import { DeliveryOrderRO } from './delivery-order-ro'
|
|
27
27
|
|
|
28
|
-
|
|
29
28
|
export const Mutation = /* GraphQL */ `
|
|
30
29
|
createWorksheet (
|
|
31
30
|
worksheet: NewWorksheet!
|
|
@@ -41,7 +40,7 @@ export const Mutation = /* GraphQL */ `
|
|
|
41
40
|
): Boolean @privilege(category: "worksheet", privilege: "mutation") @transaction
|
|
42
41
|
|
|
43
42
|
generateArrivalNoticeWorksheet (
|
|
44
|
-
|
|
43
|
+
arrivalNoticeNos: [String!]
|
|
45
44
|
bufferLocation: ObjectRef!
|
|
46
45
|
): ArrivalNoticeWorksheet @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
47
46
|
|
|
@@ -713,7 +712,7 @@ export const Query = /* GraphQL */ `
|
|
|
713
712
|
findReleaseOrdersByTaskNo(taskNo: String!): FindReleaseOrdersByTaskNo @privilege(category: "worksheet", privilege: "query") @transaction
|
|
714
713
|
`
|
|
715
714
|
|
|
716
|
-
export const Types = /* GraphQL */[
|
|
715
|
+
export const Types = /* GraphQL */ [
|
|
717
716
|
Worksheet,
|
|
718
717
|
AirwayBill,
|
|
719
718
|
NewWorksheet,
|