@things-factory/operato-hub 4.3.192 → 4.3.194
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.
|
@@ -2,22 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getLmdAwbResolver = void 0;
|
|
4
4
|
const typeorm_1 = require("typeorm");
|
|
5
|
-
const uuid_1 = require("uuid");
|
|
6
5
|
const sales_base_1 = require("@things-factory/sales-base");
|
|
7
|
-
const
|
|
8
|
-
const board_service_1 = require("@things-factory/board-service");
|
|
9
|
-
const env_1 = require("@things-factory/env");
|
|
10
|
-
const board_service_2 = require("@things-factory/board-service");
|
|
11
|
-
const attachment_base_1 = require("@things-factory/attachment-base");
|
|
12
|
-
const attachment_base_2 = require("@things-factory/attachment-base");
|
|
6
|
+
const worksheet_base_1 = require("@things-factory/worksheet-base");
|
|
13
7
|
const integration_sellercraft_1 = require("@things-factory/integration-sellercraft");
|
|
14
8
|
const auth_base_1 = require("@things-factory/auth-base");
|
|
15
|
-
const worksheet_base_1 = require("@things-factory/worksheet-base");
|
|
16
9
|
const setting_base_1 = require("@things-factory/setting-base");
|
|
17
|
-
const
|
|
18
|
-
dhl: 'operato-lmd-dhl-awb',
|
|
19
|
-
airspeed: 'operato-lmd-airspeed-awb'
|
|
20
|
-
};
|
|
10
|
+
const env_1 = require("@things-factory/env");
|
|
21
11
|
exports.getLmdAwbResolver = {
|
|
22
12
|
async getLmdAwb(_, {}, context) {
|
|
23
13
|
const qb = (0, typeorm_1.getRepository)(sales_base_1.OrderPackage)
|
|
@@ -34,22 +24,8 @@ exports.getLmdAwbResolver = {
|
|
|
34
24
|
.andWhere('op.parcel_id IS NOT NULL')
|
|
35
25
|
.andWhere('op.airway_bill IS NULL');
|
|
36
26
|
const orderPackages = await qb.getMany();
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
await (0, typeorm_1.getConnection)().transaction(async (tx) => {
|
|
40
|
-
try {
|
|
41
|
-
let awbRes = await integration_lmd_1.LastMileAPI.getAwb(Object.assign(Object.assign({}, orderPackage.releaseGood.lastMileDelivery), { platform: 'lmdMiddleware' }), { parcelId: orderPackage.parcelId });
|
|
42
|
-
if (awbRes) {
|
|
43
|
-
await constructAndUploadAwb(orderPackage.releaseGood, orderPackage, awbRes);
|
|
44
|
-
releaseOrders.push(orderPackage.releaseGood);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
catch (e) {
|
|
48
|
-
env_1.logger.error(e);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
// trigger RTS
|
|
27
|
+
await (0, worksheet_base_1.processAwbAndTrackingNo)(orderPackages);
|
|
28
|
+
const releaseOrders = orderPackages.map(op => { return op.releaseGood; });
|
|
53
29
|
try {
|
|
54
30
|
let uniqueReleaseOrders = [...new Map(releaseOrders.map(item => [item['id'], item])).values()];
|
|
55
31
|
for (let releaseOrder of uniqueReleaseOrders) {
|
|
@@ -76,62 +52,6 @@ exports.getLmdAwbResolver = {
|
|
|
76
52
|
catch (e) {
|
|
77
53
|
env_1.logger.error(`[get-lmd-awb-sof-trigger]: ${e}`);
|
|
78
54
|
}
|
|
79
|
-
//
|
|
80
55
|
}
|
|
81
56
|
};
|
|
82
|
-
async function constructAndUploadAwb(releaseOrder, orderPackage, awbRes) {
|
|
83
|
-
let { shipmentID, deliveryConfirmationNo, deliveryDepotCode, primarySortCode, secondarySortCode, recipient, sender, tracking_no, courier } = awbRes;
|
|
84
|
-
let senderFullAddress = `${sender === null || sender === void 0 ? void 0 : sender.address}${(sender === null || sender === void 0 ? void 0 : sender.address2) ? ', ' + (sender === null || sender === void 0 ? void 0 : sender.address2) : ''}${(sender === null || sender === void 0 ? void 0 : sender.district) ? ', ' + (sender === null || sender === void 0 ? void 0 : sender.district) : ''}${(sender === null || sender === void 0 ? void 0 : sender.city) ? ', ' + (sender === null || sender === void 0 ? void 0 : sender.city) : ''}${(sender === null || sender === void 0 ? void 0 : sender.postcode) ? ', ' + (sender === null || sender === void 0 ? void 0 : sender.postcode) : ''}${(sender === null || sender === void 0 ? void 0 : sender.state) ? ', ' + (sender === null || sender === void 0 ? void 0 : sender.state) : ''}`;
|
|
85
|
-
let recipientAddress1 = `${recipient === null || recipient === void 0 ? void 0 : recipient.address}${(recipient === null || recipient === void 0 ? void 0 : recipient.address2) ? ', ' + (recipient === null || recipient === void 0 ? void 0 : recipient.address2) : ''}${(recipient === null || recipient === void 0 ? void 0 : recipient.district) ? ', ' + (recipient === null || recipient === void 0 ? void 0 : recipient.district) : ''}`;
|
|
86
|
-
let recipientAddress2 = `${recipient === null || recipient === void 0 ? void 0 : recipient.state}${(recipient === null || recipient === void 0 ? void 0 : recipient.city) ? ', ' + (recipient === null || recipient === void 0 ? void 0 : recipient.city) : ''}${(recipient === null || recipient === void 0 ? void 0 : recipient.postcode) ? ', ' + (recipient === null || recipient === void 0 ? void 0 : recipient.postcode) : ''}`;
|
|
87
|
-
let data = {
|
|
88
|
-
senderFullAddress,
|
|
89
|
-
senderName: sender === null || sender === void 0 ? void 0 : sender.name,
|
|
90
|
-
recipientAddress1,
|
|
91
|
-
recipientAddress2,
|
|
92
|
-
recipientPhone: recipient === null || recipient === void 0 ? void 0 : recipient.phone,
|
|
93
|
-
recipientName: recipient === null || recipient === void 0 ? void 0 : recipient.name,
|
|
94
|
-
refId: shipmentID,
|
|
95
|
-
deliveryConfirmationNo: deliveryConfirmationNo || tracking_no,
|
|
96
|
-
deliveryDepotCode: deliveryDepotCode,
|
|
97
|
-
primarySortCode: primarySortCode,
|
|
98
|
-
secondarySortCode: secondarySortCode,
|
|
99
|
-
orderNo: releaseOrder === null || releaseOrder === void 0 ? void 0 : releaseOrder.refNo
|
|
100
|
-
};
|
|
101
|
-
let lmdBoard = await (0, typeorm_1.getRepository)(board_service_1.Board).findOne({
|
|
102
|
-
where: { name: LMD_BOARDS[courier] },
|
|
103
|
-
relations: ['domain']
|
|
104
|
-
});
|
|
105
|
-
if (!lmdBoard)
|
|
106
|
-
throw new Error(`[get-lmd-awb] board is not found (RO: ${releaseOrder.name})`);
|
|
107
|
-
const { model } = await (0, board_service_2.headlessModel)({ domain: lmdBoard.domain, id: lmdBoard.id });
|
|
108
|
-
const result = await (0, board_service_2.pdf)({
|
|
109
|
-
id: lmdBoard.id,
|
|
110
|
-
model,
|
|
111
|
-
data,
|
|
112
|
-
options: {
|
|
113
|
-
format: 'A4'
|
|
114
|
-
},
|
|
115
|
-
context: { state: { domain: lmdBoard.domain } }
|
|
116
|
-
});
|
|
117
|
-
let uuid = (0, uuid_1.v4)();
|
|
118
|
-
let awb = await (0, attachment_base_1.uploadAwb)({
|
|
119
|
-
content: result,
|
|
120
|
-
title: uuid
|
|
121
|
-
});
|
|
122
|
-
if (!(awb === null || awb === void 0 ? void 0 : awb.url))
|
|
123
|
-
throw new Error(`[get-lmd-awb] awb was not uploaded for (RO: ${releaseOrder.name})`);
|
|
124
|
-
await (0, typeorm_1.getRepository)(sales_base_1.OrderPackage).update({ id: orderPackage.id }, { airwayBill: awb.url, trackingNo: deliveryConfirmationNo || tracking_no });
|
|
125
|
-
// create attachment
|
|
126
|
-
await (0, typeorm_1.getRepository)(attachment_base_2.Attachment).insert({
|
|
127
|
-
name: uuid,
|
|
128
|
-
mimetype: 'application/pdf',
|
|
129
|
-
category: 'LMD_AWB',
|
|
130
|
-
refBy: orderPackage.id,
|
|
131
|
-
path: awb.url,
|
|
132
|
-
domain: releaseOrder.domain,
|
|
133
|
-
size: 0,
|
|
134
|
-
encoding: ''
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
57
|
//# sourceMappingURL=get-lmd-awb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-lmd-awb.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/get-lmd-awb.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"get-lmd-awb.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/get-lmd-awb.ts"],"names":[],"mappings":";;;AAAA,qCAA0E;AAE1E,2DAAoF;AACpF,mEAA+F;AAC/F,qFAAwF;AACxF,yDAA2D;AAC3D,+DAAsD;AACtD,6CAA4C;AAE/B,QAAA,iBAAiB,GAAG;IAC/B,KAAK,CAAC,SAAS,CAAC,CAAM,EAAE,EAAE,EAAE,OAAY;QACtC,MAAM,EAAE,GAAqC,IAAA,uBAAa,EAAC,yBAAY,CAAC;aACrE,kBAAkB,CAAC,IAAI,CAAC;aACxB,kBAAkB,CAAC,gBAAgB,EAAE,IAAI,CAAC;aAC1C,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC;aACpC,kBAAkB,CAAC,aAAa,EAAE,GAAG,CAAC;aACtC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC;aACpC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,CAAC;aAC/C,KAAK,CAAC,sBAAsB,CAAC;aAC7B,QAAQ,CAAC,iCAAiC,EAAE;YAC3C,QAAQ,EAAE,CAAC,yBAAY,CAAC,SAAS,EAAE,yBAAY,CAAC,cAAc,EAAE,yBAAY,CAAC,IAAI,CAAC;SACnF,CAAC;aACD,QAAQ,CAAC,0BAA0B,CAAC;aACpC,QAAQ,CAAC,wBAAwB,CAAC,CAAA;QAErC,MAAM,aAAa,GAAmB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;QAExD,MAAM,IAAA,wCAAuB,EAAC,aAAa,CAAC,CAAA;QAE5C,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,WAAW,CAAA,CAAC,CAAC,CAAC,CAAA;QAExE,IAAI;YACF,IAAI,mBAAmB,GAAgB,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;YAE3G,KAAK,IAAI,YAAY,IAAI,mBAAmB,EAAE;gBAC5C,MAAM,WAAW,GAAW,YAAY,CAAC,MAAM,CAAA;gBAE/C,IAAI,WAAW,IAAI,2BAAe,CAAC,WAAW,EAAE;oBAC9C,MAAM,WAAW,GAAgB,MAAM,IAAA,uBAAa,EAAC,qCAAW,CAAC,CAAC,OAAO,CAAC;wBACxE,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM;wBACpC,MAAM,EAAE,2CAAiB,CAAC,MAAM;qBACjC,CAAC,CAAA;oBACF,IAAI,WAAW,EAAE;wBACf,MAAM,IAAA,uBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;4BAC3C,MAAM,eAAe,GAA0B,IAAI,sCAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;4BACxF,MAAM,eAAe,GAAY,MAAM,EAAE,CAAC,aAAa,CAAC,sBAAO,CAAC,CAAC,OAAO,CAAC;gCACvE,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE;6BACvF,CAAC,CAAA;4BAEF,IAAI,eAAe,IAAI,QAAQ,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,KAAI,CAAC,CAAC,IAAI,CAAC,EAAE;gCACjE,MAAM,eAAe,CAAC,qBAAqB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;6BACvE;wBACH,CAAC,CAAC,CAAA;qBACH;iBACF;aACF;SACF;QAAC,OAAO,CAAC,EAAE;YACV,YAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAA;SAChD;IACH,CAAC;CACF,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/operato-hub",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.194",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -79,19 +79,19 @@
|
|
|
79
79
|
"@things-factory/import-ui-excel": "^4.3.179",
|
|
80
80
|
"@things-factory/integration-accounting": "^4.3.190",
|
|
81
81
|
"@things-factory/integration-fulfillment": "^4.3.190",
|
|
82
|
-
"@things-factory/integration-lmd": "^4.3.
|
|
83
|
-
"@things-factory/integration-marketplace": "^4.3.
|
|
82
|
+
"@things-factory/integration-lmd": "^4.3.193",
|
|
83
|
+
"@things-factory/integration-marketplace": "^4.3.193",
|
|
84
84
|
"@things-factory/integration-pos": "^4.3.190",
|
|
85
|
-
"@things-factory/integration-sellercraft": "^4.3.
|
|
85
|
+
"@things-factory/integration-sellercraft": "^4.3.193",
|
|
86
86
|
"@things-factory/integration-sftp": "^4.3.190",
|
|
87
87
|
"@things-factory/lite-menu": "^4.3.186",
|
|
88
|
-
"@things-factory/marketplace-base": "^4.3.
|
|
88
|
+
"@things-factory/marketplace-base": "^4.3.193",
|
|
89
89
|
"@things-factory/more-ui": "^4.3.179",
|
|
90
90
|
"@things-factory/notification": "^4.3.186",
|
|
91
91
|
"@things-factory/pdf": "^4.3.159",
|
|
92
92
|
"@things-factory/product-ui": "^4.3.187",
|
|
93
93
|
"@things-factory/resource-ui": "^4.3.179",
|
|
94
|
-
"@things-factory/sales-base": "^4.3.
|
|
94
|
+
"@things-factory/sales-base": "^4.3.193",
|
|
95
95
|
"@things-factory/scene-data-transform": "^4.3.159",
|
|
96
96
|
"@things-factory/scene-excel": "^4.3.159",
|
|
97
97
|
"@things-factory/scene-firebase": "^4.3.159",
|
|
@@ -106,8 +106,8 @@
|
|
|
106
106
|
"@things-factory/setting-ui": "^4.3.186",
|
|
107
107
|
"@things-factory/shell": "^4.3.179",
|
|
108
108
|
"@things-factory/system-ui": "^4.3.179",
|
|
109
|
-
"@things-factory/warehouse-base": "^4.3.
|
|
110
|
-
"@things-factory/worksheet-base": "^4.3.
|
|
109
|
+
"@things-factory/warehouse-base": "^4.3.193",
|
|
110
|
+
"@things-factory/worksheet-base": "^4.3.194",
|
|
111
111
|
"cron-parser": "^4.7.0",
|
|
112
112
|
"koa2-swagger-ui": "^5.0.2",
|
|
113
113
|
"swagger-jsdoc": "^5.0.0",
|
|
@@ -119,5 +119,5 @@
|
|
|
119
119
|
"resolutions": {
|
|
120
120
|
"core-js": "^3.16.0"
|
|
121
121
|
},
|
|
122
|
-
"gitHead": "
|
|
122
|
+
"gitHead": "fa364664b6924dd8afab814ef66d9feb77174691"
|
|
123
123
|
}
|
|
@@ -1,22 +1,11 @@
|
|
|
1
|
-
import { getRepository, getConnection,
|
|
2
|
-
import { v4 as uuidv4 } from 'uuid'
|
|
1
|
+
import { getRepository, getConnection, SelectQueryBuilder } from 'typeorm'
|
|
3
2
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { Board } from '@things-factory/board-service'
|
|
7
|
-
import { logger } from '@things-factory/env'
|
|
8
|
-
import { headlessModel, pdf } from '@things-factory/board-service'
|
|
9
|
-
import { uploadAwb } from '@things-factory/attachment-base'
|
|
10
|
-
import { Attachment } from '@things-factory/attachment-base'
|
|
3
|
+
import { OrderPackage, ORDER_STATUS, ReleaseGood } from '@things-factory/sales-base'
|
|
4
|
+
import { processAwbAndTrackingNo, SellercraftController } from '@things-factory/worksheet-base'
|
|
11
5
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
12
6
|
import { ApplicationType } from '@things-factory/auth-base'
|
|
13
|
-
import { SellercraftController } from '@things-factory/worksheet-base'
|
|
14
7
|
import { Setting } from '@things-factory/setting-base'
|
|
15
|
-
|
|
16
|
-
const LMD_BOARDS = {
|
|
17
|
-
dhl: 'operato-lmd-dhl-awb',
|
|
18
|
-
airspeed: 'operato-lmd-airspeed-awb'
|
|
19
|
-
}
|
|
8
|
+
import { logger } from '@things-factory/env'
|
|
20
9
|
|
|
21
10
|
export const getLmdAwbResolver = {
|
|
22
11
|
async getLmdAwb(_: any, {}, context: any) {
|
|
@@ -36,45 +25,28 @@ export const getLmdAwbResolver = {
|
|
|
36
25
|
|
|
37
26
|
const orderPackages: OrderPackage[] = await qb.getMany()
|
|
38
27
|
|
|
39
|
-
|
|
28
|
+
await processAwbAndTrackingNo(orderPackages)
|
|
40
29
|
|
|
41
|
-
|
|
42
|
-
await getConnection().transaction(async tx => {
|
|
43
|
-
try {
|
|
44
|
-
let awbRes = await LastMileAPI.getAwb(
|
|
45
|
-
{ ...orderPackage.releaseGood.lastMileDelivery, platform: 'lmdMiddleware' },
|
|
46
|
-
{ parcelId: orderPackage.parcelId }
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
if (awbRes) {
|
|
50
|
-
await constructAndUploadAwb(orderPackage.releaseGood, orderPackage, awbRes)
|
|
51
|
-
releaseOrders.push(orderPackage.releaseGood)
|
|
52
|
-
}
|
|
53
|
-
} catch (e) {
|
|
54
|
-
logger.error(e)
|
|
55
|
-
}
|
|
56
|
-
})
|
|
57
|
-
}
|
|
30
|
+
const releaseOrders = orderPackages.map(op => { return op.releaseGood })
|
|
58
31
|
|
|
59
|
-
// trigger RTS
|
|
60
32
|
try {
|
|
61
33
|
let uniqueReleaseOrders: ReleaseGood = [...new Map(releaseOrders.map(item => [item['id'], item])).values()]
|
|
62
|
-
|
|
34
|
+
|
|
63
35
|
for (let releaseOrder of uniqueReleaseOrders) {
|
|
64
36
|
const orderSource: string = releaseOrder.source
|
|
65
|
-
|
|
37
|
+
|
|
66
38
|
if (orderSource == ApplicationType.SELLERCRAFT) {
|
|
67
39
|
const sellercraft: Sellercraft = await getRepository(Sellercraft).findOne({
|
|
68
40
|
domain: releaseOrder.bizplace.domain,
|
|
69
41
|
status: SellercraftStatus.ACTIVE
|
|
70
42
|
})
|
|
71
43
|
if (sellercraft) {
|
|
72
|
-
await getConnection().transaction(async
|
|
44
|
+
await getConnection().transaction(async tx => {
|
|
73
45
|
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, null, null)
|
|
74
46
|
const rtsTriggerLevel: Setting = await tx.getRepository(Setting).findOne({
|
|
75
47
|
where: { domain: releaseOrder.domain, category: 'id-rule', name: 'rts-trigger-level' }
|
|
76
48
|
})
|
|
77
|
-
|
|
49
|
+
|
|
78
50
|
if (rtsTriggerLevel && parseInt(rtsTriggerLevel?.value || 0) == 1) {
|
|
79
51
|
await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseOrder)
|
|
80
52
|
}
|
|
@@ -85,94 +57,5 @@ export const getLmdAwbResolver = {
|
|
|
85
57
|
} catch (e) {
|
|
86
58
|
logger.error(`[get-lmd-awb-sof-trigger]: ${e}`)
|
|
87
59
|
}
|
|
88
|
-
//
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
async function constructAndUploadAwb(releaseOrder, orderPackage, awbRes) {
|
|
93
|
-
let {
|
|
94
|
-
shipmentID,
|
|
95
|
-
deliveryConfirmationNo,
|
|
96
|
-
deliveryDepotCode,
|
|
97
|
-
primarySortCode,
|
|
98
|
-
secondarySortCode,
|
|
99
|
-
recipient,
|
|
100
|
-
sender,
|
|
101
|
-
tracking_no,
|
|
102
|
-
courier
|
|
103
|
-
} = awbRes
|
|
104
|
-
|
|
105
|
-
let senderFullAddress = `${sender?.address}${sender?.address2 ? ', ' + sender?.address2 : ''}${
|
|
106
|
-
sender?.district ? ', ' + sender?.district : ''
|
|
107
|
-
}${sender?.city ? ', ' + sender?.city : ''}${sender?.postcode ? ', ' + sender?.postcode : ''}${
|
|
108
|
-
sender?.state ? ', ' + sender?.state : ''
|
|
109
|
-
}`
|
|
110
|
-
|
|
111
|
-
let recipientAddress1 = `${recipient?.address}${recipient?.address2 ? ', ' + recipient?.address2 : ''}${
|
|
112
|
-
recipient?.district ? ', ' + recipient?.district : ''
|
|
113
|
-
}`
|
|
114
|
-
|
|
115
|
-
let recipientAddress2 = `${recipient?.state}${recipient?.city ? ', ' + recipient?.city : ''}${
|
|
116
|
-
recipient?.postcode ? ', ' + recipient?.postcode : ''
|
|
117
|
-
}`
|
|
118
|
-
|
|
119
|
-
let data = {
|
|
120
|
-
senderFullAddress,
|
|
121
|
-
senderName: sender?.name,
|
|
122
|
-
recipientAddress1,
|
|
123
|
-
recipientAddress2,
|
|
124
|
-
recipientPhone: recipient?.phone,
|
|
125
|
-
recipientName: recipient?.name,
|
|
126
|
-
refId: shipmentID,
|
|
127
|
-
deliveryConfirmationNo: deliveryConfirmationNo || tracking_no,
|
|
128
|
-
deliveryDepotCode: deliveryDepotCode,
|
|
129
|
-
primarySortCode: primarySortCode,
|
|
130
|
-
secondarySortCode: secondarySortCode,
|
|
131
|
-
orderNo: releaseOrder?.refNo
|
|
132
60
|
}
|
|
133
|
-
|
|
134
|
-
let lmdBoard: Board = await getRepository(Board).findOne({
|
|
135
|
-
where: { name: LMD_BOARDS[courier] },
|
|
136
|
-
relations: ['domain']
|
|
137
|
-
})
|
|
138
|
-
|
|
139
|
-
if (!lmdBoard) throw new Error(`[get-lmd-awb] board is not found (RO: ${releaseOrder.name})`)
|
|
140
|
-
|
|
141
|
-
const { model } = await headlessModel({ domain: lmdBoard.domain, id: lmdBoard.id })
|
|
142
|
-
|
|
143
|
-
const result = await pdf({
|
|
144
|
-
id: lmdBoard.id,
|
|
145
|
-
model,
|
|
146
|
-
data,
|
|
147
|
-
options: {
|
|
148
|
-
format: 'A4'
|
|
149
|
-
},
|
|
150
|
-
context: { state: { domain: lmdBoard.domain } }
|
|
151
|
-
})
|
|
152
|
-
|
|
153
|
-
let uuid = uuidv4()
|
|
154
|
-
let awb = await uploadAwb({
|
|
155
|
-
content: result,
|
|
156
|
-
title: uuid
|
|
157
|
-
})
|
|
158
|
-
|
|
159
|
-
if (!awb?.url) throw new Error(`[get-lmd-awb] awb was not uploaded for (RO: ${releaseOrder.name})`)
|
|
160
|
-
|
|
161
|
-
await getRepository(OrderPackage).update(
|
|
162
|
-
{ id: orderPackage.id },
|
|
163
|
-
{ airwayBill: awb.url, trackingNo: deliveryConfirmationNo || tracking_no }
|
|
164
|
-
)
|
|
165
|
-
|
|
166
|
-
// create attachment
|
|
167
|
-
|
|
168
|
-
await getRepository(Attachment).insert({
|
|
169
|
-
name: uuid,
|
|
170
|
-
mimetype: 'application/pdf',
|
|
171
|
-
category: 'LMD_AWB',
|
|
172
|
-
refBy: orderPackage.id,
|
|
173
|
-
path: awb.url,
|
|
174
|
-
domain: releaseOrder.domain,
|
|
175
|
-
size: 0,
|
|
176
|
-
encoding: ''
|
|
177
|
-
})
|
|
178
61
|
}
|