=== 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> columnValues = new HashMap>(); 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}",