Search in sources :

Example 1 with DataEntryFieldId

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);
    }
}
Also used : DataEntryFieldId(de.metas.dataentry.DataEntryFieldId) ITranslatableString(de.metas.i18n.ITranslatableString) DataEntryListValueId(de.metas.dataentry.DataEntryListValueId)

Example 2 with DataEntryFieldId

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;
}
Also used : DataEntryFieldId(de.metas.dataentry.DataEntryFieldId) ITranslatableString(de.metas.i18n.ITranslatableString)

Example 3 with 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();
}
Also used : DataEntryFieldId(de.metas.dataentry.DataEntryFieldId)

Example 4 with DataEntryFieldId

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

DataEntryFieldId (de.metas.dataentry.DataEntryFieldId)4 ITranslatableString (de.metas.i18n.ITranslatableString)2 DataEntryListValueId (de.metas.dataentry.DataEntryListValueId)1 FieldType (de.metas.dataentry.FieldType)1 IDocumentFieldView (de.metas.ui.web.window.model.IDocumentFieldView)1 UserId (de.metas.user.UserId)1