@things-factory/operato-wms 4.3.788 → 4.3.790

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.
@@ -1304,56 +1304,107 @@ class InventoryAdjustment extends connect(store)(localize(i18next)(PageView)) {
1304
1304
  try {
1305
1305
  patches = patches.map(patch => normalizeInventoryPatch(patch))
1306
1306
 
1307
- patches.map(itm => {
1307
+ const validAdjustmentCodes = new Set(
1308
+ Object.values(ADJUSTMENT_CODE).map(ac => ac.value)
1309
+ )
1310
+
1311
+ // Fetch fresh locations for client-side validation (avoid stale cache)
1312
+ await this.fetchLocation()
1313
+ const locationNameSet = new Set((this._locations || []).map(l => l.name))
1314
+
1315
+ patches.forEach(itm => {
1316
+ const errors = []
1317
+ delete itm.errMsg
1318
+
1308
1319
  if (toFloatOrUndefined(itm?.uomValue) < 0) {
1309
- throw new Error(i18next.t('text.invalid_uom_value'))
1320
+ errors.push(i18next.t('text.invalid_uom_value'))
1310
1321
  }
1311
1322
  if (toFloatOrUndefined(itm?.qty) < 0) {
1312
- throw new Error(i18next.t('text.invalid_qty'))
1323
+ errors.push(i18next.t('text.invalid_qty'))
1313
1324
  }
1314
1325
  if (itm?.packingType?.trim() == '') {
1315
- throw new Error(i18next.t('text.invalid_packing_type'))
1326
+ errors.push(i18next.t('text.invalid_packing_type'))
1316
1327
  }
1317
1328
  if (toFloatOrUndefined(itm?.unitCost) < 0) {
1318
- throw new Error(i18next.t('text.invalid_unit_cost'))
1329
+ errors.push(i18next.t('text.invalid_unit_cost'))
1319
1330
  }
1320
1331
  if (new Date(itm?.manufactureDate) > new Date()) {
1321
- throw new Error(i18next.t('text.invalid_manufacture_date'))
1332
+ errors.push(i18next.t('text.invalid_manufacture_date'))
1322
1333
  }
1323
- if (
1324
- itm?.adjustmentCode?.trim() == '' ||
1325
- (itm?.adjustmentCode?.trim() != ADJUSTMENT_CODE.AC01.value &&
1326
- itm?.adjustmentCode?.trim() != ADJUSTMENT_CODE.AC02.value &&
1327
- itm?.adjustmentCode?.trim() != ADJUSTMENT_CODE.AC03.value &&
1328
- itm?.adjustmentCode?.trim() != ADJUSTMENT_CODE.AC04.value &&
1329
- itm?.adjustmentCode?.trim() != ADJUSTMENT_CODE.AC05.value &&
1330
- itm?.adjustmentCode?.trim() != ADJUSTMENT_CODE.AC06.value &&
1331
- itm?.adjustmentCode?.trim() != ADJUSTMENT_CODE.AC07.value)
1332
- ) {
1333
- throw new Error(i18next.t('text.adjustment_code_is_required_kindly_fill_in_the_adjustment_code_to_continue'))
1334
+ if (!itm?.adjustmentCode?.trim() || !validAdjustmentCodes.has(itm.adjustmentCode.trim())) {
1335
+ errors.push(i18next.t('text.adjustment_code_is_required_kindly_fill_in_the_adjustment_code_to_continue'))
1334
1336
  }
1335
1337
  if (itm?.adjustmentNote?.trim() == '') {
1336
- throw new Error(i18next.t('text.invalid_adjustment_note'))
1338
+ errors.push(i18next.t('text.invalid_adjustment_note'))
1339
+ }
1340
+
1341
+ // Validate location for all rows
1342
+ if (!itm?.location || !itm?.location?.name) {
1343
+ errors.push(i18next.t('text.location_is_required_kindly_fill_in_the_location_to_continue'))
1344
+ } else if (!locationNameSet.has(itm.location.name)) {
1345
+ errors.push(`${i18next.t('text.location_not_found')}: ${itm.location.name}`)
1337
1346
  }
1338
1347
 
1339
1348
  if (itm.cuFlag == '+') {
1340
- this.validation(itm)
1349
+ if (!itm?.batchId) {
1350
+ errors.push(i18next.t('text.batch_no_is_required_kindly_fill_in_the_batch_no_to_continue'))
1351
+ }
1352
+ if (!itm?.bizplace || !itm?.bizplace?.id) {
1353
+ errors.push(i18next.t('text.company_is_required_kindly_fill_in_the_company_to_continue'))
1354
+ }
1355
+ if (!itm?.qty) {
1356
+ errors.push(i18next.t('text.qty_is_required_kindly_fill_in_the_qty_to_continue'))
1357
+ }
1358
+ if (!itm?.uomValue) {
1359
+ errors.push(i18next.t('text.total_uom_value_is_required_kindly_fill_in_the_total_uom_value_to_continue'))
1360
+ }
1361
+ if (!itm?.adjustmentCode) {
1362
+ // already checked above, but keep for cuFlag '+' specific check
1363
+ }
1364
+ if (!itm?.adjustmentNote) {
1365
+ errors.push(i18next.t('text.adjustment_note_is_required_kindly_fill_in_the_adjustment_note_to_continue'))
1366
+ }
1341
1367
 
1342
1368
  if (!itm.sku) {
1343
- throw new Error(i18next.t('text.sku_is_required_kindly_fill_in_the_sku_to_continue'))
1369
+ errors.push(i18next.t('text.sku_is_required_kindly_fill_in_the_sku_to_continue'))
1344
1370
  }
1345
1371
 
1346
1372
  if (itm.qty < 0 || itm.unitCost < 0 || itm.uomValue < 0) {
1347
- throw new Error(i18next.t('text.invalid_value_in_list'))
1373
+ errors.push(i18next.t('text.invalid_value_in_list'))
1348
1374
  }
1349
1375
 
1350
1376
  if (
1351
1377
  itm.manufactureDate &&
1352
1378
  (itm.manufactureDate.getFullYear < 1000 || itm.manufactureDate.getTime > new Date().getTime)
1353
1379
  ) {
1354
- throw new Error(i18next.t('text.invalid_value_in_list'))
1380
+ errors.push(i18next.t('text.invalid_value_in_list'))
1381
+ }
1382
+ }
1383
+
1384
+ if (itm.serialNumbers) {
1385
+ let serialNumbers = itm.serialNumbers
1386
+ itm.serialNumbers = serialNumbers.replace(' ', '')
1387
+
1388
+ if (itm.serialNumbers.split(',').length != itm.qty) {
1389
+ errors.push(i18next.t('text.serial_number_not_tally_with_qty'))
1355
1390
  }
1356
1391
  }
1392
+
1393
+ if (errors.length) {
1394
+ itm.errMsg = errors.join('; ')
1395
+ }
1396
+ })
1397
+
1398
+ const hasErrors = patches.some(p => p.errMsg)
1399
+ if (hasErrors) {
1400
+ return patches
1401
+ }
1402
+
1403
+ // Save original patches for error display if the server mutation fails
1404
+ const originalPatches = patches.map(p => ({ ...p }))
1405
+
1406
+ // All validations passed — apply transformations and submit
1407
+ patches.forEach(itm => {
1357
1408
  itm.qty = toFloatOrUndefined(itm.qty)
1358
1409
  itm.packingSize = toFloatOrUndefined(itm.packingSize)
1359
1410
  itm.uomValue = toFloatOrUndefined(itm.uomValue)
@@ -1365,19 +1416,14 @@ class InventoryAdjustment extends connect(store)(localize(i18next)(PageView)) {
1365
1416
  }
1366
1417
  if (itm.unitCost != null) {
1367
1418
  itm.unitCost = toFloatOrUndefined(itm.unitCost)
1368
- if (isNaN(itm.unitCost)) {
1369
- throw new Error(i18next.t('text.invalid_unit_cost'))
1370
- }
1371
1419
  }
1372
1420
 
1373
- if (itm.location.zone || itm.location.row || itm.location.column) {
1374
- //if user repic location after import
1421
+ if (itm.location && (itm.location.zone || itm.location.row || itm.location.column)) {
1375
1422
  delete itm.location.zone
1376
1423
  delete itm.location.row
1377
1424
  delete itm.location.column
1378
1425
  }
1379
1426
 
1380
- //if user repick product after import
1381
1427
  if (itm?.product?.productId) {
1382
1428
  itm.product.id = itm.product.productId
1383
1429
  delete itm.product.productId
@@ -1399,14 +1445,7 @@ class InventoryAdjustment extends connect(store)(localize(i18next)(PageView)) {
1399
1445
  itm.manufactureDate = `${mdt.getFullYear()}-${mdt.getMonth() + 1}-${mdt.getDate()}`
1400
1446
  }
1401
1447
 
1402
- if (itm.serialNumbers) {
1403
- let serialNumbers = itm.serialNumbers
1404
- itm.serialNumbers = serialNumbers.replace(' ', '')
1405
-
1406
- if (itm.serialNumbers.split(',').length != itm.qty) {
1407
- throw new Error(i18next.t('text.serial_number_not_tally_with_qty'))
1408
- }
1409
- }
1448
+ delete itm.errMsg
1410
1449
  })
1411
1450
 
1412
1451
  const response = await client.mutate({
@@ -1419,9 +1458,15 @@ class InventoryAdjustment extends connect(store)(localize(i18next)(PageView)) {
1419
1458
  })
1420
1459
 
1421
1460
  if (!response.errors) {
1422
- history.back()
1423
1461
  this.dataGrist.fetch()
1424
1462
  this.showToast({ message: i18next.t('text.data_inventory_adjustment_has_been_submitted_for_approval') })
1463
+ } else {
1464
+ // Server returned errors — show in the error column on original patches
1465
+ const errMsg = response.errors.map(e => e.message).join('; ')
1466
+ originalPatches.forEach(p => {
1467
+ p.errMsg = errMsg
1468
+ })
1469
+ return originalPatches
1425
1470
  }
1426
1471
  } catch (e) {
1427
1472
  this.showToast(e)
@@ -1450,6 +1495,14 @@ class InventoryAdjustment extends connect(store)(localize(i18next)(PageView)) {
1450
1495
  return { ...column }
1451
1496
  })
1452
1497
 
1498
+ columns.push({
1499
+ type: 'string',
1500
+ name: 'errMsg',
1501
+ header: i18next.t('field.error_message'),
1502
+ width: 300,
1503
+ record: { editable: false }
1504
+ })
1505
+
1453
1506
  setTimeout(() => {
1454
1507
  openPopup(
1455
1508
  html`
@@ -1459,6 +1512,7 @@ class InventoryAdjustment extends connect(store)(localize(i18next)(PageView)) {
1459
1512
  rows: this.config.rows,
1460
1513
  columns: columns
1461
1514
  }}
1515
+ .enableRowErrors=${true}
1462
1516
  .importHandler="${this.importHandler.bind(this)}"
1463
1517
  @field-change="${this.fieldChange.bind(this)}"
1464
1518
  ></import-pop-up>
@@ -829,6 +829,7 @@ class InboundOrderDetailsReport extends connect(store)(localize(i18next)(PageVie
829
829
  { header: i18next.t('field.carton_id'), key: 'cartonId', width: 25, type: 'string' },
830
830
  { header: i18next.t('field.batch_id'), key: 'batchId', width: 25, type: 'string' },
831
831
  { header: i18next.t('field.batch_id_ref'), key: 'batchIdRef', width: 25, type: 'string' },
832
+ { header: i18next.t('field.unloaded_by'), key: 'unloadedBy', width: 30, type: 'string' },
832
833
  { header: i18next.t('field.unloaded_at'), key: 'unloadedAt', width: 15, type: 'string' },
833
834
  { header: i18next.t('field.exp_date'), key: 'expirationDate', width: 15, type: 'string' },
834
835
  { header: i18next.t('field.manufacture_date'), key: 'manufactureDate', width: 15, type: 'string' },
@@ -6,18 +6,29 @@ module.exports = {
6
6
  subdomainOffset: 2,
7
7
  port: 4000,
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',
12
+ // database: 'postgres',
13
+ // username: 'izzah',
14
+ // password: 'hatio1234',
15
+ // host: 'my-operato-pg.cjcso4qmeuq0.ap-southeast-5.rds.amazonaws.com',
16
+ // port: 55432,
17
+ // synchronize: false,
18
+ // logging: true
19
+ // },
20
+ // postgres2
21
+ // ormconfig: {
22
+ // name: 'default',
23
+ // type: 'postgres',
24
+ // database: 'postgres',
25
+ // username: 'postgres',
26
+ // password: 'hatio',
27
+ // host: '192.168.0.151',
28
+ // port: 15432,
29
+ // synchronize: false,debug
30
+ // name: 'default',
31
+ // type: 'postgres',
21
32
  // database: 'arif',
22
33
  // username: 'postgres',
23
34
  // password: 'hatio',
@@ -26,7 +37,51 @@ module.exports = {
26
37
  // synchronize: false,
27
38
  // logging: true
28
39
  // },
29
-
40
+ // ormconfig: {
41
+ // name: 'default',
42
+ // type: 'postgres',
43
+ // database: 'operato-eric',
44
+ // username: 'postgres',
45
+ // password: 'hatio',
46
+ // host: '192.168.0.248',
47
+ // port: 15432,
48
+ // synchronize: false,
49
+ // logging: true
50
+ // },
51
+ //operato
52
+ // ormconfig: {
53
+ // name: 'default',
54
+ // type: 'postgres',
55
+ // database: 'operato',
56
+ // username: 'postgres',
57
+ // password: 'hatio',
58
+ // host: '192.168.0.151',
59
+ // port: 15432,
60
+ // synchronize: false,
61
+ // logging: true
62
+ // },
63
+ //153 - operatodebug
64
+ // type: 'postgres',
65
+ // database: 'operato',
66
+ // username: 'postgres',
67
+ // password: 'hatio',
68
+ // host: '192.168.0.153',
69
+ // port: 15432,
70
+ // synchronize: false,
71
+ // logging: true
72
+ // },
73
+ //eric2
74
+ // ormconfig: {
75
+ // name: 'default',
76
+ // type: 'postgres',
77
+ // database: 'eric2',
78
+ // username: 'postgres',
79
+ // password: 'hatio',
80
+ // host: '192.168.0.153',
81
+ // port: 15432,
82
+ // synchronize: false,
83
+ // logging: true
84
+ // },
30
85
  // STAGING DATABASE
31
86
  ormconfig: {
32
87
  name: 'default',
@@ -39,46 +94,30 @@ module.exports = {
39
94
  synchronize: false,
40
95
  logging: true
41
96
  },
42
-
97
+ //EMS
43
98
  // ormconfig: {
44
99
  // name: 'default',
45
100
  // 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
- // ormconfig: {
59
- // name: 'default',
60
- // type: 'postgres',
61
- // database: '06072023',
101
+ // database: 'EMS',
62
102
  // username: 'postgres',
63
103
  // password: 'hatio',
64
- // host: '192.168.0.153',
65
- // port: 15432,f
66
- // synchronize: true,
104
+ // host: '192.168.0.161',
105
+ // port: 15432,
106
+ // synchronize: false,
67
107
  // logging: true
68
108
  // },
109
+ //db nora
69
110
  // ormconfig: {
70
111
  // name: 'default',
71
112
  // type: 'postgres',
72
113
  // database: 'postgres',
73
114
  // username: 'postgres',
74
115
  // password: 'hatio',
75
- // host: '192.168.0.151',
116
+ // host: '192.168.0.36',
76
117
  // port: 15432,
77
- // synchronize: false,
118
+ // synchronize: true,
78
119
  // logging: true
79
120
  // },
80
-
81
- // //ERIC
82
121
  // ormconfig: {
83
122
  // name: 'default',
84
123
  // type: 'postgres',
@@ -87,15 +126,14 @@ module.exports = {
87
126
  // password: 'hatio',
88
127
  // host: '192.168.0.153',
89
128
  // port: 15432,
90
- // synchronize: false,
129
+ // synchronize: true,
91
130
  // logging: true
92
131
  // },
93
-
94
- //eric 2
132
+ //db izzah
95
133
  // ormconfig: {
96
134
  // name: 'default',
97
135
  // type: 'postgres',
98
- // database: 'eric2',
136
+ // database: '06072023',
99
137
  // username: 'postgres',
100
138
  // password: 'hatio',
101
139
  // host: '192.168.0.153',
@@ -103,21 +141,20 @@ module.exports = {
103
141
  // synchronize: false,
104
142
  // logging: true
105
143
  // },
106
-
107
144
  // ormconfig: {
108
145
  // name: 'default',
109
146
  // type: 'postgres',
110
- // host: 'operatov3.cluster-cijhm4n1hbst.ap-southeast-1.rds.amazonaws.com',
111
- // port: 55432,
147
+ // host: 'a6cf0bb5671f54555985dede599d5a87-649005352.ap-southeast-1.elb.amazonaws.com',
148
+ // port: 15432,
112
149
  // database: 'postgres',
113
- // username: 'postgres',
114
- // password: 'abcd1234',
150
+ // username: 'operato-hub-app',
151
+ // password: 'a5Z(7|6n$Zti',
115
152
  // synchronize: false,
116
153
  // logging: true,
117
154
  // connectTimeoutMS: 30000,
118
155
  // extra: { poolSize: 30 }
119
156
  // },
120
- //ormconfig: {
157
+ // //ormconfig: {
121
158
  // name: 'default',
122
159
  // type: 'postgres',
123
160
  // database: 'dev2',
@@ -145,16 +182,7 @@ module.exports = {
145
182
  },
146
183
  uploads: 'uploads',
147
184
  attachmentsPath: 'attachments',
148
- logger: {
149
- file: {
150
- filename: 'logs/application-%DATE%.log',
151
- datePattern: 'YYYY-MM-DD-HH',
152
- zippedArchive: true,
153
- maxSize: '200m',
154
- maxFiles: '1m',
155
- level: 'info'
156
- }
157
- },
185
+ logger: {},
158
186
  email: {
159
187
  host: 'smtp.office365.com',
160
188
  port: 587,
@@ -192,30 +220,72 @@ module.exports = {
192
220
  // privateKey: '4pmlt3Wk019u7nqU3Q_oGZE6LbUDjjf8DpmAcn9-iss'
193
221
  // }
194
222
  },
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',
223
+ fulfillmentIntegrationOperato: {
224
+ host: '192.168.0.161:3000',
225
+ protocol: 'http',
226
+ platform: 'operato',
227
+ application: 'Operato MMS',
228
+ appKey: 'a9bf751e622bf146662b240d58971051',
229
+ appSecret: '1c385935dc131c4b902b9bbf6a4798af',
230
+ callback: 'http://192.168.0.161:5000/callback-operato'
231
+ },
232
+ lmdIntegrationNinjavan: {
233
+ clientId: 'P8WCEwMo0FHNlPECwTLetwN3diAmt5KF',
234
+ secretKey: '1D0yNZGseOjhxnwri29xmuZiiuRp131L',
235
+ refreshThreshold: 43200
236
+ },
237
+
238
+ lmdIntegrationEms: { refreshThreshold: 43200 },
239
+ marketplaceIntegrationShopee: {
240
+ platform: 'shopee',
241
+ isUAT: false,
242
+ application: 'Operato MMS',
243
+ partnerId: 846025,
244
+ partnerKey: 'd34cfd85a603f196a0d74ebe08043280c1a27788bb36bdffd61e7e0bb1c90b64',
245
+ v2: true
246
+ },
247
+ marketplaceIntegrationLazada: {
248
+ platform: 'lazada',
249
+ application: 'operato-mms',
250
+ appKey: '120961',
251
+ appSecret: 'HB3RTNEXHlVSlBr9SmWF8AjbSUT7a825',
252
+ callback: 'https://maybank.operato-m.com/lazada-callback'
253
+ },
254
+
255
+ //testinglazada
256
+ // marketplaceIntegrationLazada: {
257
+ // platform: 'lazada',
258
+ // application: 'powrup_bi',
259
+ // appKey: '117890',
260
+ // appSecret: 'tQVllnUa7irAHoNxAwXEVxoP1we1bUjE',
261
+ // callback: 'https://73c5-175-141-30-142.ngrok-free.app/lazada-callback'
262
+ // },
263
+ reportApiUrl: 'http://localhost:8090/rest/report/show_html',
264
+ // reportApiUrl: 'http://192.168.0.153:8888/rest/report/show_html'
199
265
  // reportApiUrl: 'http://10.100.109.66:8090/rest/report/show_html',
200
266
  awbFileStorage: {
201
267
  type: 's3',
202
- accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
203
- secretAccessKey: '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',
268
+ accessKeyId: 'AKIAUQEOPWEJPXIVER74',
269
+ secretAccessKey: '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',
204
270
  bucketName: 'operato-awb',
205
271
  region: 'ap-southeast-1'
206
272
  },
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
273
  lambda: {
215
274
  region: 'ap-southeast-1',
216
- accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
217
- secretAccessKey: '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'
275
+ accessKeyId: 'AKIAUQEOPWEJPXIVER74',
276
+ secretAccessKey: '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'
218
277
  },
219
- reportApiUrl:
220
- 'http://k8s-default-operator-8eeba2e246-3e3a5ee7979bcd57.elb.ap-southeast-1.amazonaws.com/rest/report/show_html'
278
+ lmdIntegrationConfig: {
279
+ version: {
280
+ v1: 'lmdMiddleware',
281
+ v2: 'lmdMiddlewareV2'
282
+ }
283
+ },
284
+ awsSesEmail: {
285
+ accessKeyId: 'AKIAUQEOPWEJPXIVER74',
286
+ secretAccessKey: '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',
287
+ email: 'support@hatio.asia'
288
+ }
289
+ // reportApiUrl:
290
+ // 'http://k8s-default-operator-2fd6178d98-66c66a0f76c09575.elb.ap-southeast-1.amazonaws.com/rest/report/show_html'
221
291
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-wms",
3
- "version": "4.3.788",
3
+ "version": "4.3.790",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -66,7 +66,7 @@
66
66
  "@things-factory/attachment-ui": "^4.3.767",
67
67
  "@things-factory/auth-ui": "^4.3.767",
68
68
  "@things-factory/barcode-ui": "^4.3.767",
69
- "@things-factory/biz-ui": "^4.3.770",
69
+ "@things-factory/biz-ui": "^4.3.790",
70
70
  "@things-factory/board-service": "^4.3.767",
71
71
  "@things-factory/board-ui": "^4.3.770",
72
72
  "@things-factory/code-ui": "^4.3.770",
@@ -81,8 +81,8 @@
81
81
  "@things-factory/help": "^4.3.767",
82
82
  "@things-factory/i18n-base": "^4.3.767",
83
83
  "@things-factory/id-rule-base": "^4.3.770",
84
- "@things-factory/import-ui": "^4.3.770",
85
- "@things-factory/import-ui-excel": "^4.3.776",
84
+ "@things-factory/import-ui": "^4.3.790",
85
+ "@things-factory/import-ui-excel": "^4.3.790",
86
86
  "@things-factory/menu-ui": "^4.3.770",
87
87
  "@things-factory/more-ui": "^4.3.767",
88
88
  "@things-factory/notification": "^4.3.767",
@@ -90,8 +90,8 @@
90
90
  "@things-factory/print-proxy-service": "^4.3.767",
91
91
  "@things-factory/print-ui": "^4.3.767",
92
92
  "@things-factory/product-base": "^4.3.788",
93
- "@things-factory/resource-ui": "^4.3.770",
94
- "@things-factory/sales-ui": "^4.3.788",
93
+ "@things-factory/resource-ui": "^4.3.790",
94
+ "@things-factory/sales-ui": "^4.3.790",
95
95
  "@things-factory/scene-data-transform": "^4.3.767",
96
96
  "@things-factory/scene-excel": "^4.3.767",
97
97
  "@things-factory/scene-firebase": "^4.3.767",
@@ -107,8 +107,8 @@
107
107
  "@things-factory/system-ui": "^4.3.767",
108
108
  "@things-factory/transport-base": "^4.3.767",
109
109
  "@things-factory/tutorial-ui": "^4.3.767",
110
- "@things-factory/warehouse-base": "^4.3.788",
111
- "@things-factory/worksheet-base": "^4.3.788"
110
+ "@things-factory/warehouse-base": "^4.3.790",
111
+ "@things-factory/worksheet-base": "^4.3.790"
112
112
  },
113
113
  "devDependencies": {
114
114
  "@things-factory/builder": "^4.3.767",
@@ -117,5 +117,5 @@
117
117
  "cypress-localstorage-commands": "^1.6.1",
118
118
  "eslint-plugin-cypress": "^2.12.1"
119
119
  },
120
- "gitHead": "d00e590725e3c583903b49b35d333b5f540b2c8e"
120
+ "gitHead": "aac8be0c440911f309204b31d37d0b9fabd0c451"
121
121
  }