=== modified file 'local/in/dhis-web-coldchain/src/main/java/org/hisp/dhis/coldchain/equipment/action/AddEquipmentAction.java' --- local/in/dhis-web-coldchain/src/main/java/org/hisp/dhis/coldchain/equipment/action/AddEquipmentAction.java 2013-10-18 05:57:53 +0000 +++ local/in/dhis-web-coldchain/src/main/java/org/hisp/dhis/coldchain/equipment/action/AddEquipmentAction.java 2014-03-14 11:22:16 +0000 @@ -18,6 +18,7 @@ import org.hisp.dhis.coldchain.equipment.EquipmentType_Attribute; import org.hisp.dhis.coldchain.model.Model; import org.hisp.dhis.coldchain.model.ModelService; +import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.option.OptionSet; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; @@ -42,6 +43,13 @@ private ModelService modelService; + private I18nFormat format; + + public void setFormat( I18nFormat format ) + { + this.format = format; + } + // ------------------------------------------------------------------------- // Input/ Output // ------------------------------------------------------------------------- @@ -78,6 +86,14 @@ { this.organisationUnit = organisationUnit; } + + private String registrationDate; + + public void setRegistrationDate( String registrationDate ) + { + this.registrationDate = registrationDate; + } + // ------------------------------------------------------------------------- // Action implementation @@ -106,6 +122,8 @@ equipment.setEquipmentType( equipmentType ); equipment.setOrganisationUnit( orgUnit ); + equipment.setRegistrationDate( format.parseDate( registrationDate ) ); + //equipment.setWorking( workingStatus ); if( selModel != null ) === modified file 'local/in/dhis-web-coldchain/src/main/resources/org/hisp/dhis/coldchain/i18n_module.properties' --- local/in/dhis-web-coldchain/src/main/resources/org/hisp/dhis/coldchain/i18n_module.properties 2013-12-30 05:54:06 +0000 +++ local/in/dhis-web-coldchain/src/main/resources/org/hisp/dhis/coldchain/i18n_module.properties 2014-03-14 11:22:16 +0000 @@ -182,4 +182,6 @@ code_in_use=The code is already in use. Please choose a different code. type = Type code = Code -ownership = Ownership \ No newline at end of file +ownership = Ownership + +registration_date = Registration date \ No newline at end of file === modified file 'local/in/dhis-web-coldchain/src/main/webapp/dhis-web-coldchain/addEquipmentForm.vm' --- local/in/dhis-web-coldchain/src/main/webapp/dhis-web-coldchain/addEquipmentForm.vm 2013-10-18 05:57:53 +0000 +++ local/in/dhis-web-coldchain/src/main/webapp/dhis-web-coldchain/addEquipmentForm.vm 2014-03-14 11:22:16 +0000 @@ -63,6 +63,19 @@ #end + + $i18n.getString( "registration_date" )* + + + + + + + + +    === modified file 'local/in/dhis-web-coldchain/src/main/webapp/dhis-web-coldchain/showEquipmentDetails.vm' --- local/in/dhis-web-coldchain/src/main/webapp/dhis-web-coldchain/showEquipmentDetails.vm 2013-12-30 05:54:06 +0000 +++ local/in/dhis-web-coldchain/src/main/webapp/dhis-web-coldchain/showEquipmentDetails.vm 2014-03-14 11:22:16 +0000 @@ -11,6 +11,13 @@ #set( $mark = false ) + + + + $format.formatDate( $!equipment.getRegistrationDate() ) + + + #set( $mark = true ) #foreach( $attribute in $equipmentTypeAttributes ) #set( $attributeValue = "" ) #set( $attributeValue = $!equipmentValueMap.get( $attribute.id ) ) === modified file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/action/AddBankDataAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/action/AddBankDataAction.java 2013-12-24 12:23:11 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/action/AddBankDataAction.java 2014-03-14 11:22:16 +0000 @@ -18,24 +18,25 @@ private BankDetailsService bankDetailsService; - public void setBankDetailsService(BankDetailsService bankDetailsService) { - this.bankDetailsService = bankDetailsService; - } - + public void setBankDetailsService( BankDetailsService bankDetailsService ) + { + this.bankDetailsService = bankDetailsService; + } + private OrganisationUnitService organisationUnitService; public void setOrganisationUnitService( OrganisationUnitService organisationUnitService ) { this.organisationUnitService = organisationUnitService; } - + private DataSetService dataSetService; - + public void setDataSetService( DataSetService dataSetService ) { this.dataSetService = dataSetService; } - + // ------------------------------------------------------------------------- // Input // ------------------------------------------------------------------------- @@ -48,66 +49,72 @@ } private String dataSetId; - - public void setDataSetId(String dataSetId) { - this.dataSetId = dataSetId; - } - + + public void setDataSetId( String dataSetId ) + { + this.dataSetId = dataSetId; + + } + private String accountNumber; - - public void setAccountNumber(String accountNumber) { - this.accountNumber = accountNumber; - } - + + public void setAccountNumber( String accountNumber ) + { + this.accountNumber = accountNumber; + } + private String accountName; - - public void setAccountName(String accountName) { - this.accountName = accountName; - } - + + public void setAccountName( String accountName ) + { + this.accountName = accountName; + } + private String bank; - public void setBank(String bank) { - this.bank = bank; - } - - private String branchName; - - public void setBranchName(String branchName) { - this.branchName = branchName; - } - + public void setBank( String bank ) + { + this.bank = bank; + } + + private String branchName; + + public void setBranchName( String branchName ) + { + this.branchName = branchName; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- - public String execute() + public String execute() throws Exception - { + { OrganisationUnit organisationUnit = organisationUnitService.getOrganisationUnit( orgUnitUid ); - - DataSet dataSet = dataSetService.getDataSet(Integer.parseInt(dataSetId)); - - BankDetails bankDetails = bankDetailsService.getBankDetails(organisationUnit, dataSet); - + + DataSet dataSet = dataSetService.getDataSet( Integer.parseInt( dataSetId ) ); + + BankDetails bankDetails = bankDetailsService.getBankDetails( organisationUnit, dataSet ); + if ( bankDetails == null ) { - bankDetails = new BankDetails(); - bankDetails.setDataSet(dataSet); - bankDetails.setOrganisationUnit(organisationUnit); - bankDetails.setAccountName(accountName); - bankDetails.setAccountNumber(accountNumber); - bankDetails.setBank(bank); - bankDetails.setBranchName(branchName); - bankDetailsService.addBankDetails(bankDetails); + bankDetails = new BankDetails(); + bankDetails.setDataSet( dataSet ); + bankDetails.setOrganisationUnit( organisationUnit ); + bankDetails.setAccountName( accountName ); + bankDetails.setAccountNumber( accountNumber ); + bankDetails.setBank( bank ); + bankDetails.setBranchName( branchName ); + bankDetailsService.addBankDetails( bankDetails ); } else { - bankDetails.setAccountName(accountName); - bankDetails.setAccountNumber(accountNumber); - bankDetails.setBank(bank); - bankDetails.setBranchName(branchName); - bankDetailsService.updateBankDetails(bankDetails); + bankDetails.setAccountName( accountName ); + bankDetails.setAccountNumber( accountNumber ); + bankDetails.setBank( bank ); + bankDetails.setBranchName( branchName ); + bankDetailsService.updateBankDetails( bankDetails ); } return SUCCESS; === modified file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/AddAggregationQueryAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/AddAggregationQueryAction.java 2014-02-05 10:49:02 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/AddAggregationQueryAction.java 2014-03-14 11:22:16 +0000 @@ -5,10 +5,7 @@ import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementCategoryService; import org.hisp.dhis.dataelement.DataElementService; -import org.hisp.dhis.dataset.DataSet; -import org.hisp.dhis.dataset.DataSetService; import org.hisp.dhis.pbf.api.Lookup; -import org.hisp.dhis.pbf.api.LookupService; import com.opensymphony.xwork2.Action; @@ -32,14 +29,15 @@ { this.dataElementService = dataElementService; } - + /* private LookupService lookupService; public void setLookupService( LookupService lookupService ) { this.lookupService = lookupService; } - + */ + /* private CCEIAggregationService cceiAggregationService; public void setCceiAggregationService( CCEIAggregationService cceiAggregationService ) @@ -53,42 +51,43 @@ { this.dataElementCategoryService = dataElementCategoryService; } - + + /* private DataSetService dataSetService; public void setDataSetService( DataSetService dataSetService ) { this.dataSetService = dataSetService; } + */ // ------------------------------------------------------------------------- // Input/ Output // ------------------------------------------------------------------------- - +/* private String name; - private String aggType; - - private Integer dataElementId; - - - private Integer pbfDataSetId; - public void setName( String name ) { this.name = name; } - +*/ + private String aggType; + public void setAggType( String aggType ) { this.aggType = aggType; } + private Integer dataElementId; + public void setDataElementId( Integer dataElementId ) { this.dataElementId = dataElementId; } - + + private Integer pbfDataSetId; + public void setPbfDataSetId( Integer pbfDataSetId ) { this.pbfDataSetId = pbfDataSetId; @@ -113,6 +112,7 @@ /** * TODO support for category option combo */ + if( aggType.equals( Lookup.PBF_AGG_TYPE_OVERALL_QUALITY_SCORE ) || aggType.equals( Lookup.PBF_AGG_TYPE_OVERALL_UNADJUSTED_PBF_AMOUNT ) ) { String query = ""+pbfDataSetId; === modified file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/AddAggregationQueryFormAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/AddAggregationQueryFormAction.java 2014-02-05 10:49:02 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/AddAggregationQueryFormAction.java 2014-03-14 11:22:16 +0000 @@ -1,11 +1,8 @@ package org.hisp.dhis.pbf.aggregation.action; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; -import java.util.Set; -import org.hisp.dhis.attribute.AttributeValue; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.pbf.api.Lookup; === added file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/GetAggregationQueryAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/GetAggregationQueryAction.java 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/GetAggregationQueryAction.java 2014-03-14 11:22:16 +0000 @@ -0,0 +1,64 @@ +package org.hisp.dhis.pbf.aggregation.action; + +import org.hisp.dhis.caseaggregation.CaseAggregationCondition; +import org.hisp.dhis.caseaggregation.CaseAggregationConditionService; + +import com.opensymphony.xwork2.Action; + +/** + * @author Mithilesh Kumar Thakur + */ +public class GetAggregationQueryAction implements Action +{ + // ------------------------------------------------------------------------- + // Dependency + // ------------------------------------------------------------------------- + + private CaseAggregationConditionService aggregationConditionService; + + public void setAggregationConditionService( CaseAggregationConditionService aggregationConditionService ) + { + this.aggregationConditionService = aggregationConditionService; + } + + // ------------------------------------------------------------------------- + // Input && Output Getters && Setters + // ------------------------------------------------------------------------- + + private Integer id; + + public void setId( Integer id ) + { + this.id = id; + } + + private CaseAggregationCondition caseAggregation; + + public String getDescription() + { + return description; + } + + private String description; + + public CaseAggregationCondition getCaseAggregation() + { + return caseAggregation; + } + + + // ------------------------------------------------------------------------- + // Action implementation + // ------------------------------------------------------------------------- + + public String execute() throws Exception + { + caseAggregation = aggregationConditionService.getCaseAggregationCondition( id ); + + description = aggregationConditionService.getConditionDescription( caseAggregation.getAggregationExpression() ); + + return SUCCESS; + } +} + + === added file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/RemoveAggregationQueryAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/RemoveAggregationQueryAction.java 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/RemoveAggregationQueryAction.java 2014-03-14 11:22:16 +0000 @@ -0,0 +1,51 @@ +package org.hisp.dhis.pbf.aggregation.action; + +import org.hisp.dhis.caseaggregation.CaseAggregationCondition; +import org.hisp.dhis.caseaggregation.CaseAggregationConditionService; + +import com.opensymphony.xwork2.Action; + +/** + * @author Mithilesh Kumar Thakur + */ +public class RemoveAggregationQueryAction implements Action +{ + // ------------------------------------------------------------------------- + // Dependency + // ------------------------------------------------------------------------- + + private CaseAggregationConditionService aggregationConditionService; + + public void setAggregationConditionService( CaseAggregationConditionService aggregationConditionService ) + { + this.aggregationConditionService = aggregationConditionService; + } + + // ------------------------------------------------------------------------- + // Input + // ------------------------------------------------------------------------- + + private int id; + + // ------------------------------------------------------------------------- + // Getters && Setters + // ------------------------------------------------------------------------- + + public void setId( int id ) + { + this.id = id; + } + + // ------------------------------------------------------------------------- + // Action implementation + // ------------------------------------------------------------------------- + + public String execute() throws Exception + { + CaseAggregationCondition condition = aggregationConditionService.getCaseAggregationCondition( id ); + + aggregationConditionService.deleteCaseAggregationCondition( condition ); + + return SUCCESS; + } +} === modified file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/RunAggregationQueryAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/RunAggregationQueryAction.java 2014-02-05 10:49:02 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/RunAggregationQueryAction.java 2014-03-14 11:22:16 +0000 @@ -18,17 +18,13 @@ import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.dataset.DataSetService; import org.hisp.dhis.organisationunit.OrganisationUnit; -import org.hisp.dhis.organisationunit.OrganisationUnitGroup; -import org.hisp.dhis.organisationunit.OrganisationUnitGroupService; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.oust.manager.SelectionTreeManager; import org.hisp.dhis.pbf.api.Lookup; import org.hisp.dhis.pbf.impl.DefaultPBFAggregationService; -import org.hisp.dhis.period.MonthlyPeriodType; import org.hisp.dhis.period.Period; import org.hisp.dhis.period.PeriodService; import org.hisp.dhis.period.PeriodType; -import org.hisp.dhis.period.YearlyPeriodType; import com.opensymphony.xwork2.Action; @@ -52,14 +48,14 @@ { this.organisationUnitService = organisationUnitService; } - + /* private OrganisationUnitGroupService organisationUnitGroupService; public void setOrganisationUnitGroupService( OrganisationUnitGroupService organisationUnitGroupService ) { this.organisationUnitGroupService = organisationUnitGroupService; } - + */ private CaseAggregationConditionService aggregationConditionService; public void setAggregationConditionService( CaseAggregationConditionService aggregationConditionService ) @@ -118,7 +114,16 @@ { return importStatus; } - + + private String selectedPeriodId; + + public void setSelectedPeriodId( String selectedPeriodId ) + { + this.selectedPeriodId = selectedPeriodId; + } + + private Date aggregationPeriod; + // ------------------------------------------------------------------------- // Action // ------------------------------------------------------------------------- @@ -128,8 +133,17 @@ { Map aggregationResultMap = new HashMap(); - Set orgUnitList = new HashSet( selectionTreeManager.getReloadedSelectedOrganisationUnits() ); + //Set orgUnitList = new HashSet( selectionTreeManager.getReloadedSelectedOrganisationUnits() ); + Set tempOrgUnitList = new HashSet( selectionTreeManager.getReloadedSelectedOrganisationUnits() ); + + Set orgUnitList = new HashSet(); + + for ( OrganisationUnit org : tempOrgUnitList ) + { + orgUnitList.addAll( organisationUnitService.getOrganisationUnitWithChildren( org.getId() ) ) ; + } + //Set orgUnitGroups = new HashSet( organisationUnitGroupService.getAllOrganisationUnitGroups() ); /*List ouGroups = new ArrayList( organisationUnitGroupService.getOrganisationUnitGroupByName( EquipmentAttributeValue.HEALTHFACILITY ) ); @@ -151,6 +165,22 @@ periods.add( period ); */ + Period period = new Period(); + + period = PeriodType.getPeriodFromIsoString( selectedPeriodId ); + + if( period != null ) + { + aggregationPeriod = period.getStartDate(); + } + + else + { + aggregationPeriod = new Date(); + } + + //System.out.println( " Aggregation Period -- " + aggregationPeriod ); + Constant tariff_authority = constantService.getConstantByName( "TARIFF_SETTING_AUTHORITY" ); int tariff_setting_authority = 0; if ( tariff_authority == null ) @@ -179,7 +209,9 @@ List periods = new ArrayList(); - periods.add( getCurrentPeriod( dataSet.getPeriodType(), new Date() ) ); + //periods.add( getCurrentPeriod( dataSet.getPeriodType(), new Date() ) ); + + periods.add( getCurrentPeriod( dataSet.getPeriodType(), aggregationPeriod ) ); aggregationResultMap.putAll( defaultPBFAggregationService.calculateOverallQualityScore( periods, dataElement, orgUnits, dataSetId, tariff_setting_authority ) ); } @@ -195,7 +227,9 @@ List periods = new ArrayList(); - periods.add( getCurrentPeriod( dataSet.getPeriodType(), new Date() ) ); + //periods.add( getCurrentPeriod( dataSet.getPeriodType(), new Date() ) ); + + periods.add( getCurrentPeriod( dataSet.getPeriodType(), aggregationPeriod ) ); aggregationResultMap.putAll( defaultPBFAggregationService.calculateOverallUnadjustedPBFAmount( periods, dataElement, orgUnits, dataSetId ) ); } @@ -253,6 +287,8 @@ } period = periodService.reloadPeriod( period ); + + //System.out.println( periodType.getName() + " -- " + period.getStartDateString() ); return period; } === added file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/RunAggregationQueryFormAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/RunAggregationQueryFormAction.java 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/RunAggregationQueryFormAction.java 2014-03-14 11:22:16 +0000 @@ -0,0 +1,71 @@ +package org.hisp.dhis.pbf.aggregation.action; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import org.hisp.dhis.i18n.I18nFormat; +import org.hisp.dhis.period.CalendarPeriodType; +import org.hisp.dhis.period.MonthlyPeriodType; +import org.hisp.dhis.period.Period; +import org.hisp.dhis.period.PeriodType; +import org.hisp.dhis.system.filter.PastAndCurrentPeriodFilter; +import org.hisp.dhis.system.util.FilterUtils; + +import com.opensymphony.xwork2.Action; + +public class RunAggregationQueryFormAction implements Action +{ + // ------------------------------------------------------------------------- + // Dependencies + // ------------------------------------------------------------------------- + + // ------------------------------------------------------------------------- + // Input & Output + // ------------------------------------------------------------------------- + + private List periods = new ArrayList(); + + public Collection getPeriods() + { + return periods; + } + + private I18nFormat format; + + public void setFormat( I18nFormat format ) + { + this.format = format; + } + + // ------------------------------------------------------------------------- + // Action + // ------------------------------------------------------------------------- + + public String execute() throws Exception + { + String periodTypeName = MonthlyPeriodType.NAME; + + CalendarPeriodType _periodType = (CalendarPeriodType) CalendarPeriodType.getPeriodTypeByName( periodTypeName ); + + Calendar cal = PeriodType.createCalendarInstance(); + + periods = _periodType.generatePeriods( cal.getTime() ); + + //periods = new ArrayList( periodService.getPeriodsByPeriodType( periodType ) ); + + FilterUtils.filter( periods, new PastAndCurrentPeriodFilter() ); + + Collections.reverse( periods ); + //Collections.sort( periods ); + for ( Period period : periods ) + { + period.setName( format.formatPeriod( period ) ); + } + + return SUCCESS; + } + +} === added file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/ShowUpdateAggregationQueryFormAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/ShowUpdateAggregationQueryFormAction.java 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/ShowUpdateAggregationQueryFormAction.java 2014-03-14 11:22:16 +0000 @@ -0,0 +1,105 @@ +package org.hisp.dhis.pbf.aggregation.action; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.hisp.dhis.caseaggregation.CaseAggregationCondition; +import org.hisp.dhis.caseaggregation.CaseAggregationConditionService; +import org.hisp.dhis.common.comparator.IdentifiableObjectNameComparator; +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataelement.DataElementService; +import org.hisp.dhis.pbf.api.Lookup; +import org.hisp.dhis.pbf.api.LookupService; + +import com.opensymphony.xwork2.Action; + +/** + * @author Mithilesh Kumar Thakur + */ +public class ShowUpdateAggregationQueryFormAction implements Action +{ + // ------------------------------------------------------------------------- + // Dependencies + // ------------------------------------------------------------------------- + + private CaseAggregationConditionService aggregationConditionService; + + public void setAggregationConditionService( CaseAggregationConditionService aggregationConditionService ) + { + this.aggregationConditionService = aggregationConditionService; + } + + private LookupService lookupService; + + public void setLookupService(LookupService lookupService) + { + this.lookupService = lookupService; + } + + private DataElementService dataElementService; + + public void setDataElementService(DataElementService dataElementService) + { + this.dataElementService = dataElementService; + } + + // ------------------------------------------------------------------------- + // Input/Output Getters && Setters + // ------------------------------------------------------------------------- + + private Integer id; + + public void setId( Integer id ) + { + this.id = id; + } + + private CaseAggregationCondition aggregation; + + + public CaseAggregationCondition getAggregation() + { + return aggregation; + } + + private String description; + + public String getDescription() + { + return description; + } + + private List lookups; + + public List getLookups() + { + return lookups; + } + + private List dataElementList; + + public List getDataElementList() + { + return dataElementList; + } + + // ------------------------------------------------------------------------- + // Action implementation + // ------------------------------------------------------------------------- + + public String execute() throws Exception + { + lookups = new ArrayList( lookupService.getAllLookupsByType( Lookup.PBF_AGG_TYPE ) ); + Collections.sort( lookups, IdentifiableObjectNameComparator.INSTANCE ); + + dataElementList = new ArrayList( dataElementService.getAllActiveDataElements() ); + Collections.sort( dataElementList, IdentifiableObjectNameComparator.INSTANCE ); + + aggregation = aggregationConditionService.getCaseAggregationCondition( id ); + description = aggregationConditionService.getConditionDescription( aggregation.getAggregationExpression() ); + + return SUCCESS; + } +} + === added file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/UpdateAggregationQueryAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/UpdateAggregationQueryAction.java 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/aggregation/action/UpdateAggregationQueryAction.java 2014-03-14 11:22:16 +0000 @@ -0,0 +1,125 @@ +package org.hisp.dhis.pbf.aggregation.action; + +import org.hisp.dhis.caseaggregation.CaseAggregationCondition; +import org.hisp.dhis.caseaggregation.CaseAggregationConditionService; +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataelement.DataElementCategoryService; +import org.hisp.dhis.dataelement.DataElementService; +import org.hisp.dhis.pbf.api.Lookup; + +import com.opensymphony.xwork2.Action; + +/** + * @author Mithilesh Kumar Thakur + */ +public class UpdateAggregationQueryAction implements Action +{ + // ------------------------------------------------------------------------- + // Dependencies + // ------------------------------------------------------------------------- + + private CaseAggregationConditionService aggregationConditionService; + + public void setAggregationConditionService( CaseAggregationConditionService aggregationConditionService ) + { + this.aggregationConditionService = aggregationConditionService; + } + + private DataElementService dataElementService; + + public void setDataElementService( DataElementService dataElementService ) + { + this.dataElementService = dataElementService; + } + + private DataElementCategoryService dataElementCategoryService; + + public void setDataElementCategoryService( DataElementCategoryService dataElementCategoryService ) + { + this.dataElementCategoryService = dataElementCategoryService; + } + + + // ------------------------------------------------------------------------- + // Input/ Output + // ------------------------------------------------------------------------- + + /* + private String name; + + public void setName( String name ) + { + this.name = name; + } + */ + + private Integer id; + + public void setId( Integer id ) + { + this.id = id; + } + + private String aggType; + + public void setAggType( String aggType ) + { + this.aggType = aggType; + } + + private Integer dataElementId; + + public void setDataElementId( Integer dataElementId ) + { + this.dataElementId = dataElementId; + } + + private Integer pbfDataSetId; + + public void setPbfDataSetId( Integer pbfDataSetId ) + { + this.pbfDataSetId = pbfDataSetId; + } + + // ------------------------------------------------------------------------- + // Action implementation + // ------------------------------------------------------------------------- + + public String execute() throws Exception + { + DataElement dataElement = dataElementService.getDataElement( dataElementId ); + + /* + if( name == null && name.equalsIgnoreCase( "" )) + { + name = dataElement.getName(); + } + + */ + + /** + * TODO support for category option combo + */ + + CaseAggregationCondition expression = aggregationConditionService.getCaseAggregationCondition( id ); + + if( expression != null ) + { + if( aggType.equals( Lookup.PBF_AGG_TYPE_OVERALL_QUALITY_SCORE ) || aggType.equals( Lookup.PBF_AGG_TYPE_OVERALL_UNADJUSTED_PBF_AMOUNT ) ) + { + String query = ""+pbfDataSetId; + + expression.setName( dataElement.getName() ); + expression.setOperator( aggType ); + expression.setAggregationExpression( query ); + expression.setAggregationDataElement( dataElement ); + expression.setOptionCombo( dataElementCategoryService.getDefaultDataElementCategoryOptionCombo() ); + + aggregationConditionService.updateCaseAggregationCondition( expression ); + + } + } + + return SUCCESS; + } +} === modified file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/dataentry/LoadNextPrePeriodsAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/dataentry/LoadNextPrePeriodsAction.java 2013-12-31 07:59:05 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/dataentry/LoadNextPrePeriodsAction.java 2014-03-14 11:22:16 +0000 @@ -8,6 +8,7 @@ import org.hisp.dhis.dataset.DataSetService; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.period.CalendarPeriodType; +import org.hisp.dhis.period.MonthlyPeriodType; import org.hisp.dhis.period.Period; import org.hisp.dhis.period.PeriodType; import org.hisp.dhis.system.filter.PastAndCurrentPeriodFilter; @@ -70,6 +71,8 @@ return periods; } + private String periodType; + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -79,8 +82,15 @@ DataSet dataset = dataSetService.getDataSet( dataSetId ); - String periodType = dataset.getPeriodType().getName(); + if( dataset != null ) + { + periodType = dataset.getPeriodType().getName(); + } + else + { + periodType = MonthlyPeriodType.NAME; + } //periodType = periodType != null && !periodType.isEmpty() ? periodType : MonthlyPeriodType.NAME; === modified file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/impl/DefaultPBFAggregationService.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/impl/DefaultPBFAggregationService.java 2014-02-05 10:49:02 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/impl/DefaultPBFAggregationService.java 2014-03-14 11:22:16 +0000 @@ -89,7 +89,7 @@ " dsm.datasetid = " + dataSetId +" " + " GROUP BY os.organisationunitid, qmv.organisationunitid, qmv.startdate, qmv.enddate"; - System.out.println( query ); + //System.out.println( query ); SqlRowSet rs = jdbcTemplate.queryForRowSet( query ); while ( rs.next() ) @@ -115,7 +115,7 @@ " dsm.datasetid = " + dataSetId +" " + " GROUP BY dv.sourceid, dv.periodid"; - System.out.println( query ); + //System.out.println( query ); SqlRowSet rs = jdbcTemplate.queryForRowSet( query ); while ( rs.next() ) @@ -158,18 +158,34 @@ " WHERE " + " periodid IN ( "+ Lookup.PERIODID_BY_COMMA +" ) AND "+ " datasetid = "+ dataSetId + " AND " + - " organisationunitid IN (" + Lookup.ORGUNITID_BY_COMMA + ") " + + " organisationunitid IN ( " + Lookup.ORGUNITID_BY_COMMA + " ) " + " GROUP BY organisationunitid, periodid "; - - Collection orgUnitIds = new ArrayList( getIdentifiers( OrganisationUnit.class, orgUnits ) ); - String orgUnitIdsByComma = getCommaDelimitedString( orgUnitIds ); - query = query.replace( Lookup.ORGUNITID_BY_COMMA, orgUnitIdsByComma ); - - Collection periodIds = new ArrayList( getIdentifiers( Period.class, periods ) ); - String periodsByComma = getCommaDelimitedString( periodIds ); - query = query.replace( Lookup.PERIODID_BY_COMMA, periodsByComma ); - - //System.out.println( query ); + + //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() ) === modified file 'local/in/dhis-web-maintenance-pbf/src/main/resources/META-INF/dhis/beans.xml' --- local/in/dhis-web-maintenance-pbf/src/main/resources/META-INF/dhis/beans.xml 2014-03-03 06:33:06 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/resources/META-INF/dhis/beans.xml 2014-03-14 11:22:16 +0000 @@ -265,7 +265,7 @@ - + @@ -278,12 +278,18 @@ + + + + - + @@ -301,6 +307,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + aggregationQueryList.action - + /main.vm /dhis-web-maintenance-pbf/runAggregationQueryForm.vm /dhis-web-maintenance-pbf/menu.vm + javascript/prevNextPeriods.js @@ -208,6 +209,32 @@ /dhis-web-maintenance-pbf/menu.vm + + + + /main.vm + /dhis-web-maintenance-pbf/updateAggregationQueryForm.vm + /dhis-web-maintenance-pbf/menu.vm + javascript/aggregationEngine.js + + + + + + aggregationQueryList.action + + + + + /dhis-web-commons/ajax/jsonResponseSuccess.vm + + + + + /dhis-web-maintenance-pbf/jsonAggregationQuery.vm + plainTextError + + === modified file 'local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/addAggregationQuery.vm' --- local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/addAggregationQuery.vm 2014-02-05 10:49:02 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/addAggregationQuery.vm 2014-03-14 11:22:16 +0000 @@ -11,25 +11,60 @@ }); } } - -
- - + + +function formValidations() +{ + //alert("validation"); + + var aggTypeList = document.getElementById("aggType"); + var aggTypeIndex = aggTypeList.selectedIndex; + + var dataElementList = document.getElementById("dataElementId"); + var dataElementIndex = dataElementList.selectedIndex; + + if( dataElementList.options[dataElementIndex].value == null || dataElementList.options[dataElementIndex].value== "-1" ) + { + showWarningMessage( "Please Select Data Element" ); + + return false; + } + + else if( aggTypeList.options[aggTypeIndex].value == null || aggTypeList.options[aggTypeIndex].value== "-1" ) + { + showWarningMessage( "Please Select Aggregation Type" ); + + return false; + } + + return true; +} + + + +

$i18n.getString( 'aggregation_query_builder_detail' )

+ + + +
+ + - + - +
- + #foreach( $dataElement in $dataElementList ) #end @@ -37,9 +72,9 @@
- #foreach( $lookup in $lookups ) === modified file 'local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/aggregationQueryList.vm' --- local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/aggregationQueryList.vm 2014-02-05 10:49:02 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/aggregationQueryList.vm 2014-03-14 11:22:16 +0000 @@ -8,26 +8,31 @@ }); -

$i18n.getString( 'ccei_aggregation_query_builder_management' ) #openHelp( "patient_aggregation_query_builder" )

+

$i18n.getString( 'pbf_aggregation_query_builder_management' ) #openHelp( "patient_aggregation_query_builder" )

+
- + + + +
+ $i18n.getString( "filter_by_name" )  
@@ -56,12 +61,19 @@ $i18n.getString( 'hide_details' )


+



-


-


+ +
+ + \ No newline at end of file === modified file 'local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/javascript/aggregationEngine.js' --- local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/javascript/aggregationEngine.js 2014-02-05 10:49:02 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/javascript/aggregationEngine.js 2014-03-14 11:22:16 +0000 @@ -1,7 +1,46 @@ - +//----------------------------------------------------------------------------- +//Add Aggregation Query Form +//----------------------------------------------------------------------------- function showAddAggregationForm() { window.location.href = 'addAggregationQueryForm.action'; } + +//----------------------------------------------------------------------------- +//Update Aggregation Query Form +//----------------------------------------------------------------------------- + +function showUpdateAggregationForm( context ) +{ + location.href = 'showUpdateAggregationForm.action?id=' + context.id; +} + +//----------------------------------------------------------------------------- +//Remove Aggregation +//----------------------------------------------------------------------------- + +function removeAggregation( context ) +{ + removeItem( context.id, context.name, i18n_confirm_delete_aggregation_query, 'removeAggregation.action'); +} + + +//----------------------------------------------------------------------------- +//View Aggregation Query details +//----------------------------------------------------------------------------- + +function showAggregationDetails( context ) +{ + jQuery.getJSON('getAggregation.action', { id: context.id }, function( json ) + { + setInnerHTML('nameField', json.caseAggregation.name); + setInnerHTML('aggregationDataElementField', json.caseAggregation.aggregationDataElement); + setInnerHTML('operatorField', json.caseAggregation.operator); + //setInnerHTML('optionComboField', json.caseAggregation.optionCombo); + //setInnerHTML('aggregationExpressionField', json.caseAggregation.aggregationExpression); + //setInnerHTML('deSumField', json.caseAggregation.deSum); + showDetails(); + }); +} \ No newline at end of file === added file 'local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/javascript/prevNextPeriods.js' --- local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/javascript/prevNextPeriods.js 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/javascript/prevNextPeriods.js 2014-03-14 11:22:16 +0000 @@ -0,0 +1,22 @@ + + +//next and pre periods +function getAvailablePeriodsTemp( availablePeriodsId, selectedPeriodsId, year ) +{ + var availableList = document.getElementById( availablePeriodsId ); + var selectedList = document.getElementById( selectedPeriodsId ); + + clearList( selectedList ); + + addOptionToList( selectedList, '-1', '[ Select ]' ); + + $.getJSON( "getAvailableNextPrePeriods.action", { + "year": year }, + function( json ) { + + for ( i in json.periods ) { + addOptionToList( selectedList, json.periods[i].isoDate, json.periods[i].name ); + } + + } ); +} \ No newline at end of file === added file 'local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/jsonAggregationQuery.vm' --- local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/jsonAggregationQuery.vm 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/jsonAggregationQuery.vm 2014-03-14 11:22:16 +0000 @@ -0,0 +1,8 @@ +{ "caseAggregation": + { + "id": "${caseAggregation.id}", + "name": "$!encoder.jsonEncode( ${caseAggregation.name} )", + "aggregationDataElement": "$!encoder.jsonEncode( ${caseAggregation.aggregationDataElement.name} )", + "operator": "${caseAggregation.operator}" + } +} \ No newline at end of file === modified file 'local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/runAggregationQueryForm.vm' --- local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/runAggregationQueryForm.vm 2014-02-05 10:49:02 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/runAggregationQueryForm.vm 2014-03-14 11:22:16 +0000 @@ -1,7 +1,54 @@ + + + +

$i18n.getString( "manual_aggregation" )

- + + + + + + +
+ + +
+ + + + + + + + + +
=== added file 'local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/updateAggregationQueryForm.vm' --- local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/updateAggregationQueryForm.vm 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/updateAggregationQueryForm.vm 2014-03-14 11:22:16 +0000 @@ -0,0 +1,123 @@ + + + +

$i18n.getString( 'update_aggregation_query_builder_detail' )

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

+ + +

+ +