@things-factory/worksheet-base 4.0.0-y.0 → 4.0.4
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/ecommerce-controller.js +23 -9
- package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
- package/dist-server/controllers/ecommerce/index.js +1 -0
- package/dist-server/controllers/ecommerce/index.js.map +1 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +168 -0
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -0
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js +6 -5
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/index.js +1 -0
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +43 -8
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +16 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +17 -9
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/render-grn.js +192 -0
- package/dist-server/controllers/render-grn.js.map +1 -0
- package/dist-server/controllers/render-job-sheet.js +51 -35
- package/dist-server/controllers/render-job-sheet.js.map +1 -1
- package/dist-server/controllers/render-kimeda-grn.js +12 -5
- package/dist-server/controllers/render-kimeda-grn.js.map +1 -1
- package/dist-server/controllers/render-ro-do.js +19 -5
- package/dist-server/controllers/render-ro-do.js.map +1 -1
- package/dist-server/controllers/render-seebuu-grn.js +9 -3
- package/dist-server/controllers/render-seebuu-grn.js.map +1 -1
- package/dist-server/controllers/vas/vas-worksheet-controller.js +75 -14
- package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +61 -8
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/pallet/pallet-outbound.js +1 -1
- package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +23 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js +4 -2
- package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js +25 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/index.js +5 -4
- package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js +2 -2
- package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +13 -1
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +24 -38
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js +13 -1
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +13 -1
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +60 -19
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +20 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +24 -14
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +19 -0
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +124 -149
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js +13 -4
- package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +21 -2
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +18 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +302 -11
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +137 -31
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +157 -42
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +35 -21
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +33 -27
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheets.js +39 -10
- 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 +1 -1
- 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-release-good-worksheet-details.js +3 -2
- package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js +3 -2
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -1
- package/dist-server/graphql/types/index.js +2 -1
- package/dist-server/graphql/types/index.js.map +1 -1
- package/dist-server/graphql/types/pallet/index.js +10 -0
- package/dist-server/graphql/types/pallet/index.js.map +1 -0
- package/dist-server/graphql/types/worksheet/airwaybill.js +10 -0
- package/dist-server/graphql/types/worksheet/airwaybill.js.map +1 -0
- package/dist-server/graphql/types/worksheet/index.js +10 -2
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet-info.js +2 -0
- package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
- package/dist-server/graphql/types/worksheet-detail/index.js +2 -1
- package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +1 -0
- package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
- package/dist-server/routes.js +10 -6
- package/dist-server/routes.js.map +1 -1
- package/dist-server/utils/inventory-util.js +7 -3
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +16 -15
- package/server/controllers/ecommerce/ecommerce-controller.ts +37 -10
- package/server/controllers/ecommerce/index.ts +1 -0
- package/server/controllers/ecommerce/sellercraft-controller.ts +223 -0
- package/server/controllers/inbound/unloading-worksheet-controller.ts +16 -13
- package/server/controllers/index.ts +1 -0
- package/server/controllers/inspect/cycle-count-worksheet-controller.ts +108 -43
- package/server/controllers/outbound/packing-worksheet-controller.ts +21 -4
- package/server/controllers/outbound/picking-worksheet-controller.ts +26 -11
- package/server/controllers/render-grn.ts +218 -0
- package/server/controllers/render-job-sheet.ts +51 -39
- package/server/controllers/render-kimeda-grn.ts +16 -12
- package/server/controllers/render-ro-do.ts +22 -6
- package/server/controllers/render-seebuu-grn.ts +12 -12
- package/server/controllers/vas/vas-worksheet-controller.ts +104 -23
- package/server/controllers/worksheet-controller.ts +87 -22
- package/server/graphql/resolvers/pallet/pallet-outbound.ts +2 -1
- package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +30 -2
- package/server/graphql/resolvers/worksheet/cycle-count-worksheet.ts +7 -4
- package/server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.ts +30 -0
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.ts +18 -3
- package/server/graphql/resolvers/worksheet/index.ts +6 -4
- package/server/graphql/resolvers/worksheet/not-tally-target-inventories.ts +4 -2
- package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +20 -3
- package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +30 -49
- package/server/graphql/resolvers/worksheet/packing/packing.ts +22 -3
- package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +22 -3
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +71 -20
- package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +32 -3
- package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +31 -17
- package/server/graphql/resolvers/worksheet/picking/assign-picking-inventories.ts +4 -3
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +31 -3
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +143 -175
- package/server/graphql/resolvers/worksheet/picking/undo-picking-assignment.ts +5 -4
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +5 -2
- package/server/graphql/resolvers/worksheet/recommend-putway-location.ts +1 -1
- package/server/graphql/resolvers/worksheet/replace-picking-pallets.ts +22 -9
- package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +27 -4
- package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.ts +23 -2
- package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +452 -14
- package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.ts +36 -1
- package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.ts +8 -2
- package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +185 -56
- package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +210 -54
- package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +64 -32
- package/server/graphql/resolvers/worksheet/worksheet.ts +67 -62
- package/server/graphql/resolvers/worksheet/worksheets.ts +51 -13
- package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +1 -0
- package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +2 -1
- package/server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.ts +2 -1
- package/server/graphql/types/index.ts +2 -1
- package/server/graphql/types/pallet/index.ts +6 -0
- package/server/graphql/types/worksheet/airwaybill.ts +7 -0
- package/server/graphql/types/worksheet/index.ts +10 -2
- package/server/graphql/types/worksheet/worksheet-info.ts +2 -0
- package/server/graphql/types/worksheet-detail/index.ts +2 -1
- package/server/graphql/types/worksheet-detail/inventory-detail.ts +1 -0
- package/server/routes.ts +11 -6
- package/server/utils/inventory-util.ts +14 -5
|
@@ -1,20 +1,40 @@
|
|
|
1
|
+
import { EntityManager } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { User } from '@things-factory/auth-base'
|
|
2
4
|
import { Bizplace } from '@things-factory/biz-base'
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
+
import {
|
|
6
|
+
OrderVas,
|
|
7
|
+
VasOrder
|
|
8
|
+
} from '@things-factory/sales-base'
|
|
5
9
|
import { Domain } from '@things-factory/shell'
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
import {
|
|
10
|
+
import { Inventory } from '@things-factory/warehouse-base'
|
|
11
|
+
|
|
12
|
+
import {
|
|
13
|
+
Worksheet,
|
|
14
|
+
WorksheetDetail
|
|
15
|
+
} from '../../../../../entities'
|
|
9
16
|
import {
|
|
17
|
+
getWorksheetDetailByName,
|
|
18
|
+
updateRelatedOrderVas
|
|
19
|
+
} from '../common-utils'
|
|
20
|
+
import {
|
|
21
|
+
FeaturedInventoryInterface,
|
|
10
22
|
OperationGuideInterface,
|
|
11
23
|
PackingUnits,
|
|
12
|
-
PalletChangesInterface,
|
|
13
24
|
RefOrderType,
|
|
14
25
|
RepackagingGuide,
|
|
15
|
-
RepackedInvInfo
|
|
26
|
+
RepackedInvInfo,
|
|
27
|
+
TemporaryPalletChangesInterface
|
|
16
28
|
} from '../interfaces'
|
|
17
29
|
|
|
30
|
+
/** STEPS TO UNDO REPACKAGING
|
|
31
|
+
* 1. get the pallet id to undo (pallet id must be the LV one and not the parent)
|
|
32
|
+
* 2. revert the qty of repackedFrom into the original inventory and featuredInv (if applicable)
|
|
33
|
+
* 3. remove the repackedInv for undo item
|
|
34
|
+
* 4. update the requiredPkgQty
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
|
|
18
38
|
export const undoRepackagingResolver = {
|
|
19
39
|
async undoRepackaging(_: any, { worksheetDetailName, fromPalletId, toPalletId }, context: any) {
|
|
20
40
|
/**
|
|
@@ -30,37 +50,49 @@ export const undoRepackagingResolver = {
|
|
|
30
50
|
let operationGuide: OperationGuideInterface<RepackagingGuide> = JSON.parse(targetVas.operationGuide)
|
|
31
51
|
let operationGuideData: RepackagingGuide = operationGuide.data
|
|
32
52
|
let repackedInvs: RepackedInvInfo[] = operationGuideData.repackedInvs
|
|
53
|
+
let featuredInvs: FeaturedInventoryInterface[] = operationGuideData.featuredInvs
|
|
33
54
|
let undoInventory: RepackedInvInfo = repackedInvs.find((ri: RepackedInvInfo) => ri.palletId === toPalletId)
|
|
34
55
|
if (!undoInventory) throw new Error(`Couldn't find pallet, using pallet id (${toPalletId})`)
|
|
35
56
|
|
|
36
57
|
const packingUnit: string = operationGuideData.packingUnit
|
|
37
58
|
const stdAmount: number = operationGuideData.stdAmount
|
|
38
59
|
|
|
39
|
-
undoInventory.repackedFrom = undoInventory.repackedFrom.filter(
|
|
40
|
-
|
|
41
|
-
)
|
|
60
|
+
// undoInventory.repackedFrom = undoInventory.repackedFrom.filter(
|
|
61
|
+
// (rf: TemporaryPalletChangesInterface) => rf.fromPalletId !== fromPalletId
|
|
62
|
+
// )
|
|
42
63
|
|
|
43
64
|
// 완전히 Repacked 상태인 pallet count
|
|
44
|
-
const repackedPkgQty: number =
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
65
|
+
// const repackedPkgQty: number =
|
|
66
|
+
// undoInventory.repackedFrom.reduce((totalAmount: number, rf: TemporaryPalletChangesInterface) => {
|
|
67
|
+
// const amount: number = packingUnit === PackingUnits.QTY ? rf.reducedUnitQty : rf.reducedUomValue
|
|
68
|
+
// totalAmount += amount
|
|
69
|
+
// return totalAmount
|
|
70
|
+
// }, 0) / stdAmount
|
|
50
71
|
|
|
51
72
|
// Undo를 발생한 수량 차이를 계산
|
|
52
|
-
undoInventory.repackedPkgQty = repackedPkgQty
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
73
|
+
// undoInventory.repackedPkgQty = repackedPkgQty
|
|
74
|
+
|
|
75
|
+
const updatedRepackedInvs: RepackedInvInfo[] = repackedInvs.filter(
|
|
76
|
+
(ri: RepackedInvInfo) => ri.palletId !== toPalletId
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
const updatedFeaturedInvs: FeaturedInventoryInterface[] = featuredInvs.reduce(
|
|
80
|
+
(inventories: FeaturedInventoryInterface[], currInv: FeaturedInventoryInterface) => {
|
|
81
|
+
undoInventory.repackedFrom.forEach(undoInv => {
|
|
82
|
+
if (undoInv.fromPalletId == currInv.palletId) {
|
|
83
|
+
if (packingUnit == PackingUnits.QTY) {
|
|
84
|
+
currInv.currentUnitQty += undoInv.reducedUnitQty
|
|
85
|
+
} else if (packingUnit == PackingUnits.UOM) {
|
|
86
|
+
currInv.currentUomValue += undoInv.reducedUomValue
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
inventories.push(currInv)
|
|
92
|
+
return inventories
|
|
93
|
+
},
|
|
94
|
+
[]
|
|
95
|
+
)
|
|
64
96
|
|
|
65
97
|
const requiredPackageQty: number = await getRequiredPackageQty(
|
|
66
98
|
tx,
|
|
@@ -74,17 +106,17 @@ export const undoRepackagingResolver = {
|
|
|
74
106
|
const repackedPackageQty: number = getRepackedPackageQty(updatedRepackedInvs)
|
|
75
107
|
|
|
76
108
|
operationGuide.data.requiredPackageQty = requiredPackageQty - repackedPackageQty
|
|
109
|
+
operationGuide.data.featuredInvs = updatedFeaturedInvs
|
|
77
110
|
operationGuide.data.repackedInvs = updatedRepackedInvs
|
|
78
111
|
|
|
79
112
|
if (!(refOrder instanceof VasOrder)) {
|
|
80
|
-
// const palletChanges:
|
|
113
|
+
// const palletChanges: TemporaryPalletChangesInterface[] = operationGuide.data.repackedInvs
|
|
81
114
|
// .map((ri: RepackedInvInfo) => ri.repackedFrom)
|
|
82
115
|
// .flat()
|
|
83
116
|
|
|
84
|
-
const palletChanges:
|
|
85
|
-
await dismissInventory(tx, wsd, targetVas, palletChanges, fromPalletId)
|
|
117
|
+
const palletChanges: TemporaryPalletChangesInterface[] = []
|
|
118
|
+
// await dismissInventory(tx, wsd, targetVas, palletChanges, fromPalletId)
|
|
86
119
|
}
|
|
87
|
-
|
|
88
120
|
// Update every order vas to share same operation guide
|
|
89
121
|
await updateRelatedOrderVas(tx, domain, bizplace, wsd, targetVas, operationGuide, user)
|
|
90
122
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { MarketplaceOrder } from '@things-factory/marketplace-base'
|
|
2
|
-
import { OrderInventory, OrderProduct, OrderVas, ORDER_INVENTORY_STATUS } from '@things-factory/sales-base'
|
|
3
|
-
import { Domain } from '@things-factory/shell'
|
|
4
1
|
import { Equal, getRepository, Not } from 'typeorm'
|
|
2
|
+
|
|
3
|
+
import { MarketplaceOrder, MarketplaceOrderShipping } from '@things-factory/marketplace-base'
|
|
4
|
+
import { ORDER_INVENTORY_STATUS, OrderInventory, OrderProduct, OrderVas } from '@things-factory/sales-base'
|
|
5
|
+
import { Setting } from '@things-factory/setting-base'
|
|
6
|
+
import { Domain } from '@things-factory/shell'
|
|
7
|
+
|
|
5
8
|
import { WORKSHEET_TYPE } from '../../../constants'
|
|
6
9
|
import { Worksheet } from '../../../entities'
|
|
7
|
-
import { Setting } from '@things-factory/setting-base'
|
|
8
|
-
import orderBy from 'lodash/orderBy'
|
|
9
10
|
|
|
10
11
|
interface WorksheetInterface extends Worksheet {
|
|
11
12
|
orderProducts: OrderProduct[]
|
|
@@ -82,34 +83,25 @@ export const worksheetResolver = {
|
|
|
82
83
|
})
|
|
83
84
|
}
|
|
84
85
|
|
|
85
|
-
|
|
86
86
|
if (worksheet.type === WORKSHEET_TYPE.BATCH_PICKING) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
.andWhere('"oi"."bizplace_id" = :bizplace')
|
|
104
|
-
.andWhere('"oi"."ref_worksheet_id" = :refWorksheetId')
|
|
105
|
-
.setParameters({
|
|
106
|
-
domain: domain.id,
|
|
107
|
-
bizplace: worksheet.bizplace.id,
|
|
108
|
-
refWorksheetId: worksheet.id
|
|
109
|
-
})
|
|
110
|
-
|
|
87
|
+
let qbOrderInventories = getRepository(OrderInventory)
|
|
88
|
+
.createQueryBuilder('oi')
|
|
89
|
+
.leftJoinAndSelect('oi.releaseGood', 'releaseGood')
|
|
90
|
+
.leftJoinAndSelect('oi.inventory', 'inventory')
|
|
91
|
+
.leftJoinAndSelect('oi.product', 'product')
|
|
92
|
+
.leftJoinAndSelect('inventory.location', 'location')
|
|
93
|
+
.leftJoinAndSelect('oi.bizplace', 'bizplace')
|
|
94
|
+
.where('"oi"."domain_id" = :domain')
|
|
95
|
+
.andWhere('"oi"."bizplace_id" = :bizplace')
|
|
96
|
+
.andWhere('"oi"."ref_worksheet_id" = :refWorksheetId')
|
|
97
|
+
.setParameters({
|
|
98
|
+
domain: domain.id,
|
|
99
|
+
bizplace: worksheet.bizplace.id,
|
|
100
|
+
refWorksheetId: worksheet.id
|
|
101
|
+
})
|
|
102
|
+
|
|
111
103
|
let sortingSetting: Setting = await pWorksheetPickingItemSorting
|
|
112
|
-
if(sortingSetting?.value){
|
|
104
|
+
if (sortingSetting?.value) {
|
|
113
105
|
let settingValue = JSON.parse(sortingSetting.value)
|
|
114
106
|
for (const key in settingValue) {
|
|
115
107
|
qbOrderInventories.addOrderBy(`location.${key}`, settingValue[key] ? 'ASC' : 'DESC')
|
|
@@ -121,35 +113,26 @@ export const worksheetResolver = {
|
|
|
121
113
|
}
|
|
122
114
|
|
|
123
115
|
if (worksheet?.releaseGood?.id) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
.andWhere('"oi"."bizplace_id" = :bizplace')
|
|
142
|
-
.andWhere('"oi"."release_good_id" = :releaseGood')
|
|
143
|
-
.andWhere('"oi"."status" != :status')
|
|
144
|
-
.setParameters({
|
|
145
|
-
domain: domain.id,
|
|
146
|
-
bizplace: worksheet.bizplace.id,
|
|
147
|
-
releaseGood: worksheet.releaseGood.id,
|
|
148
|
-
status: ORDER_INVENTORY_STATUS.CANCELLED
|
|
149
|
-
})
|
|
116
|
+
let qbOrderInventories = getRepository(OrderInventory)
|
|
117
|
+
.createQueryBuilder('oi')
|
|
118
|
+
.leftJoinAndSelect('oi.releaseGood', 'releaseGood')
|
|
119
|
+
.leftJoinAndSelect('oi.inventory', 'inventory')
|
|
120
|
+
.leftJoinAndSelect('oi.product', 'product')
|
|
121
|
+
.leftJoinAndSelect('inventory.location', 'location')
|
|
122
|
+
.leftJoinAndSelect('oi.bizplace', 'bizplace')
|
|
123
|
+
.where('"oi"."domain_id" = :domain')
|
|
124
|
+
.andWhere('"oi"."bizplace_id" = :bizplace')
|
|
125
|
+
.andWhere('"oi"."release_good_id" = :releaseGood')
|
|
126
|
+
.andWhere('"oi"."status" NOT IN (:...statuses)')
|
|
127
|
+
.setParameters({
|
|
128
|
+
domain: domain.id,
|
|
129
|
+
bizplace: worksheet.bizplace.id,
|
|
130
|
+
releaseGood: worksheet.releaseGood.id,
|
|
131
|
+
statuses: [ORDER_INVENTORY_STATUS.CANCELLED, ORDER_INVENTORY_STATUS.REPLACED]
|
|
132
|
+
})
|
|
150
133
|
|
|
151
134
|
let sortingSetting: Setting = await pWorksheetPickingItemSorting
|
|
152
|
-
if(sortingSetting?.value){
|
|
135
|
+
if (sortingSetting?.value) {
|
|
153
136
|
let settingValue = JSON.parse(sortingSetting.value)
|
|
154
137
|
for (const key in settingValue) {
|
|
155
138
|
qbOrderInventories.addOrderBy(`location.${key}`, settingValue[key] ? 'ASC' : 'DESC')
|
|
@@ -159,10 +142,32 @@ export const worksheetResolver = {
|
|
|
159
142
|
let orderInventories: OrderInventory[] = await qbOrderInventories.getMany()
|
|
160
143
|
worksheet.orderInventories = orderInventories
|
|
161
144
|
|
|
162
|
-
worksheet.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
145
|
+
if (worksheet.releaseGood.type == 'b2c') {
|
|
146
|
+
worksheet.marketplaceOrder = await getRepository(MarketplaceOrder).findOne({
|
|
147
|
+
where: { orderNo: worksheet.releaseGood.refNo },
|
|
148
|
+
relations: ['marketplaceOrderItems', 'marketplaceStore']
|
|
149
|
+
})
|
|
150
|
+
|
|
151
|
+
if (worksheet.marketplaceOrder) {
|
|
152
|
+
let marketplaceOrderShipping: MarketplaceOrderShipping
|
|
153
|
+
if (worksheet.marketplaceOrder.isSplitted) {
|
|
154
|
+
marketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).findOne({
|
|
155
|
+
where: { subOrderNoRef: worksheet.releaseGood.refNo2 }
|
|
156
|
+
})
|
|
157
|
+
} else {
|
|
158
|
+
marketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).findOne({
|
|
159
|
+
where: { orderNoRef: worksheet.releaseGood.refNo }
|
|
160
|
+
})
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
worksheet.marketplaceOrder.trackingNo = marketplaceOrderShipping.ownTrackingNo
|
|
164
|
+
? marketplaceOrderShipping.ownTrackingNo
|
|
165
|
+
: marketplaceOrderShipping.trackingNo
|
|
166
|
+
worksheet.marketplaceOrder.shippingProvider = marketplaceOrderShipping.ownTransporter
|
|
167
|
+
? marketplaceOrderShipping.ownTransporter
|
|
168
|
+
: marketplaceOrderShipping.transporter
|
|
169
|
+
}
|
|
170
|
+
}
|
|
166
171
|
|
|
167
172
|
worksheet.orderVass = await getRepository(OrderVas).find({
|
|
168
173
|
where: {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Brackets, getRepository, SelectQueryBuilder } from 'typeorm'
|
|
2
|
+
|
|
2
3
|
import { User } from '@things-factory/auth-base'
|
|
3
|
-
import {
|
|
4
|
+
import { getPermittedBizplaceIds } from '@things-factory/biz-base'
|
|
4
5
|
import { ArrivalNotice, InventoryCheck, ReleaseGood, ReturnOrder } from '@things-factory/sales-base'
|
|
5
|
-
import { buildQuery, convertListParams, ListParam } from '@things-factory/shell'
|
|
6
|
+
import { buildQuery, convertListParams, Domain, ListParam } from '@things-factory/shell'
|
|
7
|
+
|
|
6
8
|
import { WORKSHEET_TYPE } from '../../../constants'
|
|
7
|
-
import { Brackets, getRepository, SelectQueryBuilder } from 'typeorm'
|
|
8
9
|
import { Worksheet } from '../../../entities'
|
|
9
10
|
|
|
10
11
|
export const worksheetsResolver = {
|
|
@@ -60,6 +61,38 @@ export const worksheetsResolver = {
|
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
|
|
64
|
+
const tzOffsetIdx = params.filters.findIndex(param => param.name === 'tzoffset')
|
|
65
|
+
let tzOffset = 0
|
|
66
|
+
if (tzOffsetIdx >= 0) {
|
|
67
|
+
tzOffset = params.filters[tzOffsetIdx].value
|
|
68
|
+
params.filters.splice(tzOffsetIdx, 1)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')
|
|
72
|
+
if (fromDateParamIdx >= 0) {
|
|
73
|
+
let fromDateVal = new Date(params.filters[fromDateParamIdx].value)
|
|
74
|
+
params.filters.splice(fromDateParamIdx, 1)
|
|
75
|
+
|
|
76
|
+
params.filters.push({
|
|
77
|
+
name: 'createdAt',
|
|
78
|
+
operator: 'gte',
|
|
79
|
+
value: fromDateVal.toISOString(),
|
|
80
|
+
relation: false
|
|
81
|
+
})
|
|
82
|
+
}
|
|
83
|
+
const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')
|
|
84
|
+
if (toDateParamIdx >= 0) {
|
|
85
|
+
let toDateVal = new Date(params.filters[toDateParamIdx].value)
|
|
86
|
+
params.filters.splice(toDateParamIdx, 1)
|
|
87
|
+
|
|
88
|
+
params.filters.push({
|
|
89
|
+
name: 'createdAt',
|
|
90
|
+
operator: 'lt',
|
|
91
|
+
value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),
|
|
92
|
+
relation: false
|
|
93
|
+
})
|
|
94
|
+
}
|
|
95
|
+
|
|
63
96
|
////For outbound worksheet filter
|
|
64
97
|
const releaseGoodParam = params.filters.find(param => param.name === 'releaseGoodNo')
|
|
65
98
|
const releaseGoodRefNoParam = params.filters.find(param => param.name === 'releaseGoodRefNo')
|
|
@@ -255,15 +288,7 @@ export const worksheetsResolver = {
|
|
|
255
288
|
)
|
|
256
289
|
}
|
|
257
290
|
|
|
258
|
-
qb.addSelect(
|
|
259
|
-
return subQuery
|
|
260
|
-
.select('COALESCE("ccd".rank, 99999)', 'rank')
|
|
261
|
-
.from('common_code_details', 'ccd')
|
|
262
|
-
.innerJoin('ccd.commonCode', 'cc')
|
|
263
|
-
.where('"ccd"."name" = "ws"."status"')
|
|
264
|
-
.andWhere('"ccd"."domain_id" = "ws"."domain_id"')
|
|
265
|
-
.andWhere('"cc"."name" = \'WORKSHEET_STATUS\'')
|
|
266
|
-
}, 'rank')
|
|
291
|
+
qb.addSelect('COALESCE("cc".rank, 99999)', 'rank')
|
|
267
292
|
qb.leftJoinAndSelect('ws.domain', 'domain')
|
|
268
293
|
qb.leftJoinAndSelect('ws.bizplace', 'bizplace')
|
|
269
294
|
qb.leftJoinAndSelect('ws.arrivalNotice', 'arrivalNotice')
|
|
@@ -274,6 +299,19 @@ export const worksheetsResolver = {
|
|
|
274
299
|
qb.leftJoinAndSelect('ws.assignee', 'assignee')
|
|
275
300
|
qb.leftJoinAndSelect('ws.creator', 'creator')
|
|
276
301
|
qb.leftJoinAndSelect('ws.updater', 'updater')
|
|
302
|
+
qb.leftJoin(
|
|
303
|
+
subQuery => {
|
|
304
|
+
return subQuery
|
|
305
|
+
.select(`ccd.rank`, 'rank')
|
|
306
|
+
.addSelect(`ccd.name`, 'status')
|
|
307
|
+
.from(`common_code_details`, 'ccd')
|
|
308
|
+
.innerJoin(`ccd.commonCode`, 'cc')
|
|
309
|
+
.where(`ccd.domain_id = :domainId`, { domainId: domain.id })
|
|
310
|
+
.andWhere(`cc.name = 'WORKSHEET_STATUS'`)
|
|
311
|
+
},
|
|
312
|
+
'cc',
|
|
313
|
+
'cc.status = ws.status'
|
|
314
|
+
)
|
|
277
315
|
|
|
278
316
|
////Add sorting conditions
|
|
279
317
|
const arrChildSortData = ['bizplace', 'arrivalNotice', 'releaseGood', 'returnOrder', 'inventoryCheck']
|
package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { WorksheetNoGenerator } from '../../../utils'
|
|
|
11
11
|
export const generateReleaseGoodWorksheetDetailsResolver = {
|
|
12
12
|
async generateReleaseGoodWorksheetDetails(
|
|
13
13
|
_: any,
|
|
14
|
-
{ worksheetNo, batchId, productId, packingType, worksheetDetails },
|
|
14
|
+
{ worksheetNo, batchId, productId, packingType, packingSize, worksheetDetails },
|
|
15
15
|
context: any
|
|
16
16
|
): Promise<void> {
|
|
17
17
|
const { tx, user, domain }: { tx: EntityManager; user: User; domain: Domain } = context.state
|
|
@@ -59,6 +59,7 @@ export const generateReleaseGoodWorksheetDetailsResolver = {
|
|
|
59
59
|
status: ORDER_INVENTORY_STATUS.READY_TO_PICK,
|
|
60
60
|
product: await tx.getRepository(Product).findOne(productId),
|
|
61
61
|
packingType,
|
|
62
|
+
packingSize,
|
|
62
63
|
creator: user,
|
|
63
64
|
updater: user
|
|
64
65
|
})
|
|
@@ -8,7 +8,7 @@ import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
|
8
8
|
export const worksheetDetailsByProductGroupResolver = {
|
|
9
9
|
async worksheetDetailsByProductGroup(
|
|
10
10
|
_: any,
|
|
11
|
-
{ worksheetNo, batchId, productName, productSku, packingType },
|
|
11
|
+
{ worksheetNo, batchId, productName, productSku, packingType, packingSize },
|
|
12
12
|
context: any
|
|
13
13
|
) {
|
|
14
14
|
const { tx, domain }: { tx: EntityManager; domain: Domain } = context.state
|
|
@@ -34,6 +34,7 @@ export const worksheetDetailsByProductGroupResolver = {
|
|
|
34
34
|
.andWhere('"PROD"."name" = :productName', { productName: productName })
|
|
35
35
|
.andWhere('"PROD"."sku" = :productSku', { productSku: productSku })
|
|
36
36
|
.andWhere('"ORD_INV"."packing_type" = :packingType', { packingType: packingType })
|
|
37
|
+
.andWhere('"ORD_INV"."packing_size" = :packingSize', { packingSize: packingSize })
|
|
37
38
|
|
|
38
39
|
if (bizplaceId && releaseGoodId) {
|
|
39
40
|
qb.andWhere('"WSD"."bizplace_id" = :bizplaceId', { bizplaceId: bizplaceId })
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import * as Pallet from './pallet'
|
|
1
2
|
import * as Worksheet from './worksheet'
|
|
2
3
|
import * as WorksheetDetail from './worksheet-detail'
|
|
3
4
|
import * as WorksheetMovement from './worksheet-movement'
|
|
4
5
|
|
|
5
6
|
export const queries = [Worksheet.Query, WorksheetDetail.Query, WorksheetMovement.Query]
|
|
6
7
|
|
|
7
|
-
export const mutations = [Worksheet.Mutation, WorksheetDetail.Mutation, WorksheetMovement.Mutation]
|
|
8
|
+
export const mutations = [Worksheet.Mutation, WorksheetDetail.Mutation, WorksheetMovement.Mutation, Pallet.Mutation]
|
|
8
9
|
|
|
9
10
|
export const types = [...Worksheet.Types, ...WorksheetDetail.Types, ...WorksheetMovement.Types]
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AirwayBill } from './airwaybill'
|
|
1
2
|
import { ArrivalNoticeWorksheet } from './arrival-notice-worksheet'
|
|
2
3
|
import { ContactPointInfo } from './contact-point-info'
|
|
3
4
|
import { CycleCountWorksheet } from './cycle-count-worksheet'
|
|
@@ -60,6 +61,10 @@ export const Mutation = /* GraphQL */ `
|
|
|
60
61
|
releaseGoodNo: String!
|
|
61
62
|
): ReleaseGoodWorksheet @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
62
63
|
|
|
64
|
+
fetchSellercraftAirwayBill (
|
|
65
|
+
releaseGoodNo: String!
|
|
66
|
+
): AirwayBill @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
67
|
+
|
|
63
68
|
generateSortingWorksheet (
|
|
64
69
|
worksheetNo: String!
|
|
65
70
|
): ReleaseGoodWorksheet @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
@@ -77,6 +82,7 @@ export const Mutation = /* GraphQL */ `
|
|
|
77
82
|
executionDate: String!
|
|
78
83
|
customerId: String!
|
|
79
84
|
orderInventoryIds: [String]
|
|
85
|
+
orderInventories: [OrderInventoryPatch]
|
|
80
86
|
limit: Int
|
|
81
87
|
): CycleCountWorksheet @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
82
88
|
|
|
@@ -138,7 +144,7 @@ export const Mutation = /* GraphQL */ `
|
|
|
138
144
|
): Boolean @transaction
|
|
139
145
|
|
|
140
146
|
worksheetDetailsByProductGroup (
|
|
141
|
-
worksheetNo: String!, batchId: String!, productName: String!, packingType: String!
|
|
147
|
+
worksheetNo: String!, batchId: String!, productName: String!, packingType: String!, packingSize: Float!
|
|
142
148
|
): WorksheetDetailList @transaction
|
|
143
149
|
|
|
144
150
|
activatePicking (
|
|
@@ -502,6 +508,7 @@ export const Mutation = /* GraphQL */ `
|
|
|
502
508
|
batchId: String!
|
|
503
509
|
productId: String!
|
|
504
510
|
packingType: String!
|
|
511
|
+
packingSize: Float!
|
|
505
512
|
): Boolean @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
506
513
|
|
|
507
514
|
assignPickingWorker (
|
|
@@ -565,7 +572,7 @@ export const Query = /* GraphQL */ `
|
|
|
565
572
|
|
|
566
573
|
packingWorksheet (
|
|
567
574
|
releaseGoodNo: String!
|
|
568
|
-
): ExecutingWorksheet @privilege(category: "worksheet", privilege: "query")
|
|
575
|
+
): ExecutingWorksheet @privilege(category: "worksheet", privilege: "query") @transaction
|
|
569
576
|
|
|
570
577
|
vasWorksheet (
|
|
571
578
|
orderNo: String!, orderType: String!
|
|
@@ -657,6 +664,7 @@ export const Query = /* GraphQL */ `
|
|
|
657
664
|
|
|
658
665
|
export const Types = /* GraphQL */ [
|
|
659
666
|
Worksheet,
|
|
667
|
+
AirwayBill,
|
|
660
668
|
NewWorksheet,
|
|
661
669
|
WorksheetPatch,
|
|
662
670
|
WorksheetList,
|
|
@@ -24,6 +24,7 @@ export const Mutation = /* GraphQL */ `
|
|
|
24
24
|
batchId: String!
|
|
25
25
|
productId: String!
|
|
26
26
|
packingType: String!
|
|
27
|
+
packingSize: Float!
|
|
27
28
|
worksheetDetails: [NewWorksheetDetail]
|
|
28
29
|
): Boolean @transaction
|
|
29
30
|
|
|
@@ -51,7 +52,7 @@ export const Query = /* GraphQL */ `
|
|
|
51
52
|
checkProgressingPallet(palletId: String!): Boolean @transaction
|
|
52
53
|
generatePalletId(targets: [PalletInfo], type: String!): [InventoryDetail] @transaction
|
|
53
54
|
generateCartonId(printQty: Int!, type: String!): [InventoryDetail]
|
|
54
|
-
worksheetDetailsByProductGroup(worksheetNo: String!, batchId: String!, productName: String!, productSku: String!, packingType: String!): WorksheetDetailList @transaction
|
|
55
|
+
worksheetDetailsByProductGroup(worksheetNo: String!, batchId: String!, productName: String!, productSku: String!, packingType: String!, packingSize: Float!): WorksheetDetailList @transaction
|
|
55
56
|
`
|
|
56
57
|
|
|
57
58
|
export const Types = [
|
package/server/routes.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { renderRODO } from './controllers/render-ro-do'
|
|
2
|
-
import { renderManualDO } from './controllers/render-manual-do'
|
|
3
1
|
import { renderElcclGRN } from './controllers/render-elccl-grn'
|
|
2
|
+
import { renderGRN } from './controllers/render-grn'
|
|
3
|
+
import { renderJobSheet } from './controllers/render-job-sheet'
|
|
4
4
|
import { renderKimedaGRN } from './controllers/render-kimeda-grn'
|
|
5
|
-
import {
|
|
6
|
-
import { renderOrientageGRN } from './controllers/render-orientage-grn'
|
|
5
|
+
import { renderManualDO } from './controllers/render-manual-do'
|
|
7
6
|
import { renderOrientageDO } from './controllers/render-orientage-do'
|
|
8
|
-
import {
|
|
7
|
+
import { renderOrientageGRN } from './controllers/render-orientage-grn'
|
|
8
|
+
import { renderRODO } from './controllers/render-ro-do'
|
|
9
|
+
import { renderSeebuuGRN } from './controllers/render-seebuu-grn'
|
|
9
10
|
|
|
10
11
|
process.on('bootstrap-module-domain-private-route' as any, (app, routes) => {
|
|
11
12
|
routes.get('/view_document_ro_do/:doNo', async (context, next) => {
|
|
@@ -24,7 +25,11 @@ process.on('bootstrap-module-domain-private-route' as any, (app, routes) => {
|
|
|
24
25
|
context.body = await renderElcclGRN(context.params, context)
|
|
25
26
|
})
|
|
26
27
|
|
|
27
|
-
routes.get('/
|
|
28
|
+
routes.get('/view_grn/:grnNo/:timezoneOffSet', async (context, next) => {
|
|
29
|
+
context.body = await renderGRN(context.params, context)
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
routes.get('/view_kimeda_grn/:grnNo/:timezoneOffSet', async (context, next) => {
|
|
28
33
|
context.body = await renderKimedaGRN(context.params, context)
|
|
29
34
|
})
|
|
30
35
|
|