Skip to content

Commit

Permalink
Avoid assumption on whether data-entry data exists (#10833)
Browse files Browse the repository at this point in the history
#10832
(cherry picked from commit 7953644)
  • Loading branch information
metas-ts committed Apr 6, 2021
1 parent f65ed55 commit 34b586a
Showing 1 changed file with 15 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import java.util.function.Function;

import org.adempiere.ad.trx.api.ITrxManager;
import org.adempiere.exceptions.AdempiereException;
import org.adempiere.util.lang.ITableRecordReference;
import org.adempiere.util.lang.impl.TableRecordReference;
import org.compiere.Adempiere;
Expand Down Expand Up @@ -110,7 +109,7 @@ private Optional<Document> retrieveDocumentIfExists(
final Function<DocumentId, Document> existingDocumentsSupplier = query.getExistingDocumentsSupplier();

final DetailId detailId = query.getEntityDescriptor().getDetailId();
final DataEntrySubTabId dataEntrySubTabId = extractDataEntrySubGroupId(detailId);
final DataEntrySubTabId dataEntrySubTabId = extractDataEntrySubTabId(detailId);
final TableRecordReference parentRecordReference = extractParentRecordReference(parentDocument);

final DataEntryRecordQuery dataEntryRecordQuery = DataEntryRecordQuery.builder()
Expand Down Expand Up @@ -172,7 +171,7 @@ private static DocumentId createDocumentId(
@NonNull final Document parentDocument)
{
final TableRecordReference parentRecordReference = extractParentRecordReference(parentDocument);
final DataEntrySubTabId subGroupId = extractDataEntrySubGroupId(entityDescriptor.getDetailId());
final DataEntrySubTabId subGroupId = extractDataEntrySubTabId(entityDescriptor.getDetailId());

return createDocumentId(subGroupId, parentRecordReference);
}
Expand Down Expand Up @@ -205,13 +204,13 @@ public void refresh(@NonNull final Document document)
private static DataEntryRecordQuery extractDataEntryRecordQuery(@NonNull final Document document)
{
final DetailId detailId = document.getEntityDescriptor().getDetailId();
final DataEntrySubTabId subGroupId = extractDataEntrySubGroupId(detailId);
final DataEntrySubTabId dataEntrySubTabId = extractDataEntrySubTabId(detailId);

final Document parentDocument = document.getParentDocument();
final TableRecordReference parentRecordReference = extractParentRecordReference(parentDocument);

return DataEntryRecordQuery.builder()
.dataEntrySubTabId(subGroupId)
.dataEntrySubTabId(dataEntrySubTabId)
.recordId(parentRecordReference.getRecord_ID())
.build();
}
Expand All @@ -236,19 +235,11 @@ public SaveResult save(@NonNull final Document document)
{
assertValidState(document);

final DataEntryRecord dataEntryRecord;
if (document.isNew())
{
dataEntryRecord = createDataEntryRecord(document);
}
else
{
final DataEntryRecordQuery dataEntryRecordQuery = extractDataEntryRecordQuery(document);
final DataEntryRecordQuery dataEntryRecordQuery = extractDataEntryRecordQuery(document);

dataEntryRecord = dataEntryRecordRepository
final DataEntryRecord dataEntryRecord = dataEntryRecordRepository
.getBy(dataEntryRecordQuery)
.orElseThrow(() -> new AdempiereException("Unable to retrieve dataEntryRecord for query=" + dataEntryRecordQuery));
}
.orElse(createDataEntryRecord(document));

boolean refreshNeeded = updateDataEntryRecord(document, dataEntryRecord);
dataEntryRecordRepository.save(dataEntryRecord);
Expand Down Expand Up @@ -294,15 +285,15 @@ private boolean updateDataEntryRecord(@NonNull final Document document, @NonNull

private static DataEntryRecord createDataEntryRecord(@NonNull final Document document)
{

final TableRecordReference parentReference = extractParentRecordReference(document.getParentDocument());

final DetailId detailId = document.getEntityDescriptor().getDetailId();
final DataEntrySubTabId dataEntrySubTabId = extractDataEntrySubGroupId(detailId);
final DataEntrySubTabId dataEntrySubTabId = extractDataEntrySubTabId(detailId);

final Document parentDocument = document.getParentDocument();
final TableRecordReference parentRecordReference = extractParentRecordReference(parentDocument);

return DataEntryRecord.builder()
.mainRecord(parentReference)
.dataEntrySubTabId(dataEntrySubTabId)
.mainRecord(parentRecordReference)
.build();
}

Expand All @@ -316,12 +307,12 @@ private static TableRecordReference extractParentRecordReference(@NonNull final
return parentReference;
}

private static DataEntrySubTabId extractDataEntrySubGroupId(@NonNull final DetailId detailId)
private static DataEntrySubTabId extractDataEntrySubTabId(@NonNull final DetailId detailId)
{
final int subGroupId = detailId.getIdInt();
final int subTabId = detailId.getIdInt();
Check.assume(detailId.getIdPrefix().equals(I_DataEntry_SubTab.Table_Name), "The given document.entityDescriptor.detailId needs to have prefix={}", I_DataEntry_SubTab.Table_Name);

final DataEntrySubTabId dataEntrySubTabId = DataEntrySubTabId.ofRepoId(subGroupId);
final DataEntrySubTabId dataEntrySubTabId = DataEntrySubTabId.ofRepoId(subTabId);
return dataEntrySubTabId;
}

Expand Down

0 comments on commit 34b586a

Please sign in to comment.