@things-factory/worksheet-base 4.3.79 → 4.3.80-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +3 -0
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js +49 -49
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +2 -4
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/loading-worksheet-controller.js +10 -4
- package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +22 -20
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +34 -39
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js +12 -14
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/vas/vas-worksheet-controller.js +1 -2
- package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +2 -3
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -1
- package/dist-server/entities/worksheet-detail.js.map +1 -1
- package/dist-server/entities/worksheet-movement.js.map +1 -1
- package/dist-server/entities/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +6 -0
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +1 -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 +6 -6
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +67 -28
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +23 -8
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +30 -7
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js +23 -8
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +25 -8
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +59 -12
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +51 -25
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +2 -2
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +262 -118
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +3 -2
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +6 -4
- package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +39 -14
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/transfer.js +9 -9
- package/dist-server/graphql/resolvers/worksheet/transfer.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +17 -17
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +6 -4
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +4 -4
- package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -1
- package/dist-server/graphql/types/worksheet-detail/index.js +1 -0
- package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
- package/dist-server/utils/inventory-util.js +1 -98
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +6 -6
- package/server/controllers/ecommerce/sellercraft-controller.ts +3 -0
- package/server/controllers/inbound/unloading-worksheet-controller.ts +49 -70
- package/server/controllers/inspect/cycle-count-worksheet-controller.ts +2 -4
- package/server/controllers/outbound/loading-worksheet-controller.ts +9 -3
- package/server/controllers/outbound/packing-worksheet-controller.ts +23 -31
- package/server/controllers/outbound/picking-worksheet-controller.ts +34 -51
- package/server/controllers/outbound/sorting-worksheet-controller.ts +12 -12
- package/server/controllers/vas/vas-worksheet-controller.ts +2 -2
- package/server/controllers/worksheet-controller.ts +4 -6
- package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +6 -0
- package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +1 -2
- package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +2 -2
- package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +3 -1
- package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +77 -33
- package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +26 -9
- package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +34 -9
- package/server/graphql/resolvers/worksheet/packing/packing.ts +26 -9
- package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +28 -9
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +68 -13
- package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +60 -30
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +2 -2
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +288 -130
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +3 -2
- package/server/graphql/resolvers/worksheet/proceed-extra-products.ts +5 -4
- package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +45 -15
- package/server/graphql/resolvers/worksheet/transfer.ts +18 -16
- package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +3 -2
- package/server/graphql/resolvers/worksheet/worksheet.ts +15 -13
- package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +4 -1
- package/server/graphql/types/worksheet-detail/index.ts +1 -0
- package/server/utils/inventory-util.ts +1 -126
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EntityManager } from 'typeorm'
|
|
2
2
|
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
3
|
+
import { ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { Bizplace, Company } from '@things-factory/biz-base'
|
|
5
5
|
import { FulfillmentCenter } from '@things-factory/integration-fulfillment'
|
|
6
6
|
import { Sftp, SftpAPI } from '@things-factory/integration-sftp'
|
|
@@ -58,42 +58,86 @@ export async function completeLoading(
|
|
|
58
58
|
const warehouseCompanyBizplaces: Bizplace[] = warehouseBizplaces.filter(biz => biz.domain.extType == 'company')
|
|
59
59
|
const warehouseCompanyDomain: Domain = warehouseCompanyBizplaces[0].domain
|
|
60
60
|
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
let inventoryItems: InventoryItem[] = await tx.getRepository(InventoryItem).find({
|
|
74
|
-
where: { domain, outboundOrderId: releaseGood.id }
|
|
75
|
-
})
|
|
76
|
-
|
|
77
|
-
// if (responseFileTypes.enableShipment) {
|
|
78
|
-
// let shipmentResult: Sftp = await SftpAPI.createShipment(customerAvailableSftp, {
|
|
79
|
-
// releaseGood,
|
|
80
|
-
// orderInventories: targetInventories,
|
|
81
|
-
// sftp: customerAvailableSftp
|
|
82
|
-
// })
|
|
83
|
-
// customerAvailableSftp = await tx.getRepository(Sftp).save(shipmentResult)
|
|
84
|
-
// }
|
|
85
|
-
|
|
86
|
-
if (responseFileTypes.enableSerialNumber) {
|
|
87
|
-
let snResult: Sftp = await SftpAPI.createSerialNumber(customerAvailableSftp, {
|
|
88
|
-
releaseGood,
|
|
89
|
-
inventoryItems,
|
|
90
|
-
sftp: customerAvailableSftp
|
|
61
|
+
const orderSource: string = releaseGood.source
|
|
62
|
+
switch (orderSource) {
|
|
63
|
+
case ApplicationType.SFTP:
|
|
64
|
+
const customerDomain: Domain = releaseGood.bizplace.domain
|
|
65
|
+
const fulfillmentCenter: FulfillmentCenter = await tx
|
|
66
|
+
.getRepository(FulfillmentCenter)
|
|
67
|
+
.findOne({ domain: warehouseCompanyDomain, centerId: domain.subdomain, status: 'active' })
|
|
68
|
+
|
|
69
|
+
if (fulfillmentCenter) {
|
|
70
|
+
let customerAvailableSftp: Sftp = await tx.getRepository(Sftp).findOne({
|
|
71
|
+
where: { domain: customerDomain, status: 'ACTIVE', fulfillmentCenter }
|
|
91
72
|
})
|
|
92
|
-
|
|
73
|
+
if (customerAvailableSftp) {
|
|
74
|
+
const responseFileTypes: any = JSON.parse(customerAvailableSftp.responseFileTypes)
|
|
75
|
+
|
|
76
|
+
let inventoryItems: InventoryItem[] = await tx.getRepository(InventoryItem).find({
|
|
77
|
+
where: { domain, outboundOrderId: releaseGood.id }
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
// if (responseFileTypes.enableShipment) {
|
|
81
|
+
// let shipmentResult: Sftp = await SftpAPI.createShipment(customerAvailableSftp, {
|
|
82
|
+
// releaseGood,
|
|
83
|
+
// orderInventories: targetInventories,
|
|
84
|
+
// sftp: customerAvailableSftp
|
|
85
|
+
// })
|
|
86
|
+
// customerAvailableSftp = await tx.getRepository(Sftp).save(shipmentResult)
|
|
87
|
+
// }
|
|
88
|
+
|
|
89
|
+
if (responseFileTypes.enableSerialNumber) {
|
|
90
|
+
let snResult: Sftp = await SftpAPI.createSerialNumber(customerAvailableSftp, {
|
|
91
|
+
releaseGood,
|
|
92
|
+
inventoryItems,
|
|
93
|
+
sftp: customerAvailableSftp
|
|
94
|
+
})
|
|
95
|
+
customerAvailableSftp = await tx.getRepository(Sftp).save(snResult)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
93
98
|
}
|
|
94
|
-
|
|
99
|
+
break
|
|
100
|
+
|
|
101
|
+
default:
|
|
102
|
+
break
|
|
95
103
|
}
|
|
96
104
|
|
|
105
|
+
// const customerDomain: Domain = releaseGood.bizplace.domain
|
|
106
|
+
// const fulfillmentCenter: FulfillmentCenter = await tx
|
|
107
|
+
// .getRepository(FulfillmentCenter)
|
|
108
|
+
// .findOne({ domain: warehouseCompanyDomain, centerId: domain.subdomain, status: 'active' })
|
|
109
|
+
|
|
110
|
+
// if (fulfillmentCenter) {
|
|
111
|
+
// let customerAvailableSftp: Sftp = await tx.getRepository(Sftp).findOne({
|
|
112
|
+
// where: { domain: customerDomain, status: 'ACTIVE', fulfillmentCenter }
|
|
113
|
+
// })
|
|
114
|
+
// if (customerAvailableSftp) {
|
|
115
|
+
// const responseFileTypes: any = JSON.parse(customerAvailableSftp.responseFileTypes)
|
|
116
|
+
|
|
117
|
+
// let inventoryItems: InventoryItem[] = await tx.getRepository(InventoryItem).find({
|
|
118
|
+
// where: { domain, outboundOrderId: releaseGood.id }
|
|
119
|
+
// })
|
|
120
|
+
|
|
121
|
+
// // if (responseFileTypes.enableShipment) {
|
|
122
|
+
// // let shipmentResult: Sftp = await SftpAPI.createShipment(customerAvailableSftp, {
|
|
123
|
+
// // releaseGood,
|
|
124
|
+
// // orderInventories: targetInventories,
|
|
125
|
+
// // sftp: customerAvailableSftp
|
|
126
|
+
// // })
|
|
127
|
+
// // customerAvailableSftp = await tx.getRepository(Sftp).save(shipmentResult)
|
|
128
|
+
// // }
|
|
129
|
+
|
|
130
|
+
// if (responseFileTypes.enableSerialNumber) {
|
|
131
|
+
// let snResult: Sftp = await SftpAPI.createSerialNumber(customerAvailableSftp, {
|
|
132
|
+
// releaseGood,
|
|
133
|
+
// inventoryItems,
|
|
134
|
+
// sftp: customerAvailableSftp
|
|
135
|
+
// })
|
|
136
|
+
// customerAvailableSftp = await tx.getRepository(Sftp).save(snResult)
|
|
137
|
+
// }
|
|
138
|
+
// }
|
|
139
|
+
// }
|
|
140
|
+
|
|
97
141
|
await worksheetController.completeLoading(releaseGoodNo)
|
|
98
142
|
|
|
99
143
|
if (remainInventories.length) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EntityManager, getManager } from 'typeorm'
|
|
2
2
|
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
3
|
+
import { ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
5
5
|
import { ReleaseGood } from '@things-factory/sales-base'
|
|
6
6
|
import { Domain } from '@things-factory/shell'
|
|
@@ -38,15 +38,32 @@ export async function activatePacking(
|
|
|
38
38
|
const worksheet = await worksheetController.activatePacking(worksheetNo)
|
|
39
39
|
let releaseGood: ReleaseGood = worksheet.releaseGood
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
const orderSource: string = releaseGood.source
|
|
42
|
+
switch (orderSource) {
|
|
43
|
+
case ApplicationType.SELLERCRAFT:
|
|
44
|
+
const sellercraft: Sellercraft = await tx
|
|
45
|
+
.getRepository(Sellercraft)
|
|
46
|
+
.findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
if (sellercraft) {
|
|
49
|
+
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
50
|
+
sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)
|
|
51
|
+
}
|
|
52
|
+
break
|
|
53
|
+
|
|
54
|
+
default:
|
|
55
|
+
break
|
|
50
56
|
}
|
|
57
|
+
|
|
58
|
+
// if (releaseGood.type == 'b2c') {
|
|
59
|
+
// const sellercraft: Sellercraft = await tx
|
|
60
|
+
// .getRepository(Sellercraft)
|
|
61
|
+
// .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
62
|
+
|
|
63
|
+
// if (sellercraft) {
|
|
64
|
+
// const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
65
|
+
// sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)
|
|
66
|
+
// }
|
|
67
|
+
// }
|
|
51
68
|
return worksheet
|
|
52
69
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { EntityManager } from 'typeorm'
|
|
2
2
|
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
3
|
+
import { ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { Bizplace, getMyBizplace } from '@things-factory/biz-base'
|
|
5
5
|
import { MarketplaceStore } from '@things-factory/integration-marketplace'
|
|
6
|
-
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
7
6
|
import { MarketplaceOrder } from '@things-factory/marketplace-base'
|
|
8
7
|
import { ReleaseGood } from '@things-factory/sales-base'
|
|
9
8
|
import { Domain } from '@things-factory/shell'
|
|
@@ -29,12 +28,9 @@ export const completePackingResolver = {
|
|
|
29
28
|
]
|
|
30
29
|
})
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
.findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
36
|
-
|
|
37
|
-
if (!sellercraft) {
|
|
31
|
+
const orderSource: string = releaseGood.source
|
|
32
|
+
switch (orderSource) {
|
|
33
|
+
case ApplicationType.MMS:
|
|
38
34
|
const companyDomain: Domain = releaseGood.bizplace.company.domain
|
|
39
35
|
const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
40
36
|
where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
@@ -52,9 +48,38 @@ export const completePackingResolver = {
|
|
|
52
48
|
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
53
49
|
await ecommerceCtrl.createOrderShip(releaseGood, marketplaceStore, marketplaceOrder, companyDomain)
|
|
54
50
|
}
|
|
55
|
-
|
|
51
|
+
break
|
|
52
|
+
|
|
53
|
+
default:
|
|
54
|
+
break
|
|
56
55
|
}
|
|
57
56
|
|
|
57
|
+
// if (releaseGood.type === 'b2c') {
|
|
58
|
+
// const sellercraft: Sellercraft = await tx
|
|
59
|
+
// .getRepository(Sellercraft)
|
|
60
|
+
// .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
61
|
+
|
|
62
|
+
// if (!sellercraft) {
|
|
63
|
+
// const companyDomain: Domain = releaseGood.bizplace.company.domain
|
|
64
|
+
// const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
65
|
+
// where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
66
|
+
// relations: [
|
|
67
|
+
// 'marketplaceOrderItems',
|
|
68
|
+
// 'marketplaceOrderItems.marketplaceOrderShippingItems',
|
|
69
|
+
// 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
|
|
70
|
+
// 'marketplaceStore',
|
|
71
|
+
// 'marketplaceStore.marketplaceDistributors'
|
|
72
|
+
// ]
|
|
73
|
+
// })
|
|
74
|
+
// const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
|
|
75
|
+
|
|
76
|
+
// if (marketplaceStore.isAutoUpdateShipment) {
|
|
77
|
+
// const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
78
|
+
// await ecommerceCtrl.createOrderShip(releaseGood, marketplaceStore, marketplaceOrder, companyDomain)
|
|
79
|
+
// }
|
|
80
|
+
// }
|
|
81
|
+
// }
|
|
82
|
+
|
|
58
83
|
const bizplace: Bizplace = await getMyBizplace(domain, user)
|
|
59
84
|
const worksheetController: WorksheetController = new WorksheetController(tx, domain, user)
|
|
60
85
|
await worksheetController.notifyToCustomer(bizplace, {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EntityManager } from 'typeorm'
|
|
2
2
|
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
3
|
+
import { ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
5
5
|
import { ReleaseGood } from '@things-factory/sales-base'
|
|
6
6
|
import { Domain } from '@things-factory/shell'
|
|
@@ -29,14 +29,31 @@ export async function packing(
|
|
|
29
29
|
let releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
|
|
30
30
|
const worksheet: Worksheet = worksheetDetail.worksheet
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
const orderSource: string = releaseGood.source
|
|
33
|
+
switch (orderSource) {
|
|
34
|
+
case ApplicationType.SELLERCRAFT:
|
|
35
|
+
const sellercraft: Sellercraft = await tx
|
|
36
|
+
.getRepository(Sellercraft)
|
|
37
|
+
.findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
if (sellercraft) {
|
|
40
|
+
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
41
|
+
await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
|
|
42
|
+
}
|
|
43
|
+
break
|
|
44
|
+
|
|
45
|
+
default:
|
|
46
|
+
break
|
|
41
47
|
}
|
|
48
|
+
|
|
49
|
+
// if (releaseGood.type === 'b2c' && !releaseGood?.airwayBill) {
|
|
50
|
+
// const sellercraft: Sellercraft = await tx
|
|
51
|
+
// .getRepository(Sellercraft)
|
|
52
|
+
// .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
53
|
+
|
|
54
|
+
// if (sellercraft) {
|
|
55
|
+
// const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
56
|
+
// await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
|
|
57
|
+
// }
|
|
58
|
+
// }
|
|
42
59
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EntityManager } from 'typeorm'
|
|
2
2
|
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
3
|
+
import { ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
5
5
|
import { ReleaseGood } from '@things-factory/sales-base'
|
|
6
6
|
import { Domain } from '@things-factory/shell'
|
|
@@ -34,17 +34,36 @@ export async function scanProductPacking(
|
|
|
34
34
|
let releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
|
|
35
35
|
const worksheet: Worksheet = worksheetDetail.worksheet
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
const orderSource: string = releaseGood.source
|
|
38
|
+
switch (orderSource) {
|
|
39
|
+
case ApplicationType.SELLERCRAFT:
|
|
40
|
+
if (!releaseGood?.airwayBill) {
|
|
41
|
+
const sellercraft: Sellercraft = await tx
|
|
42
|
+
.getRepository(Sellercraft)
|
|
43
|
+
.findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
41
44
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
if (sellercraft) {
|
|
46
|
+
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
47
|
+
sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
break
|
|
52
|
+
|
|
53
|
+
default:
|
|
54
|
+
break
|
|
46
55
|
}
|
|
47
56
|
|
|
57
|
+
// if (releaseGood.type === 'b2c' && !releaseGood?.airwayBill) {
|
|
58
|
+
// const sellercraft: Sellercraft = await tx
|
|
59
|
+
// .getRepository(Sellercraft)
|
|
60
|
+
// .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
61
|
+
|
|
62
|
+
// if (sellercraft) {
|
|
63
|
+
// const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
64
|
+
// sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
|
|
65
|
+
// }
|
|
66
|
+
// }
|
|
48
67
|
} catch (error) {
|
|
49
68
|
throw error
|
|
50
69
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { EntityManager,
|
|
1
|
+
import { EntityManager, getManager, SelectQueryBuilder } from 'typeorm'
|
|
2
2
|
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
3
|
+
import { ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { logger } from '@things-factory/env'
|
|
5
5
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
6
6
|
import {
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
MarketplaceOrderShippingItem
|
|
11
11
|
} from '@things-factory/marketplace-base'
|
|
12
12
|
import { ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'
|
|
13
|
+
import { PartnerSetting, Setting } from '@things-factory/setting-base'
|
|
13
14
|
import { Domain } from '@things-factory/shell'
|
|
14
15
|
import { Inventory, Location } from '@things-factory/warehouse-base'
|
|
15
16
|
|
|
@@ -17,7 +18,6 @@ import { WORKSHEET_TYPE } from '../../../constants'
|
|
|
17
18
|
import { PackingWorksheetController, SellercraftController } from '../../../controllers'
|
|
18
19
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
19
20
|
import { fetchExecutingWorksheet } from '../../../utils'
|
|
20
|
-
import { PartnerSetting, Setting } from '@things-factory/setting-base'
|
|
21
21
|
|
|
22
22
|
export const packingWorksheetResolver = {
|
|
23
23
|
async packingWorksheet(_: any, { releaseGoodNo }, context: any) {
|
|
@@ -146,16 +146,20 @@ export const packingWorksheetResolver = {
|
|
|
146
146
|
let shippingProvider: string
|
|
147
147
|
let marketplaceStatus: string
|
|
148
148
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
149
|
+
const orderSource: string = releaseGood.source
|
|
150
|
+
switch (orderSource) {
|
|
151
|
+
case ApplicationType.SELLERCRAFT:
|
|
152
|
+
const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({
|
|
153
|
+
domain: worksheet.bizplace.domain,
|
|
154
|
+
status: SellercraftStatus.ACTIVE
|
|
155
|
+
})
|
|
154
156
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
157
|
+
if (sellercraft) {
|
|
158
|
+
getSellercraftDocument(sellercraft, releaseGood, domain, user)
|
|
159
|
+
}
|
|
160
|
+
break
|
|
161
|
+
|
|
162
|
+
case ApplicationType.MMS:
|
|
159
163
|
marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
160
164
|
where: { orderNo: releaseGood.refNo },
|
|
161
165
|
relations: [
|
|
@@ -191,9 +195,60 @@ export const packingWorksheetResolver = {
|
|
|
191
195
|
|
|
192
196
|
marketplaceStore = marketplaceOrder?.marketplaceStore
|
|
193
197
|
marketplaceStatus = marketplaceOrder?.status
|
|
194
|
-
|
|
198
|
+
break
|
|
199
|
+
|
|
200
|
+
default:
|
|
201
|
+
break
|
|
195
202
|
}
|
|
196
203
|
|
|
204
|
+
// if (releaseGood.type === 'b2c') {
|
|
205
|
+
// const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({
|
|
206
|
+
// domain: worksheet.bizplace.domain,
|
|
207
|
+
// status: SellercraftStatus.ACTIVE
|
|
208
|
+
// })
|
|
209
|
+
|
|
210
|
+
// if (sellercraft) {
|
|
211
|
+
// // asynchronously get document from sellercraft
|
|
212
|
+
// getSellercraftDocument(sellercraft, releaseGood, domain, user)
|
|
213
|
+
// } else {
|
|
214
|
+
// marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
215
|
+
// where: { orderNo: releaseGood.refNo },
|
|
216
|
+
// relations: [
|
|
217
|
+
// 'domain',
|
|
218
|
+
// 'marketplaceStore',
|
|
219
|
+
// 'marketplaceOrderItems',
|
|
220
|
+
// 'marketplaceOrderItems.marketplaceOrderShippingItems',
|
|
221
|
+
// 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'
|
|
222
|
+
// ]
|
|
223
|
+
// })
|
|
224
|
+
|
|
225
|
+
// if (!marketplaceOrder) {
|
|
226
|
+
// throw new Error('Failed to retrieve ecommerce information, kindly contact our support team for this issue.')
|
|
227
|
+
// }
|
|
228
|
+
|
|
229
|
+
// let marketplaceOrderShipping: MarketplaceOrderShipping
|
|
230
|
+
// if (marketplaceOrder.isSplitted) {
|
|
231
|
+
// marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({
|
|
232
|
+
// where: { subOrderNoRef: worksheet.releaseGood.refNo2 }
|
|
233
|
+
// })
|
|
234
|
+
// } else {
|
|
235
|
+
// marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({
|
|
236
|
+
// where: { orderNoRef: worksheet.releaseGood.refNo }
|
|
237
|
+
// })
|
|
238
|
+
// }
|
|
239
|
+
|
|
240
|
+
// trackingNo = marketplaceOrderShipping.ownTrackingNo
|
|
241
|
+
// ? marketplaceOrderShipping.ownTrackingNo
|
|
242
|
+
// : marketplaceOrderShipping.trackingNo
|
|
243
|
+
// shippingProvider = marketplaceOrderShipping.ownTransporter
|
|
244
|
+
// ? marketplaceOrderShipping.ownTransporter
|
|
245
|
+
// : marketplaceOrderShipping.transporter
|
|
246
|
+
|
|
247
|
+
// marketplaceStore = marketplaceOrder?.marketplaceStore
|
|
248
|
+
// marketplaceStatus = marketplaceOrder?.status
|
|
249
|
+
// }
|
|
250
|
+
// }
|
|
251
|
+
|
|
197
252
|
return {
|
|
198
253
|
worksheetInfo: {
|
|
199
254
|
releaseGood,
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { EntityManager } from 'typeorm'
|
|
2
2
|
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
3
|
+
import { ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { MarketplaceStore } from '@things-factory/integration-marketplace'
|
|
5
|
-
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
6
5
|
import { MarketplaceOrder } from '@things-factory/marketplace-base'
|
|
7
6
|
import { ORDER_STATUS, ReleaseGood } from '@things-factory/sales-base'
|
|
8
7
|
import { Domain } from '@things-factory/shell'
|
|
@@ -27,42 +26,73 @@ export async function activatePicking(
|
|
|
27
26
|
const worksheet = await worksheetController.activatePicking(worksheetNo)
|
|
28
27
|
const companyDomain: Domain = worksheet?.bizplace.company.domain
|
|
29
28
|
|
|
30
|
-
// find for any existing marketplace store connections
|
|
31
|
-
const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({
|
|
32
|
-
where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },
|
|
33
|
-
relations: ['marketplaceDistributors']
|
|
34
|
-
})
|
|
35
|
-
|
|
36
29
|
let releaseGood: ReleaseGood = worksheet.releaseGood
|
|
37
30
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const worksheetDetails = worksheet.worksheetDetails
|
|
46
|
-
let orderInventories: any[] = worksheetDetails.map(wsd => wsd.targetInventory)
|
|
47
|
-
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
48
|
-
await ecommerceCtrl.updateProductVariationStock(marketplaceStores, orderInventories, companyDomain)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
52
|
-
where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
53
|
-
relations: ['marketplaceStore']
|
|
31
|
+
const orderSource: string = releaseGood.source
|
|
32
|
+
switch (orderSource) {
|
|
33
|
+
case ApplicationType.MMS:
|
|
34
|
+
// find for any existing marketplace store connections
|
|
35
|
+
const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({
|
|
36
|
+
where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },
|
|
37
|
+
relations: ['marketplaceDistributors']
|
|
54
38
|
})
|
|
55
39
|
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
40
|
+
if (marketplaceStores?.length) {
|
|
41
|
+
if (marketplaceStores.some(store => store.isAutoUpdateStockQty)) {
|
|
42
|
+
const worksheetDetails = worksheet.worksheetDetails
|
|
43
|
+
let orderInventories: any[] = worksheetDetails.map(wsd => wsd.targetInventory)
|
|
60
44
|
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
61
|
-
await ecommerceCtrl.
|
|
45
|
+
await ecommerceCtrl.updateProductVariationStock(marketplaceStores, orderInventories, companyDomain)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
49
|
+
where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
50
|
+
relations: ['marketplaceStore']
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
if (marketplaceOrder) {
|
|
54
|
+
const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
|
|
55
|
+
|
|
56
|
+
if (marketplaceStore.isAutoUpdateShipment) {
|
|
57
|
+
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
58
|
+
await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PICKING)
|
|
59
|
+
}
|
|
62
60
|
}
|
|
63
61
|
}
|
|
64
|
-
|
|
62
|
+
break
|
|
63
|
+
|
|
64
|
+
default:
|
|
65
|
+
break
|
|
65
66
|
}
|
|
66
67
|
|
|
68
|
+
// if (releaseGood.type === 'b2c') {
|
|
69
|
+
// const sellercraft: Sellercraft = await tx
|
|
70
|
+
// .getRepository(Sellercraft)
|
|
71
|
+
// .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
72
|
+
|
|
73
|
+
// if (marketplaceStores?.length && !sellercraft) {
|
|
74
|
+
// if (marketplaceStores.some(store => store.isAutoUpdateStockQty)) {
|
|
75
|
+
// const worksheetDetails = worksheet.worksheetDetails
|
|
76
|
+
// let orderInventories: any[] = worksheetDetails.map(wsd => wsd.targetInventory)
|
|
77
|
+
// const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
78
|
+
// await ecommerceCtrl.updateProductVariationStock(marketplaceStores, orderInventories, companyDomain)
|
|
79
|
+
// }
|
|
80
|
+
|
|
81
|
+
// const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
82
|
+
// where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
83
|
+
// relations: ['marketplaceStore']
|
|
84
|
+
// })
|
|
85
|
+
|
|
86
|
+
// if (marketplaceOrder) {
|
|
87
|
+
// const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
|
|
88
|
+
|
|
89
|
+
// if (marketplaceStore.isAutoUpdateShipment) {
|
|
90
|
+
// const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
91
|
+
// await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PICKING)
|
|
92
|
+
// }
|
|
93
|
+
// }
|
|
94
|
+
// }
|
|
95
|
+
// }
|
|
96
|
+
|
|
67
97
|
return worksheet
|
|
68
98
|
}
|
|
@@ -69,7 +69,7 @@ export async function completeBatchPicking(
|
|
|
69
69
|
|
|
70
70
|
let foundReleaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
|
|
71
71
|
where: { id: releaseGood.id },
|
|
72
|
-
relations: ['orderProducts', 'orderProducts.product'
|
|
72
|
+
relations: ['orderProducts', 'orderProducts.product']
|
|
73
73
|
})
|
|
74
74
|
|
|
75
75
|
if (!foundReleaseGood?.packageId) {
|
|
@@ -112,7 +112,7 @@ export async function completeBatchPicking(
|
|
|
112
112
|
})
|
|
113
113
|
|
|
114
114
|
// loop to generate packing worksheet
|
|
115
|
-
for (
|
|
115
|
+
for (let i: number = 0; i < uniqueRoNo.length; i++) {
|
|
116
116
|
const releaseGoodNo: string = uniqueRoNo[i]
|
|
117
117
|
const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)
|
|
118
118
|
await packingWSCtrl.generatePackingWorksheet(releaseGoodNo)
|