use of de.metas.ui.web.window.datatypes.json.JSONLookupValue in project metasfresh-webui-api by metasfresh.
the class PurchaseRowFactory method buildRowFromPurchaseCandidate.
@Builder(builderMethodName = "rowFromPurchaseCandidateBuilder", builderClassName = "RowFromPurchaseCandidateBuilder")
private PurchaseRow buildRowFromPurchaseCandidate(@NonNull final PurchaseCandidate purchaseCandidate, @Nullable final VendorProductInfo vendorProductInfo, @NotNull final Date datePromised) {
final int bpartnerId = purchaseCandidate.getVendorBPartnerId();
final JSONLookupValue vendorBPartner = createBPartnerLookupValue(bpartnerId);
final JSONLookupValue product;
if (vendorProductInfo != null) {
product = createProductLookupValue(vendorProductInfo.getProductId(), vendorProductInfo.getProductNo(), vendorProductInfo.getProductName());
} else {
product = createProductLookupValue(purchaseCandidate.getProductId());
}
final String uom = createUOMLookupValueForProductId(product.getKeyAsInt());
final int processedPurchaseCandidateId = purchaseCandidate.isProcessed() ? purchaseCandidate.getPurchaseCandidateId() : 0;
return PurchaseRow.builder().rowId(PurchaseRowId.lineId(purchaseCandidate.getSalesOrderLineId(), bpartnerId, processedPurchaseCandidateId)).salesOrderId(purchaseCandidate.getSalesOrderId()).rowType(PurchaseRowType.LINE).product(product).uomOrAvailablility(uom).qtyToPurchase(purchaseCandidate.getQtyToPurchase()).purchasedQty(purchaseCandidate.getPurchasedQty()).datePromised(datePromised).vendorBPartner(vendorBPartner).purchaseCandidateId(purchaseCandidate.getPurchaseCandidateId()).orgId(purchaseCandidate.getOrgId()).warehouseId(purchaseCandidate.getWarehouseId()).readonly(purchaseCandidate.isProcessedOrLocked()).build();
}
use of de.metas.ui.web.window.datatypes.json.JSONLookupValue in project metasfresh-webui-api by metasfresh.
the class ASIRestController method complete.
@PostMapping(value = "/{asiDocId}/complete")
public JSONLookupValue complete(@PathVariable("asiDocId") final String asiDocIdStr) {
userSession.assertLoggedIn();
final DocumentId asiDocId = DocumentId.of(asiDocIdStr);
return Execution.callInNewExecution("complete", () -> asiRepo.complete(asiDocId)).transform(JSONLookupValue::ofLookupValue);
}
use of de.metas.ui.web.window.datatypes.json.JSONLookupValue in project metasfresh-webui-api by metasfresh.
the class PickingTerminalByOrderViewCustomizer method createOrderOrBPLocation.
private JSONLookupValue createOrderOrBPLocation(final ViewRow.Builder rowBuilder) {
// Grouping row
if (rowBuilder.isRootRow()) {
final JSONLookupValue orderLV = (JSONLookupValue) rowBuilder.getFieldValue(I_M_Packageable_V.COLUMNNAME_C_Order_ID);
final JSONLookupValue bpartnerLV = (JSONLookupValue) rowBuilder.getFieldValue(I_M_Packageable_V.COLUMNNAME_C_BPartner_ID);
return JSONLookupValue.concat(orderLV, bpartnerLV);
} else // Detail/included row
{
final JSONLookupValue bpLocationLV = (JSONLookupValue) rowBuilder.getFieldValue(I_M_Packageable_V.COLUMNNAME_C_BPartner_Location_ID);
return bpLocationLV;
}
}
use of de.metas.ui.web.window.datatypes.json.JSONLookupValue in project metasfresh-webui-api by metasfresh.
the class PickingTerminalByWarehouseAndProductViewCustomizer method customizeViewRow.
@Override
public void customizeViewRow(final ViewRow.Builder rowBuilder) {
final JSONLookupValue productOrBPartnerLV = createProductOrBPartnerFieldValue(rowBuilder);
rowBuilder.putFieldValue(FIELDNAME_ProductOrBPartner, productOrBPartnerLV);
}
use of de.metas.ui.web.window.datatypes.json.JSONLookupValue in project metasfresh-webui-api by metasfresh.
the class SqlHUEditorViewRepository method createHUEditorRow.
private HUEditorRow createHUEditorRow(@NonNull final I_M_HU hu, final int topLevelHUId) {
// final Stopwatch stopwatch = Stopwatch.createStarted();
final IHandlingUnitsBL handlingUnitsBL = Services.get(IHandlingUnitsBL.class);
final boolean aggregatedTU = handlingUnitsBL.isAggregateHU(hu);
final String huUnitTypeCode = handlingUnitsBL.getHU_UnitType(hu);
final HUEditorRowType huRecordType;
if (aggregatedTU) {
huRecordType = HUEditorRowType.TU;
} else {
huRecordType = HUEditorRowType.ofHU_UnitType(huUnitTypeCode);
}
final String huUnitTypeDisplayName = huRecordType.getName();
final JSONLookupValue huUnitTypeLookupValue = JSONLookupValue.of(huUnitTypeCode, huUnitTypeDisplayName);
final JSONLookupValue huStatus = createHUStatusLookupValue(hu);
final boolean processed = rowProcessedPredicate.isProcessed(hu);
final int huId = hu.getM_HU_ID();
final HUEditorRowId rowId = HUEditorRowId.ofHU(huId, topLevelHUId);
final HUEditorRow.Builder huEditorRow = HUEditorRow.builder(windowId).setRowId(rowId).setType(huRecordType).setTopLevel(topLevelHUId <= 0).setProcessed(processed).setBPartnerId(hu.getC_BPartner_ID()).setAttributesProvider(attributesProvider).setCode(hu.getValue()).setHUUnitType(huUnitTypeLookupValue).setHUStatus(huStatus).setPackingInfo(extractPackingInfo(hu, huRecordType));
// Acquire Best Before Date if required
if (showBestBeforeDate) {
huEditorRow.setBestBeforeDate(extractBestBeforeDate(attributesProvider, rowId));
}
// Locator
if (showLocator) {
huEditorRow.setLocator(createLocatorLookupValue(hu.getM_Locator_ID()));
}
//
// Product/UOM/Qty if there is only one product stored
final IHUProductStorage singleProductStorage = getSingleProductStorage(hu);
if (singleProductStorage != null) {
huEditorRow.setProduct(createProductLookupValue(singleProductStorage.getM_Product())).setUOM(createUOMLookupValue(singleProductStorage.getC_UOM())).setQtyCU(singleProductStorage.getQty());
}
//
// Included HUs
final int topLevelHUIdEffective = topLevelHUId > 0 ? topLevelHUId : huId;
if (aggregatedTU) {
final IHUStorageFactory storageFactory = handlingUnitsBL.getStorageFactory();
storageFactory.getStorage(hu).getProductStorages().stream().map(huStorage -> createHUEditorRow(huId, topLevelHUIdEffective, huStorage, processed)).forEach(huEditorRow::addIncludedRow);
} else if (X_M_HU_PI_Version.HU_UNITTYPE_LoadLogistiqueUnit.equals(huUnitTypeCode)) {
final IHandlingUnitsDAO handlingUnitsDAO = Services.get(IHandlingUnitsDAO.class);
handlingUnitsDAO.retrieveIncludedHUs(hu).stream().map(includedHU -> createHUEditorRow(includedHU, topLevelHUIdEffective)).forEach(huEditorRow::addIncludedRow);
} else if (X_M_HU_PI_Version.HU_UNITTYPE_TransportUnit.equals(huUnitTypeCode)) {
final IHandlingUnitsDAO handlingUnitsDAO = Services.get(IHandlingUnitsDAO.class);
final IHUStorageFactory storageFactory = handlingUnitsBL.getStorageFactory();
handlingUnitsDAO.retrieveIncludedHUs(hu).stream().map(includedVHU -> storageFactory.getStorage(includedVHU)).flatMap(vhuStorage -> vhuStorage.getProductStorages().stream()).map(vhuProductStorage -> createHUEditorRow(huId, topLevelHUIdEffective, vhuProductStorage, processed)).forEach(huEditorRow::addIncludedRow);
} else if (X_M_HU_PI_Version.HU_UNITTYPE_VirtualPI.equals(huUnitTypeCode)) {
// do nothing
} else {
throw new HUException("Unknown HU_UnitType=" + huUnitTypeCode + " for " + hu);
}
final HUEditorRow huEditorRowBuilt = huEditorRow.build();
return huEditorRowBuilt;
}
Aggregations