@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
- statsGroup.$group["sum_" + req.body.sums[key].mapping] = { $sum: "$" + req.body.sums[key].mapping };
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webtypen/webframez-core",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "description": "The core package of the typescript based webframez (web-framework) by webtypen.de",
5
5
  "homepage": "https://webtypen.de/",
6
6
  "license": "MIT",
@@ -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
- statsGroup.$group["sum_" + req.body.sums[key].mapping] = { $sum: "$" + req.body.sums[key].mapping };
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,