=== modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/aggregation/action/AddAggregationQueryAction.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/aggregation/action/AddAggregationQueryAction.java 2014-04-26 11:27:06 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/aggregation/action/AddAggregationQueryAction.java 2014-07-30 11:58:29 +0000 @@ -121,6 +121,14 @@ aggregationConditionService.addCaseAggregationCondition( condition ); } + else if( aggType.equals( Lookup.PBF_AGG_TYPE_QUANTITY_VALIDATED ) ) + { + String query = "NONE"; + + CaseAggregationCondition condition = new CaseAggregationCondition( dataElement.getName(), aggType, query, dataElement, dataElementCategoryService.getDefaultDataElementCategoryOptionCombo() ); + + aggregationConditionService.addCaseAggregationCondition( condition ); + } /*if ( aggType.equals( Lookup.CCEI_AGG_TYPE_STORAGE_CAPACITY ) ) { === modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/aggregation/action/RunAggregationQueryAction.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/aggregation/action/RunAggregationQueryAction.java 2014-04-26 11:27:06 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/aggregation/action/RunAggregationQueryAction.java 2014-07-30 11:58:29 +0000 @@ -175,6 +175,7 @@ Period period = new Period(); period = PeriodType.getPeriodFromIsoString( selectedPeriodId ); + period = periodService.reloadPeriod( period ); if( period != null ) { @@ -240,6 +241,21 @@ aggregationResultMap.putAll( defaultPBFAggregationService.calculateOverallUnadjustedPBFAmount( periods, dataElement, orgUnits, dataSetId ) ); } + else if( condition.getOperator().equals( Lookup.PBF_AGG_TYPE_QUANTITY_VALIDATED ) ) + { + Set orgUnits = new HashSet(); + + orgUnits.addAll( orgUnitList ); + + List periods = new ArrayList(); + + //periods.add( getCurrentPeriod( dataSet.getPeriodType(), new Date() ) ); + + periods.add( period ); + + aggregationResultMap.putAll( defaultPBFAggregationService.calculateQuantityValidated( periods, orgUnits ) ); + + } dataElements.add( dataElement ); } === modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/Lookup.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/Lookup.java 2014-04-26 11:27:06 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/Lookup.java 2014-07-30 11:58:29 +0000 @@ -21,6 +21,7 @@ public static final String PBF_AGG_TYPE_OVERALL_QUALITY_SCORE = "OVERALL QUALITY SCORE"; public static final String PBF_AGG_TYPE_OVERALL_UNADJUSTED_PBF_AMOUNT = "OVERALL UNADJUSTED PBF AMOUNT"; + public static final String PBF_AGG_TYPE_QUANTITY_VALIDATED = "QUANTITY VALIDATED"; public static final String ORGUNITID_BY_COMMA = "ORGUNITID_BY_COMMA"; public static final String PERIODID_BY_COMMA = "PERIODID_BY_COMMA"; === modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/TariffDataValueService.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/TariffDataValueService.java 2014-05-31 13:40:53 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/TariffDataValueService.java 2014-07-30 11:58:29 +0000 @@ -3,6 +3,7 @@ import java.util.Collection; import java.util.Date; import java.util.Map; +import java.util.Set; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataset.DataSet; @@ -51,4 +52,5 @@ String getTariffDataValue( Integer orgunitgroupId, Integer organisationUnitId, Integer dataSetId, Integer dataElementId, String date ); + Set getOrgUnitGroupsByDataset( Integer dataSetId, String orgUnitIds ); } === modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/TariffDataValueStore.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/TariffDataValueStore.java 2014-05-31 13:40:53 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/TariffDataValueStore.java 2014-07-30 11:58:29 +0000 @@ -3,6 +3,7 @@ import java.util.Collection; import java.util.Date; import java.util.Map; +import java.util.Set; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataset.DataSet; @@ -50,4 +51,6 @@ String getTariffDataValue( Integer orgunitgroupId, Integer organisationUnitId, Integer dataSetId, Integer dataElementId, String date ); + Set getOrgUnitGroupsByDataset( Integer dataSetId, String orgUnitIds ); + } === modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/dataentry/LoadDataEntryFormAction.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/dataentry/LoadDataEntryFormAction.java 2014-07-28 09:27:00 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/dataentry/LoadDataEntryFormAction.java 2014-07-30 11:58:29 +0000 @@ -358,7 +358,7 @@ tariff_setting_authority = (int) tariff_authority.getValue(); } - OrganisationUnitGroup orgUnitGroup = findPBFOrgUnitGroupforTariff( organisationUnit ); + List orgUnitBranch = organisationUnitService.getOrganisationUnitBranch( organisationUnit.getId() ); String orgUnitBranchIds = "-1"; @@ -367,6 +367,7 @@ orgUnitBranchIds += "," + orgUnit.getId(); } + OrganisationUnitGroup orgUnitGroup = findPBFOrgUnitGroupforTariff( organisationUnit, dataSet.getId(), orgUnitBranchIds ); if( orgUnitGroup != null ) { tariffDataValueMap.putAll( tariffDataValueService.getTariffDataValues( orgUnitGroup, orgUnitBranchIds, dataSet, period ) ); @@ -388,7 +389,7 @@ for ( PBFDataValue pbfDataValue : pbfDataValues ) { DataElement de = pbfDataValue.getDataElement(); - if ( pbfDataValue.getTariffAmount() == null ) + if ( pbfDataValue.getTariffAmount() == null || pbfDataValue.getTariffAmount().toString().trim().equals( "" ) ) { Double tariffAmount = tariffDataValueMap.get( de.getId() ); if ( tariffAmount != null ) @@ -529,13 +530,23 @@ return SUCCESS; } - public OrganisationUnitGroup findPBFOrgUnitGroupforTariff( OrganisationUnit organisationUnit ) + public OrganisationUnitGroup findPBFOrgUnitGroupforTariff( OrganisationUnit organisationUnit, Integer dataSetId, String orgUnitIds ) { - Constant tariff_authority = constantService.getConstantByName( TARIFF_SETTING_AUTHORITY ); - - OrganisationUnitGroupSet orgUnitGroupSet = orgUnitGroupService.getOrganisationUnitGroupSet( (int) tariff_authority.getValue() ); - - OrganisationUnitGroup orgUnitGroup = organisationUnit.getGroupInGroupSet( orgUnitGroupSet ); + Set orgUnitGroupIds = tariffDataValueService.getOrgUnitGroupsByDataset( dataSetId, orgUnitIds ); + + OrganisationUnitGroup orgUnitGroup = null; + if( orgUnitGroupIds != null && orgUnitGroupIds.size() > 0 ) + { + orgUnitGroup = orgUnitGroupService.getOrganisationUnitGroup( orgUnitGroupIds.iterator().next() ); + } + else + { + Constant tariff_authority = constantService.getConstantByName( TARIFF_SETTING_AUTHORITY ); + + OrganisationUnitGroupSet orgUnitGroupSet = orgUnitGroupService.getOrganisationUnitGroupSet( (int) tariff_authority.getValue() ); + + orgUnitGroup = organisationUnit.getGroupInGroupSet( orgUnitGroupSet ); + } return orgUnitGroup; } === modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/DefaultPBFAggregationService.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/DefaultPBFAggregationService.java 2014-05-31 13:40:53 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/DefaultPBFAggregationService.java 2014-07-30 11:58:29 +0000 @@ -204,7 +204,65 @@ return aggregationResultMap; } - + + public Map calculateQuantityValidated( List periods, Set orgUnits ) + { + Map aggregationResultMap = new HashMap(); + + try + { + String query = "SELECT organisationunitid, dataelementid, periodid, qtyvalidated FROM pbfdatavalue " + + " WHERE " + + " periodid IN ( "+ Lookup.PERIODID_BY_COMMA +" ) AND "+ + " organisationunitid IN ( " + Lookup.ORGUNITID_BY_COMMA + " ) "; + + //System.out.println( "Query Before Replace : --" + orgUnits.size() + " -- "+ query ); + + if( periods != null && periods.size() > 0 ) + { + Collection periodIds = new ArrayList( getIdentifiers( Period.class, periods ) ); + String periodsByComma = getCommaDelimitedString( periodIds ); + query = query.replace( Lookup.PERIODID_BY_COMMA, periodsByComma ); + } + else + { + query = query.replace( Lookup.PERIODID_BY_COMMA, "-1" ); + } + + if( orgUnits != null && orgUnits.size() > 0 ) + { + Collection orgUnitIds = new ArrayList( getIdentifiers( OrganisationUnit.class, orgUnits ) ); + String orgUnitIdsByComma = getCommaDelimitedString( orgUnitIds ); + query = query.replace( Lookup.ORGUNITID_BY_COMMA, orgUnitIdsByComma ); + } + else + { + query = query.replace( Lookup.ORGUNITID_BY_COMMA, "-1" ); + } + + //System.out.println( "Query After Replace : --" + query ); + + SqlRowSet rs = jdbcTemplate.queryForRowSet( query ); + while ( rs.next() ) + { + Integer orgUnitId = rs.getInt( 1 ); + Integer dataElementId = rs.getInt( 2 ); + Integer periodId = rs.getInt( 3 ); + Double qtyValidated = rs.getDouble( 4 ); + if( qtyValidated != null ) + { + aggregationResultMap.put( orgUnitId+":"+dataElementId+":"+periodId, qtyValidated ); + } + } + } + catch( Exception e ) + { + System.out.println("Exception :"+ e.getMessage() ); + } + + return aggregationResultMap; + } + public Double calculateOverallUnadjustedPBFAmount( Period period, OrganisationUnit orgUnit, DataSet dataSet ) { Double overAllAdjustedAmt = null; === modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/DefaultTariffDataValueService.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/DefaultTariffDataValueService.java 2014-05-31 13:40:53 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/DefaultTariffDataValueService.java 2014-07-30 11:58:29 +0000 @@ -3,6 +3,7 @@ import java.util.Collection; import java.util.Date; import java.util.Map; +import java.util.Set; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataset.DataSet; @@ -131,4 +132,9 @@ { return tariffDataValueStore.getTariffDataValue( orgunitgroupId, organisationUnitId, dataSetId, dataElementId, date ); } + + public Set getOrgUnitGroupsByDataset( Integer dataSetId, String orgUnitIds ) + { + return tariffDataValueStore.getOrgUnitGroupsByDataset( dataSetId, orgUnitIds ); + } } === modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/HibernateTariffDataValueStore.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/HibernateTariffDataValueStore.java 2014-05-31 13:40:53 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/HibernateTariffDataValueStore.java 2014-07-30 11:58:29 +0000 @@ -4,7 +4,9 @@ import java.util.Collection; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import org.hibernate.Criteria; import org.hibernate.Session; @@ -296,16 +298,17 @@ " where '" + curPeriod + "' between date(td.startdate) and date(td.enddate) " + " and orgunitgroupid in ( " + orgUnitGroup.getId() + ") " + " and datasetid in ( " +dataSet.getId() + ") "+ + " and organisationunitid in ("+ orgUnitBranchIds +") "+ " )asd "+ " group by asd.dataelementid,asd.orgunitgroupid,datasetid " + " )sag1 " + " inner join tariffdatavalue td on td.dataelementid=sag1.dataelementid " + " where td.orgunitgroupid=sag1.orgunitgroupid " + " and td.datasetid=sag1.datasetid " + - " and sag1.level=td.orgunitlevelid " + - " and td.organisationunitid in ("+ orgUnitBranchIds +") "; + " and sag1.level=td.orgunitlevelid "; + //" and td.organisationunitid in ("+ orgUnitBranchIds +") "; - //System.out.println("Query: " + query ); + System.out.println("Query: " + query ); SqlRowSet rs = jdbcTemplate.queryForRowSet( query ); while ( rs.next() ) { @@ -323,6 +326,33 @@ return tariffDataValueMap; } + public Set getOrgUnitGroupsByDataset( Integer dataSetId, String orgUnitIds ) + { + Set orgUnitGroupIds = new HashSet(); + + try + { + String query = "select orgunitgroupid from tariffdatavalue " + + " WHERE " + + " datasetid = " + dataSetId + " AND " + + " organisationunitid IN (" + orgUnitIds + ")"; + + System.out.println( query ); + + SqlRowSet rs = jdbcTemplate.queryForRowSet( query ); + + while( rs.next() ) + { + orgUnitGroupIds.add( rs.getInt( 1 ) ); + } + } + catch( Exception e ) + { + System.out.println("In getOrgUnitGroupsByDataset Exception :"+ e.getMessage() ); + } + + return orgUnitGroupIds; + } public String getTariffDataValue( Integer orgunitgroupId, Integer dataSetId, Integer dataElementId, String date ) { String value = null; === modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/HibernateUtilizationRateStore.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/HibernateUtilizationRateStore.java 2014-07-28 09:27:00 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/HibernateUtilizationRateStore.java 2014-07-30 11:58:29 +0000 @@ -141,6 +141,11 @@ Double tariff = rs.getDouble( 4 ); String value = startRange + ":" + endRange + ":" + tariff; + String tempVal = utilizationRatesMap.get( dataElementId ); + if( tempVal != null ) + { + value = tempVal +"#" + value; + } utilizationRatesMap.put( dataElementId, value ); //System.out.println( dataElementId + " : " + value ); } === modified file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/quality/dataentry/GetOrganisationUnitForMaxAction.java' --- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/quality/dataentry/GetOrganisationUnitForMaxAction.java 2014-07-17 13:15:11 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/quality/dataentry/GetOrganisationUnitForMaxAction.java 2014-07-30 11:58:29 +0000 @@ -92,8 +92,7 @@ { OrganisationUnit organisationUnit = organisationUnitService.getOrganisationUnit( orgUnitId ); - OrganisationUnitGroup orgUnitGroup = orgUnitGroupService.getOrganisationUnitGroup( Integer - .parseInt( orgUnitGroupId ) ); + OrganisationUnitGroup orgUnitGroup = orgUnitGroupService.getOrganisationUnitGroup( Integer.parseInt( orgUnitGroupId ) ); List lookups = new ArrayList( lookupService.getAllLookupsByType( Lookup.DS_QUALITY_TYPE ) ); === modified file 'local/in/dhis-web-maintenance-rbf/src/main/webapp/dhis-web-maintenance-rbf/loadDataEntryForm.vm' --- local/in/dhis-web-maintenance-rbf/src/main/webapp/dhis-web-maintenance-rbf/loadDataEntryForm.vm 2014-07-28 09:27:00 +0000 +++ local/in/dhis-web-maintenance-rbf/src/main/webapp/dhis-web-maintenance-rbf/loadDataEntryForm.vm 2014-07-30 11:58:29 +0000 @@ -40,6 +40,11 @@ #end + @@ -246,10 +251,7 @@ } calVal(); - - $('input').on('keyup', function() { - calVal(); - }); + #end @@ -335,12 +337,18 @@ $('#total_'+dataElementId).val(total); - allTotal = allTotal + total; - - $('#all-total').val(allTotal); - - saveTotalValueInDataValue(); - + var tempPBFDataElements = document.getElementById("pbfDataElementLB"); + var allTotal1 = 0.0; + for ( i=0; i < tempPBFDataElements.length; i++ ) + { + var tempDataElementId = tempPBFDataElements.options[i].value; + var tempTotal = parseFloat($('#total_'+tempDataElementId).val()); + allTotal1 = allTotal1 + tempTotal; + } + + $('#all-total').val(allTotal1); + + saveTotalValueInDataValue(); }