@things-factory/operato-wms 4.3.769 → 4.3.771

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.
Files changed (49) hide show
  1. package/client/pages/components/list-view/product-list-view.js +28 -3
  2. package/client/pages/components/mobile-condition-of-goods-listing.js +342 -0
  3. package/client/pages/components/unloading-worksheet-information-popup.js +299 -0
  4. package/client/pages/constants/order.js +7 -0
  5. package/client/pages/inbound/condition-of-goods-popup.js +646 -0
  6. package/client/pages/inbound/putaway/putaway-product.js +35 -6
  7. package/client/pages/inbound/unload-product-landing-page.js +282 -0
  8. package/client/pages/inbound/unload-product.js +707 -175
  9. package/client/pages/inbound/unloaded-inventories-popup.js +3 -0
  10. package/client/pages/inventory/inventory-adjustment-approval.js +28 -1
  11. package/client/pages/inventory/inventory-adjustment.js +31 -1
  12. package/client/pages/inventory/inventory-by-product-detail.js +15 -0
  13. package/client/pages/inventory/inventory-history.js +18 -0
  14. package/client/pages/inventory/onhand-inventory.js +14 -0
  15. package/client/pages/order/release-order/b2b/b2b-order-list.js +99 -0
  16. package/client/pages/order/release-order/packing-label-history-popup.js +378 -0
  17. package/client/pages/order/release-order/preview-print-packing-list.js +533 -0
  18. package/client/pages/order/release-order/print-quantity-popup.js +118 -0
  19. package/client/pages/outbound/loading-v2/loading-execution-base.js +29 -0
  20. package/client/pages/outbound/loading-v2/loading-execution.js +579 -2
  21. package/client/pages/outbound/loading-v2/loading-package-info-popup.js +182 -0
  22. package/client/pages/outbound/loading-v2/loading.js +18 -0
  23. package/client/pages/report/inbound-order-details-report.js +26 -1
  24. package/client/route.js +17 -0
  25. package/config.development.js +104 -87
  26. package/dist-server/graphql/resolvers/other/add-release-good-products.js +44 -12
  27. package/dist-server/graphql/resolvers/other/add-release-good-products.js.map +1 -1
  28. package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js +9 -1
  29. package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js.map +1 -1
  30. package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js +11 -5
  31. package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js.map +1 -1
  32. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js +2 -1
  33. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js.map +1 -1
  34. package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js +6 -4
  35. package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js.map +1 -1
  36. package/dist-server/graphql/types/reports/inbound-order-details-report.js +1 -0
  37. package/dist-server/graphql/types/reports/inbound-order-details-report.js.map +1 -1
  38. package/package.json +15 -15
  39. package/server/graphql/resolvers/other/add-release-good-products.ts +52 -13
  40. package/server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.ts +9 -1
  41. package/server/graphql/resolvers/outbound/loading-worksheet-v2.ts +13 -1
  42. package/server/graphql/resolvers/reports/inbound-order-details-report.ts +2 -1
  43. package/server/graphql/resolvers/zone-worksheet/zone-picking.ts +6 -4
  44. package/server/graphql/types/reports/inbound-order-details-report.ts +1 -0
  45. package/things-factory.config.js +8 -0
  46. package/translations/en.json +45 -1
  47. package/translations/ko.json +40 -0
  48. package/translations/ms.json +40 -0
  49. package/translations/zh.json +40 -0
@@ -0,0 +1,182 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ import { html, css, LitElement } from 'lit-element'
4
+ import { client, CustomAlert } from '@things-factory/shell'
5
+ import { i18next, localize } from '@things-factory/i18n-base'
6
+ import { ScrollbarStyles } from '@things-factory/styles'
7
+ import { showToast } from '../../../util'
8
+ import '../../components/list-view/product-list-view'
9
+
10
+ class LoadingPackageInfoPopup extends localize(i18next)(LitElement) {
11
+ static get properties() {
12
+ return {
13
+ _data: Array,
14
+ _packageName: String,
15
+ _packageId: String,
16
+ _packageNumber: Number
17
+ }
18
+ }
19
+
20
+ static get styles() {
21
+ return [
22
+ ScrollbarStyles,
23
+ css`
24
+ :host {
25
+ padding: 12px;
26
+ display: flex;
27
+ flex-direction: column;
28
+ overflow: hidden;
29
+ background-color: var(--main-section-background-color);
30
+ position: relative;
31
+ }
32
+ .content {
33
+ display: flex;
34
+ flex-direction: column;
35
+ flex: 1;
36
+ overflow: auto;
37
+ }
38
+ .button-container {
39
+ position: absolute;
40
+ bottom: 12px;
41
+ right: 12px;
42
+ display: flex;
43
+ gap: 8px;
44
+ }
45
+ .tab-info {
46
+ display: flex;
47
+ justify-content: space-between;
48
+ color: #f3f2f7;
49
+ background-color: #007e7f;
50
+ padding: 10px;
51
+ }
52
+ .text-center {
53
+ display: flex;
54
+ align-items: center;
55
+ }
56
+ .text-14 {
57
+ font-size: 14px !important;
58
+ line-height: 1.5 !important;
59
+ }
60
+ .font-bold {
61
+ font-weight: bold !important;
62
+ }
63
+ `
64
+ ]
65
+ }
66
+
67
+ get packageItemsConfig() {
68
+ return {
69
+ selectable: false,
70
+ columnLeft: {
71
+ size: 8,
72
+ fields: [
73
+ {
74
+ type: 'row',
75
+ content: [
76
+ {
77
+ header: 'SKU No.',
78
+ field: 'sku',
79
+ type: 'string'
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ type: 'row',
85
+ content: [
86
+ {
87
+ header: 'Product Name',
88
+ field: 'productName',
89
+ type: 'string',
90
+ style: '-webkit-line-clamp: 2;'
91
+ }
92
+ ]
93
+ },
94
+ {
95
+ type: 'row',
96
+ content: [
97
+ {
98
+ header: 'Packing Type',
99
+ field: 'packingType',
100
+ type: 'string'
101
+ }
102
+ ]
103
+ }
104
+ ]
105
+ },
106
+ columnRight: {
107
+ size: 4,
108
+ fields: [
109
+ {
110
+ type: 'valueBox',
111
+ content: {
112
+ header: 'Qty:',
113
+ field: 'qty',
114
+ type: 'number'
115
+ }
116
+ }
117
+ ]
118
+ }
119
+ }
120
+ }
121
+
122
+ render() {
123
+ return html`
124
+ <!-- Content Section -->
125
+ <label class="text-14 font-bold order-no">${i18next.t('field.packing_label_no')}: ${this._packageNumber}</label>
126
+ <div class="tab-info text-center">
127
+ <label class="text-14 font-bold">${i18next.t('label.total_sku')}: ${this._getTotalItems()}</label>
128
+ </div>
129
+ <div class="content">
130
+ <product-list-view .config=${this.packageItemsConfig} .data=${this._data}></product-list-view>
131
+ </div>
132
+ <div class="button-container">
133
+ <mwc-button raised @click=${e => this.closePopup(e)}>${i18next.t('button.back')}</mwc-button>
134
+ <mwc-button raised style="--mdc-theme-primary: #CD4946; --mdc-theme-on-primary: white;" @click=${e => this.undo(e)}>${i18next.t('button.undo')}</mwc-button>
135
+ </div>
136
+ <!-- Content Section End -->
137
+ `
138
+ }
139
+
140
+ async undo(e) {
141
+ try {
142
+ if (!this._packageId) {
143
+ throw new Error('Package ID is not available')
144
+ }
145
+
146
+ const response = await client.mutate({
147
+ mutation: gql`
148
+ mutation undoLoadingPackages($id: String!) {
149
+ undoLoadingPackages(id: $id)
150
+ }
151
+ `,
152
+ variables: { id: this._packageId }
153
+ })
154
+
155
+ if (!response.errors) {
156
+ this.dispatchEvent(
157
+ new CustomEvent('undo', {
158
+ detail: { packageId: this._packageId },
159
+ bubbles: true,
160
+ composed: true
161
+ })
162
+ )
163
+ showToast({ type: 'success', message: i18next.t('text.undo_loading_package_success') || 'Loading package undone successfully' })
164
+ setTimeout(() => history.back(), 100)
165
+ } else {
166
+ throw new Error(response.errors[0]?.message || 'Failed to undo loading package')
167
+ }
168
+ } catch (e) {
169
+ showToast({ type: 'error', message: e.message || 'Failed to undo loading package' })
170
+ }
171
+ }
172
+
173
+ _getTotalItems() {
174
+ return this._data?.length || 0
175
+ }
176
+
177
+ async closePopup(e) {
178
+ history.back()
179
+ }
180
+ }
181
+
182
+ window.customElements.define('loading-package-info-popup', LoadingPackageInfoPopup)
@@ -118,14 +118,20 @@ const FIND_LOADABLE_RELEASE_GOOD_BY_BIN = gql`
118
118
  batchId
119
119
  packingType
120
120
  refWorksheetId
121
+ packedQty
122
+ releaseQty
121
123
  product {
122
124
  id
123
125
  sku
124
126
  name
127
+ isInventoryDecimal
125
128
  }
126
129
  productDetail {
127
130
  id
128
131
  }
132
+ orderProduct {
133
+ id
134
+ }
129
135
  }
130
136
  }
131
137
  }
@@ -179,14 +185,20 @@ const LOADING_WORKSHEET_V2 = gql`
179
185
  batchId
180
186
  packingType
181
187
  refWorksheetId
188
+ packedQty
189
+ releaseQty
182
190
  product {
183
191
  id
184
192
  sku
185
193
  name
194
+ isInventoryDecimal
186
195
  }
187
196
  productDetail {
188
197
  id
189
198
  }
199
+ orderProduct {
200
+ id
201
+ }
190
202
  }
191
203
  }
192
204
  }
@@ -263,14 +275,20 @@ const GET_LOADING_TASK = gql`
263
275
  batchId
264
276
  packingType
265
277
  refWorksheetId
278
+ packedQty
279
+ releaseQty
266
280
  product {
267
281
  id
268
282
  sku
269
283
  name
284
+ isInventoryDecimal
270
285
  }
271
286
  productDetail {
272
287
  id
273
288
  }
289
+ orderProduct {
290
+ id
291
+ }
274
292
  }
275
293
  }
276
294
  }
@@ -9,6 +9,7 @@ import { connect } from 'pwa-helpers/connect-mixin'
9
9
  import { i18next, localize } from '@things-factory/i18n-base'
10
10
  import { client, gqlContext, PageView, store } from '@things-factory/shell'
11
11
  import { flattenObject, isMobileDevice } from '@things-factory/utils'
12
+ import { CONDITION_OF_GOODS } from '../constants/order'
12
13
 
13
14
  function formatLocalDate(date = new Date()) {
14
15
  const year = date.getFullYear()
@@ -401,6 +402,12 @@ class InboundOrderDetailsReport extends connect(store)(localize(i18next)(PageVie
401
402
  header: i18next.t('field.uom'),
402
403
  width: 100
403
404
  },
405
+ {
406
+ type: 'string',
407
+ name: 'conditionOfGoods',
408
+ header: i18next.t('field.type_of_condition'),
409
+ width: 150
410
+ },
404
411
  {
405
412
  type: 'string',
406
413
  name: 'unitCost',
@@ -556,6 +563,7 @@ class InboundOrderDetailsReport extends connect(store)(localize(i18next)(PageVie
556
563
  'batchId',
557
564
  'batchIdRef',
558
565
  'expirationDate',
566
+ 'conditionOfGoods',
559
567
  'manufactureDate',
560
568
  'unloadedBy',
561
569
  'unloadedAt',
@@ -669,6 +677,7 @@ class InboundOrderDetailsReport extends connect(store)(localize(i18next)(PageVie
669
677
  batchId
670
678
  batchIdRef
671
679
  expirationDate
680
+ conditionOfGoods
672
681
  manufactureDate
673
682
  unloadedAt
674
683
  unloadedBy
@@ -689,7 +698,8 @@ class InboundOrderDetailsReport extends connect(store)(localize(i18next)(PageVie
689
698
  response.data.inboundOrderDetailsReport.items.map(itm => {
690
699
  itm = {
691
700
  ...itm,
692
- unitCost: parseFloat(itm.unitCost ? itm.unitCost : 0).toFixed(2)
701
+ unitCost: parseFloat(itm.unitCost ? itm.unitCost : 0).toFixed(2),
702
+ conditionOfGoods: this._formatConditionOfGoods(itm.conditionOfGoods)
693
703
  }
694
704
 
695
705
  return flattenObject({ ...itm, bizplace: { name: `${itm.bizplace.name} ${itm.bizplace.description}` } })
@@ -806,6 +816,7 @@ class InboundOrderDetailsReport extends connect(store)(localize(i18next)(PageVie
806
816
  { header: i18next.t('field.qty'), key: 'actualPackQty', width: 15, type: 'string' },
807
817
  { header: i18next.t('field.uom_value'), key: 'actualPackUomValue', width: 15, type: 'string' },
808
818
  { header: i18next.t('field.uom'), key: 'uom', width: 15, type: 'string' },
819
+ { header: i18next.t('field.type_of_condition'), key: 'conditionOfGoods', width: 25, type: 'string' },
809
820
  { header: i18next.t('field.unit_cost'), key: 'unitCost', width: 15, type: 'string' },
810
821
  { header: i18next.t('field.unit_volume'), key: 'unitVolume', width: 15, type: 'string' },
811
822
  { header: i18next.t('field.total_volume'), key: 'totalVolume', width: 15, type: 'string' },
@@ -850,6 +861,20 @@ class InboundOrderDetailsReport extends connect(store)(localize(i18next)(PageVie
850
861
  }
851
862
  }
852
863
 
864
+ _formatConditionOfGoods(conditionValue) {
865
+ if (!conditionValue) return null
866
+
867
+ const conditionKey = Object.keys(CONDITION_OF_GOODS).find(
868
+ key => CONDITION_OF_GOODS[key].value === conditionValue
869
+ )
870
+
871
+ if (conditionKey) {
872
+ return i18next.t(`label.${CONDITION_OF_GOODS[conditionKey].name}`)
873
+ }
874
+
875
+ return conditionValue
876
+ }
877
+
853
878
  _showToast({ type, message }) {
854
879
  document.dispatchEvent(
855
880
  new CustomEvent('notify', {
package/client/route.js CHANGED
@@ -203,6 +203,10 @@ export default function route(page) {
203
203
  import('./pages/order/release-order/bulk-print-packing-list')
204
204
  return page
205
205
 
206
+ case 'preview_print_packing_list':
207
+ import('./pages/order/release-order/preview-print-packing-list')
208
+ return page
209
+
206
210
  case 'create_loading_manifest':
207
211
  import('./pages/manifest/create-loading-manifest')
208
212
  return page
@@ -363,9 +367,22 @@ export default function route(page) {
363
367
  return page
364
368
 
365
369
  case 'unloading':
370
+ if (isMobileDevice()) {
371
+ const urlParams = new URLSearchParams(window.location.search)
372
+ const hasParams = urlParams.has('orderType') && urlParams.has('orderNo')
373
+
374
+ if (!hasParams) {
375
+ import('./pages/inbound/unload-product-landing-page')
376
+ return 'unloading_landing'
377
+ }
378
+ }
366
379
  import('./pages/inbound/unload-product')
367
380
  return page
368
381
 
382
+ case 'unloading_landing':
383
+ import('./pages/inbound/unload-product-landing-page')
384
+ return page
385
+
369
386
  case 'execute_vas':
370
387
  import('./pages/vas/execute-vas')
371
388
  return page
@@ -4,30 +4,19 @@ module.exports = {
4
4
  useVirtualHostBasedDomain: false,
5
5
  fallbackRoute: '/',
6
6
  subdomainOffset: 2,
7
- port: 4000,
7
+ port: 4011,
8
8
  inspect: '9330',
9
-
10
- storage: {
11
- type: 's3',
12
- accessKeyId: 'AKIAUQEOPWEJHCE4MTH4',
13
- secretAccessKey: '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',
14
- bucketName: 'opa-one',
15
- region: 'ap-southeast-1'
16
- },
17
- // arif
18
9
  // ormconfig: {
19
10
  // name: 'default',
20
11
  // type: 'postgres',
21
- // database: 'arif',
12
+ // database: 'EMS',
22
13
  // username: 'postgres',
23
14
  // password: 'hatio',
24
- // host: '10.254.29.189',
15
+ // host: '192.168.0.161',
25
16
  // port: 15432,
26
17
  // synchronize: false,
27
18
  // logging: true
28
19
  // },
29
-
30
- // STAGING DATABASE
31
20
  ormconfig: {
32
21
  name: 'default',
33
22
  type: 'postgres',
@@ -39,98 +28,62 @@ module.exports = {
39
28
  synchronize: false,
40
29
  logging: true
41
30
  },
42
-
43
- // ormconfig: {
44
- // name: 'default',
45
- // type: 'postgres',
46
- // host: 'operatov3.cluster-cijhm4n1hbst.ap-southeast-1.rds.amazonaws.com',
47
- // port: 55432,
48
- // database: 'postgres',
49
- // username: 'postgres',
50
- // password: 'abcd1234',
51
- // synchronize: false,
52
- // logging: true,
53
- // connectTimeoutMS: 30000,
54
- // extra: { poolSize: 30 }
55
- // },
56
-
57
- //db izzah
58
31
  // ormconfig: {
59
32
  // name: 'default',
60
33
  // type: 'postgres',
61
- // database: '06072023',
34
+ // database: 'operato',
62
35
  // username: 'postgres',
63
36
  // password: 'hatio',
64
37
  // host: '192.168.0.153',
65
- // port: 15432,f
66
- // synchronize: true,
38
+ // port: 15432,
39
+ // synchronize: false,
67
40
  // logging: true
68
41
  // },
69
42
  // ormconfig: {
70
43
  // name: 'default',
71
44
  // type: 'postgres',
72
- // database: 'postgres',
73
- // username: 'postgres',
74
- // password: 'hatio',
75
- // host: '192.168.0.151',
76
- // port: 15432,
45
+ // database: 'operato',
46
+ // username: 'operato',
47
+ // password: 'abcd1234',
48
+ // host: 'localhost',
49
+ // port: 25432,
77
50
  // synchronize: false,
78
51
  // logging: true
79
52
  // },
80
-
81
- // //ERIC
82
53
  // ormconfig: {
83
54
  // name: 'default',
84
55
  // type: 'postgres',
85
- // database: 'eric',
56
+ // database: 'operato',
86
57
  // username: 'postgres',
87
58
  // password: 'hatio',
88
- // host: '192.168.0.153',
59
+ // host: '192.168.0.151',
89
60
  // port: 15432,
90
61
  // synchronize: false,
91
62
  // logging: true
92
63
  // },
93
-
94
- //eric 2
64
+ //arif
95
65
  // ormconfig: {
96
66
  // name: 'default',
97
67
  // type: 'postgres',
98
- // database: 'eric2',
68
+ // database: 'arif',
99
69
  // username: 'postgres',
100
70
  // password: 'hatio',
101
- // host: '192.168.0.153',
71
+ // host: '10.254.29.189',
102
72
  // port: 15432,
103
73
  // synchronize: false,
104
74
  // logging: true
105
75
  // },
106
-
107
76
  // ormconfig: {
108
77
  // name: 'default',
109
78
  // type: 'postgres',
110
- // host: 'operatov3.cluster-cijhm4n1hbst.ap-southeast-1.rds.amazonaws.com',
111
- // port: 55432,
112
- // database: 'postgres',
79
+ // database: 'operato-eric',
113
80
  // username: 'postgres',
114
- // password: 'abcd1234',
81
+ // password: 'hatio',
82
+ // host: '192.168.0.249',
83
+ // port: 5432,
115
84
  // synchronize: false,
116
- // logging: true,
117
- // connectTimeoutMS: 30000,
118
- // extra: { poolSize: 30 }
85
+ // logging: true
119
86
  // },
120
- //ormconfig: {
121
- // name: 'default',
122
- // type: 'postgres',
123
- // database: 'dev2',
124
- // username: 'postgres',
125
- // password: 'hatio',
126
- // host: 'localhost',
127
- // port: 15432,
128
- // synchronize: false,
129
- // logging: true,
130
- // connectTimeoutMS: 30000,
131
- // extra: { poolSize: 30 }
132
- //},
133
- SECRET: '0xD58F835B69D207A76CC5F84a70a1D0d4C79dfC95',
134
87
  password: {
135
88
  lowerCase: true,
136
89
  upperCase: false,
@@ -143,8 +96,22 @@ module.exports = {
143
96
  looseCharacterLength: 4,
144
97
  history: 2
145
98
  },
99
+ sftpFileStorage: {
100
+ type: 's3',
101
+ accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
102
+ secretAccessKey: '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',
103
+ bucketName: 'operato-sftp'
104
+ },
105
+ // storage: {
106
+ // type: 's3',
107
+ // accessKeyId: 'AKIAUQEOPWEJCDH6AR5H',
108
+ // secretAccessKey: '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',
109
+ // bucketName: 'opa-one',
110
+ // region: 'ap-southeast-1'
111
+ // },
146
112
  uploads: 'uploads',
147
113
  attachmentsPath: 'attachments',
114
+ SECRET: '0xD58F835B69D207A76CC5F84a70a1D0d4C79dfC95',
148
115
  logger: {
149
116
  file: {
150
117
  filename: 'logs/application-%DATE%.log',
@@ -160,7 +127,7 @@ module.exports = {
160
127
  port: 587,
161
128
  secure: false, // true for 465, false for other ports
162
129
  auth: {
163
- user: 'no-reply@hatiolab.com', // generated ethereal user
130
+ user: 'noreply@hatiolab.com', // generated ethereal user
164
131
  pass: 'h@ti0LAB1008' // generated ethereal password
165
132
  },
166
133
  secureConnection: false,
@@ -168,7 +135,7 @@ module.exports = {
168
135
  ciphers: 'SSLv3'
169
136
  }
170
137
  },
171
- sender: 'no-reply@hatiolab.com',
138
+ sender: 'noreply@hatiolab.com',
172
139
  notification: {
173
140
  // fcm: {
174
141
  // serviceAccount: {
@@ -192,30 +159,80 @@ module.exports = {
192
159
  // privateKey: '4pmlt3Wk019u7nqU3Q_oGZE6LbUDjjf8DpmAcn9-iss'
193
160
  // }
194
161
  },
195
- // reportApiUrl:
196
- // 'http://k8s-default-operator-8eeba2e246-3e3a5ee7979bcd57.elb.ap-southeast-1.amazonaws.com/rest/report/show_html',
197
- // reportApiUrl: 'http://192.168.0.153:8888/rest/report/show_html',
198
- // reportApiUrl: 'http://192.168.0.153:8888/rest/report/show_html',
199
- // reportApiUrl: 'http://10.100.109.66:8090/rest/report/show_html',
162
+ fulfillmentIntegrationOperato: {
163
+ host: '192.168.0.161:3000',
164
+ protocol: 'http',
165
+ platform: 'operato',
166
+ application: 'Operato MMS',
167
+ appKey: 'a9bf751e622bf146662b240d58971051',
168
+ appSecret: '1c385935dc131c4b902b9bbf6a4798af',
169
+ callback: 'http://192.168.0.161:5000/callback-operato'
170
+ },
171
+ marketplaceIntegrationShopee: {
172
+ platform: 'shopee',
173
+ isUAT: false,
174
+ application: 'Operato MMS',
175
+ partnerId: 846025,
176
+ partnerKey: 'd34cfd85a603f196a0d74ebe08043280c1a27788bb36bdffd61e7e0bb1c90b64',
177
+ v2: true
178
+ },
179
+ marketplaceIntegrationLazada: {
180
+ platform: 'lazada',
181
+ application: 'operato-mms',
182
+ appKey: '120961',
183
+ appSecret: 'HB3RTNEXHlVSlBr9SmWF8AjbSUT7a825',
184
+ callback: 'https://maybank.operato-m.com/lazada-callback'
185
+ },
186
+
187
+ //testinglazada
188
+ // marketplaceIntegrationLazada: {
189
+ // platform: 'lazada',
190
+ // application: 'powrup_bi',
191
+ // appKey: '117890',
192
+ // appSecret: 'tQVllnUa7irAHoNxAwXEVxoP1we1bUjE',
193
+ // callback: 'https://73c5-175-141-30-142.ngrok-free.app/lazada-callback'
194
+ // },
195
+
196
+ accountingIntegrationXero: {
197
+ platform: 'xero',
198
+ application: 'Operato WMS',
199
+ apiKey: '6B12D1AAC05347DC92159C2AEC812859',
200
+ apiSecret: 'T139_ItMjObC82mmy7iwnNflhd2iV0kUvDBj0P_201EmA7Sj',
201
+ callback: 'http://operato-h.com:3000/callback-xero',
202
+ hostname: 'http://operato-h.com:3000/'
203
+ },
204
+ lmdIntegrationNinjavan: {
205
+ clientId: 'P8WCEwMo0FHNlPECwTLetwN3diAmt5KF',
206
+ secretKey: '1D0yNZGseOjhxnwri29xmuZiiuRp131L',
207
+ refreshThreshold: 43200
208
+ },
209
+
210
+ lmdIntegrationEms: { refreshThreshold: 43200 },
211
+
212
+ lmdIntegrationCitylink: { refreshThreshold: 172800000 },
200
213
  awbFileStorage: {
201
214
  type: 's3',
202
- accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
203
- secretAccessKey: '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',
215
+ accessKeyId: 'AKIAUQEOPWEJPXIVER74',
216
+ secretAccessKey: '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',
204
217
  bucketName: 'operato-awb',
205
218
  region: 'ap-southeast-1'
206
219
  },
207
- invoiceFileStorage: {
208
- type: 's3',
209
- accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
210
- secretAccessKey: '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',
211
- invoiceBucket: 'operato-invoice',
212
- region: 'ap-southeast-1'
213
- },
214
220
  lambda: {
215
221
  region: 'ap-southeast-1',
216
- accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
217
- secretAccessKey: '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'
222
+ accessKeyId: 'AKIAUQEOPWEJPXIVER74',
223
+ secretAccessKey: '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'
224
+ },
225
+ lmdIntegrationConfig: {
226
+ version: {
227
+ v1: 'lmdMiddleware',
228
+ v2: 'lmdMiddlewareV2'
229
+ }
230
+ },
231
+ awsSesEmail: {
232
+ accessKeyId: 'AKIAUQEOPWEJPXIVER74',
233
+ secretAccessKey: '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',
234
+ email: 'support@hatio.asia'
218
235
  },
219
236
  reportApiUrl:
220
- 'http://k8s-default-operator-8eeba2e246-3e3a5ee7979bcd57.elb.ap-southeast-1.amazonaws.com/rest/report/show_html'
237
+ 'http://k8s-default-operator-2fd6178d98-66c66a0f76c09575.elb.ap-southeast-1.amazonaws.com/rest/report/show_html'
221
238
  }