Author: apatel
Date: Thu Jun 28 12:16:49 2007
New Revision: 551667
URL: http://svn.apache.org/viewvc?view=rev&rev=551667
Log:
additional fields added to message. Tons of clean up still pending.
Modified:
ofbiz/trunk/specialpurpose/oagis/config/OagisUiLabels.properties
ofbiz/trunk/specialpurpose/oagis/config/oagis.properties
ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
ofbiz/trunk/specialpurpose/oagis/webapp/oagis/WEB-INF/actions/message/ProcessShipment.bsh
ofbiz/trunk/specialpurpose/oagis/webapp/oagis/message/ProcessShipment.ftl
Modified: ofbiz/trunk/specialpurpose/oagis/config/OagisUiLabels.properties
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/config/OagisUiLabels.properties?view=diff&rev=551667&r1=551666&r2=551667
==============================================================================
--- ofbiz/trunk/specialpurpose/oagis/config/OagisUiLabels.properties (original)
+++ ofbiz/trunk/specialpurpose/oagis/config/OagisUiLabels.properties Thu Jun 28
12:16:49 2007
@@ -28,3 +28,5 @@
OagisMessageInfo=Message Info
OagisMessageUpload=Upload Oagis Message
OagisNewMessageErrorInfo = New Message Error Info
+OagisErrorInCreatingDataForOagisMessageInfoEntity = Error in creating data for
OagisMessageInfo Entity
+OagisErrorInExportingMessageFromScreen = Error in exporting message from screen
Modified: ofbiz/trunk/specialpurpose/oagis/config/oagis.properties
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/config/oagis.properties?view=diff&rev=551667&r1=551666&r2=551667
==============================================================================
--- ofbiz/trunk/specialpurpose/oagis/config/oagis.properties (original)
+++ ofbiz/trunk/specialpurpose/oagis/config/oagis.properties Thu Jun 28
12:16:49 2007
@@ -25,6 +25,7 @@
Oagis.Template.ConfirmBod=component://oagis/widget/MessageInfoScreens.xml#ConfirmBod
Oagis.Template.ReceiveDelivery=component://oagis/widget/MessageInfoScreens.xml#ReceiveDelivery
+Oagis.Template.ProcessShipment=component://oagis/widget/MessageInfoScreens.xml#ProcessShipment
# URLs for outgoing messages
url.send.processShipment=https://foo.bar.baz/oagis/control/processShipment
Modified: ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml?view=diff&rev=551667&r1=551666&r2=551667
==============================================================================
--- ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml (original)
+++ ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml Thu Jun 28
12:16:49 2007
@@ -89,6 +89,7 @@
location="org.ofbiz.oagis.OagisShipmentServices"
invoke="processShipment">
<description>Process Shipment</description>
<attribute name="orderId" mode="IN" type="String" optional="false"/>
+ <attribute name="outputStream" type="java.io.OutputStream" mode="IN"/>
</service>
<service name="sendProcessShipmentMsg" max-retry="0" engine="simple"
location="org/ofbiz/oagis/OagisMessageServices.xml"
invoke="sendProcessShipmentMsg">
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=551667&r1=551666&r2=551667
==============================================================================
---
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
(original)
+++
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
Thu Jun 28 12:16:49 2007
@@ -29,6 +29,9 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Locale;
+import java.util.Set;
+import java.util.TreeSet;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
@@ -63,6 +66,8 @@
protected static final HtmlScreenRenderer htmlScreenRenderer = new
HtmlScreenRenderer();
protected static final FoFormRenderer foFormRenderer = new
FoFormRenderer();
+ public static final String resource = "OagisUiLabels";
+
public static Map showShipment(DispatchContext ctx, Map context) {
InputStream in = (InputStream) context.get("inputStream");
OutputStream out = (OutputStream) context.get("outputStream");
@@ -268,8 +273,9 @@
LocalDispatcher dispatcher = ctx.getDispatcher();
GenericDelegator delegator = ctx.getDelegator();
String orderId = (String) context.get("orderId");
- String shipmentId = (String) context.get("shipmentId");
+ //String shipmentId = (String) context.get("shipmentId");
GenericValue userLogin = (GenericValue) context.get("userLogin");
+ Locale locale = (Locale) context.get("locale");
GenericValue orderHeader = null;
try {
@@ -278,23 +284,23 @@
Debug.logError(e, module);
return ServiceUtil.returnError(e.getMessage());
}
- Map csResult = null;
- Map psmMap = new HashMap();
GenericValue orderItemShipGroup = null;
GenericValue productStore =null;
- String orderStatusId = null;
+ GenericValue shipment =null;
if (orderHeader != null) {
- orderStatusId = orderHeader.getString("statusId");
+ String orderStatusId = orderHeader.getString("statusId");
if (orderStatusId.equals("ORDER_APPROVED")) {
try {
+ // There can be more then one ship Groups
orderItemShipGroup =
EntityUtil.getFirst(delegator.findByAnd("OrderItemShipGroup",
UtilMisc.toMap("orderId", orderId), UtilMisc.toList("shipGroupSeqId")));
String productStoreId =
orderHeader.getString("productStoreId");
productStore = delegator.findByPrimaryKey("ProductStore",
UtilMisc.toMap("productStoreId", productStoreId));
String originFacilityId =
productStore.getString("inventoryFacilityId");
String statusId = "SHIPMENT_INPUT";
- csResult= dispatcher.runSync("createShipment",
UtilMisc.toMap("primaryOrderId",
orderId,"primaryShipGroupSeqId",orderItemShipGroup.get("shipGroupSeqId")
,"statusId", statusId ,"originFacilityId", originFacilityId ,"userLogin",
userLogin));
- shipmentId = (String) csResult.get("shipmentId");
+ Map result= dispatcher.runSync("createShipment",
UtilMisc.toMap("primaryOrderId",
orderId,"primaryShipGroupSeqId",orderItemShipGroup.get("shipGroupSeqId")
,"statusId", statusId ,"originFacilityId", originFacilityId ,"userLogin",
userLogin));
+ shipmentId = (String) result.get("shipmentId");
+ shipment = delegator.findByPrimaryKey("Shipment",
UtilMisc.toMap("shipmentId", shipmentId));
List orderItems = new ArrayList();
Map orderItemCtx = new HashMap();
@@ -302,48 +308,110 @@
Iterator oiIter = orderItems.iterator();
while (oiIter.hasNext()) {
GenericValue orderItem = (GenericValue) oiIter.next();
-
- orderItemCtx.put("orderId", orderItem.get("orderId"));
+ orderItemCtx.put("orderId", orderId);
orderItemCtx.put("orderItemSeqId",
orderItem.get("orderItemSeqId"));
orderItemCtx.put("shipmentId", shipmentId);
orderItemCtx.put("quantity",
orderItem.get("quantity"));
orderItemCtx.put("userLogin", userLogin);
-
dispatcher.runSync("addOrderShipmentToShipment",
orderItemCtx);
}
- String logicalId =
UtilProperties.getPropertyValue("oagis.properties",
"CNTROLAREA.SENDER.LOGICALID");
- String authId =
UtilProperties.getPropertyValue("oagis.properties", "CNTROLAREA.SENDER.AUTHID");
- String referenceId =
delegator.getNextSeqId("OagisMessageInfo");
- Timestamp timestamp = null;
- timestamp = UtilDateTime.nowTimestamp();
-
- psmMap.put("logicalId", logicalId);
- psmMap.put("authId", authId);
- psmMap.put("referenceId", referenceId);
- psmMap.put("sentDate", timestamp);
- psmMap.put("shipmentId", shipmentId);
- psmMap.put("userLogin", userLogin);
+ } catch (GeneralException e) {
+ Debug.logError(e, module);
+ return ServiceUtil.returnError(e.getMessage());
+ }
+ Set correspondingPoIdSet = new TreeSet();
+ try {
+ List orderItems = orderHeader.getRelated("OrderItem");
+ Iterator oiIter = orderItems.iterator();
+ while (oiIter.hasNext()) {
+ GenericValue orderItem = (GenericValue) oiIter.next();
+ String correspondingPoId =
orderItem.getString("correspondingPoId");
+ correspondingPoIdSet.add(correspondingPoId);
+ }
+ } catch (GenericEntityException e) {
+ Debug.logError(e, module);
+ }
+ Set externalIdSet = new TreeSet();
+ try {
+ GenericValue shipmentOrderHeader =
shipment.getRelatedOne("PrimaryOrderHeader");
+
externalIdSet.add(shipmentOrderHeader.getString("externalId"));
+ } catch (GenericEntityException e) {
+ Debug.logError(e, module);
+ }
+
+ String logicalId =
UtilProperties.getPropertyValue("oagis.properties",
"CNTROLAREA.SENDER.LOGICALID");
+ String authId =
UtilProperties.getPropertyValue("oagis.properties", "CNTROLAREA.SENDER.AUTHID");
+
+ MapStack bodyParameters = MapStack.create();
+ bodyParameters.put("logicalId", logicalId);
+ bodyParameters.put("authId", authId);
+
+ String referenceId =
delegator.getNextSeqId("OagisMessageInfo");
+ bodyParameters.put("referenceId", referenceId);
- // send the process shipment message
- dispatcher.runSync("sendProcessShipmentMsg", psmMap);
+ DateFormat dateFormat = new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSS'Z'Z");
+ Timestamp timestamp = UtilDateTime.nowTimestamp();
+ String sentDate = dateFormat.format(timestamp);
+ bodyParameters.put("sentDate", sentDate);
+
+ String partyId = shipment.getString("partyIdTo");
+ List partyCarrierAccounts = new ArrayList();
+ try {
+ partyCarrierAccounts =
delegator.findByAnd("PartyCarrierAccount", UtilMisc.toMap("partyId", partyId));
+ partyCarrierAccounts =
EntityUtil.filterByDate(partyCarrierAccounts);
+ if (partyCarrierAccounts != null) {
+ Iterator pcaIter = partyCarrierAccounts.iterator();
+ while (pcaIter.hasNext()) {
+ GenericValue partyCarrierAccount = (GenericValue)
pcaIter.next();
+ String carrierPartyId =
partyCarrierAccount.getString("carrierPartyId");
+ if
(carrierPartyId.equals(orderItemShipGroup.getString("carrierPartyId"))) {
+ String accountNumber =
partyCarrierAccount.getString("accountNumber");
+ bodyParameters.put("shipperId", accountNumber);
+ }
+ }
+ }
+ } catch (GenericEntityException e) {
+ Debug.logError(e, module);
+ }
+ bodyParameters.put("shipmentId", shipmentId);
+ bodyParameters.put("orderId", orderId);
+ bodyParameters.put("correspondingPoIdSet",
correspondingPoIdSet);
+ bodyParameters.put("externalIdSet", externalIdSet);
+ bodyParameters.put("userLogin", userLogin);
+ String bodyScreenUri =
UtilProperties.getPropertyValue("oagis.properties",
"Oagis.Template.ProcessShipment");
+ OutputStream out = (OutputStream) context.get("outputStream");
+ Writer writer = new OutputStreamWriter(out);
+ ScreenRenderer screens = new ScreenRenderer(writer,
bodyParameters, new HtmlScreenRenderer());
+ try {
+ screens.render(bodyScreenUri);
} catch (Exception e) {
- Debug.logError("Error in processing" + e.getMessage(),
module);
+ Debug.logError(e, "Error rendering [text/xml]: ",
module);
+ }
+ // prepare map to Create Oagis Message Info
+ Map comiCtx = new HashMap();
+ comiCtx.put("logicalId", logicalId);
+ comiCtx.put("component", "INVENTORY");
+ comiCtx.put("task", "SHIPREQUES"); // Actual value of task is
"SHIPREQUEST" which is more than 10 char
+ comiCtx.put("referenceId", referenceId);
+ comiCtx.put("authId", authId);
+ comiCtx.put("outgoingMessage", "Y");
+ comiCtx.put("sentDate", timestamp);
+ comiCtx.put("confirmation", "1");
+ comiCtx.put("bsrVerb", "PROCESS");
+ comiCtx.put("bsrNoun", "SHIPMENT");
+ comiCtx.put("bsrRevision", "001");
+ comiCtx.put("processingStatusId", orderStatusId);
+ comiCtx.put("orderId", orderId);
+ comiCtx.put("shipmentId", shipmentId);
+ comiCtx.put("userLogin", userLogin);
+ try {
+ dispatcher.runSync("createOagisMessageInfo", comiCtx);
+ } catch (GenericServiceException e) {
+ String errMsg = UtilProperties.getMessage(resource,
"OagisErrorInCreatingDataForOagisMessageInfoEntity", locale);
+ Debug.logError(e, errMsg, module);
+ return ServiceUtil.returnError(errMsg);
}
}
- }
- psmMap.put("component", "INVENTORY");
- psmMap.put("task", "SHIPREQUES"); // Actual value of task is
"SHIPREQUES" which is more than 10 char
- psmMap.put("outgoingMessage", "Y");
- psmMap.put("confirmation", "1");
- psmMap.put("bsrVerb", "PROCESS");
- psmMap.put("bsrNoun", "SHIPMENT");
- psmMap.put("bsrRevision", "001");
- psmMap.put("processingStatusId", orderStatusId);
- psmMap.put("orderId", orderId);
- try {
- dispatcher.runSync("createOagisMessageInfo", psmMap);
- } catch (Exception e) {
- return ServiceUtil.returnError("error in creating message info" +
e.getMessage());
}
return ServiceUtil.returnSuccess("Service Completed Successfully");
}
Modified:
ofbiz/trunk/specialpurpose/oagis/webapp/oagis/WEB-INF/actions/message/ProcessShipment.bsh
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/webapp/oagis/WEB-INF/actions/message/ProcessShipment.bsh?view=diff&rev=551667&r1=551666&r2=551667
==============================================================================
---
ofbiz/trunk/specialpurpose/oagis/webapp/oagis/WEB-INF/actions/message/ProcessShipment.bsh
(original)
+++
ofbiz/trunk/specialpurpose/oagis/webapp/oagis/WEB-INF/actions/message/ProcessShipment.bsh
Thu Jun 28 12:16:49 2007
@@ -27,9 +27,9 @@
shipmentId = parameters.get("shipmentId");
if (shipmentId != null) {
shipment = delegator.findByPrimaryKey("Shipment",
UtilMisc.toMap("shipmentId", shipmentId));
-
- orderId = shipment.getString("primaryOrderId");
- orderHeader = delegator.findByPrimaryKey("OrderHeader",
UtilMisc.toMap("orderId", orderId));
+ if (orderId != null) {
+ orderHeader = delegator.findByPrimaryKey("OrderHeader",
UtilMisc.toMap("orderId", orderId));
+ }
OrderReadHelper orderReadHelper = new OrderReadHelper(orderHeader);
if(orderReadHelper.hasShippingAddress()) {
address = EntityUtil.getFirst(orderReadHelper.getShippingLocations());
@@ -41,6 +41,7 @@
shipmentItems = delegator.findByAnd("ShipmentItem",
UtilMisc.toMap("shipmentId", shipmentId));
orderItemShipGroup =
EntityUtil.getFirst(delegator.findByAnd("OrderItemShipGroup",
UtilMisc.toMap("orderId", orderId)));
+
context.put("shipment", shipment);
context.put("address", address);
Modified:
ofbiz/trunk/specialpurpose/oagis/webapp/oagis/message/ProcessShipment.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/webapp/oagis/message/ProcessShipment.ftl?view=diff&rev=551667&r1=551666&r2=551667
==============================================================================
--- ofbiz/trunk/specialpurpose/oagis/webapp/oagis/message/ProcessShipment.ftl
(original)
+++ ofbiz/trunk/specialpurpose/oagis/webapp/oagis/message/ProcessShipment.ftl
Thu Jun 28 12:16:49 2007
@@ -40,9 +40,15 @@
<n:PROCESS_SHIPMENT>
<n:SHIPMENT>
<N2:DOCUMENTID>${shipment.shipmentId?if_exists}</N2:DOCUMENTID>
- <N2:SHIPPERID></N2:SHIPPERID><#-- TODO: fill in from
PartyCarrierAccount.accountNumber; make sure filter by from/thru date and
PartyCarrierAccount.carrierPartyId==orderItemShipGroup.carrierPartyId; get most
recent fromDate -->
+ <#if shipperId?has_content>
+ <N2:SHIPPERID>${shipperId}</N2:SHIPPERID><#-- TODO: fill in from
PartyCarrierAccount.accountNumber; make sure filter by from/thru date and
PartyCarrierAccount.carrierPartyId==orderItemShipGroup.carrierPartyId; get most
recent fromDate -->
+ </#if>
<N2:CARRIER>${orderItemShipGroup.carrierPartyId?if_exists}</N2:CARRIER>
- <N2:FRGHTTERMS>PREPAID</N2:FRGHTTERMS><#-- TODO: if
SHIPPERID?has_content then set to COLLECT -->
+ <#if shipperId?has_content>
+ <N2:FRGHTTERMS>PREPAID</N2:FRGHTTERMS><#-- TODO: if
SHIPPERID?has_content then set to COLLECT -->
+ <#else>
+ <N2:FRGHTTERMS>COLLECT</N2:FRGHTTERMS>
+ </#if>
<N2:NOTES>${orderItemShipGroup.shippingInstructions?if_exists}</N2:NOTES>
<N2:SHIPNOTES></N2:SHIPNOTES><#-- if order was a return replacement
order (associated with return), then set to RETURNLABEL otherwise leave blank
-->
<N2:TRANSMETHD>${orderItemShipGroup.shipmentMethodTypeId?if_exists}</N2:TRANSMETHD>