|
32 | 32 |
|
33 | 33 | import de.symeda.sormas.api.Disease; |
34 | 34 | import de.symeda.sormas.api.caze.CaseClassification; |
| 35 | +import de.symeda.sormas.api.contact.ContactStatus; |
35 | 36 | import de.symeda.sormas.api.utils.DataHelper; |
36 | 37 | import de.symeda.sormas.api.utils.ValidationException; |
| 38 | +import de.symeda.sormas.api.utils.YesNoUnknown; |
37 | 39 | import de.symeda.sormas.app.BaseEditActivity; |
38 | 40 | import de.symeda.sormas.app.BaseEditFragment; |
39 | 41 | import de.symeda.sormas.app.R; |
40 | 42 | import de.symeda.sormas.app.backend.caze.Case; |
| 43 | +import de.symeda.sormas.app.backend.common.DaoException; |
41 | 44 | import de.symeda.sormas.app.backend.common.DatabaseHelper; |
42 | 45 | import de.symeda.sormas.app.backend.config.ConfigProvider; |
43 | 46 | import de.symeda.sormas.app.backend.contact.Contact; |
|
53 | 56 | import de.symeda.sormas.app.core.notification.NotificationHelper; |
54 | 57 | import de.symeda.sormas.app.person.SelectOrCreatePersonDialog; |
55 | 58 | import de.symeda.sormas.app.util.Bundler; |
56 | | -import de.symeda.sormas.app.util.Consumer; |
57 | 59 | import de.symeda.sormas.app.util.DateFormatHelper; |
58 | 60 |
|
59 | 61 | public class CaseNewActivity extends BaseEditActivity<Case> { |
@@ -228,6 +230,25 @@ private void pickOrCreateCaseAndSave(Case caze, CaseNewFragment fragment) { |
228 | 230 | fragment.setActivityRootData(getStoredRootEntity()); |
229 | 231 | fragment.updateForRapidCaseEntry(caze); |
230 | 232 | } else { |
| 233 | + if (!DataHelper.isNullOrEmpty(contactUuid)) { |
| 234 | + Contact contact = DatabaseHelper.getContactDao().queryUuid(contactUuid); |
| 235 | + try { |
| 236 | + pickedCase.getEpiData().setContactWithSourceCaseKnown(YesNoUnknown.YES); |
| 237 | + DatabaseHelper.getCaseDao().saveAndSnapshot(pickedCase); |
| 238 | + |
| 239 | + contact.setResultingCaseUuid(pickedCase.getUuid()); |
| 240 | + contact.setResultingCaseUser(ConfigProvider.getUser()); |
| 241 | + contact.setContactStatus(ContactStatus.CONVERTED); |
| 242 | + DatabaseHelper.getContactDao().saveAndSnapshot(contact); |
| 243 | + } catch (DaoException e) { |
| 244 | + NotificationHelper.showNotification( |
| 245 | + this, |
| 246 | + ERROR, |
| 247 | + String.format(getActiveActivity().getResources().getString(R.string.message_save_error), contact.getEntityName())); |
| 248 | + return; |
| 249 | + } |
| 250 | + } |
| 251 | + |
231 | 252 | finish(); |
232 | 253 | CaseEditActivity.startActivity(getContext(), pickedCase.getUuid(), CaseSection.CASE_INFO); |
233 | 254 | } |
@@ -271,6 +292,7 @@ protected void doInBackground(TaskResultHolder resultHolder) throws Exception { |
271 | 292 | Contact sourceContact = DatabaseHelper.getContactDao().queryUuid(contactUuid); |
272 | 293 | sourceContact.setResultingCaseUuid(caseToSave.getUuid()); |
273 | 294 | sourceContact.setResultingCaseUser(ConfigProvider.getUser()); |
| 295 | + sourceContact.setContactStatus(ContactStatus.CONVERTED); |
274 | 296 | DatabaseHelper.getContactDao().saveAndSnapshot(sourceContact); |
275 | 297 | } |
276 | 298 |
|
|
0 commit comments