Author: apatel
Date: Wed Jun 27 07:53:34 2007
New Revision: 551185
URL: http://svn.apache.org/viewvc?view=rev&rev=551185
Log:
Some cleanups in showShipment message.
Modified:
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
Modified:
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java?view=diff&rev=551185&r1=551184&r2=551185
==============================================================================
---
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
(original)
+++
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
Wed Jun 27 07:53:34 2007
@@ -31,6 +31,9 @@
import java.util.Map;
import java.sql.Timestamp;
+import javolution.util.FastMap;
+import javolution.util.FastList;
+
import org.w3c.dom.Document;
import org.ofbiz.service.DispatchContext;
@@ -43,10 +46,13 @@
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.util.EntityUtil;
+import org.w3c.dom.Element;
+
import org.ofbiz.widget.fo.FoFormRenderer;
import org.ofbiz.widget.screen.ScreenRenderer;
import org.ofbiz.widget.html.HtmlScreenRenderer;
+
public class OagisShipmentServices {
public static final String module = OagisShipmentServices.class.getName();
@@ -57,8 +63,178 @@
public static Map showShipment(DispatchContext ctx, Map context) {
InputStream in = (InputStream) context.get("inputStream");
OutputStream out = (OutputStream) context.get("outputStream");
+ LocalDispatcher dispatcher = ctx.getDispatcher();
+ GenericDelegator delegator = ctx.getDelegator();
+ GenericValue userLogin = null;
try{
Document doc = UtilXml.readXmlDocument(in, true, "ShowShipment");
+ userLogin =
delegator.findByPrimaryKey("UserLogin",UtilMisc.toMap("userLoginId","admin"));
+ Element shipmentElement = doc.getDocumentElement();
+ shipmentElement.normalize();
+ Map BODMap = new FastMap();
+
+ Element controllAreaElement =
UtilXml.firstChildElement(shipmentElement, "N1:CNTROLAREA");
+ Element BSRElement =
UtilXml.firstChildElement(controllAreaElement, "N1:BSR");
+ String bsrVerb = UtilXml.childElementValue(BSRElement, "N2:VERB");
+ String bsrNoun = UtilXml.childElementValue(BSRElement, "N2:NOUN");
+ String bsrRevision = UtilXml.childElementValue(BSRElement,
"/N2:REVISION");
+
+ BODMap.put("bsrVerb",bsrVerb);
+ BODMap.put("bsrNoun",bsrNoun);
+ BODMap.put("bsrRevision",bsrRevision);
+
+ Element senderElement =
UtilXml.firstChildElement(controllAreaElement, "N1:SENDER");
+ String logicalId = UtilXml.childElementValue(senderElement,
"N2:LOGICALID");
+ String component = UtilXml.childElementValue(senderElement,
"N2:COMPONENT");
+ String task = UtilXml.childElementValue(senderElement, "N2:TASK");
+ String reference = UtilXml.childElementValue(senderElement,
"N2:REFERENCEID");
+ String confirmation = UtilXml.childElementValue(senderElement,
"N2:CONFIRMATION");
+ String language = UtilXml.childElementValue(senderElement,
"N2:LANGUAGE");
+ String codePage = UtilXml.childElementValue(senderElement,
"N2:CODEPAGE");
+ String authId = UtilXml.childElementValue(senderElement,
"N2:AUTHID");
+
+ BODMap.put("logicalId",logicalId);
+ BODMap.put("component",component);
+ BODMap.put("task",task);
+ BODMap.put("referenceId", reference);
+ BODMap.put("confirmation", confirmation);
+ BODMap.put("authId", authId);
+
+ String controllAreaDateTime =
UtilXml.childElementValue(controllAreaElement, "N1:DATETIMEANY");
+
+ Element dataAreaElement =
UtilXml.firstChildElement(shipmentElement, "n:DATAAREA");
+ Element showShipmentElement =
UtilXml.firstChildElement(dataAreaElement, "n:SHOW_SHIPMENT");
+ Element shipment_N_Element =
UtilXml.firstChildElement(showShipmentElement, "n:SHIPMENT");
+ String dataAreaDateTime =
UtilXml.childElementValue(shipment_N_Element, "N1:DATETIMEANY");
+
+ Element operAMT = UtilXml.firstChildElement(shipment_N_Element,
"N1:OPERAMT");
+ String operAMTValue = UtilXml.childElementValue(operAMT,
"N2:VALUE");
+ String operAMTNum
=UtilXml.childElementValue(operAMT,"N2:NUMOFDEC");
+ String operAMTSign =UtilXml.childElementValue(operAMT,"N2:SIGN");
+ String operAMTCurrency
=UtilXml.childElementValue(operAMT,"N2:CURRENCY");
+
+ String documentId
=UtilXml.childElementValue(shipment_N_Element,"N2:DOCUMENTID");
+
+ String description
=UtilXml.childElementValue(shipment_N_Element,"N2:DESCRIPTN");
+
+ Element partner = UtilXml.firstChildElement(shipment_N_Element,
"N1:PARTNER");
+ String partnerName =UtilXml.childElementValue(partner,"N2:NAME");
+ String partnerType
=UtilXml.childElementValue(partner,"N2:PARTNRTYPE");
+ String partnerCurrency
=UtilXml.childElementValue(partner,"N2:CURRENCY");
+
+ Element partnerAddress = UtilXml.firstChildElement(partner,
"N1:ADDRESS");
+ String partnerAddLine
=UtilXml.childElementValue(partnerAddress,"N2:ADDRLINE");
+ String partnerCity
=UtilXml.childElementValue(partnerAddress,"N2:CITY");
+ String partnerCountry
=UtilXml.childElementValue(partnerAddress,"N2:COUNTRY");
+ String partnerFax
=UtilXml.childElementValue(partnerAddress,"N2:FAX");
+ String partnerPostalCode
=UtilXml.childElementValue(partnerAddress,"N2:POSTALCODE");
+ String partnerState
=UtilXml.childElementValue(partnerAddress,"N2:STATEPROVN");
+ String partnerTelePhn
=UtilXml.childElementValue(partnerAddress,"N2:TELEPHONE");
+
+ Element partnerContact = UtilXml.firstChildElement(partner,
"N1:CONTACT");
+ String partnerContactName
=UtilXml.childElementValue(partnerContact,"N2:NAME");
+ String partnerContactEmail
=UtilXml.childElementValue(partnerContact,"N2:FAX");
+ String partnerContactTelePhn
=UtilXml.childElementValue(partnerContact,"N2:TELEPHONE");
+
+ Element shipUnitElement =
UtilXml.firstChildElement(showShipmentElement, "n:SHIPUNIT");
+ Element shipUnitQuantity =
UtilXml.firstChildElement(shipUnitElement, "N1:QUANTITY");
+ String shipUnitQuantityValue
=UtilXml.childElementValue(shipUnitQuantity,"N2:VALUE");
+ String shipUnitQuantityNum
=UtilXml.childElementValue(shipUnitQuantity,"N2:NUMOFDEC");
+ String shipUnitQuantitySign
=UtilXml.childElementValue(shipUnitQuantity,"N2:SIGN");
+ String shipUnitQuantityUOM
=UtilXml.childElementValue(shipUnitQuantity,"N2:UOM");
+
+ String shipUnitCarrier
=UtilXml.childElementValue(shipUnitElement,"N2:CARRIER");
+ String shipUnitTrackingId
=UtilXml.childElementValue(shipUnitElement,"N2:TRACKINGID");
+ String shipUnitSeqId
=UtilXml.childElementValue(shipUnitElement,"N2:SHPUNITSEQ");
+ String shipUnitTOT
=UtilXml.childElementValue(shipUnitElement,"N2:SHPUNITTOT");
+
+ Element invItem = UtilXml.firstChildElement(shipUnitElement,
"n:INVITEM");
+ Element invItemQuantity = UtilXml.firstChildElement(invItem,
"N1:QUANTITY");
+ String invItemQuantityValue
=UtilXml.childElementValue(invItemQuantity,"N2:VALUE");
+ String invItemQuantityNum
=UtilXml.childElementValue(invItemQuantity,"N2:NUMOFDEC");
+ String invItemQuantitySign
=UtilXml.childElementValue(invItemQuantity,"N2:SIGN");
+ String invItemQuantityUOM
=UtilXml.childElementValue(invItemQuantity,"N2:UOM");
+ String invItemItem =UtilXml.childElementValue(invItem,"N2:ITEM");
+
+ Element invDetail = UtilXml.firstChildElement(invItem,
"n:INVDETAIL");
+ String invDetailSerialNum
=UtilXml.childElementValue(invDetail,"N1:SERIALNUM");
+
+ /*Code for Issuing the Items*/
+ List orderItemShipGrpInvReservations = FastList.newInstance();
+ Map reserveOrderItemInventoryCtx = FastMap.newInstance();
+ Map result = null;
+ //GenericValue inventoryItem = null;
+ try {
+ GenericValue shipment = delegator.findByPrimaryKey("Shipment",
UtilMisc.toMap("shipmentId", documentId));
+ String shipGroupSeqId =
shipment.getString("primaryShipGroupSeqId");
+
+ List shipmentItems = delegator.findByAnd("ShipmentItem",
UtilMisc.toMap("shipmentId", documentId, "productId",invItemItem));
+ GenericValue shipmentItem =
EntityUtil.getFirst(shipmentItems);
+ String shipmentItemSeqId =
shipmentItem.getString("shipmentItemSeqId");
+ //Now we have enough keys to lookup the right OrderShipment
+ List orderShipments = delegator.findByAnd("OrderShipment",
UtilMisc.toMap("shipmentId", documentId,
"shipmentItemSeqId",shipmentItemSeqId));
+ GenericValue orderShipment =
EntityUtil.getFirst(orderShipments);
+ String orderId = orderShipment.getString("orderId");
+ String orderItemSeqId =
orderShipment.getString("orderItemSeqId");
+
+ // Look for reservations in some status.
+ orderItemShipGrpInvReservations =
delegator.findByAnd("OrderItemShipGrpInvRes", UtilMisc.toMap("orderId",
orderId,"orderItemSeqId",orderItemSeqId,"shipGroupSeqId",shipGroupSeqId));
+ GenericValue orderItemShipGrpInvReservation =
EntityUtil.getFirst(orderItemShipGrpInvReservations);
+ GenericValue inventoryItem =
delegator.findByPrimaryKey("InventoryItem",
UtilMisc.toMap("inventoryItemId",orderItemShipGrpInvReservation.get("inventoryItemId")));
+
+ // Check if the inventory Item we reserved is same as Item
shipped
+ // If not then reserve Inventory Item
+ String serialNumber = inventoryItem.getString("serialNumber");
+ if(invDetailSerialNum != null) {
+ //The if codition is for chacking serialized Inventory.
+ if(!serialNumber.equals(invDetailSerialNum)) {
+ // Check if the Inventory we want is available
+ inventoryItem =
EntityUtil.getFirst(delegator.findByAnd("InventoryItem",
UtilMisc.toMap("productId", invItemItem, "serialNumber", invDetailSerialNum)));
+ Debug.logInfo("======== InventoryItem In Else
========="+inventoryItem, module);
+ reserveOrderItemInventoryCtx.put("inventoryItemId",
inventoryItem.getString("inventoryItemId"));
+ result =
dispatcher.runSync("reserveOrderItemInventory", reserveOrderItemInventoryCtx);
+
+ Debug.logInfo("========reserveOrderItemInventory
========="+result, module);
+ }
+ }
+ Map orderItemShipGrpInvResCtx = FastMap.newInstance(); // This
Map is for the issueOrderItemShipGrpInvResToShipment service.
+ orderItemShipGrpInvResCtx.put("shipmentId", documentId);
+
orderItemShipGrpInvResCtx.putAll(reserveOrderItemInventoryCtx);
+ result =
dispatcher.runSync("issueOrderItemShipGrpInvResToShipment",
orderItemShipGrpInvResCtx);
+ Debug.logInfo("==============result for
issueOrderItemShipGrpInvResToShipment=========="+result, module);
+
+
+ /*
+ Here we have to put the code for inserting the Tracking
number in ShipmentPackageRouteSegment.
+ The tracking number is coming from shipUnitTrackingId.
+ */
+
+ /*
+ //find shipmentRouteSegmentId by the help of shipmentId
+ GenericValue shipmentRouteSegment =
EntityUtil.getFirst(delegator.findByAnd("ShipmentRouteSegment",
UtilMisc.toMap("shipmentId",documentId)));
+ String shipmentRouteSegmentId = (String)
shipmentRouteSegment.get("shipmentRouteSegmentId");
+
Debug.logInfo("================shipmentRouteSegmentId==============
"+shipmentRouteSegmentId, module);
+
+ //find shipmentPackageSeqId by the help of shipmentId
+ GenericValue shipmentPackage =
EntityUtil.getFirst(delegator.findByAnd("ShipmentPackage",
UtilMisc.toMap("shipmentId",documentId)));
+ String shipmentPackageSeqId =
shipmentPackage.getString("shipmentPackageSeqId");
+ Debug.logInfo("==============shipmetPackageSeqId=========
"+shipmentPackageSeqId, module);
+
+ //Code for saving the tracking code..
+ Map map = new FastMap();
+ map.put("shipmentId", documentId);
+ map.put("shipmentRouteSegmentId", shipmentRouteSegmentId);
+ map.put("shipmentPackageSeqId", shipmentPackageSeqId);
+ map.put("trackingCode", shipUnitTrackingId);
+ map.put("userLogin", userLogin);
+ Debug.logInfo("==============ShipmentPackageRouteSeg=========
"+map, module);
+ result = dispatcher.runSync("createShipmentPackageRouteSeg",
map);
+ Debug.logInfo("==============Here is result========= "+result,
module);
+ */
+
+ } catch (Exception e) {
+ return ServiceUtil.returnError("return error"+e);
+ }
}catch (Exception e){
Debug.logError(e, module);
}