diff --git a/ole-app/olefs/src/main/java/org/kuali/ole/oleng/service/OleNGMemorizeService.java b/ole-app/olefs/src/main/java/org/kuali/ole/oleng/service/OleNGMemorizeService.java index e2a8c0ed65..f889f3b2d3 100644 --- a/ole-app/olefs/src/main/java/org/kuali/ole/oleng/service/OleNGMemorizeService.java +++ b/ole-app/olefs/src/main/java/org/kuali/ole/oleng/service/OleNGMemorizeService.java @@ -2,6 +2,7 @@ import org.kuali.ole.coa.businessobject.Account; import org.kuali.ole.coa.businessobject.OleFundCode; +import org.kuali.ole.docstore.engine.service.storage.rdbms.pojo.ItemStatusRecord; import org.kuali.ole.module.purap.businessobject.ItemType; import org.kuali.ole.module.purap.businessobject.PurchaseOrderType; import org.kuali.ole.module.purap.document.service.OlePurapService; @@ -44,4 +45,5 @@ public interface OleNGMemorizeService { public List getVendorAccountInfo(String code); public List getAccount(String accountNumber); public List getFundCode(String fundCode); + public ItemStatusRecord fetchItemStatusByName(String itemStatusTypeName); } diff --git a/ole-app/olefs/src/main/java/org/kuali/ole/oleng/service/impl/OleNGMemorizeServiceImpl.java b/ole-app/olefs/src/main/java/org/kuali/ole/oleng/service/impl/OleNGMemorizeServiceImpl.java index 2a5090633e..97674eb9f1 100644 --- a/ole-app/olefs/src/main/java/org/kuali/ole/oleng/service/impl/OleNGMemorizeServiceImpl.java +++ b/ole-app/olefs/src/main/java/org/kuali/ole/oleng/service/impl/OleNGMemorizeServiceImpl.java @@ -9,6 +9,7 @@ import org.kuali.ole.coa.businessobject.Account; import org.kuali.ole.coa.businessobject.OleFundCode; import org.kuali.ole.docstore.common.util.BusinessObjectServiceHelperUtil; +import org.kuali.ole.docstore.engine.service.storage.rdbms.pojo.ItemStatusRecord; import org.kuali.ole.module.purap.businessobject.ItemType; import org.kuali.ole.module.purap.businessobject.PurchaseOrderTransmissionMethod; import org.kuali.ole.module.purap.businessobject.PurchaseOrderType; @@ -25,6 +26,7 @@ import org.kuali.ole.sys.businessobject.Building; import org.kuali.ole.sys.businessobject.Room; import org.kuali.ole.sys.context.SpringContext; +import org.kuali.ole.util.ItemUtil; import org.kuali.ole.utility.LocationUtil; import org.kuali.ole.vnd.businessobject.*; import org.kuali.ole.vnd.document.service.VendorService; @@ -52,6 +54,7 @@ public class OleNGMemorizeServiceImpl extends BusinessObjectServiceHelperUtil private OleDocstoreHelperService oleDocstoreHelperService; private VendorService vendorService; private OlePurapService olePurapService; + private ItemUtil itemUtil; @Override public OleNgCommonMemorizeService getOleNgCommonMemorizeService() { @@ -195,6 +198,11 @@ public List getFundCode(String fundCode) { return (List) getBusinessObjectService().findMatching(OleFundCode.class, fundCodeMap); } + @Memoize + public ItemStatusRecord fetchItemStatusByName(String itemStatusTypeName) { + return getItemUtil().fetchItemStatusByName(itemStatusTypeName); + } + @Override public LocationUtil getLocationUtil() { if(null == locationUtil){ @@ -227,4 +235,13 @@ public OlePurapService getOlePurapService() { return olePurapService; } + public ItemUtil getItemUtil() { + if(null == itemUtil) { + itemUtil = new ItemUtil(); + } + return itemUtil; + } + + + } diff --git a/ole-app/olefs/src/main/java/org/kuali/ole/oleng/util/OleNGPOHelperUtil.java b/ole-app/olefs/src/main/java/org/kuali/ole/oleng/util/OleNGPOHelperUtil.java index 05697d90d8..1b5fcb2d64 100644 --- a/ole-app/olefs/src/main/java/org/kuali/ole/oleng/util/OleNGPOHelperUtil.java +++ b/ole-app/olefs/src/main/java/org/kuali/ole/oleng/util/OleNGPOHelperUtil.java @@ -89,6 +89,7 @@ public Map> processReqAndPo(List recordDeta String bibProfileName = batchProcessProfile.getBibImportProfileForOrderImport(); oleOrderRecord.setBibImportProfileName(bibProfileName); oleOrderRecord.setRecordIndex(recordIndex); + getOleNGPOValidationUtil().setOleNGMemorizeService(createReqAndPOServiceHandler.getOleNGMemorizeService()); boolean valid = getOleNGPOValidationUtil().validateOleOrderRecord(oleOrderRecord, exchange, recordIndex); if(valid) { oleOrderRecords.add(oleOrderRecord); diff --git a/ole-app/olefs/src/main/java/org/kuali/ole/oleng/util/OleNGPOValidationUtil.java b/ole-app/olefs/src/main/java/org/kuali/ole/oleng/util/OleNGPOValidationUtil.java index 0e73a59c1b..920306a43a 100644 --- a/ole-app/olefs/src/main/java/org/kuali/ole/oleng/util/OleNGPOValidationUtil.java +++ b/ole-app/olefs/src/main/java/org/kuali/ole/oleng/util/OleNGPOValidationUtil.java @@ -3,7 +3,10 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.kuali.ole.Exchange; +import org.kuali.ole.docstore.engine.service.storage.rdbms.pojo.ItemStatusRecord; import org.kuali.ole.oleng.exception.ValidationException; +import org.kuali.ole.oleng.service.OleNGMemorizeService; +import org.kuali.ole.oleng.service.impl.OleNGMemorizeServiceImpl; import org.kuali.ole.pojo.OleBibRecord; import org.kuali.ole.pojo.OleOrderRecord; import org.kuali.ole.pojo.OleTxRecord; @@ -14,6 +17,7 @@ */ public class OleNGPOValidationUtil { private BatchUtil batchUtil; + private OleNGMemorizeService oleNGMemorizeService; public boolean validateOleOrderRecord(OleOrderRecord oleOrderRecord, Exchange exchange, Integer recordIndex) { boolean valid = true; @@ -159,12 +163,18 @@ private boolean validateNumberOfParts(OleTxRecord oleTxRecord, Exchange exchange private boolean validateItemStatus(OleTxRecord oleTxRecord, Exchange exchange, Integer recordIndex) { String itemStatus = oleTxRecord.getItemStatus(); - if (StringUtils.isBlank(itemStatus)){ - getBatchUtil().addOrderFaiureResponseToExchange( - new ValidationException("Item Status cannot be blank or null"), recordIndex, exchange); - return false; + if (StringUtils.isNotBlank(itemStatus)) { + ItemStatusRecord itemStatusRecord = getOleNGMemorizeService().fetchItemStatusByName(itemStatus); + if (null == itemStatusRecord) { + getBatchUtil().addOrderFaiureResponseToExchange( + new ValidationException("Invalid Item Status : " + itemStatus), recordIndex, exchange); + oleTxRecord.setItemStatus(null); + } else { + oleTxRecord.setItemStatus(itemStatusRecord.getCode()); + return true; + } } - return true; + return false; } private boolean validateOrganizationCode(OleTxRecord oleTxRecord, Exchange exchange, Integer recordIndex) { @@ -239,4 +249,15 @@ public BatchUtil getBatchUtil() { } return batchUtil; } + + public OleNGMemorizeService getOleNGMemorizeService() { + if(null == oleNGMemorizeService) { + oleNGMemorizeService = new OleNGMemorizeServiceImpl(); + } + return oleNGMemorizeService; + } + + public void setOleNGMemorizeService(OleNGMemorizeService oleNGMemorizeService) { + this.oleNGMemorizeService = oleNGMemorizeService; + } } diff --git a/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/util/ItemUtil.java b/ole-docstore/ole-docstore-engine/src/main/java/org/kuali/ole/util/ItemUtil.java similarity index 97% rename from ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/util/ItemUtil.java rename to ole-docstore/ole-docstore-engine/src/main/java/org/kuali/ole/util/ItemUtil.java index 94258c8efe..67fe05bd7b 100644 --- a/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/util/ItemUtil.java +++ b/ole-docstore/ole-docstore-engine/src/main/java/org/kuali/ole/util/ItemUtil.java @@ -1,4 +1,4 @@ -package org.kuali.ole.dsng.util; +package org.kuali.ole.util; import org.apache.commons.collections.CollectionUtils; import org.kuali.ole.docstore.common.util.BusinessObjectServiceHelperUtil; diff --git a/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/rest/handler/items/ItemStatusHandler.java b/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/rest/handler/items/ItemStatusHandler.java index 2fdb66d4b4..8b68edc576 100644 --- a/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/rest/handler/items/ItemStatusHandler.java +++ b/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/rest/handler/items/ItemStatusHandler.java @@ -8,7 +8,6 @@ import org.kuali.ole.docstore.engine.service.storage.rdbms.pojo.ItemRecord; import org.kuali.ole.docstore.engine.service.storage.rdbms.pojo.ItemStatusRecord; import org.kuali.ole.Exchange; -import org.kuali.ole.dsng.util.ItemUtil; import java.util.Iterator; import java.util.List; diff --git a/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/rest/handler/items/ItemTypeHandler.java b/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/rest/handler/items/ItemTypeHandler.java index 7030e22f77..1953780b94 100644 --- a/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/rest/handler/items/ItemTypeHandler.java +++ b/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/rest/handler/items/ItemTypeHandler.java @@ -8,7 +8,6 @@ import org.kuali.ole.docstore.engine.service.storage.rdbms.pojo.ItemRecord; import org.kuali.ole.docstore.engine.service.storage.rdbms.pojo.ItemTypeRecord; import org.kuali.ole.Exchange; -import org.kuali.ole.dsng.util.ItemUtil; import java.util.Iterator; import java.util.List; diff --git a/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/service/impl/OleDsNGMemorizeServiceImpl.java b/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/service/impl/OleDsNGMemorizeServiceImpl.java index c2082b03f1..12806c503a 100644 --- a/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/service/impl/OleDsNGMemorizeServiceImpl.java +++ b/ole-docstore/ole-docstore-webapp/src/main/java/org/kuali/ole/dsng/service/impl/OleDsNGMemorizeServiceImpl.java @@ -11,7 +11,7 @@ import org.kuali.ole.oleng.common.service.OleNgCommonMemorizeService; import org.kuali.ole.oleng.common.service.impl.OleNgCommonMemorizeServiceImpl; import org.kuali.ole.select.bo.OLEDonor; -import org.kuali.ole.utility.DonorUtil; +import org.kuali.ole.util.ItemUtil; import org.kuali.ole.utility.LocationUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;