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;
}
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;
}
Aggregations