blob: 522ab63180e31d2a9e3a67280b51f4cf410663be [file] [log] [blame]
/*******************************************************************************
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*******************************************************************************/
package org.ofbiz.shipment.verify;
import java.math.BigDecimal;
import java.util.Locale;
import java.util.Map;
import javolution.util.FastMap;
import org.ofbiz.base.util.GeneralException;
import org.ofbiz.base.util.UtilGenerics;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.service.DispatchContext;
import org.ofbiz.service.ServiceUtil;
public class VerifyPickServices {
private static BigDecimal ZERO = BigDecimal.ZERO;
public static Map<String, Object> verifySingleItem(DispatchContext dctx, Map<String, ? extends Object> context) {
Locale locale = (Locale) context.get("locale");
VerifyPickSession pickSession = (VerifyPickSession) context.get("verifyPickSession");
String orderId = (String) context.get("orderId");
String shipGroupSeqId = (String) context.get("shipGroupSeqId");
String productId = (String) context.get("productId");
String originGeoId = (String) context.get("originGeoId");
BigDecimal quantity = (BigDecimal) context.get("quantity");
if (quantity != null) {
try {
pickSession.createRow(orderId, null, shipGroupSeqId, productId, originGeoId, quantity, locale);
} catch (GeneralException e) {
return ServiceUtil.returnError(e.getMessage());
}
}
return ServiceUtil.returnSuccess();
}
public static Map<String, Object> verifyBulkItem(DispatchContext dctx, Map<String, ? extends Object> context) {
Locale locale = (Locale) context.get("locale");
VerifyPickSession pickSession = (VerifyPickSession) context.get("verifyPickSession");
String orderId = (String) context.get("orderId");
String shipGroupSeqId = (String) context.get("shipGroupSeqId");
Map<String, ?> selectedMap = UtilGenerics.checkMap(context.get("selectedMap"));
Map<String, String> itemMap = UtilGenerics.checkMap(context.get("itemMap"));
Map<String, String> productMap = UtilGenerics.checkMap(context.get("productMap"));
Map<String, String> originGeoIdMap = UtilGenerics.checkMap(context.get("originGeoIdMap"));
Map<String, String> quantityMap = UtilGenerics.checkMap(context.get("quantityMap"));
if (selectedMap != null) {
for (String rowKey : selectedMap.keySet()) {
String orderItemSeqId = itemMap.get(rowKey);
String productId = productMap.get(rowKey);
String originGeoId = originGeoIdMap.get(rowKey);
String quantityStr = quantityMap.get(rowKey);
if (UtilValidate.isNotEmpty(quantityStr)) {
BigDecimal quantity = new BigDecimal(quantityStr);
if (quantity.compareTo(ZERO) > 0) {
try {
pickSession.createRow(orderId, orderItemSeqId, shipGroupSeqId, productId, originGeoId, quantity, locale);
} catch (Exception ex) {
return ServiceUtil.returnError(ex.getMessage());
}
}
}
}
}
return ServiceUtil.returnSuccess();
}
public static Map<String, Object> completeVerifiedPick(DispatchContext dctx, Map<String, ? extends Object> context) {
Locale locale = (Locale) context.get("locale");
String shipmentId = null;
VerifyPickSession pickSession = (VerifyPickSession) context.get("verifyPickSession");
String orderId = (String) context.get("orderId");
try {
shipmentId = pickSession.complete(orderId, locale);
Map<String, Object> shipment = FastMap.newInstance();
shipment.put("shipmentId", shipmentId);
pickSession.clearAllRows();
return shipment;
} catch (GeneralException ex) {
return ServiceUtil.returnError(ex.getMessage(), ex.getMessageList());
}
}
public static Map<String, Object> cancelAllRows(DispatchContext dctx, Map<String, ? extends Object> context) {
VerifyPickSession session = (VerifyPickSession) context.get("verifyPickSession");
session.clearAllRows();
return ServiceUtil.returnSuccess();
}
}