Enumeration en = comps.keys();
GridParams gridParams = new GridParams();
gridParams.getOtherGridParams().put(ApplicationConsts.COMPANY_CODE_SYS01,prodVO.getCompanyCodeSys01DOC23());
gridParams.getOtherGridParams().put(ApplicationConsts.WAREHOUSE_CODE,prodVO.getWarehouseCodeWar01DOC22());
gridParams.getOtherGridParams().put(ApplicationConsts.LOAD_ALL,Boolean.TRUE);
ItemAvailabilityVO availVO = null;
BigDecimal availability,altAvailability,delta;
String itemCode = null;
ArrayList list,availList;
AltComponentVO altVO = null;
ArrayList alternativeComps = new ArrayList();
ArrayList compsToRemove = new ArrayList();
ProdOrderComponentVO altComponentVO = null;
HashSet altCodes = null; // list of alternative component item codes...
BigDecimal altQty = null;
while(en.hasMoreElements()) {
itemCode = en.nextElement().toString();
componentVO = (ProdOrderComponentVO)comps.get(itemCode);
gridParams.getOtherGridParams().put(ApplicationConsts.ITEM_PK,new ItemPK(prodVO.getCompanyCodeSys01DOC23(),itemCode));
res = avail.loadItemAvailabilities(variant1Descriptions,variant2Descriptions,variant3Descriptions,variant4Descriptions,variant5Descriptions,gridParams,serverLanguageId,username,companiesList);
if (res.isError())
throw new Exception(res.getErrorMessage());
availList = new ArrayList(((VOListResponse)res).getRows());
componentVO.setAvailabilities(availList);
availability = new BigDecimal(0);
for(int i=0;i<availList.size();i++) {
availVO = (ItemAvailabilityVO)availList.get(i);
availability = availability.add(availVO.getAvailableQtyWAR03());
}
componentVO.setAvailableQty(availability);
if (componentVO.getQtyDOC24().doubleValue()>componentVO.getAvailableQty().doubleValue()) {
// check if there exist some alternative component...
res = bean.loadAltComponents(gridParams,serverLanguageId,username);
if (res.isError())
throw new Exception(res.getErrorMessage());
list = new ArrayList(((VOListResponse)res).getRows());
for(int i=0;i<list.size();i++) {
altVO = (AltComponentVO)list.get(i);
gridParams.getOtherGridParams().put(ApplicationConsts.ITEM_PK,new ItemPK(prodVO.getCompanyCodeSys01DOC23(),altVO.getItemCodeItm01ITM04()));
res = avail.loadItemAvailabilities(variant1Descriptions,variant2Descriptions,variant3Descriptions,variant4Descriptions,variant5Descriptions,gridParams,serverLanguageId,username,companiesList);
if (res.isError())
throw new Exception(res.getErrorMessage());
availList = new ArrayList(((VOListResponse)res).getRows());
altAvailability = new BigDecimal(0);
for(int j=0;j<availList.size();j++) {
availVO = (ItemAvailabilityVO)availList.get(j);
altAvailability = altAvailability.add(availVO.getAvailableQtyWAR03());
}
if (altAvailability.doubleValue()>0) {
altComponentVO = new ProdOrderComponentVO();
altComponentVO.setAvailabilities(availList);
altComponentVO.setAvailableQty(altAvailability);