@things-factory/worksheet-base 4.3.2 → 4.4.0-alpha.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.
- package/dist-server/constants/index.js +5 -1
- package/dist-server/constants/index.js.map +1 -1
- package/dist-server/controllers/ecommerce/index.js +5 -1
- package/dist-server/controllers/ecommerce/index.js.map +1 -1
- package/dist-server/controllers/inbound/index.js +5 -1
- package/dist-server/controllers/inbound/index.js.map +1 -1
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js +3 -9
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/index.js +5 -2
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/controllers/inspect/index.js +5 -1
- package/dist-server/controllers/inspect/index.js.map +1 -1
- package/dist-server/controllers/outbound/index.js +5 -1
- package/dist-server/controllers/outbound/index.js.map +1 -1
- package/dist-server/controllers/outbound/loading-worksheet-controller.js +10 -47
- package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +5 -142
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js +20 -116
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/render-grn.js +18 -18
- package/dist-server/controllers/vas/index.js +5 -1
- package/dist-server/controllers/vas/index.js.map +1 -1
- package/dist-server/graphql/index.js +5 -1
- package/dist-server/graphql/index.js.map +1 -1
- package/dist-server/graphql/resolvers/index.js +5 -1
- package/dist-server/graphql/resolvers/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +1 -14
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/loading.js +10 -3
- package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +21 -55
- package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +0 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +6 -8
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/index.js +1 -2
- package/dist-server/graphql/resolvers/worksheet/picking/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/picking.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/picking/picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +1 -10
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js +6 -11
- package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js +5 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js +5 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js +5 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js +5 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js +5 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js +5 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +0 -2
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheets.js +2 -17
- package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +3 -5
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js +4 -15
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js +1 -4
- package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +2 -6
- package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
- package/dist-server/graphql/types/index.js +5 -1
- package/dist-server/graphql/types/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/index.js +0 -10
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js +0 -1
- package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +0 -2
- package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet-info.js +0 -2
- package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet.js +0 -1
- package/dist-server/graphql/types/worksheet/worksheet.js.map +1 -1
- package/dist-server/index.js +5 -1
- package/dist-server/index.js.map +1 -1
- package/dist-server/routes.js +0 -4
- package/dist-server/routes.js.map +1 -1
- package/dist-server/utils/index.js +5 -1
- package/dist-server/utils/index.js.map +1 -1
- package/package.json +17 -17
- package/server/controllers/inbound/unloading-worksheet-controller.ts +3 -14
- package/server/controllers/index.ts +0 -1
- package/server/controllers/outbound/loading-worksheet-controller.ts +17 -83
- package/server/controllers/outbound/picking-worksheet-controller.ts +7 -178
- package/server/controllers/outbound/sorting-worksheet-controller.ts +27 -167
- package/server/controllers/render-grn.ts +18 -18
- package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +0 -14
- package/server/graphql/resolvers/worksheet/loading/loading.ts +12 -5
- package/server/graphql/resolvers/worksheet/loading-worksheet.ts +13 -66
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +1 -1
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +1 -1
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +11 -13
- package/server/graphql/resolvers/worksheet/picking/index.ts +1 -3
- package/server/graphql/resolvers/worksheet/picking/picking.ts +4 -30
- package/server/graphql/resolvers/worksheet/picking/scan-product-picking.ts +4 -7
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +2 -13
- package/server/graphql/resolvers/worksheet/sorting/complete-order-sorting.ts +9 -13
- package/server/graphql/resolvers/worksheet/sorting/scan-product-sorting.ts +4 -5
- package/server/graphql/resolvers/worksheet/sorting/sorting-product.ts +4 -5
- package/server/graphql/resolvers/worksheet/worksheet.ts +0 -2
- package/server/graphql/resolvers/worksheet/worksheets.ts +2 -26
- package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +3 -12
- package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.ts +7 -22
- package/server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.ts +2 -6
- package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +1 -7
- package/server/graphql/types/worksheet/index.ts +0 -10
- package/server/graphql/types/worksheet/loaded-worksheet-detail.ts +0 -1
- package/server/graphql/types/worksheet/worksheet-detail-info.ts +0 -2
- package/server/graphql/types/worksheet/worksheet-info.ts +0 -2
- package/server/graphql/types/worksheet/worksheet.ts +0 -1
- package/server/routes.ts +0 -5
- package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js +0 -15
- package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js.map +0 -1
- package/server/controllers/render-fm-grn.ts +0 -266
- package/server/graphql/resolvers/worksheet/picking/seal-tote.ts +0 -25
|
@@ -6,7 +6,7 @@ import { PickingWorksheetController } from '../../../../controllers'
|
|
|
6
6
|
export const scanProductPickingResolver = {
|
|
7
7
|
async scanProductPicking(
|
|
8
8
|
_: any,
|
|
9
|
-
{ worksheetDetailName, worksheetType, productBarcode, cartonId, binLocation, serialNumber
|
|
9
|
+
{ worksheetDetailName, worksheetType, productBarcode, cartonId, binLocation, serialNumber },
|
|
10
10
|
context: any
|
|
11
11
|
) {
|
|
12
12
|
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
@@ -19,8 +19,7 @@ export const scanProductPickingResolver = {
|
|
|
19
19
|
productBarcode,
|
|
20
20
|
cartonId,
|
|
21
21
|
binLocation,
|
|
22
|
-
serialNumber
|
|
23
|
-
toteNo
|
|
22
|
+
serialNumber
|
|
24
23
|
)
|
|
25
24
|
}
|
|
26
25
|
}
|
|
@@ -34,8 +33,7 @@ export async function scanProductPicking(
|
|
|
34
33
|
productBarcode: string,
|
|
35
34
|
cartonId: string,
|
|
36
35
|
binLocation?: string,
|
|
37
|
-
serialNumber?: string
|
|
38
|
-
toteNo?: string
|
|
36
|
+
serialNumber?: string
|
|
39
37
|
) {
|
|
40
38
|
const worksheetController: PickingWorksheetController = new PickingWorksheetController(tx, domain, user)
|
|
41
39
|
await worksheetController.scanProductPicking(
|
|
@@ -44,7 +42,6 @@ export async function scanProductPicking(
|
|
|
44
42
|
productBarcode,
|
|
45
43
|
cartonId,
|
|
46
44
|
binLocation,
|
|
47
|
-
serialNumber
|
|
48
|
-
toteNo
|
|
45
|
+
serialNumber
|
|
49
46
|
)
|
|
50
47
|
}
|
|
@@ -2,7 +2,7 @@ import { EntityManager, In, SelectQueryBuilder } from 'typeorm'
|
|
|
2
2
|
|
|
3
3
|
import { ORDER_INVENTORY_STATUS, OrderInventory, ReleaseGood, ShippingOrder } from '@things-factory/sales-base'
|
|
4
4
|
import { Domain } from '@things-factory/shell'
|
|
5
|
-
import { Inventory, Location
|
|
5
|
+
import { Inventory, Location } from '@things-factory/warehouse-base'
|
|
6
6
|
|
|
7
7
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
|
|
8
8
|
import { WorksheetDetail } from '../../../entities'
|
|
@@ -109,16 +109,6 @@ export async function pickingWorksheet(
|
|
|
109
109
|
worksheetDetailInfos: worksheetDetails.map(async (pickingWSD: WorksheetDetail) => {
|
|
110
110
|
const targetInventory: OrderInventory = pickingWSD.targetInventory
|
|
111
111
|
const inventory: Inventory = targetInventory.inventory
|
|
112
|
-
|
|
113
|
-
const inventoryChangesCount: number = await tx.getRepository(InventoryChange).count({
|
|
114
|
-
where: {
|
|
115
|
-
inventory: inventory.id,
|
|
116
|
-
status:"PENDING",
|
|
117
|
-
transactionType:"MISSING"
|
|
118
|
-
},
|
|
119
|
-
relations:['inventory','product']
|
|
120
|
-
})
|
|
121
|
-
|
|
122
112
|
return {
|
|
123
113
|
name: pickingWSD.name,
|
|
124
114
|
palletId: inventory?.palletId,
|
|
@@ -137,8 +127,7 @@ export async function pickingWorksheet(
|
|
|
137
127
|
packingSize: inventory?.packingSize,
|
|
138
128
|
expirationDate: inventory?.expirationDate,
|
|
139
129
|
location: inventory?.location,
|
|
140
|
-
relatedOrderInv: targetInventory
|
|
141
|
-
hasMissingInventoryChanges:inventoryChangesCount > 0 ? true:false
|
|
130
|
+
relatedOrderInv: targetInventory
|
|
142
131
|
}
|
|
143
132
|
})
|
|
144
133
|
}
|
|
@@ -19,20 +19,16 @@ export async function completeOrderSorting(
|
|
|
19
19
|
user: User,
|
|
20
20
|
releaseGoodNo: string
|
|
21
21
|
): Promise<void> {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const releaseGood = await sortingWSCtrl.completeOrderSorting(releaseGoodNo)
|
|
22
|
+
const sortingWSCtrl: SortingWorksheetController = new SortingWorksheetController(tx, domain, user)
|
|
23
|
+
const releaseGood = await sortingWSCtrl.completeOrderSorting(releaseGoodNo)
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)
|
|
26
|
+
let loadingWorksheet: Worksheet = await loadingWSCtrl.generateLoadingWorksheet(
|
|
27
|
+
releaseGood.name,
|
|
28
|
+
releaseGood.orderInventories.filter(itm => itm.status != ORDER_INVENTORY_STATUS.COMPLETE_SPLIT)
|
|
29
|
+
)
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
} catch (e) {
|
|
36
|
-
throw e
|
|
31
|
+
if (loadingWorksheet.status === WORKSHEET_STATUS.DEACTIVATED) {
|
|
32
|
+
await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheet.worksheetDetails)
|
|
37
33
|
}
|
|
38
34
|
}
|
|
@@ -4,9 +4,9 @@ import { EntityManager } from 'typeorm'
|
|
|
4
4
|
import { SortingWorksheetController } from '../../../../controllers'
|
|
5
5
|
|
|
6
6
|
export const scanProductSortingResolver = {
|
|
7
|
-
async scanProductSorting(_: any, { taskNo, releaseGoodNo, productBarcode, serialNumber
|
|
7
|
+
async scanProductSorting(_: any, { taskNo, releaseGoodNo, productBarcode, serialNumber }, context: any) {
|
|
8
8
|
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
9
|
-
await scanProductSorting(tx, domain, user, taskNo, releaseGoodNo, productBarcode, serialNumber
|
|
9
|
+
await scanProductSorting(tx, domain, user, taskNo, releaseGoodNo, productBarcode, serialNumber)
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
|
|
@@ -17,9 +17,8 @@ export async function scanProductSorting(
|
|
|
17
17
|
taskNo: string,
|
|
18
18
|
releaseGoodNo: string,
|
|
19
19
|
productBarcode?: string,
|
|
20
|
-
serialNumber?: string
|
|
21
|
-
toteNo?: string
|
|
20
|
+
serialNumber?: string
|
|
22
21
|
) {
|
|
23
22
|
const worksheetController: SortingWorksheetController = new SortingWorksheetController(tx, domain, user)
|
|
24
|
-
await worksheetController.scanProductSorting(taskNo, releaseGoodNo, productBarcode, serialNumber
|
|
23
|
+
await worksheetController.scanProductSorting(taskNo, releaseGoodNo, productBarcode, serialNumber)
|
|
25
24
|
}
|
|
@@ -4,9 +4,9 @@ import { EntityManager } from 'typeorm'
|
|
|
4
4
|
import { SortingWorksheetController } from '../../../../controllers'
|
|
5
5
|
|
|
6
6
|
export const sortingProductResolver = {
|
|
7
|
-
async sortingProduct(_: any, { taskNo, releaseGoodNo, productId, sortingQty, serialNumber
|
|
7
|
+
async sortingProduct(_: any, { taskNo, releaseGoodNo, productId, sortingQty, serialNumber }, context: any) {
|
|
8
8
|
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
9
|
-
await sortingProduct(tx, domain, user, taskNo, releaseGoodNo, productId, sortingQty, serialNumber
|
|
9
|
+
await sortingProduct(tx, domain, user, taskNo, releaseGoodNo, productId, sortingQty, serialNumber)
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
|
|
@@ -18,9 +18,8 @@ export async function sortingProduct(
|
|
|
18
18
|
releaseGoodNo: string,
|
|
19
19
|
productId: string,
|
|
20
20
|
sortingQty: number,
|
|
21
|
-
serialNumber?: string
|
|
22
|
-
toteNo?: string
|
|
21
|
+
serialNumber?: string
|
|
23
22
|
) {
|
|
24
23
|
const worksheetController: SortingWorksheetController = new SortingWorksheetController(tx, domain, user)
|
|
25
|
-
await worksheetController.sortingProduct(taskNo, releaseGoodNo, productId, sortingQty, serialNumber
|
|
24
|
+
await worksheetController.sortingProduct(taskNo, releaseGoodNo, productId, sortingQty, serialNumber)
|
|
26
25
|
}
|
|
@@ -117,7 +117,6 @@ export const worksheetResolver = {
|
|
|
117
117
|
.leftJoinAndSelect('oi.releaseGood', 'releaseGood')
|
|
118
118
|
.leftJoinAndSelect('oi.inventory', 'inventory')
|
|
119
119
|
.leftJoinAndSelect('oi.product', 'product')
|
|
120
|
-
.leftJoinAndSelect('oi.orderProduct', 'orderProduct')
|
|
121
120
|
.leftJoinAndSelect('inventory.location', 'location')
|
|
122
121
|
.leftJoinAndSelect('oi.bizplace', 'bizplace')
|
|
123
122
|
.where('"oi"."domain_id" = :domain')
|
|
@@ -147,7 +146,6 @@ export const worksheetResolver = {
|
|
|
147
146
|
.leftJoinAndSelect('oi.releaseGood', 'releaseGood')
|
|
148
147
|
.leftJoinAndSelect('oi.inventory', 'inventory')
|
|
149
148
|
.leftJoinAndSelect('oi.product', 'product')
|
|
150
|
-
.leftJoinAndSelect('oi.orderProduct', 'orderProduct')
|
|
151
149
|
.leftJoinAndSelect('inventory.location', 'location')
|
|
152
150
|
.leftJoinAndSelect('oi.bizplace', 'bizplace')
|
|
153
151
|
.where('"oi"."domain_id" = :domain')
|
|
@@ -99,16 +99,13 @@ export const worksheetsResolver = {
|
|
|
99
99
|
const releaseGoodCrossDockingParam = params.filters.find(param => param.name === 'crossDocking')
|
|
100
100
|
const releaseGoodCourierOptionParam = params.filters.find(param => param.name === 'courierOption')
|
|
101
101
|
const releaseGoodPackingOptionParam = params.filters.find(param => param.name === 'packingOption')
|
|
102
|
-
const orderRemarkParam = params.filters.find(param => param.name === 'orderRemark')
|
|
103
|
-
|
|
104
102
|
const releaseGoodPickerOptionParam = params.filters.find(param => param.name === 'assignee')
|
|
105
103
|
if (
|
|
106
104
|
releaseGoodParam ||
|
|
107
105
|
releaseGoodRefNoParam ||
|
|
108
106
|
releaseGoodCrossDockingParam ||
|
|
109
107
|
releaseGoodCourierOptionParam ||
|
|
110
|
-
releaseGoodPackingOptionParam
|
|
111
|
-
orderRemarkParam
|
|
108
|
+
releaseGoodPackingOptionParam
|
|
112
109
|
) {
|
|
113
110
|
let arrFilters = []
|
|
114
111
|
if (releaseGoodParam) {
|
|
@@ -118,7 +115,6 @@ export const worksheetsResolver = {
|
|
|
118
115
|
)
|
|
119
116
|
arrFilters.push({ ...releaseGoodParam, name: 'name' })
|
|
120
117
|
}
|
|
121
|
-
|
|
122
118
|
if (releaseGoodRefNoParam) {
|
|
123
119
|
params.filters.splice(
|
|
124
120
|
params.filters.findIndex(item => item.name == 'releaseGoodRefNo'),
|
|
@@ -151,19 +147,6 @@ export const worksheetsResolver = {
|
|
|
151
147
|
arrFilters.push({ ...releaseGoodPackingOptionParam, name: 'packingOption' })
|
|
152
148
|
}
|
|
153
149
|
|
|
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
150
|
const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({
|
|
168
151
|
...convertListParams({ filters: arrFilters })
|
|
169
152
|
})
|
|
@@ -422,14 +405,7 @@ export const worksheetsResolver = {
|
|
|
422
405
|
|
|
423
406
|
qb.orderBy(sort)
|
|
424
407
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
items = items.map(item => {
|
|
428
|
-
return {
|
|
429
|
-
...item,
|
|
430
|
-
orderRemark: item?.releaseGood?.remark ? true : false
|
|
431
|
-
}
|
|
432
|
-
})
|
|
408
|
+
const [items, total] = await qb.getManyAndCount()
|
|
433
409
|
|
|
434
410
|
return { items, total }
|
|
435
411
|
} catch (error) {
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { EntityManager, getRepository } from 'typeorm'
|
|
2
2
|
|
|
3
3
|
import { User } from '@things-factory/auth-base'
|
|
4
|
-
import {
|
|
5
|
-
ORDER_INVENTORY_STATUS,
|
|
6
|
-
ORDER_TYPES,
|
|
7
|
-
OrderInventory,
|
|
8
|
-
OrderNoGenerator,
|
|
9
|
-
OrderProduct
|
|
10
|
-
} from '@things-factory/sales-base'
|
|
4
|
+
import { ORDER_INVENTORY_STATUS, ORDER_TYPES, OrderInventory, OrderNoGenerator } from '@things-factory/sales-base'
|
|
11
5
|
import { Setting } from '@things-factory/setting-base'
|
|
12
6
|
import { Domain } from '@things-factory/shell'
|
|
13
7
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
@@ -66,7 +60,7 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
|
|
|
66
60
|
packingSize: oi.packingSize,
|
|
67
61
|
status: ORDER_INVENTORY_STATUS.PENDING_SPLIT
|
|
68
62
|
},
|
|
69
|
-
relations: ['product', 'releaseGood', 'bizplace'
|
|
63
|
+
relations: ['product', 'releaseGood', 'bizplace'],
|
|
70
64
|
order: {
|
|
71
65
|
releaseQty: 'DESC'
|
|
72
66
|
}
|
|
@@ -143,9 +137,7 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
|
|
|
143
137
|
creator: user,
|
|
144
138
|
inventory: targetInventory,
|
|
145
139
|
releaseQty: allocatedQty,
|
|
146
|
-
releaseUomValue: allocatedUomValue
|
|
147
|
-
uom: orderInventory.uom,
|
|
148
|
-
orderProduct: orderInventory.orderProduct
|
|
140
|
+
releaseUomValue: allocatedUomValue
|
|
149
141
|
}
|
|
150
142
|
newTargetInventory = await tx.getRepository(OrderInventory).save(newTargetInventory)
|
|
151
143
|
|
|
@@ -158,7 +150,6 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
|
|
|
158
150
|
bizplace: orderInventory.bizplace,
|
|
159
151
|
name: WorksheetNoGenerator.batchPickingDetail(),
|
|
160
152
|
targetInventory: newTargetInventory,
|
|
161
|
-
targetProduct: newTargetInventory.orderProduct,
|
|
162
153
|
type: WORKSHEET_TYPE.BATCH_PICKING,
|
|
163
154
|
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
164
155
|
creator: user
|
package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.ts
CHANGED
|
@@ -15,7 +15,7 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
15
15
|
context: any
|
|
16
16
|
): Promise<void> {
|
|
17
17
|
const { tx, user, domain }: { tx: EntityManager; user: User; domain: Domain } = context.state
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
// 1. Find Related Worksheet
|
|
20
20
|
const worksheet: Worksheet = await tx.getRepository(Worksheet).findOne({
|
|
21
21
|
where: { name: worksheetNo, domain },
|
|
@@ -28,21 +28,14 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
28
28
|
})
|
|
29
29
|
|
|
30
30
|
// Only proceed if worksheet status IS "DEACTIVATED"
|
|
31
|
-
if
|
|
31
|
+
if(worksheet.status != WORKSHEET_STATUS.DEACTIVATED){
|
|
32
32
|
return
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
// 2. Find all existing order inventory that is related to the product
|
|
36
36
|
let prevOrdInvs: OrderInventory[] = await tx.getRepository(OrderInventory).find({
|
|
37
|
-
where: {
|
|
38
|
-
|
|
39
|
-
refWorksheetId: worksheet.id,
|
|
40
|
-
product: productId,
|
|
41
|
-
batchId,
|
|
42
|
-
packingType,
|
|
43
|
-
status: ORDER_INVENTORY_STATUS.PENDING_SPLIT
|
|
44
|
-
},
|
|
45
|
-
relations: ['releaseGood', 'bizplace', 'orderProduct']
|
|
37
|
+
where: { domain, refWorksheetId: worksheet.id, product: productId, batchId, packingType, status: ORDER_INVENTORY_STATUS.PENDING_SPLIT },
|
|
38
|
+
relations: ['releaseGood', 'bizplace']
|
|
46
39
|
})
|
|
47
40
|
|
|
48
41
|
// Sort all release qty from highest to lowest
|
|
@@ -87,8 +80,6 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
87
80
|
newTargetInventory.packingType = prevOrdInv.packingType
|
|
88
81
|
newTargetInventory.packingSize = parseFloat(prevOrdInv.packingSize)
|
|
89
82
|
newTargetInventory.creator = user
|
|
90
|
-
newTargetInventory.uom = selectedOrdInv.uom
|
|
91
|
-
newTargetInventory.orderProduct = prevOrdInv.orderProduct
|
|
92
83
|
|
|
93
84
|
let inventory: Inventory = await tx.getRepository(Inventory).findOne(selectedOrdInv.inventory.id)
|
|
94
85
|
|
|
@@ -109,7 +100,7 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
109
100
|
|
|
110
101
|
requiredQty = fulfiledQty <= 0 ? 0 : fulfiledQty
|
|
111
102
|
requiredUomValue = fulfiledUomValue <= 0 ? 0 : fulfiledUomValue
|
|
112
|
-
|
|
103
|
+
|
|
113
104
|
await tx.getRepository(Inventory).update(
|
|
114
105
|
{ domain, id: inventory.id },
|
|
115
106
|
{
|
|
@@ -133,7 +124,6 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
133
124
|
bizplace: prevOrdInv.bizplace,
|
|
134
125
|
name: WorksheetNoGenerator.batchPickingDetail(),
|
|
135
126
|
targetInventory: newTargetInventory,
|
|
136
|
-
targetProduct: prevOrdInv.orderProduct,
|
|
137
127
|
type: WORKSHEET_TYPE.BATCH_PICKING,
|
|
138
128
|
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
139
129
|
creator: user
|
|
@@ -144,16 +134,11 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
144
134
|
selectedOrdInv.releaseUomValue = remainingUomValue <= 0 ? 0 : remainingUomValue
|
|
145
135
|
|
|
146
136
|
// insufficient qty for current order inventory, use the next inventory qty
|
|
147
|
-
if (selectedOrdInv.releaseQty == 0)
|
|
137
|
+
if (selectedOrdInv.releaseQty == 0){
|
|
148
138
|
j = j + 1
|
|
149
139
|
}
|
|
150
140
|
}
|
|
151
|
-
await tx
|
|
152
|
-
.getRepository(OrderInventory)
|
|
153
|
-
.update(
|
|
154
|
-
{ id: prevOrdInvs[i].id },
|
|
155
|
-
{ status: ORDER_INVENTORY_STATUS.COMPLETE_SPLIT, updater: user, updatedAt: new Date() }
|
|
156
|
-
)
|
|
141
|
+
await tx.getRepository(OrderInventory).update({id: prevOrdInvs[i].id},{status: ORDER_INVENTORY_STATUS.COMPLETE_SPLIT, updater: user, updatedAt: new Date()})
|
|
157
142
|
}
|
|
158
143
|
}
|
|
159
144
|
}
|
|
@@ -7,8 +7,7 @@ import {
|
|
|
7
7
|
OrderInventory,
|
|
8
8
|
OrderInventoryPatch,
|
|
9
9
|
OrderNoGenerator,
|
|
10
|
-
ReleaseGood
|
|
11
|
-
OrderProduct
|
|
10
|
+
ReleaseGood
|
|
12
11
|
} from '@things-factory/sales-base'
|
|
13
12
|
import { Setting } from '@things-factory/setting-base'
|
|
14
13
|
import { Domain } from '@things-factory/shell'
|
|
@@ -125,7 +124,6 @@ export const generatePickingWorksheetDetailsResolver = {
|
|
|
125
124
|
name: WorksheetNoGenerator.pickingDetail(),
|
|
126
125
|
seq: 0,
|
|
127
126
|
targetInventory,
|
|
128
|
-
targetProduct: targetInventory.orderProduct,
|
|
129
127
|
type: WORKSHEET_TYPE.PICKING,
|
|
130
128
|
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
131
129
|
creator: user,
|
|
@@ -200,9 +198,7 @@ function _composeWorksheetDetails(
|
|
|
200
198
|
creator: user,
|
|
201
199
|
updater: user,
|
|
202
200
|
status: ORDER_INVENTORY_STATUS.READY_TO_PICK,
|
|
203
|
-
type: ORDER_TYPES.RELEASE_OF_GOODS
|
|
204
|
-
uom: record.uom,
|
|
205
|
-
orderProduct: { id: inv.orderProductId }
|
|
201
|
+
type: ORDER_TYPES.RELEASE_OF_GOODS.value
|
|
206
202
|
}
|
|
207
203
|
})
|
|
208
204
|
|
package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { EntityManager } from 'typeorm'
|
|
|
2
2
|
|
|
3
3
|
import { User } from '@things-factory/auth-base'
|
|
4
4
|
import { Product } from '@things-factory/product-base'
|
|
5
|
-
import { ORDER_INVENTORY_STATUS, OrderInventory, OrderNoGenerator
|
|
5
|
+
import { ORDER_INVENTORY_STATUS, OrderInventory, OrderNoGenerator } from '@things-factory/sales-base'
|
|
6
6
|
import { Domain } from '@things-factory/shell'
|
|
7
7
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
8
8
|
|
|
@@ -74,10 +74,6 @@ export async function generateReleaseGoodWorksheetDetails(
|
|
|
74
74
|
let targetInventory: OrderInventory = wsd.targetInventory
|
|
75
75
|
const inventory: Inventory = await tx.getRepository(Inventory).findOne(targetInventory.inventory.id)
|
|
76
76
|
|
|
77
|
-
let targetProduct: OrderProduct = await tx
|
|
78
|
-
.getRepository(OrderProduct)
|
|
79
|
-
.findOne({ where: { id: wsd.targetProduct.id } })
|
|
80
|
-
|
|
81
77
|
targetInventory = await tx.getRepository(OrderInventory).save({
|
|
82
78
|
...targetInventory,
|
|
83
79
|
domain,
|
|
@@ -91,7 +87,6 @@ export async function generateReleaseGoodWorksheetDetails(
|
|
|
91
87
|
product: await tx.getRepository(Product).findOne(productId),
|
|
92
88
|
packingType,
|
|
93
89
|
packingSize,
|
|
94
|
-
orderProduct: targetProduct,
|
|
95
90
|
creator: user,
|
|
96
91
|
updater: user
|
|
97
92
|
})
|
|
@@ -117,7 +112,6 @@ export async function generateReleaseGoodWorksheetDetails(
|
|
|
117
112
|
bizplace: worksheet.bizplace,
|
|
118
113
|
worksheet,
|
|
119
114
|
name: WorksheetNoGenerator.pickingDetail(),
|
|
120
|
-
targetProduct,
|
|
121
115
|
targetInventory,
|
|
122
116
|
type: WORKSHEET_TYPE.PICKING,
|
|
123
117
|
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
@@ -179,12 +179,6 @@ export const Mutation = /* GraphQL */ `
|
|
|
179
179
|
inventoryItemId: String!
|
|
180
180
|
): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
181
181
|
|
|
182
|
-
sealTote (
|
|
183
|
-
sealNo: String!
|
|
184
|
-
toteNo: String!
|
|
185
|
-
orderNo: String!
|
|
186
|
-
): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
187
|
-
|
|
188
182
|
unload (
|
|
189
183
|
worksheetDetailName: String!
|
|
190
184
|
inventory: InventoryPatch!
|
|
@@ -319,7 +313,6 @@ export const Mutation = /* GraphQL */ `
|
|
|
319
313
|
releaseQty: Int!
|
|
320
314
|
binLocation: String
|
|
321
315
|
serialNumber: String
|
|
322
|
-
toteNo: String
|
|
323
316
|
): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
324
317
|
|
|
325
318
|
scanProductPicking (
|
|
@@ -329,7 +322,6 @@ export const Mutation = /* GraphQL */ `
|
|
|
329
322
|
cartonId: String!
|
|
330
323
|
binLocation: String
|
|
331
324
|
serialNumber: String
|
|
332
|
-
toteNo: String
|
|
333
325
|
): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
334
326
|
|
|
335
327
|
sortingProduct (
|
|
@@ -338,7 +330,6 @@ export const Mutation = /* GraphQL */ `
|
|
|
338
330
|
productId: String!
|
|
339
331
|
sortingQty: Float!
|
|
340
332
|
serialNumber: String
|
|
341
|
-
toteNo: String
|
|
342
333
|
): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
343
334
|
|
|
344
335
|
scanProductSorting (
|
|
@@ -346,7 +337,6 @@ export const Mutation = /* GraphQL */ `
|
|
|
346
337
|
releaseGoodNo: String!
|
|
347
338
|
productBarcode: String!
|
|
348
339
|
serialNumber: String
|
|
349
|
-
toteNo: String
|
|
350
340
|
): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
351
341
|
|
|
352
342
|
packing (
|
|
@@ -12,7 +12,6 @@ export const WorksheetInfo = gql`
|
|
|
12
12
|
bizplace: Bizplace
|
|
13
13
|
containerNo: String
|
|
14
14
|
airwayBill: String
|
|
15
|
-
checkedRemarkBy: String
|
|
16
15
|
invoice: String
|
|
17
16
|
shippingProvider: String
|
|
18
17
|
trackingNo: String
|
|
@@ -23,7 +22,6 @@ export const WorksheetInfo = gql`
|
|
|
23
22
|
startedAt: String
|
|
24
23
|
ownCollection: Boolean
|
|
25
24
|
palletId: String
|
|
26
|
-
status: String
|
|
27
25
|
refNo: String
|
|
28
26
|
refNo2: String
|
|
29
27
|
refNo3: String
|
package/server/routes.ts
CHANGED
|
@@ -8,7 +8,6 @@ import { renderOrientageDO } from './controllers/render-orientage-do'
|
|
|
8
8
|
import { renderOrientageGRN } from './controllers/render-orientage-grn'
|
|
9
9
|
import { renderRODO } from './controllers/render-ro-do'
|
|
10
10
|
import { renderSeebuuGRN } from './controllers/render-seebuu-grn'
|
|
11
|
-
import { renderFmGRN } from './controllers/render-fm-grn'
|
|
12
11
|
import { renderInvoices } from './controllers/render-invoices'
|
|
13
12
|
import { renderPO } from './controllers/render-po'
|
|
14
13
|
|
|
@@ -46,10 +45,6 @@ process.on('bootstrap-module-domain-private-route' as any, (app, routes) => {
|
|
|
46
45
|
context.body = await renderSeebuuGRN(context.params, context)
|
|
47
46
|
})
|
|
48
47
|
|
|
49
|
-
routes.get('/view_fm_grn/:grnNo/:timezoneOffSet', async (context, next) => {
|
|
50
|
-
context.body = await renderFmGRN(context.params, context)
|
|
51
|
-
})
|
|
52
|
-
|
|
53
48
|
routes.get('/view_job_sheet/:ganNo/:timezoneOffSet', async (context, next) => {
|
|
54
49
|
context.body = await renderJobSheet(context.params, context)
|
|
55
50
|
})
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sealToteResolver = void 0;
|
|
4
|
-
const controllers_1 = require("../../../../controllers");
|
|
5
|
-
exports.sealToteResolver = {
|
|
6
|
-
async sealTote(_, { sealNo, toteNo, orderNo }, context) {
|
|
7
|
-
const { tx, domain, user } = context.state;
|
|
8
|
-
await sealTote(tx, domain, user, sealNo, toteNo, orderNo);
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
async function sealTote(tx, domain, user, sealNo, toteNo, orderNo) {
|
|
12
|
-
const worksheetController = new controllers_1.PickingWorksheetController(tx, domain, user);
|
|
13
|
-
await worksheetController.sealTote(sealNo, toteNo, orderNo);
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=seal-tote.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"seal-tote.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/seal-tote.ts"],"names":[],"mappings":";;;AAKA,yDAAoE;AAEvD,QAAA,gBAAgB,GAAG;IAC9B,KAAK,CAAC,QAAQ,CAAC,CAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAY;QAC9D,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,MAAM,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;CACF,CAAA;AAED,KAAK,UAAU,QAAQ,CACrB,EAAiB,EACjB,MAAc,EACd,IAAU,EACV,MAAc,EACd,MAAc,EACd,OAAe;IAEf,MAAM,mBAAmB,GAA+B,IAAI,wCAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACxG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AAC7D,CAAC"}
|