zet-lib 1.2.6 → 1.2.8
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/connection.js +3 -2
- package/lib/zRoute.js +121 -117
- package/package.json +1 -1
package/lib/connection.js
CHANGED
|
@@ -94,20 +94,21 @@ const whereFn = (obj) => {
|
|
|
94
94
|
if (item.option.includes('{{value}}')) {
|
|
95
95
|
item.option = item.option.replace('{{value}}', `$${increment}`)
|
|
96
96
|
wherequery += `${andOr} ${field} ${item.option} ${operator}`
|
|
97
|
+
increment++
|
|
97
98
|
} else if (item.option.includes('$')) {
|
|
98
99
|
wherequery += `${andOr} ${field} ${item.option} ${operator}`
|
|
100
|
+
increment++
|
|
99
101
|
} else {
|
|
100
102
|
wherequery += `${andOr} ${field} ${item.option} $${increment} ${operator}`
|
|
103
|
+
increment++
|
|
101
104
|
}
|
|
102
105
|
let itemValue = item.value
|
|
103
106
|
if (item.option == '=') {
|
|
104
107
|
itemValue = Util.replaceAll(itemValue + '', '%', '')
|
|
105
108
|
}
|
|
106
|
-
|
|
107
109
|
arr.push(itemValue)
|
|
108
110
|
}
|
|
109
111
|
}
|
|
110
|
-
increment++
|
|
111
112
|
})
|
|
112
113
|
//console.log(arr)
|
|
113
114
|
}
|
package/lib/zRoute.js
CHANGED
|
@@ -1437,131 +1437,135 @@ zRoute.excel = async (req, res, MYMODEL, fields, rows, callback, fileName) => {
|
|
|
1437
1437
|
|
|
1438
1438
|
//for pdf
|
|
1439
1439
|
zRoute.pdf = async (req, res, MYMODEL, fields, rows, callback) => {
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
let
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1440
|
+
try {
|
|
1441
|
+
io.to(res.locals.token).emit('message', 'Please wait, compiling..')
|
|
1442
|
+
callback = callback || function () {}
|
|
1443
|
+
let labels = MYMODEL.labels
|
|
1444
|
+
let html = ``
|
|
1445
|
+
html += `<h2>${MYMODEL.title}</h2>`
|
|
1446
|
+
html += `<br>`
|
|
1447
|
+
html += `<div class="container">`
|
|
1448
|
+
html += `<table class="table">`
|
|
1449
|
+
html += `<thead><tr>`
|
|
1450
|
+
for (var i = 0; i < fields.length; i++) {
|
|
1451
|
+
html += `<td>${labels[fields[i]]}</td>`
|
|
1452
|
+
}
|
|
1453
|
+
html += `</tr></thead>`
|
|
1454
|
+
//check relations
|
|
1455
|
+
let isRelations = false
|
|
1456
|
+
let relations = [],
|
|
1457
|
+
tableObj = {},
|
|
1458
|
+
obj = {},
|
|
1459
|
+
dropdowns = [],
|
|
1460
|
+
passwords = []
|
|
1461
|
+
let usersObj = await zRoute.getUsers()
|
|
1462
|
+
if (Object.prototype.hasOwnProperty.call(MYMODEL, 'widgets')) {
|
|
1463
|
+
for (let key in MYMODEL.widgets) {
|
|
1464
|
+
let widget = MYMODEL.widgets[key]
|
|
1465
|
+
if (widget.name == 'password') {
|
|
1466
|
+
passwords.push(key)
|
|
1467
|
+
} else if (widget.name == 'select') {
|
|
1468
|
+
tableObj[key] = widget.fields
|
|
1469
|
+
} else if (widget.name == 'switch') {
|
|
1470
|
+
tableObj[key] = widget.fields
|
|
1471
|
+
} else if (widget.name == 'relation') {
|
|
1472
|
+
const rowsarr = await connection.results({
|
|
1473
|
+
table: widget.table,
|
|
1474
|
+
select: widget.fields[0] + ',' + widget.fields[1] + ' as zname ',
|
|
1475
|
+
})
|
|
1476
|
+
//save to object
|
|
1477
|
+
relations[key] = Util.arrayToObject(rowsarr, 'id')
|
|
1478
|
+
}
|
|
1477
1479
|
}
|
|
1478
1480
|
}
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1481
|
+
html += `<tbody>`
|
|
1482
|
+
rows.forEach(function (result) {
|
|
1483
|
+
html += `<tr>`
|
|
1484
|
+
fields.forEach((field, i) => {
|
|
1485
|
+
var t
|
|
1486
|
+
if (field == 'company_id') {
|
|
1487
|
+
t = !callback(result, field) ? result.company_id : callback(result, field)
|
|
1488
|
+
} else if (field == 'created_at' || field == 'created_at') {
|
|
1489
|
+
t = !callback(result, field) ? Util.timeSql(result[field]) : callback(result, field)
|
|
1490
|
+
} else if (field == 'updated_at' || field == 'updated_at') {
|
|
1491
|
+
t = !callback(result, field) ? Util.timeSql(result[field]) : callback(result, field)
|
|
1492
|
+
} else if (Util.in_array(field, ['created_by', 'updated_by'])) {
|
|
1493
|
+
t = !callback(result, field) ? usersObj[result[field]] : callback(result, field)
|
|
1494
|
+
} else {
|
|
1495
|
+
// callback will call if you have
|
|
1496
|
+
if (Util.in_array(field, relations)) {
|
|
1497
|
+
const objectData = tableObj[field] || {}
|
|
1498
|
+
if (!callback(result, field)) {
|
|
1499
|
+
if (result[field] && Object.hasOwn(objectData[result[field]], 'zname')) {
|
|
1500
|
+
t = objectData[result[field]]['zname']
|
|
1501
|
+
} else {
|
|
1502
|
+
t = result[field]
|
|
1503
|
+
}
|
|
1500
1504
|
} else {
|
|
1501
|
-
t = result
|
|
1505
|
+
t = callback(result, field)
|
|
1506
|
+
}
|
|
1507
|
+
} else if (Util.in_array(field, dropdowns)) {
|
|
1508
|
+
t = !callback(result, field) ? MYMODEL.dropdowns[field].fields[result[field]] : callback(result, field)
|
|
1509
|
+
} else if (Util.in_array(field, passwords)) {
|
|
1510
|
+
t = 'xxxxxx'
|
|
1511
|
+
} else if (MYMODEL.widgets[field].name == 'select') {
|
|
1512
|
+
t = !callback(result, field) ? (Object.hasOwn(tableObj[field], result[field]) ? tableObj[field][result[field]] : result[field]) : callback(result, field)
|
|
1513
|
+
} else if (MYMODEL.widgets[field].name == 'datetime') {
|
|
1514
|
+
t = !callback(result, field) ? Util.timeSql(result[field]) : callback(result, field)
|
|
1515
|
+
} else if (MYMODEL.widgets[field].name == 'datepicker') {
|
|
1516
|
+
t = !callback(result, field) ? Util.dateFormat(result[field]) : callback(result, field)
|
|
1517
|
+
} else if (MYMODEL.widgets[field].name == 'switch') {
|
|
1518
|
+
t = !callback(result, field) ? tableObj[field][result[field]] || '' : callback(result, field)
|
|
1519
|
+
} else if (MYMODEL.widgets[field].name == 'relation') {
|
|
1520
|
+
if (relations[field][result[field]]) {
|
|
1521
|
+
t = !callback(result, field) ? relations[field][result[field]].zname || '' : callback(result, field)
|
|
1502
1522
|
}
|
|
1503
1523
|
} else {
|
|
1504
|
-
t = callback(result, field)
|
|
1524
|
+
t = !callback(result, field) ? result[field] || '' : callback(result, field)
|
|
1505
1525
|
}
|
|
1506
|
-
} else if (Util.in_array(field, dropdowns)) {
|
|
1507
|
-
t = !callback(result, field) ? MYMODEL.dropdowns[field].fields[result[field]] : callback(result, field)
|
|
1508
|
-
} else if (Util.in_array(field, passwords)) {
|
|
1509
|
-
t = 'xxxxxx'
|
|
1510
|
-
} else if (MYMODEL.widgets[field].name == 'select') {
|
|
1511
|
-
t = !callback(result, field) ? (Object.hasOwn(tableObj[field], result[field]) ? tableObj[field][result[field]] : result[field]) : callback(result, field)
|
|
1512
|
-
} else if (MYMODEL.widgets[field].name == 'datetime') {
|
|
1513
|
-
t = !callback(result, field) ? Util.timeSql(result[field]) : callback(result, field)
|
|
1514
|
-
} else if (MYMODEL.widgets[field].name == 'datepicker') {
|
|
1515
|
-
t = !callback(result, field) ? Util.dateFormat(result[field]) : callback(result, field)
|
|
1516
|
-
} else if (MYMODEL.widgets[field].name == 'switch') {
|
|
1517
|
-
t = !callback(result, field) ? tableObj[field][result[field]] || '' : callback(result, field)
|
|
1518
|
-
} else if (MYMODEL.widgets[field].name == 'relation') {
|
|
1519
|
-
if (relations[field][result[field]]) {
|
|
1520
|
-
t = !callback(result, field) ? relations[field][result[field]].zname || '' : callback(result, field)
|
|
1521
|
-
}
|
|
1522
|
-
} else {
|
|
1523
|
-
t = !callback(result, field) ? result[field] || '' : callback(result, field)
|
|
1524
1526
|
}
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1527
|
+
//worksheet.getCell(sequence[i] + start).value = t;
|
|
1528
|
+
html += `<td>${t}</td>`
|
|
1529
|
+
})
|
|
1530
|
+
html += `</tr>`
|
|
1528
1531
|
})
|
|
1529
|
-
html += `</tr>`
|
|
1530
|
-
})
|
|
1531
1532
|
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1533
|
+
html += `</tbody></table></div>`
|
|
1534
|
+
let time = Util.timeSql()
|
|
1535
|
+
time = Util.replaceAll(time, ' ', '_')
|
|
1536
|
+
let file = { content: html }
|
|
1537
|
+
let count = fields.length
|
|
1538
|
+
let options = {}
|
|
1539
|
+
if (count > 8) {
|
|
1540
|
+
options = {
|
|
1541
|
+
landscape: true,
|
|
1542
|
+
}
|
|
1543
|
+
} else if (count > 10) {
|
|
1544
|
+
options = {
|
|
1545
|
+
format: 'A3',
|
|
1546
|
+
//landscape:true
|
|
1547
|
+
}
|
|
1548
|
+
} else if (count > 12) {
|
|
1549
|
+
options = {
|
|
1550
|
+
format: 'A3',
|
|
1551
|
+
landscape: true,
|
|
1552
|
+
}
|
|
1553
|
+
} else if (count > 14) {
|
|
1554
|
+
options = {
|
|
1555
|
+
format: 'A2',
|
|
1556
|
+
//landscape:true
|
|
1557
|
+
}
|
|
1558
|
+
} else if (count > 16) {
|
|
1559
|
+
options = {
|
|
1560
|
+
format: 'A0',
|
|
1561
|
+
landscape: true,
|
|
1562
|
+
}
|
|
1563
|
+
}
|
|
1564
|
+
const pdf = await zRoute.generatePDF(file, 'pdf_blank', options)
|
|
1565
|
+
res.download(pdf, MYMODEL.table + time + '.pdf')
|
|
1566
|
+
} catch (err) {
|
|
1567
|
+
res.json(Util.jsonError(err))
|
|
1568
|
+
}
|
|
1565
1569
|
}
|
|
1566
1570
|
|
|
1567
1571
|
/*
|
|
@@ -1598,7 +1602,7 @@ zRoute.generatePDF = async (file, layout = 'pdf_bootstrap', options = {}) => {
|
|
|
1598
1602
|
} else {
|
|
1599
1603
|
await page.goto(file.url, {
|
|
1600
1604
|
waitUntil: 'load',
|
|
1601
|
-
timeout:
|
|
1605
|
+
timeout: 300000, // wait for page to load completely
|
|
1602
1606
|
})
|
|
1603
1607
|
}
|
|
1604
1608
|
let fileName = new Date().getTime() + '.pdf'
|