Search in sources :

Example 6 with Survey

use of org.eyeseetea.malariacare.data.database.model.Survey in project pictureapp by EyeSeeTea.

the class ConvertToSDKVisitor method saveSurveyStatus.

/**
     * Saves changes in the survey (supposedly after a successful push)
     */
public void saveSurveyStatus(Map<String, ImportSummary> importSummaryMap, final IPushController.IPushControllerCallback callback) {
    Log.d(TAG, String.format("ImportSummary %d surveys savedSurveyStatus", surveys.size()));
    for (int i = 0; i < surveys.size(); i++) {
        Survey iSurvey = surveys.get(i);
        iSurvey.setStatus(Constants.SURVEY_QUARANTINE);
        Log.d(TAG, "saveSurveyStatus: Starting saving survey Set Survey status as QUARANTINE" + iSurvey.getId_survey() + " eventuid: " + iSurvey.getEventUid());
        iSurvey.save();
        if (importSummaryMap == null) {
            continue;
        }
        EventExtended iEvent = new EventExtended(events.get(iSurvey.getId_survey()));
        ImportSummary importSummary = importSummaryMap.get(iEvent.getEvent().getUId());
        List<Conflict> conflicts = importSummary.getConflicts();
        // never resend, the survey is saved as survey in conflict.
        if (conflicts != null && conflicts.size() > 0) {
            for (Conflict conflict : conflicts) {
                Log.d(TAG, "saveSurveyStatus: Faileditem not null " + iSurvey.getId_survey());
                if (conflict.getObject() != null) {
                    Log.d(TAG, "saveSurveyStatus: PUSH process...Conflict in " + conflict.getObject() + " with error " + conflict.getValue() + " dataelement pushing survey: " + iSurvey.getId_survey());
                    callback.onError(new ImportSummaryErrorException(String.format(context.getString(R.string.error_conflict_message), iEvent.getEvent().getUId(), conflict.getObject(), conflict.getValue()) + ""));
                    iSurvey.setStatus(Constants.SURVEY_CONFLICT);
                }
            }
            iSurvey.save();
            continue;
        } else if (importSummary != null && importSummary.getStatus() == ImportSummary.Status.ERROR) {
            Log.d(TAG, "saveSurveyStatus: PUSH error process..." + importSummary.getDescription() + " dataelement pushing survey: " + iSurvey.getId_survey());
            callback.onError(new ImportSummaryErrorException(importSummary.getDescription() + ""));
            iSurvey.setStatus(Constants.SURVEY_CONFLICT);
            iSurvey.save();
        }
        if (importSummary == null) {
            Log.d(TAG, "saveSurveyStatus: importSummary null " + iSurvey.getId_survey());
            //Saved as quarantine
            continue;
        } else {
            Log.d(TAG, "saveSurveyStatus: " + importSummary.toString());
        }
        //No errors -> Save and next
        if (!hasImportSummaryErrors(importSummary)) {
            Log.d(TAG, "saveSurveyStatus: importSummary without errors and status ok " + iSurvey.getId_survey());
            saveSurveyFromImportSummary(iSurvey);
            continue;
        }
        //Generated event must be remove too
        iEvent.delete();
    }
}
Also used : Survey(org.eyeseetea.malariacare.data.database.model.Survey) EventExtended(org.eyeseetea.malariacare.data.sync.importer.models.EventExtended) Conflict(org.hisp.dhis.client.sdk.models.common.importsummary.Conflict) ImportSummaryErrorException(org.eyeseetea.malariacare.domain.exception.ImportSummaryErrorException) ImportSummary(org.hisp.dhis.client.sdk.models.common.importsummary.ImportSummary)

Example 7 with Survey

use of org.eyeseetea.malariacare.data.database.model.Survey in project pictureapp by EyeSeeTea.

the class PushController method convertToSDK.

/**
     * Launches visitor that turns an APP survey into a SDK event
     */
private void convertToSDK(List<Survey> surveys) throws Exception {
    Log.d(TAG, "Converting APP survey into a SDK event");
    for (Survey survey : surveys) {
        survey.setStatus(Constants.SURVEY_SENDING);
        survey.save();
        Log.d(TAG, "Status of survey to be push is = " + survey.getStatus());
        survey.accept(mConvertToSDKVisitor);
    }
}
Also used : Survey(org.eyeseetea.malariacare.data.database.model.Survey)

Example 8 with Survey

use of org.eyeseetea.malariacare.data.database.model.Survey in project pictureapp by EyeSeeTea.

the class ReviewFragment method getReviewValues.

private List<Value> getReviewValues() {
    List<Value> reviewValues = new ArrayList<>();
    Survey survey = Session.getMalariaSurvey();
    List<Value> allValues = survey.getValuesFromDB();
    for (Value value : allValues) {
        boolean isReviewValue = true;
        if (value.getQuestion() == null) {
            continue;
        }
        for (QuestionRelation questionRelation : value.getQuestion().getQuestionRelations()) {
            if (questionRelation.isACounter() || questionRelation.isAReminder() || questionRelation.isAWarning() || questionRelation.isAMatch()) {
                isReviewValue = false;
            }
        }
        int output = value.getQuestion().getOutput();
        if (output == Constants.HIDDEN || output == Constants.DYNAMIC_STOCK_IMAGE_RADIO_BUTTON) {
            isReviewValue = false;
        }
        if (isReviewValue) {
            if (!isStockValue(value)) {
                reviewValues.add(value);
            }
        }
    }
    return reviewValues;
}
Also used : Survey(org.eyeseetea.malariacare.data.database.model.Survey) QuestionRelation(org.eyeseetea.malariacare.data.database.model.QuestionRelation) ArrayList(java.util.ArrayList) Value(org.eyeseetea.malariacare.data.database.model.Value)

Example 9 with Survey

use of org.eyeseetea.malariacare.data.database.model.Survey in project pictureapp by EyeSeeTea.

the class AssessmentAdapter method getView.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    Survey survey = (Survey) getItem(position);
    View rowView = this.lInflater.inflate(getRecordLayout(), parent, false);
    mDashboardAdapterStrategy.renderSurveySummary(rowView, survey);
    LayoutUtils.fixRowViewBackground(rowView, position);
    LayoutUtils.setListRowBackgroundColor(rowView);
    return rowView;
}
Also used : Survey(org.eyeseetea.malariacare.data.database.model.Survey) CustomTextView(org.eyeseetea.sdk.presentation.views.CustomTextView) View(android.view.View) ListView(android.widget.ListView)

Example 10 with Survey

use of org.eyeseetea.malariacare.data.database.model.Survey in project pictureapp by EyeSeeTea.

the class BalanceRowBuilder method updateColumn.

@Override
protected Object updateColumn(Object currentValue, int newValue, SurveyStock surveyStock) {
    Survey survey = surveyStock.getSurvey();
    Date maxBalanceDate = Survey.getLastDateForSurveyType(Constants.SURVEY_RESET);
    if (survey.getType().equals(Constants.SURVEY_RESET) && (maxBalanceDate == null || maxBalanceDate.equals(survey.getEventDate()))) {
        return newValue;
    }
    return currentValue;
}
Also used : Survey(org.eyeseetea.malariacare.data.database.model.Survey) Date(java.util.Date)

Aggregations

Survey (org.eyeseetea.malariacare.data.database.model.Survey)39 Date (java.util.Date)8 Intent (android.content.Intent)7 Value (org.eyeseetea.malariacare.data.database.model.Value)6 ArrayList (java.util.ArrayList)4 Program (org.eyeseetea.malariacare.data.database.model.Program)3 Question (org.eyeseetea.malariacare.data.database.model.Question)3 Session.getMalariaSurvey (org.eyeseetea.malariacare.data.database.utils.Session.getMalariaSurvey)3 Option (org.eyeseetea.malariacare.data.database.model.Option)2 OrgUnit (org.eyeseetea.malariacare.data.database.model.OrgUnit)2 EventExtended (org.eyeseetea.malariacare.data.sync.importer.models.EventExtended)2 ImportSummaryErrorException (org.eyeseetea.malariacare.domain.exception.ImportSummaryErrorException)2 DialogInterface (android.content.DialogInterface)1 NonNull (android.support.annotation.NonNull)1 View (android.view.View)1 ListView (android.widget.ListView)1 TableRow (android.widget.TableRow)1 Calendar (java.util.Calendar)1 HashSet (java.util.HashSet)1 CompositeScore (org.eyeseetea.malariacare.data.database.model.CompositeScore)1