dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #23244
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 11293: made it possible to save values offline, even if programStageInstanceId has already been created ...
------------------------------------------------------------
revno: 11293
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2013-07-01 12:02:27 +0700
message:
made it possible to save values offline, even if programStageInstanceId has already been created (caseentry)
modified:
dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/UploadAnonymousEventAction.java
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/anonymousRegistration.js
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/UploadAnonymousEventAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/UploadAnonymousEventAction.java 2013-05-19 09:15:33 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/UploadAnonymousEventAction.java 2013-07-01 05:02:27 +0000
@@ -117,28 +117,22 @@
Map<String, Object> executionDate = (Map<String, Object>) input.get( "executionDate" );
- Integer programId;
- Integer organisationUnitId;
-
- try
- {
- programId = Integer.parseInt( (String) executionDate.get( "programId" ) );
- organisationUnitId = Integer.parseInt( (String) executionDate.get( "organisationUnitId" ) );
- }
- catch ( NumberFormatException e )
- {
- message = e.getMessage();
- return ERROR;
- }
-
Date date = format.parseDate( (String) executionDate.get( "executionDate" ) );
- if ( programId == null || date == null || organisationUnitId == null )
- {
- return INPUT;
- }
-
- Boolean completed = (Boolean) executionDate.get( "completed" );
+ Boolean completed = null;
+
+ try
+ {
+ String completeString = (String) executionDate.get( "completed" );
+
+ if ( completeString != null )
+ {
+ completed = Boolean.parseBoolean( completeString );
+ }
+ }
+ catch ( ClassCastException ignored )
+ {
+ }
Coordinate coordinate = null;
Map<String, String> coord = (Map<String, String>) input.get( "coordinate" );
@@ -158,7 +152,45 @@
}
- ProgramStageInstance programStageInstance = saveExecutionDate( programId, organisationUnitId, date, completed, coordinate );
+ Integer programId;
+ Integer organisationUnitId;
+ Integer programStageInstanceId;
+ ProgramStageInstance programStageInstance;
+
+ try
+ {
+ programStageInstanceId = Integer.parseInt( (String) executionDate.get( "programStageInstanceId" ) );
+ }
+ catch ( NumberFormatException e )
+ {
+ programStageInstanceId = null;
+ }
+
+ if ( programStageInstanceId != null )
+ {
+ programStageInstance = programStageInstanceService.getProgramStageInstance( programStageInstanceId );
+ updateExecutionDate( programStageInstance, date, completed, coordinate );
+ }
+ else
+ {
+ try
+ {
+ programId = Integer.parseInt( (String) executionDate.get( "programId" ) );
+ organisationUnitId = Integer.parseInt( (String) executionDate.get( "organisationUnitId" ) );
+ }
+ catch ( NumberFormatException e )
+ {
+ message = e.getMessage();
+ return ERROR;
+ }
+
+ if ( date == null )
+ {
+ return INPUT;
+ }
+
+ programStageInstance = saveExecutionDate( programId, organisationUnitId, date, completed, coordinate );
+ }
Map<String, Object> values = (Map<String, Object>) input.get( "values" );
@@ -179,6 +211,38 @@
return SUCCESS;
}
+ private void updateExecutionDate( ProgramStageInstance programStageInstance, Date date, Boolean completed, Coordinate coordinate )
+ {
+ if ( date != null )
+ {
+ programStageInstance.setDueDate( date );
+ programStageInstance.setExecutionDate( date );
+ }
+
+ if ( completed != null )
+ {
+ programStageInstance.setCompleted( completed );
+ programStageInstance.setCompletedDate( new Date() );
+ programStageInstance.setCompletedUser( currentUserService.getCurrentUsername() );
+ }
+
+ if ( programStageInstance.getProgramStage().getCaptureCoordinates() )
+ {
+ if ( coordinate != null && coordinate.isValid() )
+ {
+ programStageInstance.setCoordinates( coordinate.getCoordinateString() );
+ }
+ else
+ {
+ programStageInstance.setCoordinates( null );
+ }
+ }
+
+ message = programStageInstance.getId() + "";
+
+ programStageInstanceService.updateProgramStageInstance( programStageInstance );
+ }
+
private ProgramStageInstance saveExecutionDate( Integer programId, Integer organisationUnitId, Date date, Boolean completed,
Coordinate coordinate )
{
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/anonymousRegistration.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/anonymousRegistration.js 2013-06-18 05:51:08 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/anonymousRegistration.js 2013-07-01 05:02:27 +0000
@@ -992,7 +992,7 @@
var data = {};
data.id = programStageInstanceId;
data.executionDate = createExecutionDate(programId, programStageInstanceId, executionDate, organisationUnitId);
- data.executionDate.completed = false;
+ data.executionDate.completed = 'false';
this.set( 'dataValues', data );
});
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js 2013-06-18 05:51:08 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js 2013-07-01 05:02:27 +0000
@@ -300,11 +300,19 @@
DAO.store.get( 'dataValues', dataValueKey ).done( function ( obj ) {
if ( !obj ) {
- markValue( ERROR );
- window.alert( i18n_saving_value_failed_error_code + '\n\n' + errorCode );
- return;
+ obj = {};
+ obj.executionDate = {};
+ obj.executionDate.programId = $( '#programId' ).val();
+ obj.executionDate.programStageInstanceId = dataValueKey;
+
+ var orgUnitId = $( '#orgunitId' ).val();
+ obj.executionDate.organisationUnitId = orgUnitId;
+ obj.executionDate.organisationUnit = organisationUnits[orgUnitId].n;
}
+ obj.executionDate.executionDate = $( '#executionDate' ).val();
+ obj.executionDate.completed = $( '#completed' ).val();
+
if ( !obj.values ) {
obj.values = {};
}
@@ -606,7 +614,7 @@
return;
}
- obj.executionDate.completed = true;
+ obj.executionDate.completed = 'true';
DAO.store.set('dataValues', obj);
} );
@@ -659,7 +667,7 @@
return;
}
- obj.executionDate.completed = false;
+ obj.executionDate.completed = 'false';
DAO.store.set( 'dataValues', obj );
} );
}