use of de.metas.handlingunits.storage.EmptyHUListener in project metasfresh-webui-api by metasfresh.
the class WEBUI_PP_Order_M_Source_HU_IssueTuQty method doIt.
@Override
protected String doIt() throws Exception {
final PPOrderLineRow row = getSingleSelectedRow();
final List<I_M_Source_HU> sourceHus = retrieveActiveSourceHus(row);
if (sourceHus.isEmpty()) {
throw new AdempiereException("@NoSelection@");
}
final Map<Integer, I_M_Source_HU> huId2SourceHu = new HashMap<>();
final ImmutableList<I_M_HU> husThatAreFlaggedAsSource = sourceHus.stream().peek(sourceHu -> huId2SourceHu.put(sourceHu.getM_HU_ID(), sourceHu)).map(I_M_Source_HU::getM_HU).collect(ImmutableList.toImmutableList());
final HUsToNewTUsRequest request = HUsToNewTUsRequest.builder().sourceHUs(husThatAreFlaggedAsSource).qtyTU(qtyTU.intValue()).build();
EmptyHUListener emptyHUListener = EmptyHUListener.doBeforeDestroyed(hu -> {
if (huId2SourceHu.containsKey(hu.getM_HU_ID())) {
SourceHUsService.get().snapshotSourceHU(huId2SourceHu.get(hu.getM_HU_ID()));
}
}, "Create snapshot of source-HU before it is destroyed");
final List<I_M_HU> extractedTUs = HUTransformService.builder().emptyHUListener(emptyHUListener).build().husToNewTUs(request);
final PPOrderLinesView ppOrderView = getView();
final int ppOrderId = ppOrderView.getPP_Order_ID();
Services.get(IHUPPOrderBL.class).createIssueProducer().setTargetOrderBOMLinesByPPOrderId(ppOrderId).createDraftIssues(extractedTUs);
getView().invalidateAll();
ppOrderView.invalidateAll();
return MSG_OK;
}
use of de.metas.handlingunits.storage.EmptyHUListener in project metasfresh-webui-api by metasfresh.
the class WEBUI_PickingSlotsClearingView_TakeOutTUAndAddToLU method doIt.
@Override
protected String doIt() throws Exception {
final PickingSlotRow pickingSlotRow = getSingleSelectedPickingSlotRow();
Check.assume(pickingSlotRow.isTU(), "Picking slot HU shall be a TU: {}", pickingSlotRow);
final I_M_HU tuHU = InterfaceWrapperHelper.load(pickingSlotRow.getHuId(), I_M_HU.class);
final HUEditorRow packingHURow = getSingleSelectedPackingHUsRow();
Check.assume(packingHURow.isLU(), "Pack to HU shall be a LU: {}", packingHURow);
final I_M_HU luHU = packingHURow.getM_HU();
final BigDecimal qtyTU = BigDecimal.ONE;
final List<Integer> huIdsDestroyedCollector = new ArrayList<>();
HUTransformService.builder().emptyHUListener(EmptyHUListener.doBeforeDestroyed(hu -> huIdsDestroyedCollector.add(hu.getM_HU_ID()))).build().tuToExistingLU(tuHU, qtyTU, luHU);
// Remove from picking slots all destroyed HUs
pickingCandidateService.inactivateForHUIds(huIdsDestroyedCollector);
return MSG_OK;
}
Aggregations