zet-lib 1.2.35 → 1.2.37
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/lib/zRoute.js +74 -8
- package/package.json +1 -1
package/lib/zRoute.js
CHANGED
|
@@ -1348,6 +1348,25 @@ zRoute.excel = async (req, res, MYMODEL, fields, rows, callback, fileName) => {
|
|
|
1348
1348
|
worksheet.getCell('A3').font = bold
|
|
1349
1349
|
worksheet.getCell('A3').alignment = center
|
|
1350
1350
|
|
|
1351
|
+
let aliasRelations = []
|
|
1352
|
+
let selectRelations = ''
|
|
1353
|
+
let aliasResults = {}
|
|
1354
|
+
for (let key in MYMODEL.widgets) {
|
|
1355
|
+
if (MYMODEL.widgets[key].name == 'relation' || MYMODEL.widgets[key].name == 'typeahead') {
|
|
1356
|
+
if (MYMODEL.widgets[key].import_field && MYMODEL.widgets[key].import_field != 'id') {
|
|
1357
|
+
aliasResults[key] = Util.arrayToObject(
|
|
1358
|
+
await connection.results({
|
|
1359
|
+
select: `id, ${MYMODEL.widgets[key].import_field}`,
|
|
1360
|
+
table: MYMODEL.widgets[key].table,
|
|
1361
|
+
}),
|
|
1362
|
+
'id'
|
|
1363
|
+
)
|
|
1364
|
+
//console.log(aliasResults[key])
|
|
1365
|
+
aliasRelations.push(key)
|
|
1366
|
+
selectRelations += `, (select ${MYMODEL.widgets[key].import_field} from "${MYMODEL.widgets[key].table}" where ${MYMODEL.widgets[key].table}.id = ${MYMODEL.table}.${key} limit 1) as ${key} `
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1351
1370
|
//check relations
|
|
1352
1371
|
let isRelations = false
|
|
1353
1372
|
let relations = [],
|
|
@@ -1365,7 +1384,7 @@ zRoute.excel = async (req, res, MYMODEL, fields, rows, callback, fileName) => {
|
|
|
1365
1384
|
tableObj[key] = widget.fields
|
|
1366
1385
|
} else if (widget.name == 'switch') {
|
|
1367
1386
|
tableObj[key] = widget.fields
|
|
1368
|
-
} else if (widget.name == 'relation') {
|
|
1387
|
+
} else if (widget.name == 'relation' || widget.name == 'typeahead') {
|
|
1369
1388
|
var rowsarr = await connection.results({
|
|
1370
1389
|
table: widget.table,
|
|
1371
1390
|
select: widget.fields[0] + ',' + widget.fields[1] + ' as zname ',
|
|
@@ -1382,9 +1401,9 @@ zRoute.excel = async (req, res, MYMODEL, fields, rows, callback, fileName) => {
|
|
|
1382
1401
|
let t
|
|
1383
1402
|
if (field == 'company_id') {
|
|
1384
1403
|
t = !callback(result, field) ? result.company_id : callback(result, field)
|
|
1385
|
-
} else if (field == 'created_at' || field == '
|
|
1386
|
-
|
|
1387
|
-
|
|
1404
|
+
} else if (field == 'created_at' || field == 'updated_at') {
|
|
1405
|
+
worksheet.getCell(sequence[i] + start).numFmt = '@'
|
|
1406
|
+
result[field] = Util.dateOriginal(result[field])
|
|
1388
1407
|
t = !callback(result, field) ? Util.timeSql(result[field]) : callback(result, field)
|
|
1389
1408
|
} else if (Util.in_array(field, ['created_by', 'updated_by'])) {
|
|
1390
1409
|
if (isRaws) {
|
|
@@ -1420,12 +1439,15 @@ zRoute.excel = async (req, res, MYMODEL, fields, rows, callback, fileName) => {
|
|
|
1420
1439
|
t = !callback(result, field) ? (Object.hasOwn(tableObj[field], result[field]) ? tableObj[field][result[field]] : result[field]) : callback(result, field)
|
|
1421
1440
|
}
|
|
1422
1441
|
} else if (widgets.hasOwnProperty(field) && widgets[field].name == 'datetime') {
|
|
1442
|
+
result[field] = Util.dateOriginal(result[field])
|
|
1443
|
+
worksheet.getCell(sequence[i] + start).numFmt = '@'
|
|
1423
1444
|
if (isRaws) {
|
|
1424
1445
|
t = !callback(result, field) ? Util.timeSql(result[field]) : callback(result, field)
|
|
1425
1446
|
} else {
|
|
1426
1447
|
t = !callback(result, field) ? Util.timeSql(result[field]) : callback(result, field)
|
|
1427
1448
|
}
|
|
1428
1449
|
} else if (widgets.hasOwnProperty(field) && widgets[field].name == 'datepicker') {
|
|
1450
|
+
worksheet.getCell(sequence[i] + start).numFmt = '@'
|
|
1429
1451
|
if (isRaws) {
|
|
1430
1452
|
t = !callback(result, field) ? Util.dateFormat(result[field]) : callback(result, field)
|
|
1431
1453
|
} else {
|
|
@@ -1437,18 +1459,38 @@ zRoute.excel = async (req, res, MYMODEL, fields, rows, callback, fileName) => {
|
|
|
1437
1459
|
} else {
|
|
1438
1460
|
t = !callback(result, field) ? tableObj[field][result[field]] || '' : callback(result, field)
|
|
1439
1461
|
}
|
|
1440
|
-
} else if (widgets.hasOwnProperty(field) && widgets[field].name == 'relation') {
|
|
1462
|
+
} else if ((widgets.hasOwnProperty(field) && widgets[field].name == 'relation') || (widgets.hasOwnProperty(field) && widgets[field].name == 'typeahead')) {
|
|
1463
|
+
let myvalue = ''
|
|
1464
|
+
if (widgets[field].import_field && widgets[field].import_field != 'id') {
|
|
1465
|
+
/*console.log(result[field])
|
|
1466
|
+
console.log(widgets[field].import_field)
|
|
1467
|
+
console.log([result[field]][widgets[field].import_field])*/
|
|
1468
|
+
if (isNaN(result[field])) {
|
|
1469
|
+
myvalue = result[field]
|
|
1470
|
+
} else {
|
|
1471
|
+
myvalue = result[field] ? aliasResults[field][result[field]][widgets[field].import_field] : ''
|
|
1472
|
+
result[field] = aliasResults[field][result[field]][widgets[field].import_field]
|
|
1473
|
+
}
|
|
1474
|
+
} else {
|
|
1475
|
+
myvalue = relations[field][result[field]].zname
|
|
1476
|
+
}
|
|
1441
1477
|
if (isRaws) {
|
|
1442
1478
|
t = !callback(result, field) ? result[field] : callback(result, field)
|
|
1443
1479
|
} else {
|
|
1480
|
+
t = !callback(result, field) ? myvalue : callback(result, field)
|
|
1481
|
+
/*
|
|
1444
1482
|
if (relations[field][result[field]]) {
|
|
1445
|
-
|
|
1446
|
-
|
|
1483
|
+
console.log('relation fieldssssss')
|
|
1484
|
+
t = !callback(result, field) ? myvalue : callback(result, field)
|
|
1485
|
+
} else {
|
|
1486
|
+
t = myvalue;
|
|
1487
|
+
}*/
|
|
1447
1488
|
}
|
|
1448
1489
|
} else {
|
|
1449
1490
|
t = !callback(result, field) ? result[field] : callback(result, field)
|
|
1450
1491
|
}
|
|
1451
1492
|
}
|
|
1493
|
+
|
|
1452
1494
|
worksheet.getCell(sequence[i] + start).value = t
|
|
1453
1495
|
})
|
|
1454
1496
|
start++
|
|
@@ -3394,6 +3436,18 @@ zRoute.import = async (req, res, MYMODEL) => {
|
|
|
3394
3436
|
datas: datas,
|
|
3395
3437
|
}
|
|
3396
3438
|
let json = Util.jsonSuccess(LANGUAGE['import_success'])
|
|
3439
|
+
let aliasRelations = []
|
|
3440
|
+
let selectRelations = ''
|
|
3441
|
+
for (let key in MYMODEL.widgets) {
|
|
3442
|
+
if (MYMODEL.widgets[key]) {
|
|
3443
|
+
if (MYMODEL.widgets[key].name == 'relation' || MYMODEL.widgets[key].name == 'typeahead') {
|
|
3444
|
+
if (MYMODEL.widgets[key].import_field && MYMODEL.widgets[key].import_field != 'id') {
|
|
3445
|
+
aliasRelations.push(key)
|
|
3446
|
+
selectRelations += `, (select ${MYMODEL.widgets[key].import_field} from "${MYMODEL.widgets[key].table}" where ${MYMODEL.widgets[key].table}.id = ${MYMODEL.table}.${key} limit 1) as ${key} `
|
|
3447
|
+
}
|
|
3448
|
+
}
|
|
3449
|
+
}
|
|
3450
|
+
}
|
|
3397
3451
|
try {
|
|
3398
3452
|
if (Object.keys(req.files).length == 0) {
|
|
3399
3453
|
return res.json(Util.flashError(LANGUAGE['import_no_file']))
|
|
@@ -3454,7 +3508,19 @@ zRoute.import = async (req, res, MYMODEL) => {
|
|
|
3454
3508
|
for (var prop in keys) {
|
|
3455
3509
|
let value = result[i][prop]
|
|
3456
3510
|
if (value) {
|
|
3457
|
-
if (
|
|
3511
|
+
if (aliasRelations.includes(keys[prop])) {
|
|
3512
|
+
let result_alias = await connection.result({
|
|
3513
|
+
select: `id, ${MYMODEL.widgets[keys[prop]].import_field} `,
|
|
3514
|
+
table: MYMODEL.widgets[keys[prop]].table,
|
|
3515
|
+
whereArray: [
|
|
3516
|
+
//{field:"your_field",option:"=>",value:"12",operator:"AND",type:"text,json,date"}
|
|
3517
|
+
{ field: MYMODEL.widgets[keys[prop]].import_field, option: 'ILIKE', value: value },
|
|
3518
|
+
],
|
|
3519
|
+
})
|
|
3520
|
+
if (result_alias.id) {
|
|
3521
|
+
data[keys[prop]] = result_alias.id
|
|
3522
|
+
}
|
|
3523
|
+
} else if (MYMODEL.widgets[keys[prop]].name === 'integer') {
|
|
3458
3524
|
data[keys[prop]] = parseInt(value) || null
|
|
3459
3525
|
} else if (MYMODEL.widgets[keys[prop]].name === 'virtual') {
|
|
3460
3526
|
//empty
|