Search in sources :

Example 1 with FieldType

use of de.metas.dataentry.FieldType in project metasfresh-webui-api by metasfresh.

the class DataEntryWebuiTools method extractFieldValueForDataEntry.

public Object extractFieldValueForDataEntry(@NonNull final IDocumentFieldView fieldView) {
    final Object value = fieldView.getValue();
    final DocumentFieldDescriptor descriptor = fieldView.getDescriptor();
    final DataEntryFieldBindingDescriptor dataBinding = descriptor.getDataBindingNotNull(DataEntryFieldBindingDescriptor.class);
    final FieldType fieldType = dataBinding.getFieldType();
    if (value == null) {
        return null;
    }
    final Object result;
    switch(fieldType) {
        case DATE:
            result = fieldType.getClazz().cast(value);
            break;
        case LIST:
            final LookupDescriptor lookupDescriptor = descriptor.getLookupDescriptor().get();
            final DataEntryListValueDataSourceFetcher fetcher = (DataEntryListValueDataSourceFetcher) lookupDescriptor.getLookupDataSourceFetcher();
            result = fetcher.getListValueIdForLookup((IntegerLookupValue) value);
            break;
        case NUMBER:
            result = fieldType.getClazz().cast(value);
            break;
        case TEXT:
            result = fieldType.getClazz().cast(value);
            break;
        case LONG_TEXT:
            result = fieldType.getClazz().cast(value);
            break;
        case YESNO:
            result = fieldType.getClazz().cast(value);
            break;
        case PARENT_LINK_ID:
            result = fieldType.getClazz().cast(value);
            break;
        case SUB_TAB_ID:
            result = fieldType.getClazz().cast(value);
            break;
        default:
            // this includes CREATED_UPDATED_INFO, PARENT_LINK_ID and SUB_TAB_ID; we don't expect the document repo to try and extract these
            throw new AdempiereException("Unexpected fieldType=" + fieldType);
    }
    return result;
}
Also used : DocumentFieldDescriptor(de.metas.ui.web.window.descriptor.DocumentFieldDescriptor) AdempiereException(org.adempiere.exceptions.AdempiereException) IntegerLookupValue(de.metas.ui.web.window.datatypes.LookupValue.IntegerLookupValue) LookupDescriptor(de.metas.ui.web.window.descriptor.LookupDescriptor) FieldType(de.metas.dataentry.FieldType)

Example 2 with FieldType

use of de.metas.dataentry.FieldType in project metasfresh-webui-api by metasfresh.

the class DataEntrySubTabBindingRepository method updateDataEntryRecord.

private boolean updateDataEntryRecord(@NonNull final Document document, @NonNull final DataEntryRecord dataEntryRecord) {
    boolean refreshNeeded = false;
    final UserId userId = UserId.ofRepoId(Env.getAD_User_ID(document.getCtx()));
    for (final IDocumentFieldView fieldView : document.getFieldViews()) {
        final DataEntryFieldBindingDescriptor dataBinding = fieldView.getDescriptor().getDataBindingNotNull(DataEntryFieldBindingDescriptor.class);
        final FieldType fieldType = dataBinding.getFieldType();
        if (fieldType.equals(FieldType.SUB_TAB_ID) || fieldType.equals(FieldType.PARENT_LINK_ID) || fieldType.equals(FieldType.CREATED_UPDATED_INFO)) {
            continue;
        }
        final Object dataEntryFieldValue = dataEntryWebuiTools.extractFieldValueForDataEntry(fieldView);
        final DataEntryFieldId dataEntryFieldId = dataEntryWebuiTools.computeDataEntryFieldId(fieldView);
        final boolean valueChanged = dataEntryRecord.setRecordField(dataEntryFieldId, userId, dataEntryFieldValue);
        refreshNeeded = refreshNeeded || valueChanged;
    }
    return refreshNeeded;
}
Also used : DataEntryFieldId(de.metas.dataentry.DataEntryFieldId) UserId(de.metas.user.UserId) IDocumentFieldView(de.metas.ui.web.window.model.IDocumentFieldView) FieldType(de.metas.dataentry.FieldType)

Aggregations

FieldType (de.metas.dataentry.FieldType)2 DataEntryFieldId (de.metas.dataentry.DataEntryFieldId)1 IntegerLookupValue (de.metas.ui.web.window.datatypes.LookupValue.IntegerLookupValue)1 DocumentFieldDescriptor (de.metas.ui.web.window.descriptor.DocumentFieldDescriptor)1 LookupDescriptor (de.metas.ui.web.window.descriptor.LookupDescriptor)1 IDocumentFieldView (de.metas.ui.web.window.model.IDocumentFieldView)1 UserId (de.metas.user.UserId)1 AdempiereException (org.adempiere.exceptions.AdempiereException)1