Skip to content

Commit

Permalink
fix reverse log logic
Browse files Browse the repository at this point in the history
  • Loading branch information
cp-ps committed Apr 24, 2024
1 parent 0191753 commit bca14a5
Show file tree
Hide file tree
Showing 19 changed files with 56 additions and 91 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -195,14 +195,14 @@ public InterimInvoiceLineLog(
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
final TableRecordReference invoiceLineRef = handleLogsRequest.getTableRecordReference();
final TableRecordReference invoiceLineRef = createLogRequest.getRecordRef();
final I_C_InvoiceLine invoiceLineRecord = invoiceBL.getLineById(InvoiceLineId.ofRepoId(invoiceLineRef.getRecordIdAssumingTableName(I_C_InvoiceLine.Table_Name)));

final Quantity quantity = contractLogDAO.retrieveQuantityFromExistingLog(
ModularContractLogQuery.builder()
.flatrateTermId(handleLogsRequest.getContractId())
.flatrateTermId(createLogRequest.getContractId())
.referenceSet(TableRecordReferenceSet.of(invoiceLineRef))
.contractType(LogEntryContractType.INTERIM)
.build());
Expand All @@ -214,13 +214,10 @@ public InterimInvoiceLineLog(
return ExplainedOptional.of(
LogEntryReverseRequest.builder()
.referencedModel(invoiceLineRef)
.flatrateTermId(handleLogsRequest.getContractId())
.flatrateTermId(createLogRequest.getContractId())
.description(description)
.logEntryContractType(LogEntryContractType.INTERIM)
.contractModuleId(handleLogsRequest.getContractInfo()
.getModularContractSettings()
.getModuleConfigOrError(handleLogsRequest.getComputingMethodType(), productId)
.getId().getModularContractModuleId())
.contractModuleId(createLogRequest.getModuleConfig().getId().getModularContractModuleId())
.build()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,22 +134,14 @@ class PurchaseOrderLineLog implements IModularContractLogHandler
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
final TableRecordReference recordRef = handleLogsRequest.getTableRecordReference();
final I_C_OrderLine orderLine = orderLineBL.getOrderLineById(recordRef.getIdAssumingTableName(getSupportedTableName(),
OrderLineId::ofRepoId));
final ProductId productId = ProductId.ofRepoId(orderLine.getM_Product_ID());

return ExplainedOptional.of(LogEntryReverseRequest.builder()
.referencedModel(handleLogsRequest.getTableRecordReference())
.flatrateTermId(handleLogsRequest.getContractId())
.referencedModel(createLogRequest.getRecordRef())
.flatrateTermId(createLogRequest.getContractId())
.description(null)
.logEntryContractType(LogEntryContractType.MODULAR_CONTRACT)
.contractModuleId(handleLogsRequest.getContractInfo()
.getModularContractSettings()
.getModuleConfigOrError(handleLogsRequest.getComputingMethodType(), productId)
.getId().getModularContractModuleId())
.contractModuleId(createLogRequest.getModuleConfig().getId().getModularContractModuleId())
.build());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,9 @@ public ExplainedOptional<LogEntryCreateRequest> createLogEntryCreateRequest(
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final IModularContractLogHandler.HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final IModularContractLogHandler.CreateLogRequest createLogRequest)
{
final TableRecordReference recordRef = handleLogsRequest.getTableRecordReference();
final TableRecordReference recordRef = createLogRequest.getRecordRef();
final I_M_InventoryLine inventoryLine = inventoryBL.getLineById(InventoryLineId.ofRepoId(recordRef.getRecordIdAssumingTableName(I_M_InventoryLine.Table_Name)));
final I_M_Inventory inventory = inventoryBL.getById(InventoryId.ofRepoId(inventoryLine.getM_Inventory_ID()));

Expand All @@ -162,16 +162,12 @@ public ExplainedOptional<LogEntryCreateRequest> createLogEntryCreateRequest(
return ExplainedOptional.emptyBecause(MessageFormat.format("InventoryId: {0} | The enqueued inventory is a reversal, the log entries are created only for the reversed inventory",
inventory.getM_Inventory_ID()));
}
final ProductId productId = ProductId.ofRepoId(inventoryLine.getM_Product_ID());

return ExplainedOptional.of(LogEntryReverseRequest.builder()
.referencedModel(recordRef)
.flatrateTermId(handleLogsRequest.getContractId())
.flatrateTermId(createLogRequest.getContractId())
.logEntryContractType(LogEntryContractType.MODULAR_CONTRACT)
.contractModuleId(handleLogsRequest.getContractInfo()
.getModularContractSettings()
.getModuleConfigOrError(handleLogsRequest.getComputingMethodType(), productId)
.getId().getModularContractModuleId())
.contractModuleId(createLogRequest.getModuleConfig().getId().getModularContractModuleId())
.build());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ public ExplainedOptional<LogEntryCreateRequest> createLogEntryCreateRequest(
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final IModularContractLogHandler.HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final IModularContractLogHandler.CreateLogRequest createLogRequest)
{
throw new UnsupportedOperationException();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ class SalesOrderLineProFormaPOLogHandler implements IModularContractLogHandler
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
throw new AdempiereException(MSG_ERROR_DOC_ACTION_UNSUPPORTED);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ public boolean applies(@NonNull final CreateLogRequest request)
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
throw new UnsupportedOperationException();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,13 +147,13 @@ class SOLineForPOLogHandler implements IModularContractLogHandler
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
final TableRecordReference recordRef = handleLogsRequest.getTableRecordReference();
final TableRecordReference recordRef = createLogRequest.getRecordRef();
final I_C_OrderLine orderLine = orderLineBL.getOrderLineById(OrderLineId.ofRepoId(recordRef.getRecordIdAssumingTableName(getSupportedTableName())));

final Quantity quantity = contractLogDAO.retrieveQuantityFromExistingLog(ModularContractLogQuery.builder()
.flatrateTermId(handleLogsRequest.getContractId())
.flatrateTermId(createLogRequest.getContractId())
.referenceSet(TableRecordReferenceSet.of(recordRef))
.build());
final ProductId productId = ProductId.ofRepoId(orderLine.getM_Product_ID());
Expand All @@ -163,13 +163,10 @@ class SOLineForPOLogHandler implements IModularContractLogHandler
return ExplainedOptional.of(
LogEntryReverseRequest.builder()
.referencedModel(recordRef)
.flatrateTermId(handleLogsRequest.getContractId())
.flatrateTermId(createLogRequest.getContractId())
.description(description)
.logEntryContractType(LogEntryContractType.MODULAR_CONTRACT)
.contractModuleId(handleLogsRequest.getContractInfo()
.getModularContractSettings()
.getModuleConfigOrError(handleLogsRequest.getComputingMethodType(), productId)
.getId().getModularContractModuleId())
.contractModuleId(createLogRequest.getModuleConfig().getId().getModularContractModuleId())
.build());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,9 @@ class ShipmentLineForPOLogHandler implements IModularContractLogHandler
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
final TableRecordReference recordRef = handleLogsRequest.getTableRecordReference();
final TableRecordReference recordRef = createLogRequest.getRecordRef();
final I_M_InOutLine inOutLineRecord = inOutBL.getLineByIdInTrx(InOutLineId.ofRepoId(recordRef.getRecordIdAssumingTableName(I_M_InOutLine.Table_Name)));

final ProductId productId = ProductId.ofRepoId(inOutLineRecord.getM_Product_ID());
Expand All @@ -146,13 +146,10 @@ class ShipmentLineForPOLogHandler implements IModularContractLogHandler

return ExplainedOptional.of(LogEntryReverseRequest.builder()
.referencedModel(recordRef)
.flatrateTermId(handleLogsRequest.getContractId())
.flatrateTermId(createLogRequest.getContractId())
.description(description)
.logEntryContractType(LogEntryContractType.MODULAR_CONTRACT)
.contractModuleId(handleLogsRequest.getContractInfo()
.getModularContractSettings()
.getModuleConfigOrError(handleLogsRequest.getComputingMethodType(), productId)
.getId().getModularContractModuleId())
.contractModuleId(createLogRequest.getModuleConfig().getId().getModularContractModuleId())
.build());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ public String getSupportedTableName()
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
throw new AdempiereException(MSG_ERROR_DOC_ACTION_UNSUPPORTED);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,14 +159,14 @@ private static Quantity extractQtyEntered(final @NonNull I_C_InvoiceLine invoice
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
final TableRecordReference invoiceLineRef = handleLogsRequest.getTableRecordReference();
final TableRecordReference invoiceLineRef = createLogRequest.getRecordRef();
final I_C_InvoiceLine invoiceLine = invoiceBL.getLineById(InvoiceLineId.ofRepoId(invoiceLineRef.getRecordIdAssumingTableName(getSupportedTableName())));

final Quantity quantity = contractLogDAO.retrieveQuantityFromExistingLog(
ModularContractLogQuery.builder()
.flatrateTermId(handleLogsRequest.getContractId())
.flatrateTermId(createLogRequest.getContractId())
.referenceSet(TableRecordReferenceSet.of(invoiceLineRef))
.contractType(LogEntryContractType.MODULAR_CONTRACT)
.build());
Expand All @@ -178,13 +178,10 @@ private static Quantity extractQtyEntered(final @NonNull I_C_InvoiceLine invoice
return ExplainedOptional.of(
LogEntryReverseRequest.builder()
.referencedModel(invoiceLineRef)
.flatrateTermId(handleLogsRequest.getContractId())
.flatrateTermId(createLogRequest.getContractId())
.description(description)
.logEntryContractType(LogEntryContractType.MODULAR_CONTRACT)
.contractModuleId(handleLogsRequest.getContractInfo()
.getModularContractSettings()
.getModuleConfigOrError(handleLogsRequest.getComputingMethodType(), productId)
.getId().getModularContractModuleId())
.contractModuleId(createLogRequest.getModuleConfig().getId().getModularContractModuleId())
.build()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ class SOLineForSOLogHandler implements IModularContractLogHandler
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
throw new UnsupportedOperationException();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ class SalesProFormaModularContractLogsHandler implements IModularContractLogHand
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
throw new AdempiereException(MSG_ERROR_DOC_ACTION_UNSUPPORTED);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ class SalesOrderLineProFormaLogHandler implements IModularContractLogHandler

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(
@NonNull final HandleLogsRequest handleLogsRequest)
@NonNull final CreateLogRequest createLogRequest)
{
throw new AdempiereException(MSG_ERROR_DOC_ACTION_UNSUPPORTED);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,15 +148,15 @@ class ShipmentLineForSOLogHandler implements IModularContractLogHandler
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final HandleLogsRequest handleLogsRequest)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull final CreateLogRequest createLogRequest)
{
final TableRecordReference recordRef = handleLogsRequest.getTableRecordReference();
final TableRecordReference recordRef = createLogRequest.getRecordRef();
final I_M_InOutLine inOutLineRecord = inOutBL.getLineByIdInTrx(InOutLineId.ofRepoId(recordRef.getRecordIdAssumingTableName(I_M_InOutLine.Table_Name)));

final TableRecordReference inOutLineRef = TableRecordReference.of(I_M_InOutLine.Table_Name, inOutLineRecord.getM_InOutLine_ID());

final Quantity quantity = contractLogDAO.retrieveQuantityFromExistingLog(ModularContractLogQuery.builder()
.flatrateTermId(handleLogsRequest.getContractId())
.flatrateTermId(createLogRequest.getContractId())
.referenceSet(TableRecordReferenceSet.of(inOutLineRef))
.build());

Expand All @@ -167,13 +167,10 @@ class ShipmentLineForSOLogHandler implements IModularContractLogHandler

return ExplainedOptional.of(LogEntryReverseRequest.builder()
.referencedModel(recordRef)
.flatrateTermId(handleLogsRequest.getContractId())
.flatrateTermId(createLogRequest.getContractId())
.description(description)
.logEntryContractType(LogEntryContractType.MODULAR_CONTRACT)
.contractModuleId(handleLogsRequest.getContractInfo()
.getModularContractSettings()
.getModuleConfigOrError(handleLogsRequest.getComputingMethodType(), productId)
.getId().getModularContractModuleId())
.contractModuleId(createLogRequest.getModuleConfig().getId().getModularContractModuleId())
.build());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public interface IModularContractLogHandler
ExplainedOptional<LogEntryCreateRequest> createLogEntryCreateRequest(@NonNull CreateLogRequest createLogRequest);

@NonNull
ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull HandleLogsRequest handleLogsRequest);
ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(@NonNull CreateLogRequest createLogRequest);

@NonNull
IComputingMethodHandler getComputingMethod();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.function.Supplier;

import static de.metas.contracts.modular.ModularContract_Constants.MSG_ERROR_PROCESSED_LOGS_CANNOT_BE_RECOMPUTED;

Expand Down Expand Up @@ -128,7 +127,7 @@ private void handleLogs(

for (final ModuleConfig moduleConfig : moduleConfigs)
{
final Supplier<IModularContractLogHandler.CreateLogRequest> buildCreateRequest = () -> IModularContractLogHandler.CreateLogRequest
final IModularContractLogHandler.CreateLogRequest createLogRequest = IModularContractLogHandler.CreateLogRequest
.builder()
.handleLogsRequest(request)
.modularContractSettings(settings)
Expand All @@ -137,13 +136,13 @@ private void handleLogs(
.typeId(moduleConfig.getModularContractType().getId())
.build();

if (handler.applies(buildCreateRequest.get()))
if (handler.applies(createLogRequest))
{
switch (action)
{
case CREATE -> createLogs(handler, buildCreateRequest.get());
case REVERSE -> reverseLogs(handler, request);
case RECOMPUTE -> recreateLogs(handler, buildCreateRequest.get());
case CREATE -> createLogs(handler, createLogRequest);
case REVERSE -> reverseLogs(handler, createLogRequest);
case RECOMPUTE -> recreateLogs(handler, createLogRequest);
default -> throw new AdempiereException("Unknown action: " + action);
}
}
Expand Down Expand Up @@ -182,7 +181,7 @@ private void createLogs(

private void reverseLogs(
@NonNull final IModularContractLogHandler handler,
@NonNull final IModularContractLogHandler.HandleLogsRequest request)
@NonNull final IModularContractLogHandler.CreateLogRequest request)
{
handler.createLogEntryReverseRequest(request)
.ifPresent(contractLogDAO::reverse)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,9 +133,9 @@ public abstract class AbstractMaterialReceiptLogHandler implements IModularContr
}

@Override
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(final @NonNull IModularContractLogHandler.HandleLogsRequest request)
public @NonNull ExplainedOptional<LogEntryReverseRequest> createLogEntryReverseRequest(final @NonNull IModularContractLogHandler.CreateLogRequest request)
{
final InOutLineId inOutLineId = InOutLineId.ofRepoId(request.getTableRecordReference().getRecordIdAssumingTableName(getSupportedTableName()));
final InOutLineId inOutLineId = InOutLineId.ofRepoId(request.getRecordRef().getRecordIdAssumingTableName(getSupportedTableName()));
final I_M_InOutLine inOutLineRecord = inOutBL.getLineByIdInTrx(inOutLineId);

final Quantity quantity = inOutBL.getQtyEntered(inOutLineRecord);
Expand All @@ -145,14 +145,11 @@ public abstract class AbstractMaterialReceiptLogHandler implements IModularContr
final String description = msgBL.getBaseLanguageMsg(MSG_ON_REVERSE_DESCRIPTION, productName, quantity);

return ExplainedOptional.of(LogEntryReverseRequest.builder()
.referencedModel(request.getTableRecordReference())
.referencedModel(request.getRecordRef())
.flatrateTermId(request.getContractId())
.description(description)
.logEntryContractType(getLogEntryContractType())
.contractModuleId(request.getContractInfo()
.getModularContractSettings()
.getModuleConfigOrError(request.getComputingMethodType(), productId)
.getId().getModularContractModuleId())
.contractModuleId(request.getModuleConfig().getId().getModularContractModuleId())
.build());
}
}
Loading

0 comments on commit bca14a5

Please sign in to comment.