@things-factory/worksheet-base 5.0.0-alpha.5 → 5.0.0-alpha.52
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/template.js +1 -0
- package/dist-server/constants/template.js.map +1 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +24 -10
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/controllers/inbound/putaway-worksheet-controller.js +22 -13
- package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js +309 -4
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/index.js +2 -0
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/controllers/outbound/loading-worksheet-controller.js +56 -9
- package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +172 -7
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +500 -18
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/returning-worksheet-controller.js +11 -1
- package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js +215 -12
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/render-fm-grn.js +229 -0
- package/dist-server/controllers/render-fm-grn.js.map +1 -0
- package/dist-server/controllers/render-grn.js +77 -45
- package/dist-server/controllers/render-grn.js.map +1 -1
- package/dist-server/controllers/render-invoices.js +103 -65
- package/dist-server/controllers/render-invoices.js.map +1 -1
- package/dist-server/controllers/render-manifest.js +12 -5
- package/dist-server/controllers/render-manifest.js.map +1 -1
- package/dist-server/controllers/render-orientage-do.js.map +1 -1
- package/dist-server/controllers/render-orientage-grn.js +1 -0
- package/dist-server/controllers/render-orientage-grn.js.map +1 -1
- package/dist-server/controllers/render-po.js +147 -0
- package/dist-server/controllers/render-po.js.map +1 -0
- package/dist-server/controllers/render-ro-do.js +65 -1
- package/dist-server/controllers/render-ro-do.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +23 -1
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/entities/index.js +2 -1
- package/dist-server/entities/index.js.map +1 -1
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +174 -0
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +14 -1
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js +17 -0
- package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +12 -4
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js +30 -1
- package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js +27 -23
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/index.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +3 -0
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +48 -2
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/loading.js +3 -10
- package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +55 -21
- package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/index.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/packing/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +153 -132
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +2 -5
- package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js +13 -10
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.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 +14 -25
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/index.js +3 -1
- package/dist-server/graphql/resolvers/worksheet/picking/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js +49 -58
- package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.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/seal-tote.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +10 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +36 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js +11 -6
- 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/sorting-worksheet.js +6 -0
- package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +3 -2
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +0 -21
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/index.js +3 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/unload.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +3 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +2 -0
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheets.js +45 -5
- 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 +13 -8
- 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 +19 -4
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js +24 -34
- package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js +12 -3
- 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 +10 -2
- package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js +2 -5
- package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js.map +1 -1
- package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js +11 -0
- package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js.map +1 -0
- package/dist-server/graphql/types/worksheet/index.js +52 -11
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js +1 -0
- package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js.map +1 -1
- package/dist-server/graphql/types/worksheet/picking-assignment-status.js +2 -2
- package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +8 -3
- package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet-info.js +3 -0
- package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet-patch.js +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-patch.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet.js +1 -0
- package/dist-server/graphql/types/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/types/worksheet-detail/index.js +0 -2
- package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +5 -2
- package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
- package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js +1 -1
- package/dist-server/index.js +5 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/routes.js +12 -0
- package/dist-server/routes.js.map +1 -1
- package/dist-server/utils/inventory-util.js +14 -25
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/dist-server/utils/worksheet-no-generator.js +25 -28
- package/dist-server/utils/worksheet-no-generator.js.map +1 -1
- package/package.json +17 -17
- package/server/constants/template.ts +1 -0
- package/server/controllers/ecommerce/sellercraft-controller.ts +38 -10
- package/server/controllers/inbound/putaway-worksheet-controller.ts +27 -13
- package/server/controllers/inbound/unloading-worksheet-controller.ts +376 -8
- package/server/controllers/index.ts +3 -0
- package/server/controllers/outbound/loading-worksheet-controller.ts +94 -15
- package/server/controllers/outbound/packing-worksheet-controller.ts +224 -9
- package/server/controllers/outbound/picking-worksheet-controller.ts +653 -24
- package/server/controllers/outbound/returning-worksheet-controller.ts +12 -1
- package/server/controllers/outbound/sorting-worksheet-controller.ts +303 -18
- package/server/controllers/render-fm-grn.ts +266 -0
- package/server/controllers/render-grn.ts +95 -52
- package/server/controllers/render-invoices.ts +119 -72
- package/server/controllers/render-manifest.ts +12 -5
- package/server/controllers/render-orientage-do.ts +11 -11
- package/server/controllers/render-orientage-grn.ts +12 -11
- package/server/controllers/render-po.ts +170 -0
- package/server/controllers/render-ro-do.ts +93 -8
- package/server/controllers/worksheet-controller.ts +32 -3
- package/server/entities/index.ts +2 -1
- package/server/entities/warehouse-bizplace-onhand-inventory.ts +147 -0
- package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +14 -0
- package/server/graphql/resolvers/worksheet/cancel-draft-release-order.ts +27 -0
- package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +15 -5
- package/server/graphql/resolvers/worksheet/find-release-orders-by-task-no.ts +35 -2
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.ts +35 -25
- package/server/graphql/resolvers/worksheet/index.ts +3 -1
- package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +2 -0
- package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +67 -8
- package/server/graphql/resolvers/worksheet/loading/loading.ts +5 -12
- package/server/graphql/resolvers/worksheet/loading-worksheet.ts +66 -13
- package/server/graphql/resolvers/worksheet/packing/index.ts +3 -1
- package/server/graphql/resolvers/worksheet/packing/packing.ts +5 -4
- package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +9 -4
- package/server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.ts +24 -0
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +167 -145
- package/server/graphql/resolvers/worksheet/palletizing-pallets.ts +2 -2
- package/server/graphql/resolvers/worksheet/picking/assign-picking-worker.ts +15 -11
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +1 -1
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +18 -31
- package/server/graphql/resolvers/worksheet/picking/index.ts +5 -1
- package/server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.ts +62 -61
- package/server/graphql/resolvers/worksheet/picking/picking.ts +30 -4
- package/server/graphql/resolvers/worksheet/picking/scan-product-picking.ts +7 -4
- package/server/graphql/resolvers/worksheet/picking/seal-tote.ts +25 -0
- package/server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.ts +24 -0
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +13 -2
- package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +45 -2
- package/server/graphql/resolvers/worksheet/sorting/complete-order-sorting.ts +13 -9
- package/server/graphql/resolvers/worksheet/sorting/scan-product-sorting.ts +6 -4
- package/server/graphql/resolvers/worksheet/sorting/sorting-product.ts +6 -4
- package/server/graphql/resolvers/worksheet/sorting-worksheet.ts +6 -0
- package/server/graphql/resolvers/worksheet/unloaded-inventories.ts +6 -2
- package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +0 -25
- package/server/graphql/resolvers/worksheet/unloading/index.ts +4 -0
- package/server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.ts +26 -0
- package/server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.ts +24 -0
- package/server/graphql/resolvers/worksheet/unloading/unload.ts +3 -1
- package/server/graphql/resolvers/worksheet/unloading-worksheet.ts +3 -1
- package/server/graphql/resolvers/worksheet/worksheet.ts +2 -0
- package/server/graphql/resolvers/worksheet/worksheets.ts +64 -5
- package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +30 -14
- package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.ts +39 -11
- package/server/graphql/resolvers/worksheet-detail/generate-pallet-id.ts +46 -49
- package/server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.ts +15 -3
- package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +18 -1
- package/server/graphql/resolvers/worksheet-movement/create-worksheet-movement.ts +2 -2
- package/server/graphql/types/worksheet/find-release-orders-by-task-no.ts +8 -0
- package/server/graphql/types/worksheet/index.ts +52 -11
- package/server/graphql/types/worksheet/loaded-worksheet-detail.ts +1 -0
- package/server/graphql/types/worksheet/picking-assignment-status.ts +2 -2
- package/server/graphql/types/worksheet/worksheet-detail-info.ts +8 -3
- package/server/graphql/types/worksheet/worksheet-info.ts +3 -0
- package/server/graphql/types/worksheet/worksheet-patch.ts +1 -0
- package/server/graphql/types/worksheet/worksheet.ts +1 -0
- package/server/graphql/types/worksheet-detail/index.ts +0 -2
- package/server/graphql/types/worksheet-detail/inventory-detail.ts +5 -2
- package/server/graphql/types/worksheet-detail/worksheet-detail-patch.ts +1 -1
- package/server/index.ts +5 -0
- package/server/routes.ts +17 -0
- package/server/utils/inventory-util.ts +15 -23
- package/server/utils/worksheet-no-generator.ts +25 -25
|
@@ -16,9 +16,15 @@ export const worksheetsResolver = {
|
|
|
16
16
|
const arrivalNoticeParam: any = params.filters.find((param: any) => param.name === 'arrivalNoticeNo')
|
|
17
17
|
const arrivalNoticeRefNoParam = params.filters.find(param => param.name === 'arrivalNoticeRefNo')
|
|
18
18
|
const arrivalNoticeCrossDockingParam = params.filters.find(param => param.name === 'crossDocking')
|
|
19
|
+
const arrivalNoticeEtaDateParam = params.filters.find(param => param.name === 'etaDate')
|
|
19
20
|
const typeParam = params.filters.find(param => param.name === 'type')
|
|
20
21
|
|
|
21
|
-
if (
|
|
22
|
+
if (
|
|
23
|
+
arrivalNoticeParam ||
|
|
24
|
+
arrivalNoticeRefNoParam ||
|
|
25
|
+
arrivalNoticeCrossDockingParam ||
|
|
26
|
+
arrivalNoticeEtaDateParam
|
|
27
|
+
) {
|
|
22
28
|
let arrFilters = []
|
|
23
29
|
if (arrivalNoticeParam) {
|
|
24
30
|
params.filters.splice(
|
|
@@ -41,6 +47,9 @@ export const worksheetsResolver = {
|
|
|
41
47
|
)
|
|
42
48
|
arrFilters.push({ ...arrivalNoticeCrossDockingParam, name: 'crossDocking' })
|
|
43
49
|
}
|
|
50
|
+
if (arrivalNoticeEtaDateParam) {
|
|
51
|
+
params.filters.splice(params.filters.findIndex(item => item.name == 'etaDate'))
|
|
52
|
+
}
|
|
44
53
|
const foundArrivalNotices: ArrivalNotice[] = await getRepository(ArrivalNotice).find({
|
|
45
54
|
...convertListParams({ filters: arrFilters })
|
|
46
55
|
})
|
|
@@ -99,12 +108,16 @@ export const worksheetsResolver = {
|
|
|
99
108
|
const releaseGoodCrossDockingParam = params.filters.find(param => param.name === 'crossDocking')
|
|
100
109
|
const releaseGoodCourierOptionParam = params.filters.find(param => param.name === 'courierOption')
|
|
101
110
|
const releaseGoodPackingOptionParam = params.filters.find(param => param.name === 'packingOption')
|
|
111
|
+
const orderRemarkParam = params.filters.find(param => param.name === 'orderRemark')
|
|
112
|
+
|
|
113
|
+
const releaseGoodPickerOptionParam = params.filters.find(param => param.name === 'assignee')
|
|
102
114
|
if (
|
|
103
115
|
releaseGoodParam ||
|
|
104
116
|
releaseGoodRefNoParam ||
|
|
105
117
|
releaseGoodCrossDockingParam ||
|
|
106
118
|
releaseGoodCourierOptionParam ||
|
|
107
|
-
releaseGoodPackingOptionParam
|
|
119
|
+
releaseGoodPackingOptionParam ||
|
|
120
|
+
orderRemarkParam
|
|
108
121
|
) {
|
|
109
122
|
let arrFilters = []
|
|
110
123
|
if (releaseGoodParam) {
|
|
@@ -114,6 +127,7 @@ export const worksheetsResolver = {
|
|
|
114
127
|
)
|
|
115
128
|
arrFilters.push({ ...releaseGoodParam, name: 'name' })
|
|
116
129
|
}
|
|
130
|
+
|
|
117
131
|
if (releaseGoodRefNoParam) {
|
|
118
132
|
params.filters.splice(
|
|
119
133
|
params.filters.findIndex(item => item.name == 'releaseGoodRefNo'),
|
|
@@ -146,8 +160,21 @@ export const worksheetsResolver = {
|
|
|
146
160
|
arrFilters.push({ ...releaseGoodPackingOptionParam, name: 'packingOption' })
|
|
147
161
|
}
|
|
148
162
|
|
|
163
|
+
if (orderRemarkParam) {
|
|
164
|
+
params.filters.splice(
|
|
165
|
+
params.filters.findIndex(item => item.name == 'orderRemark'),
|
|
166
|
+
1
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
if (orderRemarkParam?.value == true) {
|
|
170
|
+
arrFilters.push({ operator: 'is_not_null', name: 'remark' })
|
|
171
|
+
} else if (orderRemarkParam?.value == false) {
|
|
172
|
+
arrFilters.push({ operator: 'is_null', name: 'remark' })
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
149
176
|
const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({
|
|
150
|
-
...convertListParams({ filters: arrFilters })
|
|
177
|
+
...convertListParams({ filters: arrFilters }, { searchables: ['arrivalNoticeNo', 'releaseGoodNo'] })
|
|
151
178
|
})
|
|
152
179
|
|
|
153
180
|
if (foundReleaseGoods && foundReleaseGoods.length) {
|
|
@@ -252,6 +279,31 @@ export const worksheetsResolver = {
|
|
|
252
279
|
}
|
|
253
280
|
}
|
|
254
281
|
|
|
282
|
+
//find assignee
|
|
283
|
+
|
|
284
|
+
const assigneeParam = params.filters.find(param => param.name === 'assignee')
|
|
285
|
+
let assigneeFilter = []
|
|
286
|
+
if (assigneeParam) {
|
|
287
|
+
params.filters.splice(
|
|
288
|
+
params.filters.findIndex(item => item.name == 'assignee'),
|
|
289
|
+
1
|
|
290
|
+
)
|
|
291
|
+
assigneeFilter.push({ ...assigneeParam, name: 'name' })
|
|
292
|
+
|
|
293
|
+
const foundAssignee: User[] = await getRepository(User).find({
|
|
294
|
+
...convertListParams({ filters: assigneeFilter })
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
if (foundAssignee) {
|
|
298
|
+
params.filters.push({
|
|
299
|
+
name: 'assigneeId',
|
|
300
|
+
operator: 'in',
|
|
301
|
+
value: foundAssignee.map((foundIC: User) => foundIC.id),
|
|
302
|
+
relation: false
|
|
303
|
+
})
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
|
|
255
307
|
////Set default bizplace filter
|
|
256
308
|
const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')
|
|
257
309
|
if (!bizplaceFilter && typeParam.value[0] !== WORKSHEET_TYPE.BATCH_PICKING) {
|
|
@@ -276,7 +328,7 @@ export const worksheetsResolver = {
|
|
|
276
328
|
params.filters = params.filters.filter(param => param.name !== 'name')
|
|
277
329
|
}
|
|
278
330
|
|
|
279
|
-
buildQuery(qb, params, context)
|
|
331
|
+
buildQuery(qb, params, context, { searchables: ['arrivalNoticeNo'] })
|
|
280
332
|
|
|
281
333
|
if (orderName !== '') {
|
|
282
334
|
qb.andWhere(
|
|
@@ -379,7 +431,14 @@ export const worksheetsResolver = {
|
|
|
379
431
|
|
|
380
432
|
qb.orderBy(sort)
|
|
381
433
|
|
|
382
|
-
|
|
434
|
+
let [items, total] = await qb.getManyAndCount()
|
|
435
|
+
|
|
436
|
+
items = items.map(item => {
|
|
437
|
+
return {
|
|
438
|
+
...item,
|
|
439
|
+
orderRemark: item?.releaseGood?.remark ? true : false
|
|
440
|
+
}
|
|
441
|
+
})
|
|
383
442
|
|
|
384
443
|
return { items, total }
|
|
385
444
|
} catch (error) {
|
|
@@ -1,20 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import {
|
|
1
|
+
import { EntityManager, getRepository } from 'typeorm'
|
|
2
|
+
|
|
3
|
+
import { User } from '@things-factory/auth-base'
|
|
4
|
+
import {
|
|
5
|
+
ORDER_INVENTORY_STATUS,
|
|
6
|
+
ORDER_PRODUCT_STATUS,
|
|
7
|
+
ORDER_TYPES,
|
|
8
|
+
OrderInventory,
|
|
9
|
+
OrderNoGenerator,
|
|
10
|
+
OrderProduct
|
|
11
|
+
} from '@things-factory/sales-base'
|
|
4
12
|
import { Setting } from '@things-factory/setting-base'
|
|
5
|
-
import {
|
|
13
|
+
import { Domain } from '@things-factory/shell'
|
|
14
|
+
import { Inventory } from '@things-factory/warehouse-base'
|
|
15
|
+
|
|
6
16
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
|
|
7
17
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
8
|
-
import {
|
|
9
|
-
import { User } from '@things-factory/auth-base'
|
|
10
|
-
import { Domain } from '@things-factory/shell'
|
|
11
|
-
import { generateBatchPickingWorksheetDetailsResolver } from './generate-batch-picking-worksheet-details'
|
|
12
|
-
import orderBy from 'lodash/orderBy'
|
|
18
|
+
import { inventoriesByStrategy, WorksheetNoGenerator } from '../../../utils'
|
|
13
19
|
|
|
14
20
|
export const generateBatchPickingWorksheetDetailsByBulkResolver = {
|
|
15
21
|
async generateBatchPickingWorksheetDetailsByBulk(
|
|
16
22
|
_: any,
|
|
17
|
-
{ worksheetId, bizplaceId, selectedItems
|
|
23
|
+
{ worksheetId, bizplaceId, selectedItems },
|
|
18
24
|
context: any
|
|
19
25
|
): Promise<Boolean> {
|
|
20
26
|
const { tx, user, domain }: { tx: EntityManager; user: User; domain: Domain } = context.state
|
|
@@ -50,7 +56,7 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
|
|
|
50
56
|
})
|
|
51
57
|
|
|
52
58
|
await Promise.all(
|
|
53
|
-
selectedItems.map(async (oi: OrderInventory) => {
|
|
59
|
+
selectedItems.map(async (oi: OrderInventory & { pickingStrategy: string }) => {
|
|
54
60
|
try {
|
|
55
61
|
let pOrderInventories = tx.getRepository(OrderInventory).find({
|
|
56
62
|
where: {
|
|
@@ -61,7 +67,7 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
|
|
|
61
67
|
packingSize: oi.packingSize,
|
|
62
68
|
status: ORDER_INVENTORY_STATUS.PENDING_SPLIT
|
|
63
69
|
},
|
|
64
|
-
relations: ['product', 'releaseGood', 'bizplace'],
|
|
70
|
+
relations: ['product', 'releaseGood', 'bizplace', 'orderProduct'],
|
|
65
71
|
order: {
|
|
66
72
|
releaseQty: 'DESC'
|
|
67
73
|
}
|
|
@@ -72,7 +78,6 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
|
|
|
72
78
|
...oi,
|
|
73
79
|
worksheetId: worksheet.id,
|
|
74
80
|
bizplaceId,
|
|
75
|
-
pickingStrategy,
|
|
76
81
|
locationSortingRules: inventoryAssignmentSetting ? JSON.parse(inventoryAssignmentSetting.value) : false
|
|
77
82
|
},
|
|
78
83
|
domain,
|
|
@@ -122,6 +127,14 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
|
|
|
122
127
|
.where('id = :id', { id: targetInventory.id })
|
|
123
128
|
await qbInv.execute()
|
|
124
129
|
|
|
130
|
+
// update order product status to ASSIGNED
|
|
131
|
+
await tx
|
|
132
|
+
.getRepository(OrderProduct)
|
|
133
|
+
.update(
|
|
134
|
+
{ id: orderInventory.orderProduct.id },
|
|
135
|
+
{ status: ORDER_PRODUCT_STATUS.ASSIGNED, updater: user }
|
|
136
|
+
)
|
|
137
|
+
|
|
125
138
|
// Create new order inventory with status -> READY_TO_PICK, type -> RELEASE_OF_GOODS
|
|
126
139
|
let newTargetInventory: OrderInventory = new OrderInventory()
|
|
127
140
|
newTargetInventory = {
|
|
@@ -139,7 +152,9 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
|
|
|
139
152
|
creator: user,
|
|
140
153
|
inventory: targetInventory,
|
|
141
154
|
releaseQty: allocatedQty,
|
|
142
|
-
releaseUomValue: allocatedUomValue
|
|
155
|
+
releaseUomValue: allocatedUomValue,
|
|
156
|
+
uom: orderInventory.uom,
|
|
157
|
+
orderProduct: orderInventory.orderProduct
|
|
143
158
|
}
|
|
144
159
|
newTargetInventory = await tx.getRepository(OrderInventory).save(newTargetInventory)
|
|
145
160
|
|
|
@@ -152,6 +167,7 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
|
|
|
152
167
|
bizplace: orderInventory.bizplace,
|
|
153
168
|
name: WorksheetNoGenerator.batchPickingDetail(),
|
|
154
169
|
targetInventory: newTargetInventory,
|
|
170
|
+
targetProduct: newTargetInventory.orderProduct,
|
|
155
171
|
type: WORKSHEET_TYPE.BATCH_PICKING,
|
|
156
172
|
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
157
173
|
creator: user
|
package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.ts
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
|
+
import { EntityManager } from 'typeorm'
|
|
2
|
+
|
|
3
|
+
import { User } from '@things-factory/auth-base'
|
|
1
4
|
import { Product } from '@things-factory/product-base'
|
|
2
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
ORDER_INVENTORY_STATUS,
|
|
7
|
+
ORDER_PRODUCT_STATUS,
|
|
8
|
+
OrderInventory,
|
|
9
|
+
OrderNoGenerator,
|
|
10
|
+
OrderProduct
|
|
11
|
+
} from '@things-factory/sales-base'
|
|
12
|
+
import { Domain } from '@things-factory/shell'
|
|
3
13
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
4
|
-
|
|
14
|
+
|
|
5
15
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
|
|
6
16
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
7
17
|
import { WorksheetNoGenerator } from '../../../utils'
|
|
8
|
-
import { User } from '@things-factory/auth-base'
|
|
9
|
-
import { Domain } from '@things-factory/shell'
|
|
10
18
|
|
|
11
19
|
export const generateBatchPickingWorksheetDetailsResolver = {
|
|
12
20
|
async generateBatchPickingWorksheetDetails(
|
|
@@ -15,7 +23,7 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
15
23
|
context: any
|
|
16
24
|
): Promise<void> {
|
|
17
25
|
const { tx, user, domain }: { tx: EntityManager; user: User; domain: Domain } = context.state
|
|
18
|
-
|
|
26
|
+
|
|
19
27
|
// 1. Find Related Worksheet
|
|
20
28
|
const worksheet: Worksheet = await tx.getRepository(Worksheet).findOne({
|
|
21
29
|
where: { name: worksheetNo, domain },
|
|
@@ -28,14 +36,21 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
28
36
|
})
|
|
29
37
|
|
|
30
38
|
// Only proceed if worksheet status IS "DEACTIVATED"
|
|
31
|
-
if(worksheet.status != WORKSHEET_STATUS.DEACTIVATED){
|
|
39
|
+
if (worksheet.status != WORKSHEET_STATUS.DEACTIVATED) {
|
|
32
40
|
return
|
|
33
41
|
}
|
|
34
42
|
|
|
35
43
|
// 2. Find all existing order inventory that is related to the product
|
|
36
44
|
let prevOrdInvs: OrderInventory[] = await tx.getRepository(OrderInventory).find({
|
|
37
|
-
where: {
|
|
38
|
-
|
|
45
|
+
where: {
|
|
46
|
+
domain,
|
|
47
|
+
refWorksheetId: worksheet.id,
|
|
48
|
+
product: productId,
|
|
49
|
+
batchId,
|
|
50
|
+
packingType,
|
|
51
|
+
status: ORDER_INVENTORY_STATUS.PENDING_SPLIT
|
|
52
|
+
},
|
|
53
|
+
relations: ['releaseGood', 'bizplace', 'orderProduct']
|
|
39
54
|
})
|
|
40
55
|
|
|
41
56
|
// Sort all release qty from highest to lowest
|
|
@@ -80,6 +95,8 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
80
95
|
newTargetInventory.packingType = prevOrdInv.packingType
|
|
81
96
|
newTargetInventory.packingSize = parseFloat(prevOrdInv.packingSize)
|
|
82
97
|
newTargetInventory.creator = user
|
|
98
|
+
newTargetInventory.uom = selectedOrdInv.uom
|
|
99
|
+
newTargetInventory.orderProduct = prevOrdInv.orderProduct
|
|
83
100
|
|
|
84
101
|
let inventory: Inventory = await tx.getRepository(Inventory).findOne(selectedOrdInv.inventory.id)
|
|
85
102
|
|
|
@@ -100,7 +117,7 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
100
117
|
|
|
101
118
|
requiredQty = fulfiledQty <= 0 ? 0 : fulfiledQty
|
|
102
119
|
requiredUomValue = fulfiledUomValue <= 0 ? 0 : fulfiledUomValue
|
|
103
|
-
|
|
120
|
+
|
|
104
121
|
await tx.getRepository(Inventory).update(
|
|
105
122
|
{ domain, id: inventory.id },
|
|
106
123
|
{
|
|
@@ -115,6 +132,11 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
115
132
|
}
|
|
116
133
|
)
|
|
117
134
|
|
|
135
|
+
// update order product status to ASSIGNED
|
|
136
|
+
await tx
|
|
137
|
+
.getRepository(OrderProduct)
|
|
138
|
+
.update({ id: prevOrdInv.orderProduct.id }, { status: ORDER_PRODUCT_STATUS.ASSIGNED, updater: user })
|
|
139
|
+
|
|
118
140
|
// Generate Worksheet Detail
|
|
119
141
|
let newWorksheetDetail: WorksheetDetail = new WorksheetDetail()
|
|
120
142
|
newWorksheetDetail = {
|
|
@@ -124,6 +146,7 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
124
146
|
bizplace: prevOrdInv.bizplace,
|
|
125
147
|
name: WorksheetNoGenerator.batchPickingDetail(),
|
|
126
148
|
targetInventory: newTargetInventory,
|
|
149
|
+
targetProduct: prevOrdInv.orderProduct,
|
|
127
150
|
type: WORKSHEET_TYPE.BATCH_PICKING,
|
|
128
151
|
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
129
152
|
creator: user
|
|
@@ -134,11 +157,16 @@ export const generateBatchPickingWorksheetDetailsResolver = {
|
|
|
134
157
|
selectedOrdInv.releaseUomValue = remainingUomValue <= 0 ? 0 : remainingUomValue
|
|
135
158
|
|
|
136
159
|
// insufficient qty for current order inventory, use the next inventory qty
|
|
137
|
-
if (selectedOrdInv.releaseQty == 0){
|
|
160
|
+
if (selectedOrdInv.releaseQty == 0) {
|
|
138
161
|
j = j + 1
|
|
139
162
|
}
|
|
140
163
|
}
|
|
141
|
-
await tx
|
|
164
|
+
await tx
|
|
165
|
+
.getRepository(OrderInventory)
|
|
166
|
+
.update(
|
|
167
|
+
{ id: prevOrdInvs[i].id },
|
|
168
|
+
{ status: ORDER_INVENTORY_STATUS.COMPLETE_SPLIT, updater: user, updatedAt: new Date() }
|
|
169
|
+
)
|
|
142
170
|
}
|
|
143
171
|
}
|
|
144
172
|
}
|
|
@@ -1,33 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { EntityManager, In } from 'typeorm'
|
|
2
|
+
|
|
3
3
|
import { generateId } from '@things-factory/id-rule-base'
|
|
4
|
-
import {
|
|
4
|
+
import { Domain } from '@things-factory/shell'
|
|
5
|
+
|
|
5
6
|
import { WorksheetDetail } from '../../../entities'
|
|
6
7
|
|
|
7
8
|
export const generatePalletIdResolver = {
|
|
8
9
|
async generatePalletId(_: any, { targets, type }, context: any) {
|
|
9
10
|
const { tx, domain }: { tx: EntityManager; domain: Domain } = context.state
|
|
10
|
-
// 1. get
|
|
11
|
-
const
|
|
12
|
-
const year = today.getFullYear()
|
|
13
|
-
const month = today.getMonth()
|
|
14
|
-
const day = today.getDate()
|
|
15
|
-
|
|
16
|
-
const yy = String(year).substr(String(year).length - 2)
|
|
17
|
-
const mm = String(month + 1).padStart(2, '0')
|
|
18
|
-
const dd = String(day).padStart(2, '0')
|
|
19
|
-
|
|
20
|
-
const date = yy + mm + dd
|
|
11
|
+
// 1. get date in yymmdd format
|
|
12
|
+
const date = new Date().toJSON().slice(0, 10).replace(/-/g, '').slice(2, 8)
|
|
21
13
|
let results = []
|
|
22
14
|
|
|
23
|
-
// 2. get worksheet
|
|
24
|
-
let ids = targets.map(target => target.id)
|
|
25
|
-
|
|
26
|
-
// - getRepository using In(array) to pass the value to defined variable
|
|
15
|
+
// 2. get worksheet details
|
|
27
16
|
const foundWorksheetDetails: WorksheetDetail[] = await tx.getRepository(WorksheetDetail).find({
|
|
28
17
|
where: {
|
|
29
18
|
domain,
|
|
30
|
-
id: In(
|
|
19
|
+
id: In(targets.map(target => target.id))
|
|
31
20
|
},
|
|
32
21
|
relations: [
|
|
33
22
|
'domain',
|
|
@@ -35,6 +24,8 @@ export const generatePalletIdResolver = {
|
|
|
35
24
|
'worksheet',
|
|
36
25
|
'worker',
|
|
37
26
|
'targetProduct',
|
|
27
|
+
'targetProduct.arrivalNotice',
|
|
28
|
+
'targetProduct.arrivalNotice.purchaseOrder',
|
|
38
29
|
'targetProduct.product',
|
|
39
30
|
'targetInventory',
|
|
40
31
|
'targetInventory.product',
|
|
@@ -44,8 +35,7 @@ export const generatePalletIdResolver = {
|
|
|
44
35
|
})
|
|
45
36
|
|
|
46
37
|
// 3. from worksheet detail get product name, product type, batchid, packing type, bizplace
|
|
47
|
-
|
|
48
|
-
if (foundWorksheetDetails.length <= 0) throw new Error('Unable to find worksheet details')
|
|
38
|
+
if (!foundWorksheetDetails?.length) throw new Error('Unable to find worksheet details')
|
|
49
39
|
else {
|
|
50
40
|
for (let i = 0; i < foundWorksheetDetails.length; i++) {
|
|
51
41
|
let foundWSD = foundWorksheetDetails[i]
|
|
@@ -53,39 +43,46 @@ export const generatePalletIdResolver = {
|
|
|
53
43
|
if (foundWSD.id === targets[idx].id) {
|
|
54
44
|
// 4. generate pallet id based on print qty > call generateId resolver
|
|
55
45
|
for (let i = 0; i < targets[idx].printQty; i++) {
|
|
56
|
-
|
|
57
|
-
domain,
|
|
58
|
-
type,
|
|
59
|
-
seed: {
|
|
60
|
-
batchId: foundWSD?.targetProduct?.batchId
|
|
61
|
-
? foundWSD.targetProduct.batchId
|
|
62
|
-
: foundWSD?.targetInventory?.batchId
|
|
63
|
-
? foundWSD.targetInventory.batchId
|
|
64
|
-
: foundWSD.targetVas.targetBatchId,
|
|
65
|
-
date: date
|
|
66
|
-
}
|
|
67
|
-
})
|
|
68
|
-
|
|
46
|
+
let result: any = {}
|
|
69
47
|
// 5. map all data to be returned
|
|
70
|
-
if (foundWSD.targetProduct
|
|
71
|
-
|
|
48
|
+
if (foundWSD.targetProduct) {
|
|
49
|
+
result = {
|
|
72
50
|
...foundWSD.targetProduct,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
51
|
+
bizplace: foundWSD.bizplace,
|
|
52
|
+
orderProductRemark: foundWSD.targetProduct.remark,
|
|
53
|
+
purchaseOrderNo: foundWSD.targetProduct.arrivalNotice?.purchaseOrder?.name || '',
|
|
54
|
+
arrivalNoticeRefNo: foundWSD.targetProduct.arrivalNotice?.refNo || ''
|
|
55
|
+
}
|
|
56
|
+
} else if (foundWSD.targetInventory) {
|
|
57
|
+
result = {
|
|
78
58
|
...foundWSD.targetInventory,
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
59
|
+
bizplace: foundWSD.bizplace,
|
|
60
|
+
orderProductRemark: '',
|
|
61
|
+
purchaseOrderNo: '',
|
|
62
|
+
arrivalNoticeRefNo: ''
|
|
63
|
+
}
|
|
64
|
+
} else if (foundWSD.targetVas) {
|
|
65
|
+
result = {
|
|
84
66
|
...foundWSD.targetVas,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
67
|
+
bizplace: foundWSD.bizplace,
|
|
68
|
+
batchId: foundWSD.targetVas.targetBatchId,
|
|
69
|
+
orderProductRemark: '',
|
|
70
|
+
purchaseOrderNo: '',
|
|
71
|
+
arrivalNoticeRefNo: ''
|
|
72
|
+
}
|
|
88
73
|
}
|
|
74
|
+
|
|
75
|
+
results.push({
|
|
76
|
+
...result,
|
|
77
|
+
palletId: await generateId({
|
|
78
|
+
domain,
|
|
79
|
+
type,
|
|
80
|
+
seed: {
|
|
81
|
+
batchId: result.batchId || '',
|
|
82
|
+
date
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
})
|
|
89
86
|
}
|
|
90
87
|
}
|
|
91
88
|
}
|
|
@@ -3,10 +3,12 @@ import { EntityManager } from 'typeorm'
|
|
|
3
3
|
import { User } from '@things-factory/auth-base'
|
|
4
4
|
import {
|
|
5
5
|
ORDER_INVENTORY_STATUS,
|
|
6
|
+
ORDER_PRODUCT_STATUS,
|
|
6
7
|
ORDER_TYPES,
|
|
7
8
|
OrderInventory,
|
|
8
9
|
OrderInventoryPatch,
|
|
9
10
|
OrderNoGenerator,
|
|
11
|
+
OrderProduct,
|
|
10
12
|
ReleaseGood
|
|
11
13
|
} from '@things-factory/sales-base'
|
|
12
14
|
import { Setting } from '@things-factory/setting-base'
|
|
@@ -20,7 +22,7 @@ import { WorksheetNoGenerator } from '../../../utils'
|
|
|
20
22
|
export const generatePickingWorksheetDetailsResolver = {
|
|
21
23
|
async generatePickingWorksheetDetails(
|
|
22
24
|
_: any,
|
|
23
|
-
{ bizplaceId, selectedItems,
|
|
25
|
+
{ bizplaceId, selectedItems, worksheetNo, locationSortingRules },
|
|
24
26
|
context: any
|
|
25
27
|
): Promise<Boolean> {
|
|
26
28
|
const { tx, user, domain }: { tx: EntityManager; user: User; domain: Domain } = context.state
|
|
@@ -54,7 +56,6 @@ export const generatePickingWorksheetDetailsResolver = {
|
|
|
54
56
|
bizplaceId,
|
|
55
57
|
worksheetId,
|
|
56
58
|
selectedItems,
|
|
57
|
-
pickingStrategy,
|
|
58
59
|
locationSortingRules,
|
|
59
60
|
tx
|
|
60
61
|
)
|
|
@@ -117,6 +118,11 @@ export const generatePickingWorksheetDetailsResolver = {
|
|
|
117
118
|
.where('id = :id', { id: targetInventory.inventory.id })
|
|
118
119
|
.execute()
|
|
119
120
|
|
|
121
|
+
// update order product status to ASSIGNED
|
|
122
|
+
await tx
|
|
123
|
+
.getRepository(OrderProduct)
|
|
124
|
+
.update({ id: targetInventory.orderProduct.id }, { status: ORDER_PRODUCT_STATUS.ASSIGNED, updater: user })
|
|
125
|
+
|
|
120
126
|
// 7. collect new worksheet details records
|
|
121
127
|
const worksheetDetail: WorksheetDetail = Object.assign(new WorksheetDetail(), {
|
|
122
128
|
domain,
|
|
@@ -125,6 +131,7 @@ export const generatePickingWorksheetDetailsResolver = {
|
|
|
125
131
|
name: WorksheetNoGenerator.pickingDetail(),
|
|
126
132
|
seq: 0,
|
|
127
133
|
targetInventory,
|
|
134
|
+
targetProduct: targetInventory.orderProduct,
|
|
128
135
|
type: WORKSHEET_TYPE.PICKING,
|
|
129
136
|
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
130
137
|
creator: user,
|
|
@@ -162,6 +169,9 @@ function _composeWorksheetDetails(
|
|
|
162
169
|
|
|
163
170
|
while (compReleaseQty < record.releaseQty) {
|
|
164
171
|
const inv = inventories[idx]
|
|
172
|
+
|
|
173
|
+
if (!inv) break
|
|
174
|
+
|
|
165
175
|
let releaseQty: number = 0
|
|
166
176
|
let releaseUomValue: number = 0
|
|
167
177
|
|
|
@@ -196,7 +206,9 @@ function _composeWorksheetDetails(
|
|
|
196
206
|
creator: user,
|
|
197
207
|
updater: user,
|
|
198
208
|
status: ORDER_INVENTORY_STATUS.READY_TO_PICK,
|
|
199
|
-
type: ORDER_TYPES.RELEASE_OF_GOODS
|
|
209
|
+
type: ORDER_TYPES.RELEASE_OF_GOODS,
|
|
210
|
+
uom: record.uom,
|
|
211
|
+
orderProduct: { id: inv.orderProductId }
|
|
200
212
|
}
|
|
201
213
|
})
|
|
202
214
|
|
package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts
CHANGED
|
@@ -2,7 +2,13 @@ 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 {
|
|
5
|
+
import {
|
|
6
|
+
ORDER_INVENTORY_STATUS,
|
|
7
|
+
ORDER_PRODUCT_STATUS,
|
|
8
|
+
OrderInventory,
|
|
9
|
+
OrderNoGenerator,
|
|
10
|
+
OrderProduct
|
|
11
|
+
} from '@things-factory/sales-base'
|
|
6
12
|
import { Domain } from '@things-factory/shell'
|
|
7
13
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
8
14
|
|
|
@@ -74,6 +80,10 @@ export async function generateReleaseGoodWorksheetDetails(
|
|
|
74
80
|
let targetInventory: OrderInventory = wsd.targetInventory
|
|
75
81
|
const inventory: Inventory = await tx.getRepository(Inventory).findOne(targetInventory.inventory.id)
|
|
76
82
|
|
|
83
|
+
let targetProduct: OrderProduct = await tx
|
|
84
|
+
.getRepository(OrderProduct)
|
|
85
|
+
.findOne({ where: { id: wsd.targetProduct.id } })
|
|
86
|
+
|
|
77
87
|
targetInventory = await tx.getRepository(OrderInventory).save({
|
|
78
88
|
...targetInventory,
|
|
79
89
|
domain,
|
|
@@ -87,6 +97,7 @@ export async function generateReleaseGoodWorksheetDetails(
|
|
|
87
97
|
product: await tx.getRepository(Product).findOne(productId),
|
|
88
98
|
packingType,
|
|
89
99
|
packingSize,
|
|
100
|
+
orderProduct: targetProduct,
|
|
90
101
|
creator: user,
|
|
91
102
|
updater: user
|
|
92
103
|
})
|
|
@@ -105,6 +116,11 @@ export async function generateReleaseGoodWorksheetDetails(
|
|
|
105
116
|
updater: user
|
|
106
117
|
})
|
|
107
118
|
|
|
119
|
+
// update order product status to ASSIGNED
|
|
120
|
+
await tx
|
|
121
|
+
.getRepository(OrderProduct)
|
|
122
|
+
.update({ id: targetProduct.id }, { status: ORDER_PRODUCT_STATUS.ASSIGNED, updater: user })
|
|
123
|
+
|
|
108
124
|
// 3. Create worksheet details
|
|
109
125
|
await tx.getRepository(WorksheetDetail).save({
|
|
110
126
|
...wsd,
|
|
@@ -112,6 +128,7 @@ export async function generateReleaseGoodWorksheetDetails(
|
|
|
112
128
|
bizplace: worksheet.bizplace,
|
|
113
129
|
worksheet,
|
|
114
130
|
name: WorksheetNoGenerator.pickingDetail(),
|
|
131
|
+
targetProduct,
|
|
115
132
|
targetInventory,
|
|
116
133
|
type: WORKSHEET_TYPE.PICKING,
|
|
117
134
|
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { EntityManager } from 'typeorm'
|
|
2
2
|
import { WorksheetMovement } from '../../../entities'
|
|
3
|
-
import
|
|
3
|
+
import { v4 as uuidv4 } from 'uuid'
|
|
4
4
|
|
|
5
5
|
export const createWorksheetMovement = {
|
|
6
6
|
async createWorksheetMovement(_, { worksheetMovement: attrs }, context: any) {
|
|
7
7
|
const { tx }: { tx: EntityManager } = context.state
|
|
8
8
|
const repository = tx.getRepository(WorksheetMovement)
|
|
9
9
|
const newWorksheetMovement = {
|
|
10
|
-
id:
|
|
10
|
+
id: uuidv4(),
|
|
11
11
|
...attrs
|
|
12
12
|
}
|
|
13
13
|
|