Skip to content

Commit

Permalink
Merge pull request #720 from metasfresh/gh3079
Browse files Browse the repository at this point in the history
Warehouse picking group
  • Loading branch information
teosarca authored Dec 5, 2017
2 parents c9bc543 + 8b2c9d5 commit 9363c24
Showing 1 changed file with 21 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,10 @@
import de.metas.material.dispo.client.repository.AvailableStockResult;
import de.metas.material.dispo.client.repository.AvailableStockResult.Group;
import de.metas.material.dispo.client.repository.AvailableStockService;
import de.metas.material.dispo.commons.repository.MaterialQuery;
import de.metas.material.dispo.commons.repository.MaterialQuery.MaterialQueryBuilder;
import de.metas.material.dispo.commons.repository.StockQuery;
import de.metas.material.dispo.commons.repository.StockQuery.StockQueryBuilder;
import de.metas.material.event.commons.ProductDescriptor;
import de.metas.material.event.commons.StorageAttributesKey;
import de.metas.product.model.I_M_Product;
import de.metas.quantity.Quantity;
import de.metas.ui.web.document.filter.sql.SqlParamsCollector;
Expand Down Expand Up @@ -443,13 +444,13 @@ private final LookupValuesList explodeByStorageRecords(
return productLookupValues;
}

final MaterialQueryBuilder materialQueryBuilder = MaterialQuery.builder();
addStorageAttributeKeysToQueryBuilder(materialQueryBuilder);
final StockQueryBuilder stockQueryBuilder = StockQuery.builder();
addStorageAttributeKeysToQueryBuilder(stockQueryBuilder);

materialQueryBuilder.productIds(productLookupValues.getKeysAsInt());
stockQueryBuilder.productIds(productLookupValues.getKeysAsInt());

// invoke the query
final AvailableStockResult availableStock = availableStockService.retrieveAvailableStock(materialQueryBuilder.build());
final AvailableStockResult availableStock = availableStockService.retrieveAvailableStock(stockQueryBuilder.build());
final List<Group> availableStockGroups = availableStock.getGroups();

// process the query's result into those explodedProductValues
Expand All @@ -468,15 +469,15 @@ private boolean isAvailableStockQueryActivated()
return stockQueryActivated;
}

private void addStorageAttributeKeysToQueryBuilder(@NonNull final MaterialQueryBuilder materialQueryBuilder)
private void addStorageAttributeKeysToQueryBuilder(@NonNull final StockQueryBuilder stockQueryBuilder)
{
final ISysConfigBL sysConfigBL = Services.get(ISysConfigBL.class);
final int clientId = Env.getAD_Client_ID(Env.getCtx());
final int orgId = Env.getAD_Org_ID(Env.getCtx());

final String storageAttributesKeys = sysConfigBL.getValue(
SYSCONFIG_PRODUCT_LOOKUP_DESCRIPTOR_STORAGE_ATTRIBUTES_KEYS,
ProductDescriptor.STORAGE_ATTRIBUTES_KEY_ALL,
ProductDescriptor.STORAGE_ATTRIBUTES_KEY_ALL.getAsString(),
clientId, orgId);

final Splitter splitter = Splitter
Expand All @@ -485,7 +486,18 @@ private void addStorageAttributeKeysToQueryBuilder(@NonNull final MaterialQueryB
.omitEmptyStrings();
for (final String storageAttributesKey : splitter.splitToList(storageAttributesKeys))
{
materialQueryBuilder.storageAttributesKey(storageAttributesKey);
if ("<ALL_STORAGE_ATTRIBUTES_KEYS>".equals(storageAttributesKey))
{
stockQueryBuilder.storageAttributesKey(ProductDescriptor.STORAGE_ATTRIBUTES_KEY_ALL);
}
else if ("<OTHER_STORAGE_ATTRIBUTES_KEYS>".equals(storageAttributesKey))
{
stockQueryBuilder.storageAttributesKey(ProductDescriptor.STORAGE_ATTRIBUTES_KEY_OTHER);
}
else
{
stockQueryBuilder.storageAttributesKey(StorageAttributesKey.ofString(storageAttributesKey));
}
}
}

Expand Down

0 comments on commit 9363c24

Please sign in to comment.