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.
Files changed (2) hide show
  1. package/lib/zRoute.js +74 -8
  2. 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 == 'created_at') {
1386
- t = !callback(result, field) ? Util.timeSql(result[field]) : callback(result, field)
1387
- } else if (field == 'updated_at' || field == 'updated_at') {
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
- t = !callback(result, field) ? relations[field][result[field]].zname || '' : callback(result, field)
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 (MYMODEL.widgets[keys[prop]].name === 'integer') {
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zet-lib",
3
- "version": "1.2.35",
3
+ "version": "1.2.37",
4
4
  "description": "zet is a library that part of zet generator.",
5
5
  "engines": {
6
6
  "node": ">=18"