@webtypen/webframez-core 0.3.2 → 0.3.4

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(req.body.sums[key]);
205
+ }
200
206
  }
201
207
  }
202
208
  }
@@ -229,6 +235,21 @@ class Datatable {
229
235
  }
230
236
  }
231
237
  }
238
+ if (sumsAfter && sumsAfter.length > 0) {
239
+ for (let i in results) {
240
+ for (let sum of sumsAfter) {
241
+ if (!sums[req.body.sums[sum.mapping].mapping]) {
242
+ sums[req.body.sums[sum.mapping].mapping] = Object.assign({}, req.body.sums[sum.mapping]);
243
+ }
244
+ sums[req.body.sums[sum.mapping].mapping] +=
245
+ results[i][sum.mapping] !== null &&
246
+ results[i][sum.mapping] !== undefined &&
247
+ !isNaN(parseFloat(results[i][sum.mapping]))
248
+ ? parseFloat(results[i][sum.mapping])
249
+ : 0;
250
+ }
251
+ }
252
+ }
232
253
  const data = {
233
254
  page: page,
234
255
  max_entries: stats && stats[0] && stats[0].count ? stats[0].count : 0,
@@ -253,6 +274,9 @@ class Datatable {
253
274
  delete entry.skipStats;
254
275
  aggregation.push(entry);
255
276
  }
277
+ else {
278
+ aggregation.push(entry);
279
+ }
256
280
  }
257
281
  }
258
282
  const connection = yield DBConnection_1.DBConnection.getConnection();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webtypen/webframez-core",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
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]);
204
+ }
200
205
  }
201
206
  }
202
207
  }
@@ -238,6 +243,25 @@ export class Datatable {
238
243
  }
239
244
  }
240
245
 
246
+ if (sumsAfter && sumsAfter.length > 0) {
247
+ for (let i in results) {
248
+ for (let sum of sumsAfter) {
249
+ if (!sums[req.body.sums[sum.mapping].mapping]) {
250
+ sums[req.body.sums[sum.mapping].mapping] = {
251
+ ...req.body.sums[sum.mapping],
252
+ };
253
+ }
254
+
255
+ sums[req.body.sums[sum.mapping].mapping] +=
256
+ results[i][sum.mapping] !== null &&
257
+ results[i][sum.mapping] !== undefined &&
258
+ !isNaN(parseFloat(results[i][sum.mapping]))
259
+ ? parseFloat(results[i][sum.mapping])
260
+ : 0;
261
+ }
262
+ }
263
+ }
264
+
241
265
  const data = {
242
266
  page: page,
243
267
  max_entries: stats && stats[0] && stats[0].count ? stats[0].count : 0,
@@ -262,6 +286,8 @@ export class Datatable {
262
286
  if (entry.skipStats) {
263
287
  delete entry.skipStats;
264
288
  aggregation.push(entry);
289
+ } else {
290
+ aggregation.push(entry);
265
291
  }
266
292
  }
267
293
  }