@webtypen/webframez-core 0.3.3 → 0.3.5
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.
|
@@ -192,11 +192,17 @@ class Datatable {
|
|
|
192
192
|
},
|
|
193
193
|
})
|
|
194
194
|
.toArray();
|
|
195
|
+
const sumsAfter = [];
|
|
195
196
|
const statsGroup = { $group: { _id: null, count: { $sum: 1 } } };
|
|
196
197
|
if (req.body.sums && Object.keys(req.body.sums).length > 0) {
|
|
197
198
|
for (let key in req.body.sums) {
|
|
198
199
|
if (req.body.sums[key] && req.body.sums[key].mapping) {
|
|
199
|
-
|
|
200
|
+
if (req.body.sums[key].afterOnRow) {
|
|
201
|
+
statsGroup.$group["sum_" + req.body.sums[key].mapping] = { $sum: "$" + req.body.sums[key].mapping };
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
sumsAfter.push(Object.assign(Object.assign({}, req.body.sums[key]), { key: key }));
|
|
205
|
+
}
|
|
200
206
|
}
|
|
201
207
|
}
|
|
202
208
|
}
|
|
@@ -229,6 +235,25 @@ class Datatable {
|
|
|
229
235
|
}
|
|
230
236
|
}
|
|
231
237
|
}
|
|
238
|
+
if (sumsAfter && sumsAfter.length > 0) {
|
|
239
|
+
for (let sum of sumsAfter) {
|
|
240
|
+
for (let i in results) {
|
|
241
|
+
if (!sums[sum.mapping] || !sums[sum.mapping].value) {
|
|
242
|
+
sums[sum.mapping] = Object.assign(Object.assign({}, req.body.sums[sum.key]), { value: 0 });
|
|
243
|
+
}
|
|
244
|
+
sums[sum.mapping].value =
|
|
245
|
+
(sums[sum.mapping].value ? sums[sum.mapping].value : 0) +
|
|
246
|
+
(results[i][sum.mapping] !== null &&
|
|
247
|
+
results[i][sum.mapping] !== undefined &&
|
|
248
|
+
!isNaN(parseFloat(results[i][sum.mapping]))
|
|
249
|
+
? parseFloat(results[i][sum.mapping])
|
|
250
|
+
: 0);
|
|
251
|
+
}
|
|
252
|
+
sums[sum.mapping].value =
|
|
253
|
+
NumericFunctions_1.NumericFunctions.numberFormat(sums[sum.mapping].value) +
|
|
254
|
+
(req.body.sums[sum.key].suffix ? req.body.sums[sum.key].suffix : "");
|
|
255
|
+
}
|
|
256
|
+
}
|
|
232
257
|
const data = {
|
|
233
258
|
page: page,
|
|
234
259
|
max_entries: stats && stats[0] && stats[0].count ? stats[0].count : 0,
|
package/package.json
CHANGED
|
@@ -192,11 +192,16 @@ export class Datatable {
|
|
|
192
192
|
})
|
|
193
193
|
.toArray();
|
|
194
194
|
|
|
195
|
+
const sumsAfter: any = [];
|
|
195
196
|
const statsGroup: any = { $group: { _id: null, count: { $sum: 1 } } };
|
|
196
197
|
if (req.body.sums && Object.keys(req.body.sums).length > 0) {
|
|
197
198
|
for (let key in req.body.sums) {
|
|
198
199
|
if (req.body.sums[key] && req.body.sums[key].mapping) {
|
|
199
|
-
|
|
200
|
+
if (req.body.sums[key].afterOnRow) {
|
|
201
|
+
statsGroup.$group["sum_" + req.body.sums[key].mapping] = { $sum: "$" + req.body.sums[key].mapping };
|
|
202
|
+
} else {
|
|
203
|
+
sumsAfter.push({ ...req.body.sums[key], key: key });
|
|
204
|
+
}
|
|
200
205
|
}
|
|
201
206
|
}
|
|
202
207
|
}
|
|
@@ -238,6 +243,28 @@ export class Datatable {
|
|
|
238
243
|
}
|
|
239
244
|
}
|
|
240
245
|
|
|
246
|
+
if (sumsAfter && sumsAfter.length > 0) {
|
|
247
|
+
for (let sum of sumsAfter) {
|
|
248
|
+
for (let i in results) {
|
|
249
|
+
if (!sums[sum.mapping] || !sums[sum.mapping].value) {
|
|
250
|
+
sums[sum.mapping] = { ...req.body.sums[sum.key], value: 0 };
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
sums[sum.mapping].value =
|
|
254
|
+
(sums[sum.mapping].value ? sums[sum.mapping].value : 0) +
|
|
255
|
+
(results[i][sum.mapping] !== null &&
|
|
256
|
+
results[i][sum.mapping] !== undefined &&
|
|
257
|
+
!isNaN(parseFloat(results[i][sum.mapping]))
|
|
258
|
+
? parseFloat(results[i][sum.mapping])
|
|
259
|
+
: 0);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
sums[sum.mapping].value =
|
|
263
|
+
NumericFunctions.numberFormat(sums[sum.mapping].value) +
|
|
264
|
+
(req.body.sums[sum.key].suffix ? req.body.sums[sum.key].suffix : "");
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
241
268
|
const data = {
|
|
242
269
|
page: page,
|
|
243
270
|
max_entries: stats && stats[0] && stats[0].count ? stats[0].count : 0,
|