=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/patientreport/PatientAggregateReport.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/patientreport/PatientAggregateReport.java 2013-01-21 07:29:15 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/patientreport/PatientAggregateReport.java 2013-01-21 09:52:11 +0000 @@ -64,18 +64,19 @@ public static final int POSITION_ROW_ORGUNIT_COLUMN_DATA = 7; public static final int POSITION_ROW_DATA = 8; - + public static final int POSITION_ROW_DATA_COLUMN_PERIOD = 9; // PIVOT FROM 6 - - public static final int POSITION_ROW_DATA_COLUMN_ORGUNIT = 10; // PIVOT FROM A + + public static final int POSITION_ROW_DATA_COLUMN_ORGUNIT = 10; // PIVOT FROM + // 7 private ProgramStage programStage; // Date period range - private Date startDate; + private List startDates; - private Date endDate; + private List endDates; // Relative periods @@ -105,6 +106,12 @@ private String aggregateType; + private Boolean useCompletedEvents; + + private Boolean userOrganisationUnit; + + private Boolean userOrganisationUnitChildren; + // User created private User user; @@ -131,25 +138,25 @@ { this.programStage = programStage; } - - public Date getStartDate() - { - return startDate; - } - - public void setStartDate( Date startDate ) - { - this.startDate = startDate; - } - - public Date getEndDate() - { - return endDate; - } - - public void setEndDate( Date endDate ) - { - this.endDate = endDate; + + public List getStartDates() + { + return startDates; + } + + public void setStartDates( List startDates ) + { + this.startDates = startDates; + } + + public List getEndDates() + { + return endDates; + } + + public void setEndDates( List endDates ) + { + this.endDates = endDates; } public Set getRelativePeriods() @@ -252,4 +259,34 @@ this.user = user; } + public Boolean getUseCompletedEvents() + { + return useCompletedEvents; + } + + public void setUseCompletedEvents( Boolean useCompletedEvents ) + { + this.useCompletedEvents = useCompletedEvents; + } + + public Boolean getUserOrganisationUnit() + { + return userOrganisationUnit; + } + + public void setUserOrganisationUnit( Boolean userOrganisationUnit ) + { + this.userOrganisationUnit = userOrganisationUnit; + } + + public Boolean getUserOrganisationUnitChildren() + { + return userOrganisationUnitChildren; + } + + public void setUserOrganisationUnitChildren( Boolean userOrganisationUnitChildren ) + { + this.userOrganisationUnitChildren = userOrganisationUnitChildren; + } + } === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/patientreport/hibernate/PatientAggregateReport.hbm.xml' --- dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/patientreport/hibernate/PatientAggregateReport.hbm.xml 2013-01-17 07:31:43 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/patientreport/hibernate/PatientAggregateReport.hbm.xml 2013-01-21 09:52:11 +0000 @@ -17,11 +17,20 @@ - - - - - + + + + + + + + + + + + + + @@ -59,6 +68,12 @@ + + + + + + === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/SaveAggregateReportAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/SaveAggregateReportAction.java 2013-01-16 13:25:48 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/SaveAggregateReportAction.java 2013-01-21 09:52:11 +0000 @@ -27,7 +27,13 @@ package org.hisp.dhis.caseentry.action.report; -import com.opensymphony.xwork2.Action; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.organisationunit.OrganisationUnit; @@ -37,11 +43,7 @@ import org.hisp.dhis.program.ProgramStageService; import org.hisp.dhis.user.CurrentUserService; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import com.opensymphony.xwork2.Action; /** * @author Chau Thu Tran @@ -149,18 +151,18 @@ this.relativePeriods = relativePeriods; } - private String startDate; + private List startDates; - public void setStartDate( String startDate ) + public void setStartDates( List startDates ) { - this.startDate = startDate; + this.startDates = startDates; } - private String endDate; + private List endDates; - public void setEndDate( String endDate ) + public void setEndDates( List endDates ) { - this.endDate = endDate; + this.endDates = endDates; } private String facilityLB; // All, children, current @@ -191,6 +193,27 @@ this.deGroupBy = deGroupBy; } + private Boolean useCompletedEvents; + + public void setUseCompletedEvents( Boolean useCompletedEvents ) + { + this.useCompletedEvents = useCompletedEvents; + } + + private Boolean userOrganisationUnit; + + public void setUserOrganisationUnit( Boolean userOrganisationUnit ) + { + this.userOrganisationUnit = userOrganisationUnit; + } + + private Boolean userOrganisationUnitChildren; + + public void setUserOrganisationUnitChildren( Boolean userOrganisationUnitChildren ) + { + this.userOrganisationUnitChildren = userOrganisationUnitChildren; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -204,10 +227,18 @@ aggregateReport.setName( name ); aggregateReport.setProgramStage( programStageService.getProgramStage( programStageId ) ); - if ( startDate != null && endDate != null ) + if ( startDates != null && endDates != null ) { - aggregateReport.setStartDate( format.parseDate( startDate ) ); - aggregateReport.setEndDate( format.parseDate( endDate ) ); + List start = new ArrayList(); + List end = new ArrayList(); + + for ( int i = 0; i < startDates.size(); i++ ) + { + start.add( format.parseDate( startDates.get( i ) ) ); + end.add( format.parseDate( startDates.get( i ) ) ); + } + aggregateReport.setStartDates( start ); + aggregateReport.setEndDates( end ); } aggregateReport.setRelativePeriods( relativePeriods ); @@ -225,6 +256,21 @@ aggregateReport.setDeGroupBy( dataElementService.getDataElement( deGroupBy ) ); } + if ( useCompletedEvents != null ) + { + aggregateReport.setUseCompletedEvents( useCompletedEvents ); + } + + if ( userOrganisationUnit != null ) + { + aggregateReport.setUserOrganisationUnit( userOrganisationUnit ); + } + + if ( userOrganisationUnitChildren != null ) + { + aggregateReport.setUserOrganisationUnitChildren( userOrganisationUnitChildren ); + } + aggregateReport.setAggregateType( aggregateType ); aggregateReport.setUser( currentUserService.getCurrentUser() ); === 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-01-21 07:29:15 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js 2013-01-21 09:52:11 +0000 @@ -854,7 +854,7 @@ caseBasedReport:{ create: function(fn, isupdate) { TR.util.mask.showMask(TR.cmp.caseBasedFavorite.window, TR.i18n.saving + '...'); - var p = TR.state.getParams(); + var p = TR.state.caseBasedReport.getParams(false); p.name = TR.cmp.caseBasedFavorite.name.getValue(); if (isupdate) { @@ -931,11 +931,16 @@ Ext.getCmp('facilityLBCombobox').setValue( f.facilityLB ); Ext.getCmp('levelCombobox').setValue( f.level ); - TR.state.orgunitIds = f.orgunitIds; + // Orgunits - /* for (var i = 0; i < f.orgunitIds.length; i++) { - TR.cmp.params.organisationunit.records.push({id: f.organisationUnits[i].id, name: TR.conf.util.jsonEncodeString(f.organisationUnits[i].name)}); - } */ + var treepanel = TR.cmp.params.organisationunit.treepanel; + treepanel.getSelectionModel().deselectAll(); + TR.state.orgunitIds = []; + treepanel.numberOfRecords = f.orgunitIds.length; + for (var i = 0; i < f.orgunitIds.length; i++) { + treepanel.multipleExpand(f.orgunitIds[i].id, f.orgunitIds[i].path); + TR.state.orgunitIds.push( f.orgunitIds[i].localid ); + } // Data element TR.cmp.params.dataelement.objects = []; @@ -977,9 +982,9 @@ aggregateReport:{ create: function(fn, isupdate) { - TR.util.mask.showMask(TR.cmp.caseBasedFavorite.window, TR.i18n.saving + '...'); + TR.util.mask.showMask(TR.cmp.aggregateFavorite.window, TR.i18n.saving + '...'); var p = TR.state.getParams(); - p.name = TR.cmp.caseBasedFavorite.name.getValue(); + p.name = TR.cmp.aggregateFavorite.name.getValue(); if (isupdate) { p.uid = TR.store.aggregateFavorite.getAt(TR.store.aggregateFavorite.findExact('name', p.name)).data.id; @@ -1049,11 +1054,18 @@ Ext.getCmp('programCombobox').setValue( f.programId ); Ext.getCmp('programStageCombobox').setValue( f.programStageId ); - - // Date range - - Ext.getCmp('startDate').setValue( f.startDate ); - Ext.getCmp('endDate').setValue( f.endDate ); + Ext.getCmp('userOrgunit').setValue( f.userOrganisationUnit ); + Ext.getCmp('userOrgunitChildren').setValue( f.userOrganisationUnitChildren ); + + // Date period range + + TR.store.dateRange.removeAll(); + for( var i=0;i