use of de.metas.dataentry.DataEntryFieldId in project metasfresh-webui-api by metasfresh.
the class DataEntryWebuiTools method extractDataEntryValueForField.
/**
* Extracts/converts a data entry value for the webui.
*/
public Object extractDataEntryValueForField(@NonNull final DataEntryRecord dataEntryRecord, @NonNull final DocumentFieldDescriptor fieldDescriptor) {
final DataEntryFieldBindingDescriptor dataBinding = fieldDescriptor.getDataBindingNotNull(DataEntryFieldBindingDescriptor.class);
final DataEntryFieldId dataEntryFieldId = dataBinding.getDataEntryFieldId();
switch(dataBinding.getFieldType()) {
case CREATED_UPDATED_INFO:
final ITranslatableString trlString = extractCreatedUpdatedInfo(dataEntryRecord, dataEntryFieldId);
return trlString.translate(Env.getAD_Language());
case PARENT_LINK_ID:
return dataEntryRecord.getMainRecord().getRecord_ID();
case SUB_TAB_ID:
return dataEntryRecord.getDataEntrySubTabId().getRepoId();
case LIST:
final DataEntryListValueId dataEntryListValueId = (DataEntryListValueId) dataEntryRecord.getFieldValue(dataEntryFieldId).orElse(null);
final DataEntryListValueDataSourceFetcher fetcher = (DataEntryListValueDataSourceFetcher) fieldDescriptor.getLookupDescriptor().get().getLookupDataSourceFetcher();
return fetcher.getLookupForForListValueId(dataEntryListValueId);
default:
return dataEntryRecord.getFieldValue(dataEntryFieldId).orElse(null);
}
}
use of de.metas.dataentry.DataEntryFieldId in project metasfresh-webui-api by metasfresh.
the class DataEntryWebuiTools method computeDataEntryFieldId.
public DataEntryFieldId computeDataEntryFieldId(@NonNull final IDocumentFieldView field) {
final String fieldName = field.getFieldName();
final DataEntryFieldId dataEntryFieldId = DataEntryFieldId.ofRepoId(Integer.parseInt(fieldName));
return dataEntryFieldId;
}
use of de.metas.dataentry.DataEntryFieldId in project metasfresh-webui-api by metasfresh.
the class DataEntryTabLoaderTest method createSubTab.
private static DataEntrySubTab createSubTab(final int subTabNo) {
final String idPrefix = "1" + subTabNo;
final DataEntryFieldId dataEntryListFieldId = DataEntryFieldId.ofRepoId(parseInt(idPrefix + "23"));
return DataEntrySubTab.builder().id(DataEntrySubTabId.ofRepoId(parseInt(idPrefix))).internalName("dataEntrySubTab_internalName").caption(TranslatableStrings.constant("dataEntrySubTab" + subTabNo + "_caption")).description(TranslatableStrings.constant("dataEntrySubTab" + subTabNo + "_description")).section(DataEntrySection.builder().id(DataEntrySectionId.ofRepoId(parseInt(idPrefix + "1"))).caption(TranslatableStrings.constant("dataEntrySection" + subTabNo + "1 - section with 2 lines. " + "The 1st line has 1 field, the 2nd line has 2 fields. " + "Expecation: 1 elementTab with columnCount=2; 4 elementLines, the 2nd one being empty")).description(TranslatableStrings.constant("dataEntrySection1_description")).internalName("dataEntrySection1_internalName").initiallyClosed(false).line(DataEntryLine.builder().field(DataEntryField.builder().id(DataEntryFieldId.ofRepoId(parseInt(idPrefix + "11"))).caption(TranslatableStrings.constant("textField" + subTabNo + "1_caption")).description(TranslatableStrings.constant("textField" + subTabNo + "1_description")).type(FieldType.TEXT).build()).build()).line(DataEntryLine.builder().field(DataEntryField.builder().id(DataEntryFieldId.ofRepoId(parseInt(idPrefix + "12"))).caption(TranslatableStrings.constant("longTextField" + subTabNo + "1_caption")).description(TranslatableStrings.constant("longTextField1_description")).type(FieldType.LONG_TEXT).build()).field(DataEntryField.builder().id(DataEntryFieldId.ofRepoId(parseInt(idPrefix + "13"))).caption(TranslatableStrings.constant("numberField" + subTabNo + "1_caption")).description(TranslatableStrings.constant("numberField" + subTabNo + "1_description")).type(FieldType.NUMBER).build()).build()).build()).section(DataEntrySection.builder().id(DataEntrySectionId.ofRepoId(parseInt(idPrefix + "2"))).caption(TranslatableStrings.constant("dataEntrySection" + subTabNo + "2_caption")).description(TranslatableStrings.constant("dataEntrySection" + subTabNo + "2 - section with one line and 3 fields")).internalName("dataEntrySection2_internalName").initiallyClosed(true).line(DataEntryLine.builder().field(DataEntryField.builder().id(DataEntryFieldId.ofRepoId(parseInt(idPrefix + "21"))).caption(TranslatableStrings.constant("dateField" + subTabNo + "1_caption")).description(TranslatableStrings.constant("dateField" + subTabNo + "1_description")).type(FieldType.DATE).build()).field(DataEntryField.builder().id(DataEntryFieldId.ofRepoId(parseInt(idPrefix + "22"))).caption(TranslatableStrings.constant("yesNoField" + subTabNo + "1_caption")).description(TranslatableStrings.constant("yesNoField" + subTabNo + "1_description")).type(FieldType.YESNO).build()).field(DataEntryField.builder().id(dataEntryListFieldId).caption(TranslatableStrings.constant("listField" + subTabNo + "1_caption")).description(TranslatableStrings.constant("listField" + subTabNo + "1_description")).type(FieldType.LIST).listValue(DataEntryListValue.builder().id(DataEntryListValueId.ofRepoId(parseInt(idPrefix + "231"))).name(TranslatableStrings.constant("listValue" + subTabNo + "1_name")).description(TranslatableStrings.constant("listValue" + subTabNo + "1_description")).build()).listValue(DataEntryListValue.builder().id(DataEntryListValueId.ofRepoId(parseInt(idPrefix + "232"))).name(TranslatableStrings.constant("listValue" + subTabNo + "2_name")).description(TranslatableStrings.constant("listValue" + subTabNo + "2_description")).build()).build()).build()).build()).build();
}
use of de.metas.dataentry.DataEntryFieldId 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