~dhis2-devs-core/dhis2/trunk

« back to all changes in this revision

Viewing changes to dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/trackedentity/SaveAttributeAction.java

  • Committer: Tran Chau
  • Date: 2014-05-29 15:19:07 UTC
  • Revision ID: tran.hispvietnam@gmail.com-20140529151907-22i0gmfegt4sodor
Fixed bug - Some attribute values are deleted after TEI enrolls into a program.

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
import org.apache.struts2.ServletActionContext;
37
37
import org.hisp.dhis.program.Program;
38
38
import org.hisp.dhis.program.ProgramService;
39
 
import org.hisp.dhis.trackedentity.TrackedEntityAttribute;
40
 
import org.hisp.dhis.trackedentity.TrackedEntityAttributeService;
 
39
import org.hisp.dhis.program.ProgramTrackedEntityAttribute;
41
40
import org.hisp.dhis.trackedentity.TrackedEntityInstance;
42
41
import org.hisp.dhis.trackedentity.TrackedEntityInstanceService;
43
42
import org.hisp.dhis.trackedentityattributevalue.TrackedEntityAttributeValue;
60
59
    private TrackedEntityInstanceService entityInstanceService;
61
60
 
62
61
    private TrackedEntityAttributeValueService attributeValueService;
63
 
 
64
 
    private TrackedEntityAttributeService attributeService;
65
 
 
 
62
    
66
63
    private ProgramService programService;
67
64
 
68
65
    // -------------------------------------------------------------------------
84
81
        this.entityInstanceService = entityInstanceService;
85
82
    }
86
83
 
87
 
    public void setAttributeService( TrackedEntityAttributeService attributeService )
88
 
    {
89
 
        this.attributeService = attributeService;
90
 
    }
91
 
 
92
84
    public void setAttributeValueService( TrackedEntityAttributeValueService attributeValueService )
93
85
    {
94
86
        this.attributeValueService = attributeValueService;
152
144
 
153
145
        String value = null;
154
146
 
155
 
        Collection<TrackedEntityAttribute> attributes = attributeService.getAllTrackedEntityAttributes();
156
 
 
 
147
        Collection<ProgramTrackedEntityAttribute> programAttributes = program.getAttributes();
 
148
        
157
149
        TrackedEntityAttributeValue attributeValue = null;
158
150
 
159
 
        if ( attributes != null && attributes.size() > 0 )
 
151
        if ( programAttributes != null && programAttributes.size() > 0 )
160
152
        {
161
 
            for ( TrackedEntityAttribute attribute : attributes )
 
153
            for ( ProgramTrackedEntityAttribute programAttribute : programAttributes )
162
154
            {
163
 
                value = request.getParameter( AddTrackedEntityInstanceAction.PREFIX_ATTRIBUTE + attribute.getId() );
164
 
                attributeValue = attributeValueService.getTrackedEntityAttributeValue( entityInstance, attribute );
 
155
                value = request.getParameter( AddTrackedEntityInstanceAction.PREFIX_ATTRIBUTE + programAttribute.getAttribute().getId() );
 
156
                attributeValue = attributeValueService.getTrackedEntityAttributeValue( entityInstance, programAttribute.getAttribute() );
165
157
 
166
158
                if ( StringUtils.isNotBlank( value ) )
167
159
                {
169
161
                    {
170
162
                        attributeValue = new TrackedEntityAttributeValue();
171
163
                        attributeValue.setEntityInstance( entityInstance );
172
 
                        attributeValue.setAttribute( attribute );
 
164
                        attributeValue.setAttribute( programAttribute.getAttribute() );
173
165
                        attributeValue.setValue( value.trim() );
174
166
                        attributeValueService.addTrackedEntityAttributeValue( attributeValue );
175
167
                    }