1
package org.hisp.dhis.trackedentity.action.caseaggregation;
4
* Copyright (c) 2004-2016, University of Oslo
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
* Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer.
12
* Redistributions in binary form must reproduce the above copyright notice,
13
* this list of conditions and the following disclaimer in the documentation
14
* and/or other materials provided with the distribution.
15
* Neither the name of the HISP project nor the names of its contributors may
16
* be used to endorse or promote products derived from this software without
17
* specific prior written permission.
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
23
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
import java.util.Collection;
32
import java.util.Date;
33
import java.util.HashSet;
34
import java.util.List;
36
import org.hisp.dhis.caseaggregation.CaseAggregationConditionService;
37
import org.hisp.dhis.period.MonthlyPeriodType;
38
import org.hisp.dhis.period.Period;
40
import com.opensymphony.xwork2.Action;
43
* @author Chau Thu Tran
45
public class TestCaseAggregationConditionAction
48
// -------------------------------------------------------------------------
50
// -------------------------------------------------------------------------
52
private CaseAggregationConditionService caseAggregationConditionService;
54
public void setCaseAggregationConditionService( CaseAggregationConditionService caseAggregationConditionService )
56
this.caseAggregationConditionService = caseAggregationConditionService;
59
// -------------------------------------------------------------------------
61
// -------------------------------------------------------------------------
63
private String condition;
65
public void setCondition( String condition )
67
this.condition = condition;
70
private String operator;
72
public void setOperator( String operator )
74
this.operator = operator;
77
private Integer deSumId;
79
public void setDeSumId( Integer deSumId )
81
this.deSumId = deSumId;
84
private String message;
86
public String getMessage()
91
// -------------------------------------------------------------------------
92
// Action implementation
93
// -------------------------------------------------------------------------
96
public String execute()
99
Collection<Integer> orgunitIds = new HashSet<>();
102
MonthlyPeriodType periodType = new MonthlyPeriodType();
103
Period period = new Period();
104
period.setStartDate( new Date() );
105
period.setEndDate( new Date() );
106
period.setPeriodType( periodType );
108
String sql = caseAggregationConditionService.parseExpressionToSql( false, condition, operator, 0,
109
"dataelementname", 0, "optioncomboid", deSumId, orgunitIds, period );
111
List<Integer> ids = caseAggregationConditionService.executeSQL( sql );
113
return (ids == null) ? INPUT : SUCCESS;