@things-factory/worksheet-base 4.3.251 → 4.3.253
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/outbound/picking-worksheet-controller.js +14 -12
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +3 -2
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +23 -0
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/fetch-powrup-document.js +51 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-powrup-document.js.map +1 -0
- 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/packing-worksheet.js +8 -5
- 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 +2 -2
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +2 -3
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js +2 -3
- package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -1
- package/dist-server/graphql/types/worksheet/index.js +6 -0
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/powrup-document.js +11 -0
- package/dist-server/graphql/types/worksheet/powrup-document.js.map +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-info.js +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
- package/package.json +20 -20
- package/server/controllers/outbound/picking-worksheet-controller.ts +25 -16
- package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +3 -2
- package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +42 -3
- package/server/graphql/resolvers/worksheet/fetch-powrup-document.ts +56 -0
- package/server/graphql/resolvers/worksheet/index.ts +2 -0
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +12 -5
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +1 -1
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +3 -3
- package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +2 -4
- package/server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.ts +2 -4
- package/server/graphql/types/worksheet/index.ts +7 -1
- package/server/graphql/types/worksheet/powrup-document.ts +8 -0
- package/server/graphql/types/worksheet/worksheet-info.ts +1 -0
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
import { EntityManager, In } from 'typeorm'
|
|
2
2
|
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
3
|
+
import { Application, ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
InventoryCheck,
|
|
7
|
+
ORDER_INVENTORY_STATUS,
|
|
8
|
+
ORDER_STATUS,
|
|
9
|
+
OrderInventory,
|
|
10
|
+
PowrupController
|
|
11
|
+
} from '@things-factory/sales-base'
|
|
12
|
+
|
|
6
13
|
import { Domain } from '@things-factory/shell'
|
|
7
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
Inventory,
|
|
16
|
+
INVENTORY_STATUS,
|
|
17
|
+
INVENTORY_TRANSACTION_TYPE,
|
|
18
|
+
Location,
|
|
19
|
+
generateInventoryHistory
|
|
20
|
+
} from '@things-factory/warehouse-base'
|
|
21
|
+
import { Bizplace, getCompanyBizplace } from '@things-factory/biz-base'
|
|
8
22
|
|
|
9
23
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
|
|
10
24
|
import { SellercraftController } from '../../../controllers'
|
|
@@ -53,6 +67,7 @@ export async function cycleCountAdjustment(
|
|
|
53
67
|
'targetInventory',
|
|
54
68
|
'targetInventory.inventory',
|
|
55
69
|
'targetInventory.inventory.product',
|
|
70
|
+
'targetInventory.inventory.productDetail',
|
|
56
71
|
'targetInventory.inventory.product.productDetails',
|
|
57
72
|
'targetInventory.inventory.product.productDetails.childProductDetail',
|
|
58
73
|
'targetInventory.inventory.bizplace',
|
|
@@ -77,6 +92,15 @@ export async function cycleCountAdjustment(
|
|
|
77
92
|
relations: ['domain']
|
|
78
93
|
})
|
|
79
94
|
|
|
95
|
+
const customerDomain: Domain = targetInventory.inventory.bizplace.domain
|
|
96
|
+
const customerBizplaceId: string = targetInventory.inventory.bizplace.id
|
|
97
|
+
const companyBizplace: Bizplace = await getCompanyBizplace(domain, null, customerBizplaceId, tx)
|
|
98
|
+
const application: Application = await tx.getRepository(Application).findOne({
|
|
99
|
+
domain: companyBizplace.domain,
|
|
100
|
+
status: 'ACTIVE',
|
|
101
|
+
type: ApplicationType.POWRUP
|
|
102
|
+
})
|
|
103
|
+
|
|
80
104
|
if (targetInventory.status === ORDER_INVENTORY_STATUS.MISSING) {
|
|
81
105
|
// create STORED, CC_ADJUSTMENT history
|
|
82
106
|
await generateInventoryHistory(
|
|
@@ -104,6 +128,11 @@ export async function cycleCountAdjustment(
|
|
|
104
128
|
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
105
129
|
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory)
|
|
106
130
|
}
|
|
131
|
+
|
|
132
|
+
if (application) {
|
|
133
|
+
const powrupController: PowrupController = new PowrupController()
|
|
134
|
+
await powrupController.updateStock([inventory], customerDomain, user, tx)
|
|
135
|
+
}
|
|
107
136
|
} else if (targetInventory.inspectedQty == 0) {
|
|
108
137
|
// create STORED, CC_ADJUSTMENT history
|
|
109
138
|
await generateInventoryHistory(
|
|
@@ -135,6 +164,11 @@ export async function cycleCountAdjustment(
|
|
|
135
164
|
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
136
165
|
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory)
|
|
137
166
|
}
|
|
167
|
+
|
|
168
|
+
if (application) {
|
|
169
|
+
const powrupController: PowrupController = new PowrupController()
|
|
170
|
+
await powrupController.updateStock([inventory], customerDomain, user, tx)
|
|
171
|
+
}
|
|
138
172
|
} else {
|
|
139
173
|
const prevLocationId: string = inventory.location.id
|
|
140
174
|
|
|
@@ -191,6 +225,11 @@ export async function cycleCountAdjustment(
|
|
|
191
225
|
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory)
|
|
192
226
|
}
|
|
193
227
|
|
|
228
|
+
if (application) {
|
|
229
|
+
const powrupController: PowrupController = new PowrupController()
|
|
230
|
+
await powrupController.updateStock([inventory], customerDomain, user, tx)
|
|
231
|
+
}
|
|
232
|
+
|
|
194
233
|
targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
|
|
195
234
|
targetInventory.updater = user
|
|
196
235
|
await tx.getRepository(OrderInventory).save(targetInventory)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { EntityManager, getRepository } from 'typeorm'
|
|
2
|
+
|
|
3
|
+
import { User } from '@things-factory/auth-base'
|
|
4
|
+
import { Powrup } from '@things-factory/integration-powrup'
|
|
5
|
+
import { ReleaseGood, PowrupController } from '@things-factory/sales-base'
|
|
6
|
+
import { Domain } from '@things-factory/shell'
|
|
7
|
+
import { logger } from '@things-factory/env'
|
|
8
|
+
|
|
9
|
+
export const fetchPowrupDocumentResolver = {
|
|
10
|
+
async fetchPowrupDocument(_: any, { releaseGoodId }, context: any) {
|
|
11
|
+
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
12
|
+
|
|
13
|
+
//find release goods base on id
|
|
14
|
+
let releaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({
|
|
15
|
+
where: { domain, id: releaseGoodId },
|
|
16
|
+
relations: ['bizplace', 'bizplace.domain']
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
//find user powrup data
|
|
20
|
+
const powrup: Powrup = await getRepository(Powrup).findOne({
|
|
21
|
+
active: true,
|
|
22
|
+
platform: 'POWRUP'
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
// instantiate powrup controller
|
|
26
|
+
const powrupCtrl: PowrupController = new PowrupController()
|
|
27
|
+
|
|
28
|
+
try {
|
|
29
|
+
// fetch document if not found
|
|
30
|
+
if (powrup && !releaseGood?.airwayBill) {
|
|
31
|
+
try {
|
|
32
|
+
// try fetch order document / AWB
|
|
33
|
+
releaseGood = await powrupCtrl.fetchDocument(powrup, releaseGood)
|
|
34
|
+
} catch (error) {
|
|
35
|
+
try {
|
|
36
|
+
// retry initiate order document
|
|
37
|
+
await powrupCtrl.initiateShipment(powrup, releaseGood, domain, user, tx)
|
|
38
|
+
} catch (error) {
|
|
39
|
+
throw new Error(`initiateShipment: ${error}`)
|
|
40
|
+
}
|
|
41
|
+
throw new Error(`fetchDocument: ${error}`)
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const airwayBill: string = releaseGood?.airwayBill
|
|
46
|
+
const invoice: string = releaseGood?.invoice
|
|
47
|
+
return { airwayBill, invoice }
|
|
48
|
+
} catch (error) {
|
|
49
|
+
logger.error(
|
|
50
|
+
`packing-worksheet[getPowrupDocument]:(data:${JSON.stringify({ powrup, releaseGood, domain, user })}) ${error} `
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
throw new Error('Waiting for AWB from marketplace. Please retry in awhile')
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -10,6 +10,7 @@ import { deleteWorksheet } from './delete-worksheet'
|
|
|
10
10
|
import { deliveryOrderByWorksheetResolver } from './delivery-order-by-worksheet'
|
|
11
11
|
import { fetchDeliveryOrderROResolver } from './fetch-delivery-order-ro'
|
|
12
12
|
import { fetchSellercraftDocumentResolver } from './fetch-sellercraft-document'
|
|
13
|
+
import { fetchPowrupDocumentResolver } from './fetch-powrup-document'
|
|
13
14
|
import { findReleaseOrdersByTaskNoResolver } from './find-release-orders-by-task-no'
|
|
14
15
|
import { findSortingReleaseOrdersByTaskNoResolver } from './find-sorting-release-orders-by-task-no'
|
|
15
16
|
import { Mutations as GenerateWorksheetMutations } from './generate-worksheet'
|
|
@@ -142,6 +143,7 @@ export const Mutation = {
|
|
|
142
143
|
...unpackingResolver,
|
|
143
144
|
...palletizingPallets,
|
|
144
145
|
...fetchSellercraftDocumentResolver,
|
|
146
|
+
...fetchPowrupDocumentResolver,
|
|
145
147
|
...cancelDraftReleaseOrder,
|
|
146
148
|
...cancelReplenishment,
|
|
147
149
|
...ReplenishmentMutations
|
|
@@ -153,11 +153,17 @@ export const packingWorksheetResolver = {
|
|
|
153
153
|
if (worksheet.status === WORKSHEET_STATUS.DONE) {
|
|
154
154
|
throw new Error(`Worksheet is completed already`)
|
|
155
155
|
} else if (worksheet.status === WORKSHEET_STATUS.EXECUTING) {
|
|
156
|
-
if (
|
|
156
|
+
if (
|
|
157
|
+
(orderPackages?.length == 0 && orderSource == ApplicationType.SELLERCRAFT) ||
|
|
158
|
+
(orderPackages?.length == 0 && orderSource == ApplicationType.POWRUP)
|
|
159
|
+
) {
|
|
157
160
|
throw new Error('Waiting for packages from marketplace. Please retry in while.')
|
|
158
161
|
}
|
|
159
162
|
} else if (worksheet.status === WORKSHEET_STATUS.DEACTIVATED) {
|
|
160
|
-
if (
|
|
163
|
+
if (
|
|
164
|
+
(orderPackages?.length == 0 && orderSource == ApplicationType.SELLERCRAFT) ||
|
|
165
|
+
(orderPackages?.length == 0 && orderSource == ApplicationType.POWRUP)
|
|
166
|
+
) {
|
|
161
167
|
throw new Error('Waiting for packages from marketplace. Please retry in while.')
|
|
162
168
|
}
|
|
163
169
|
|
|
@@ -274,6 +280,7 @@ export const packingWorksheetResolver = {
|
|
|
274
280
|
refNo: releaseGood.refNo,
|
|
275
281
|
refNo2: releaseGood.refNo2,
|
|
276
282
|
refNo3: releaseGood.refNo3,
|
|
283
|
+
source: releaseGood.source,
|
|
277
284
|
partnerDomainId: releaseGood.bizplace?.domain.id,
|
|
278
285
|
startedAt: worksheet.startedAt,
|
|
279
286
|
shippingProvider: shippingProvider ? shippingProvider : '',
|
|
@@ -423,11 +430,11 @@ async function getPowrupDocument(powrup: Powrup, releaseGood: ReleaseGood, domai
|
|
|
423
430
|
} catch (error) {
|
|
424
431
|
try {
|
|
425
432
|
// retry initiate order shipment / RTS
|
|
426
|
-
await powrupCtrl.initiateShipment(powrup, releaseGood)
|
|
433
|
+
await powrupCtrl.initiateShipment(powrup, releaseGood, domain, user, txMgr)
|
|
427
434
|
} catch (error) {
|
|
428
|
-
throw new Error(`
|
|
435
|
+
throw new Error(`initiateShipment: ${error}`)
|
|
429
436
|
}
|
|
430
|
-
throw new Error(`
|
|
437
|
+
throw new Error(`fetchDocument: ${error}`)
|
|
431
438
|
}
|
|
432
439
|
}
|
|
433
440
|
} catch (error) {
|
|
@@ -142,7 +142,7 @@ export async function completeBatchPicking(
|
|
|
142
142
|
const powrupCtrl: PowrupController = new PowrupController()
|
|
143
143
|
|
|
144
144
|
if (!foundReleaseGood?.orderPackages?.length && !foundReleaseGood?.marketPackCallSuccess) {
|
|
145
|
-
await powrupCtrl.packOrder(powrup, foundReleaseGood)
|
|
145
|
+
await powrupCtrl.packOrder(powrup, foundReleaseGood, domain, user, tx)
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
const rtsTriggerLevel: Setting = await tx.getRepository(Setting).findOne({
|
|
@@ -170,7 +170,7 @@ export async function completePicking(
|
|
|
170
170
|
where: { releaseGood },
|
|
171
171
|
relations: ['product', 'productDetail']
|
|
172
172
|
})
|
|
173
|
-
await powrupController.packOrder(powrup, { ...releaseGood, orderProducts }, domain, user,
|
|
173
|
+
await powrupController.packOrder(powrup, { ...releaseGood, orderProducts }, domain, user, txMgr)
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
const rtsTriggerLevel: Setting = await txMgr.getRepository(Setting).findOne({
|
|
@@ -178,7 +178,7 @@ export async function completePicking(
|
|
|
178
178
|
})
|
|
179
179
|
|
|
180
180
|
if (rtsTriggerLevel && parseInt(rtsTriggerLevel?.value || 0) == 1) {
|
|
181
|
-
await powrupController.initiateShipment(powrup, releaseGood)
|
|
181
|
+
await powrupController.initiateShipment(powrup, releaseGood, domain, user, txMgr)
|
|
182
182
|
}
|
|
183
183
|
})
|
|
184
184
|
}
|
|
@@ -416,7 +416,7 @@ export async function completePicking(
|
|
|
416
416
|
if (vasWorksheet) {
|
|
417
417
|
await activateVas(tx, domain, user, vasWorksheet.name, vasWorksheetDetails)
|
|
418
418
|
}
|
|
419
|
-
} catch (e) {
|
|
419
|
+
} catch (e) {}
|
|
420
420
|
}
|
|
421
421
|
// Can improve by applying "Else" since if got VAS user has to complete then only we generate loading worksheet
|
|
422
422
|
if (!existLoadingWorksheet && !releaseGood.courierOption && !releaseGood.packingOption) {
|
|
@@ -3,10 +3,8 @@ import { EntityManager } from 'typeorm'
|
|
|
3
3
|
import { Application, ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { MarketplaceStore } from '@things-factory/integration-marketplace'
|
|
5
5
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
6
|
-
import { ArrivalNotice } from '@things-factory/sales-base'
|
|
6
|
+
import { ArrivalNotice, PowrupController } from '@things-factory/sales-base'
|
|
7
7
|
import { Domain } from '@things-factory/shell'
|
|
8
|
-
import { PowrupController } from '@things-factory/sales-base'
|
|
9
|
-
import { Powrup } from '@things-factory/integration-powrup'
|
|
10
8
|
import { Bizplace, getCompanyBizplace } from '@things-factory/biz-base'
|
|
11
9
|
|
|
12
10
|
import { PutawayWorksheetController } from '../../../../controllers'
|
|
@@ -100,7 +98,7 @@ export const completePutawayResolver = {
|
|
|
100
98
|
const powrupController: PowrupController = new PowrupController()
|
|
101
99
|
|
|
102
100
|
// allow async run to skip user wait time
|
|
103
|
-
powrupController.updateStock(arrivalNotice.orderProducts,
|
|
101
|
+
powrupController.updateStock(arrivalNotice.orderProducts, customerDomain, user)
|
|
104
102
|
}
|
|
105
103
|
}
|
|
106
104
|
}
|
|
@@ -2,11 +2,9 @@ import { EntityManager } from 'typeorm'
|
|
|
2
2
|
|
|
3
3
|
import { Application, ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
5
|
-
import { ReturnOrder } from '@things-factory/sales-base'
|
|
5
|
+
import { ReturnOrder, PowrupController } from '@things-factory/sales-base'
|
|
6
6
|
import { Domain } from '@things-factory/shell'
|
|
7
|
-
import { PowrupController } from '@things-factory/sales-base'
|
|
8
7
|
import { Bizplace, getCompanyBizplace } from '@things-factory/biz-base'
|
|
9
|
-
import { Powrup } from '@things-factory/integration-powrup'
|
|
10
8
|
|
|
11
9
|
import { PutawayReturningWorksheetController } from '../../../../controllers'
|
|
12
10
|
import { SellercraftController } from '../../../../controllers/ecommerce'
|
|
@@ -48,7 +46,7 @@ export const completePutawayReturnResolver = {
|
|
|
48
46
|
|
|
49
47
|
if (application) {
|
|
50
48
|
const powrupController: PowrupController = new PowrupController()
|
|
51
|
-
await powrupController.updateStock(returnOrder.orderInventories,
|
|
49
|
+
await powrupController.updateStock(returnOrder.orderInventories, customerDomain, user, tx)
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
}
|
|
@@ -19,6 +19,7 @@ import { ProductApproval } from './product-approval'
|
|
|
19
19
|
import { ReleaseGoodWorksheet } from './release-good-worksheet'
|
|
20
20
|
import { ReturnOrderWorksheet } from './return-order-worksheet'
|
|
21
21
|
import { SellercraftDocument } from './sellercraft-document'
|
|
22
|
+
import { PowrupDocument } from './powrup-document'
|
|
22
23
|
import { VasOrderWorksheet } from './vas-order-worksheet'
|
|
23
24
|
import { Worksheet } from './worksheet'
|
|
24
25
|
import { WorksheetDetailInfo } from './worksheet-detail-info'
|
|
@@ -74,6 +75,10 @@ export const Mutation = /* GraphQL */ `
|
|
|
74
75
|
releaseGoodId: String!
|
|
75
76
|
): SellercraftDocument @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
76
77
|
|
|
78
|
+
fetchPowrupDocument (
|
|
79
|
+
releaseGoodId: String!
|
|
80
|
+
): PowrupDocument @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
81
|
+
|
|
77
82
|
generateSortingWorksheet (
|
|
78
83
|
worksheetNo: String!
|
|
79
84
|
): ReleaseGoodWorksheet @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
@@ -769,9 +774,10 @@ export const Query = /* GraphQL */ `
|
|
|
769
774
|
findReleaseOrdersByTaskNo(taskNo: String!): FindReleaseOrdersByTaskNo @privilege(category: "worksheet", privilege: "query") @transaction
|
|
770
775
|
`
|
|
771
776
|
|
|
772
|
-
export const Types = /* GraphQL */[
|
|
777
|
+
export const Types = /* GraphQL */ [
|
|
773
778
|
Worksheet,
|
|
774
779
|
SellercraftDocument,
|
|
780
|
+
PowrupDocument,
|
|
775
781
|
NewWorksheet,
|
|
776
782
|
WorksheetPatch,
|
|
777
783
|
WorksheetList,
|