← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 10017: Don't run report with aggregate type sum and average in Aggregate Tabular report.

 

------------------------------------------------------------
revno: 10017
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2013-03-07 11:29:17 +0700
message:
  Don't run report with aggregate type sum and average in Aggregate Tabular report.
modified:
  dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java	2013-03-05 07:29:03 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java	2013-03-07 04:29:17 +0000
@@ -932,8 +932,9 @@
                 {
                     sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
                         + statementBuilder.getDoubleColumnType() + " ))";
-                    sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
-                        + deSum + " ) ";
+                    sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+                        + "          programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+                        + " ) ";
                 }
                 sql += "FROM programstageinstance psi_1 ";
                 sql += "        JOIN patientdatavalue pdv_1 ";
@@ -970,7 +971,7 @@
         {
             sql += "LIMIT " + limit;
         }
-
+        System.out.println( "\n\n === \n " + sql );
         return sql;
     }
 
@@ -1014,8 +1015,9 @@
                 {
                     sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
                         + statementBuilder.getDoubleColumnType() + " ))";
-                    sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
-                        + deSum + " ) ";
+                    sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+                        + "          programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+                        + " ) ";
                 }
                 sql += "FROM ";
                 sql += "   patientdatavalue pdv_1 JOIN programstageinstance psi_1 ";
@@ -1090,8 +1092,9 @@
                 {
                     sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
                         + statementBuilder.getDoubleColumnType() + " ))";
-                    sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
-                        + deSum + " ) ";
+                    sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+                        + "          programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+                        + " ) ";
                 }
                 sql += "FROM ";
                 sql += "   patientdatavalue pdv_1 JOIN programstageinstance psi_1 ";
@@ -1153,7 +1156,8 @@
             {
                 sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
                     + statementBuilder.getDoubleColumnType() + " ))";
-                sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid=" + deSum
+                sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+                    + "          programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
                     + " ) ";
             }
             sql += "FROM ";
@@ -1257,7 +1261,8 @@
                     {
                         sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
                             + statementBuilder.getDoubleColumnType() + " ))";
-                        sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
+                        sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+                            + "          programstageinstanceid=psi_1.programstageinstanceid and dataelementid="
                             + deSum + " ) ";
                     }
                     sql += "FROM programstageinstance psi_1 JOIN patientdatavalue pdv_1 ";
@@ -1337,7 +1342,8 @@
             {
                 sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
                     + statementBuilder.getDoubleColumnType() + " ))";
-                sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid=" + deSum
+                sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+                    + "          programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
                     + " ) ";
             }
             sql += "FROM programstageinstance psi_1 JOIN patientdatavalue pdv_1 ";
@@ -1399,8 +1405,9 @@
                 {
                     sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
                         + statementBuilder.getDoubleColumnType() + " ))";
-                    sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
-                        + deSum + " ) ";
+                    sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+                        + "          programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+                        + " ) ";
                 }
                 sql += "FROM patientdatavalue pdv_1 ";
                 sql += "        inner join programstageinstance psi_1 ";
@@ -1462,7 +1469,8 @@
             {
                 sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
                     + statementBuilder.getDoubleColumnType() + " ))";
-                sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid=" + deSum
+                sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+                    + "          programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
                     + " ) ";
             }
 
@@ -1611,8 +1619,8 @@
                 {
                     sql += "( SELECT " + aggregateType + "( cast( value as " + statementBuilder.getDoubleColumnType()
                         + " ))";
-                    sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
-                        + deSum + " ";
+                    sql += "    FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+                        + "          programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum + " ";
                 }
 
                 sql += "FROM programstageinstance psi_1 JOIN patientdatavalue pdv_1 ";
@@ -1798,21 +1806,28 @@
         {
             grid.addRow();
 
-            int total = 0;
+            double total = 0;
             for ( int i = 1; i <= cols; i++ )
             {
-                // values
+                // meta column
                 if ( rs.getMetaData().getColumnType( i ) == Types.VARCHAR )
                 {
                     grid.addValue( rs.getObject( i ) );
                 }
-                // meta column
-                else
+                // values
+                else if ( rs.getMetaData().getColumnType( i ) == Types.INTEGER )
                 {
                     Integer value = rs.getInt( i );
                     sumRow[i] += value;
                     grid.addValue( value );
-                    total += rs.getInt( i );
+                    total += value;
+                }
+                else
+                {
+                    double value = rs.getDouble( i );
+                    sumRow[i] += value;
+                    grid.addValue( value );
+                    total += value;
                 }
             }
 
@@ -1847,7 +1862,7 @@
         {
             int cols = rowSet.getMetaData().getColumnCount();
             int rows = 0;
-            int total = 0;
+            double total = 0;
             Map<Integer, List<Object>> columnValues = new HashMap<Integer, List<Object>>();
             int index = 2;
 
@@ -1868,8 +1883,17 @@
                     // Total value of the column
                     if ( rowSet.getMetaData().getColumnType( i ) != Types.VARCHAR )
                     {
-                        total += rowSet.getInt( i );
+                        // values
+                        if ( rowSet.getMetaData().getColumnType( i ) == Types.INTEGER )
+                        {
+                            total += rowSet.getInt( i );
+                        }
+                        else
+                        {
+                            total += rowSet.getDouble( i );
+                        }
                     }
+
                 }
 
                 // Add total value of the column
@@ -1921,7 +1945,7 @@
                     {
                         if ( rowSet.getMetaData().getColumnType( j + 2 ) != Types.VARCHAR )
                         {
-                            total += (Long) columnValues.get( i ).get( j );
+                            total += (Double) columnValues.get( i ).get( j );
                         }
                     }
                     column.add( total );

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js	2013-03-06 15:47:16 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js	2013-03-07 04:29:17 +0000
@@ -1203,6 +1203,7 @@
 								Ext.getCmp('programCombobox').setValue( f.programId );
 								
 								// Program-Stage
+								
 								TR.store.programStage.removeAll();
 								TR.store.programStage.add({'id': f.programStageId, 'name': f.programStageName});
 								
@@ -1298,18 +1299,38 @@
 									}
 								}
 								
+								TR.util.positionFilter.convert( f.position );
+								
 								Ext.getCmp('completedEventsOpt').setValue(f.useCompletedEvents);
 								Ext.getCmp('facilityLBCombobox').setValue( f.facilityLB );
 								Ext.getCmp('limitOption').setValue( f.limitRecords );
-								TR.util.positionFilter.convert( f.position );
+								Ext.getCmp('levelCombobox').setValue( f.level );
+								Ext.getCmp('aggregateType').setValue( f.aggregateType );
+								
+								if(f.aggregateType=='sum' ){
+									Ext.getCmp('aggregateType').items.items[1].setValue(true);
+								}else if(f.aggregateType=='avg' ){
+									Ext.getCmp('aggregateType').items.items[2].setValue(true);
+								}
+								else{
+									Ext.getCmp('aggregateType').items.items[0].setValue(true);
+								}
+								
+								if( TR.store.dataelement.available.data.items.length == 0 )
+								{
+									TR.store.dataelement.available.add(
+										{'value': f.deGroupBy,'name': f.deGroupByName}
+									);
+								}
 								Ext.getCmp('dataElementGroupByCbx').setValue( f.deGroupBy );
-								Ext.getCmp('deSumCbx').setValue( f.deSum );
-								Ext.getCmp('aggregateType').setValue( f.aggregateType );
-								Ext.getCmp('levelCombobox').setValue( f.level );
-													
-								TR.store.aggregateDataelement.add(
-									{'value': f.deSumId,'name': f.deSumName}
-								);				
+
+								if( TR.store.aggregateDataelement.data.items.length == 0 )
+								{
+									TR.store.aggregateDataelement.add(
+										{'id': f.deSumId,'name': f.deSumName}
+									);
+								}
+								Ext.getCmp('deSumCbx').setValue( f.deSumId );
 
 								// Program stage									
 								var storeProgramStage = TR.store.programStage;
@@ -2293,7 +2314,7 @@
 						{
 							var id = deId + '_' + idx;
 							var filterValue = Ext.getCmp('filter_' + id).getValue();
-							if( filterValue == null || filterValue == '' ){
+							if( filterValue == null || ( filterValue == '' && filterValue != 0 )){
 								isValid = false;
 							}
 						}

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm	2013-02-12 15:57:46 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm	2013-03-07 04:29:17 +0000
@@ -90,6 +90,7 @@
 	"limitRecords": "$!aggregateReport.limitRecords",
 	"position": "${aggregateReport.position}",
 	"deGroupBy": #if($!aggregateReport.deGroupBy) "de_$!aggregateReport.deGroupBy.id" #else "" #end,
+	"deGroupByName": #if($!aggregateReport.deGroupBy) "de_$!aggregateReport.deGroupBy.displayName" #else "" #end,
 	"deSumId": #if($!aggregateReport.deSum) "de_$!aggregateReport.deSum.id" #else "" #end,
 	"deSumName": #if($!aggregateReport.deSum) "$!encoder.jsonEncode( ${aggregateReport.deSum.displayName})" #else "" #end,
 	"aggregateType": "${aggregateReport.aggregateType}",