@things-factory/operato-hub 4.3.192 → 4.3.193

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.
@@ -4,27 +4,55 @@ module.exports = {
4
4
  useVirtualHostBasedDomain: false,
5
5
  fallbackRoute: '/',
6
6
  subdomainOffset: 2,
7
- port: 1200,
7
+ port: 3000,
8
8
  inspect: '9260',
9
+ // ormconfig: {
10
+ // name: 'default',
11
+ // type: 'postgres',
12
+ // database: 'postgres',
13
+ // username: 'postgres',
14
+ // password: 'hatio',
15
+ // host: 'localhost',
16
+ // port: 15432,
17
+ // synchronize: true,
18
+ // logging: true,
19
+ // connectTimeoutMS: 30000,
20
+ // extra: { poolSize: 30 }
21
+ // },
9
22
  ormconfig: {
10
23
  name: 'default',
11
24
  type: 'postgres',
25
+ host: 'operatov3.cluster-cijhm4n1hbst.ap-southeast-1.rds.amazonaws.com',
26
+ port: 55432,
12
27
  database: 'dev',
13
28
  username: 'postgres',
14
- password: 'hatio',
15
- host: '192.168.0.153',
16
- port: 15432,
29
+ password: 'abcd1234',
17
30
  synchronize: true,
18
- logging: false
31
+ logging: false,
32
+ connectTimeoutMS: 30000,
33
+ extra: { poolSize: 30 }
19
34
  },
20
35
  // ormconfig: {
21
36
  // name: 'default',
22
37
  // type: 'postgres',
38
+ // database: 'dev2', // dev2
39
+ // username: 'postgres',
40
+ // password: 'abcd1234',
23
41
  // host: 'operatov3.cluster-cijhm4n1hbst.ap-southeast-1.rds.amazonaws.com',
24
42
  // port: 55432,
43
+ // synchronize:false,
44
+ // logging: false,
45
+ // connectTimeoutMS: 30000,
46
+ // extra: { poolSize: 30 }
47
+ // },
48
+ // ormconfig: {
49
+ // name: 'default',
50
+ // type: 'postgres',
51
+ // host: 'localhost',
52
+ // port: 15432,
25
53
  // database: 'postgres',
26
54
  // username: 'postgres',
27
- // password: 'abcd1234',
55
+ // password: 'hatio',
28
56
  // synchronize: false,
29
57
  // logging: true,
30
58
  // connectTimeoutMS: 30000,
@@ -106,13 +134,13 @@ module.exports = {
106
134
  // }
107
135
  },
108
136
  fulfillmentIntegrationOperato: {
109
- host: 'operato-h.com:3000',
137
+ host: '192.168.0.161:3000',
110
138
  protocol: 'http',
111
139
  platform: 'operato',
112
140
  application: 'Operato MMS',
113
141
  appKey: 'a9bf751e622bf146662b240d58971051',
114
142
  appSecret: '1c385935dc131c4b902b9bbf6a4798af',
115
- callback: 'http://operato-retail.com:5000/callback-operato'
143
+ callback: 'http://192.168.0.161:5000/callback-operato'
116
144
  },
117
145
  marketplaceIntegrationShopee: {
118
146
  platform: 'shopee',
@@ -135,5 +163,12 @@ module.exports = {
135
163
  apiSecret: 'T139_ItMjObC82mmy7iwnNflhd2iV0kUvDBj0P_201EmA7Sj',
136
164
  callback: 'http://operato-h.com:3000/callback-xero',
137
165
  hostname: 'http://operato-h.com:3000/'
166
+ },
167
+ awbFileStorage: {
168
+ type: 's3',
169
+ accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
170
+ secretAccessKey: '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',
171
+ bucketName: 'operato-awb',
172
+ region: 'ap-southeast-1'
138
173
  }
139
174
  }
@@ -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 integration_lmd_1 = require("@things-factory/integration-lmd");
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 LMD_BOARDS = {
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
- let releaseOrders = [];
38
- for (let orderPackage of orderPackages) {
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":"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"}
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.192",
3
+ "version": "4.3.193",
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.190",
83
- "@things-factory/integration-marketplace": "^4.3.190",
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.190",
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.191",
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.191",
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.191",
110
- "@things-factory/worksheet-base": "^4.3.191",
109
+ "@things-factory/warehouse-base": "^4.3.193",
110
+ "@things-factory/worksheet-base": "^4.3.193",
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": "8bd511b0bd7a109a9f657b0eacac810bf1749230"
122
+ "gitHead": "8cba442aa16d21e21fa20c2bd22ba039e0a9bb5a"
123
123
  }
@@ -1,22 +1,11 @@
1
- import { getRepository, getConnection, Not, In, IsNull, SelectQueryBuilder, EntityManager } from 'typeorm'
2
- import { v4 as uuidv4 } from 'uuid'
1
+ import { getRepository, getConnection, SelectQueryBuilder } from 'typeorm'
3
2
 
4
- import { ReleaseGood, OrderPackage, ORDER_STATUS } from '@things-factory/sales-base'
5
- import { LastMileAPI } from '@things-factory/integration-lmd'
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
- let releaseOrders: ReleaseGood = []
28
+ await processAwbAndTrackingNo(orderPackages)
40
29
 
41
- for (let orderPackage of orderPackages) {
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 (tx: EntityManager) => {
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
  }