add string aggregate transform to reporter module
authorLlewellyn Marshall <llewellyn.marshall@ncdcr.gov>
Thu, 25 May 2023 18:16:08 +0000 (14:16 -0400)
committerLlewellyn Marshall <llewellyn.marshall@ncdcr.gov>
Thu, 25 May 2023 18:16:08 +0000 (14:16 -0400)
Open-ILS/src/perlmods/lib/OpenILS/Reporter/SQLBuilder.pm
Open-ILS/web/js/dojo/openils/reports/nls/reports.js
Open-ILS/web/js/ui/default/staff/reporter/services/template.js

index f805575..a559276 100644 (file)
@@ -888,6 +888,15 @@ sub toSQL {
 
 sub is_aggregate { return 1 }
 
+#-------------------------------------------------------------------------------------------------
+package OpenILS::Reporter::SQLBuilder::Column::Transform::string_agg;
+
+sub toSQL {
+    my $self = shift;
+    return 'STRING_AGG("' . $self->{_relation} . '"."' . $self->name . '"::text,\',\')';
+}
+
+sub is_aggregate { return 1 }
 
 #-------------------------------------------------------------------------------------------------
 package OpenILS::Reporter::SQLBuilder::Column::Where;
index 17de210..efd86cb 100644 (file)
@@ -77,6 +77,7 @@
        "TFORMS_LABEL_MONTHS_AGO": "Months ago",
        "TFORMS_LABEL_QUARTERS_AGO": "Quarters ago",
        "TFORMS_LABEL_SUM": "Sum",
+       "TFORMS_LABEL_STRING_AGG": "String Aggregate",
        "TFORMS_LABEL_AVERAGE": "Average",
        "TFORMS_LABEL_ROUND": "Round",
        "TFORMS_LABEL_INT": "Drop trailing decimals",
        "TRANSFORMS_MONTHS_AGO": "Months ago",
        "TRANSFORMS_QUARTERS_AGO": "Quarters ago",
        "TRANSFORMS_SUM": "Sum",
+       "TRANSFORMS_STRING_AGG": "String Aggregate",
        "TRANSFORMS_AVERAGE": "Average",
        "TRANSFORMS_ROUND": "Round",
        "TRANSFORMS_INT": "Drop trailing decimals"
index 3908654..4c6cfa3 100644 (file)
@@ -162,7 +162,12 @@ function($uibModal , $q , egCore , egConfirmDialog , egAlertDialog) {
                 aggregate : true,
                 label : egCore.strings.TRANSFORMS_MAX
             },
-        
+            
+            string_agg : {
+                datatype : [ OILS_RPT_DTYPE_NOT_BOOL ],
+                label : egCore.strings.TRANSFORMS_STRING_AGG,
+                aggregate : true
+            },         
             /* string transforms ------------------------- */
         
             substring : {