@resolveio/server-lib 20.12.67 → 20.12.69
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/methods/report-builder.js +41 -26
- package/methods/report-builder.js.map +1 -1
- package/package.json +3 -3
- package/server-app.js +2 -1
- package/server-app.js.map +1 -1
|
@@ -276,7 +276,7 @@ function loadReportBuilderMethods(methodManager) {
|
|
|
276
276
|
}),
|
|
277
277
|
function: function (reportType_1, rootCollectionName_1, rootOptions_1) {
|
|
278
278
|
return __awaiter(this, arguments, void 0, function (reportType, rootCollectionName, rootOptions, filters, filterArrays, filterArrayFields, selectedFields, customFields, groupsRow, fieldsTotal, fieldsLink, date_field, date_interval, displayType) {
|
|
279
|
-
var modelCollection, datePaths, reportBuilderTimezone, lookupAliases, _a, rootFilters_1, lookupFilters_1, additionalCollectionsMap_1, additionalCollections, unionQuery_1, _b, sortToUse, layoutSortAdd, remappedFilters, remappedArrayFilters, postMatchAnd, res_1, err_1, tmpTotals_1, resultsOut, tmpRes_1, query_1, initialQueryMatchCondition_1, sizes_1, divFields_1, queryMatchConditionLookup_1, queryGroup_1, groupedSorts_1, dateFieldPath, queryProjection_1, _loop_1, i, res_2, err_2, tmpTotals_2, tmpRes;
|
|
279
|
+
var modelCollection, datePaths, reportBuilderTimezone, lookupAliases, _a, rootFilters_1, lookupFilters_1, additionalCollectionsMap_1, additionalCollections, unionQuery_1, _b, sortToUse, layoutSortAdd, remappedFilters, remappedArrayFilters, postMatchAnd, res_1, err_1, tmpTotals_1, resultsOut, tmpRes_1, query_1, initialQueryMatchCondition_1, sizes_1, divFields_1, queryMatchConditionLookup_1, queryGroup_1, groupedSorts_1, dateFieldPath, dateFieldExpr, utcHourExpr, utcMinuteExpr, utcSecondExpr, utcDayExpr, tzDayExpr, useUtcForDateOnlyExpr, groupingTimezoneExpr, queryProjection_1, _loop_1, i, res_2, err_2, tmpTotals_2, tmpRes;
|
|
280
280
|
if (filters === void 0) { filters = []; }
|
|
281
281
|
if (filterArrays === void 0) { filterArrays = []; }
|
|
282
282
|
if (filterArrayFields === void 0) { filterArrayFields = []; }
|
|
@@ -728,46 +728,61 @@ function loadReportBuilderMethods(methodManager) {
|
|
|
728
728
|
if (groupsRow.length && date_field && date_interval) {
|
|
729
729
|
dateFieldPath = (typeof date_field === 'string') ? date_field.replace(/\.\$/g, '') : '';
|
|
730
730
|
if (dateFieldPath) {
|
|
731
|
+
dateFieldExpr = '$' + dateFieldPath;
|
|
732
|
+
utcHourExpr = { '$hour': { date: dateFieldExpr, timezone: 'UTC' } };
|
|
733
|
+
utcMinuteExpr = { '$minute': { date: dateFieldExpr, timezone: 'UTC' } };
|
|
734
|
+
utcSecondExpr = { '$second': { date: dateFieldExpr, timezone: 'UTC' } };
|
|
735
|
+
utcDayExpr = { '$dayOfMonth': { date: dateFieldExpr, timezone: 'UTC' } };
|
|
736
|
+
tzDayExpr = { '$dayOfMonth': { date: dateFieldExpr, timezone: reportBuilderTimezone } };
|
|
737
|
+
useUtcForDateOnlyExpr = {
|
|
738
|
+
$and: [
|
|
739
|
+
{ $eq: [utcHourExpr, 0] },
|
|
740
|
+
{ $eq: [utcMinuteExpr, 0] },
|
|
741
|
+
{ $eq: [utcSecondExpr, 0] },
|
|
742
|
+
{ $ne: [utcDayExpr, tzDayExpr] }
|
|
743
|
+
]
|
|
744
|
+
};
|
|
745
|
+
groupingTimezoneExpr = { $cond: [useUtcForDateOnlyExpr, 'UTC', reportBuilderTimezone] };
|
|
731
746
|
if (date_interval === 'Seconds') {
|
|
732
|
-
queryGroup_1._id['second'] = { '$second': { 'date':
|
|
733
|
-
queryGroup_1._id['minute'] = { '$minute': { 'date':
|
|
734
|
-
queryGroup_1._id['hour'] = { '$hour': { 'date':
|
|
735
|
-
queryGroup_1._id['day'] = { '$dayOfMonth': { 'date':
|
|
736
|
-
queryGroup_1._id['month'] = { '$month': { 'date':
|
|
737
|
-
queryGroup_1._id['year'] = { '$year': { 'date':
|
|
747
|
+
queryGroup_1._id['second'] = { '$second': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
748
|
+
queryGroup_1._id['minute'] = { '$minute': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
749
|
+
queryGroup_1._id['hour'] = { '$hour': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
750
|
+
queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
751
|
+
queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
752
|
+
queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
738
753
|
}
|
|
739
754
|
else if (date_interval === 'Minutes') {
|
|
740
|
-
queryGroup_1._id['minute'] = { '$minute': { 'date':
|
|
741
|
-
queryGroup_1._id['hour'] = { '$hour': { 'date':
|
|
742
|
-
queryGroup_1._id['day'] = { '$dayOfMonth': { 'date':
|
|
743
|
-
queryGroup_1._id['month'] = { '$month': { 'date':
|
|
744
|
-
queryGroup_1._id['year'] = { '$year': { 'date':
|
|
755
|
+
queryGroup_1._id['minute'] = { '$minute': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
756
|
+
queryGroup_1._id['hour'] = { '$hour': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
757
|
+
queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
758
|
+
queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
759
|
+
queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
745
760
|
}
|
|
746
761
|
else if (date_interval === 'Hours') {
|
|
747
|
-
queryGroup_1._id['hour'] = { '$hour': { 'date':
|
|
748
|
-
queryGroup_1._id['day'] = { '$dayOfMonth': { 'date':
|
|
749
|
-
queryGroup_1._id['month'] = { '$month': { 'date':
|
|
750
|
-
queryGroup_1._id['year'] = { '$year': { 'date':
|
|
762
|
+
queryGroup_1._id['hour'] = { '$hour': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
763
|
+
queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
764
|
+
queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
765
|
+
queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
751
766
|
}
|
|
752
767
|
else if (date_interval === 'Daily') {
|
|
753
|
-
queryGroup_1._id['day'] = { '$dayOfMonth': { 'date':
|
|
754
|
-
queryGroup_1._id['month'] = { '$month': { 'date':
|
|
755
|
-
queryGroup_1._id['year'] = { '$year': { 'date':
|
|
768
|
+
queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
769
|
+
queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
770
|
+
queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
756
771
|
}
|
|
757
772
|
else if (date_interval === 'Weekly') {
|
|
758
|
-
queryGroup_1._id['week'] = { '$isoWeek': { 'date':
|
|
759
|
-
queryGroup_1._id['year'] = { '$isoWeekYear': { 'date':
|
|
773
|
+
queryGroup_1._id['week'] = { '$isoWeek': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
774
|
+
queryGroup_1._id['year'] = { '$isoWeekYear': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
760
775
|
}
|
|
761
776
|
else if (date_interval === 'Monthly') {
|
|
762
|
-
queryGroup_1._id['month'] = { '$month': { 'date':
|
|
763
|
-
queryGroup_1._id['year'] = { '$year': { 'date':
|
|
777
|
+
queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
778
|
+
queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
764
779
|
}
|
|
765
780
|
else if (date_interval === 'Quarterly') {
|
|
766
|
-
queryGroup_1._id['month'] = { '$month': { 'date':
|
|
767
|
-
queryGroup_1._id['year'] = { '$year': { 'date':
|
|
781
|
+
queryGroup_1._id['month'] = { '$month': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
782
|
+
queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
768
783
|
}
|
|
769
784
|
else if (date_interval === 'Yearly') {
|
|
770
|
-
queryGroup_1._id['year'] = { '$year': { 'date':
|
|
785
|
+
queryGroup_1._id['year'] = { '$year': { 'date': dateFieldExpr, 'timezone': groupingTimezoneExpr } };
|
|
771
786
|
}
|
|
772
787
|
}
|
|
773
788
|
}
|