~dhis2-devs-core/dhis2/trunk

« back to all changes in this revision

Viewing changes to dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/ValidationAction.java

  • Committer: jimgrace at gmail
  • Date: 2014-05-18 00:49:40 UTC
  • Revision ID: jimgrace@gmail.com-20140518004940-wbw1bxjhfdmf33yl
Support attribute categories in validation

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
 
39
39
import org.apache.commons.logging.Log;
40
40
import org.apache.commons.logging.LogFactory;
 
41
import org.apache.struts2.ServletActionContext;
 
42
import org.hisp.dhis.api.utils.InputUtils;
41
43
import org.hisp.dhis.common.comparator.IdentifiableObjectNameComparator;
42
44
import org.hisp.dhis.dataanalysis.DataAnalysisService;
43
45
import org.hisp.dhis.dataelement.DataElement;
 
46
import org.hisp.dhis.dataelement.DataElementCategoryOption;
44
47
import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
 
48
import org.hisp.dhis.dataelement.DataElementCategoryService;
45
49
import org.hisp.dhis.dataelement.DataElementOperand;
46
50
import org.hisp.dhis.dataset.DataSet;
47
51
import org.hisp.dhis.dataset.DataSetService;
54
58
import org.hisp.dhis.period.PeriodService;
55
59
import org.hisp.dhis.period.PeriodType;
56
60
import org.hisp.dhis.validation.ValidationResult;
 
61
import org.hisp.dhis.validation.ValidationRule;
57
62
import org.hisp.dhis.validation.ValidationRuleService;
58
63
 
59
64
import com.opensymphony.xwork2.Action;
 
65
import org.springframework.beans.factory.annotation.Autowired;
60
66
 
61
67
/**
62
68
 * @author Margrethe Store
105
111
    {
106
112
        this.organisationUnitService = organisationUnitService;
107
113
    }
108
 
    
 
114
 
 
115
    private DataElementCategoryService dataElementCategoryService;
 
116
 
 
117
    public void setDataElementCategoryService( DataElementCategoryService dataElementCategoryService )
 
118
    {
 
119
        this.dataElementCategoryService = dataElementCategoryService;
 
120
    }
 
121
 
109
122
    private DataValueService dataValueService;
110
123
 
111
124
    public void setDataValueService( DataValueService dataValueService )
113
126
        this.dataValueService = dataValueService;
114
127
    }
115
128
 
 
129
    @Autowired
 
130
    private InputUtils inputUtils;
 
131
 
116
132
    // -------------------------------------------------------------------------
117
133
    // Input
118
134
    // -------------------------------------------------------------------------
138
154
        this.ou = ou;
139
155
    }
140
156
 
 
157
    private String cc;
 
158
 
 
159
    public void setCc( String cc )
 
160
    {
 
161
        this.cc = cc;
 
162
    }
 
163
 
 
164
    private String cp;
 
165
 
 
166
    public void setCp( String cp )
 
167
    {
 
168
        this.cp = cp;
 
169
    }
 
170
 
141
171
    private boolean multiOu;
142
172
 
143
173
    public boolean isMultiOu()
188
218
 
189
219
        Period selectedPeriod = PeriodType.getPeriodFromIsoString( pe );
190
220
 
 
221
        DataElementCategoryOptionCombo attributeOptionCombo = inputUtils.getAttributeOptionCombo( ServletActionContext.getResponse(), cc, cp );
 
222
 
 
223
        if ( attributeOptionCombo == null )
 
224
        {
 
225
            attributeOptionCombo = dataElementCategoryService.getDefaultDataElementCategoryOptionCombo();
 
226
        }
 
227
 
191
228
        if ( selectedPeriod == null || orgUnit == null || ( multiOu && !orgUnit.hasChild() ) )
192
229
        {
193
230
            return SUCCESS;
218
255
                dataValues.put( organisationUnit, values );
219
256
            }
220
257
 
221
 
            List<ValidationResult> results = validationRuleAnalysis( organisationUnit, dataSet, period );
 
258
            List<ValidationResult> results = validationRuleAnalysis( organisationUnit, dataSet, period, attributeOptionCombo );
222
259
 
223
260
            if ( !results.isEmpty() )
224
261
            {
254
291
    // Validation rule analysis
255
292
    // -------------------------------------------------------------------------
256
293
    
257
 
    private List<ValidationResult> validationRuleAnalysis( OrganisationUnit organisationUnit, DataSet dataSet, Period period )
 
294
    private List<ValidationResult> validationRuleAnalysis( OrganisationUnit organisationUnit, DataSet dataSet, Period period, DataElementCategoryOptionCombo attributeOptionCombo )
258
295
    {
259
 
        List<ValidationResult> validationResults = new ArrayList<ValidationResult>( validationRuleService.validate( dataSet, period, organisationUnit ) );
 
296
        List<ValidationResult> validationResults = new ArrayList<ValidationResult>( validationRuleService.validate( dataSet, period, organisationUnit, attributeOptionCombo ) );
260
297
 
261
298
        log.debug( "Number of validation violations: " + validationResults.size() );
262
299