Author: apatel
Date: Thu Jun 28 01:31:10 2007 New Revision: 551503 URL: http://svn.apache.org/viewvc?view=rev&rev=551503 Log: Added receive delivery message service. Added: ofbiz/trunk/specialpurpose/oagis/webapp/oagis/message/ReceiveDelivery.ftl Modified: 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/widget/MessageInfoScreens.xml Modified: ofbiz/trunk/specialpurpose/oagis/config/oagis.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/config/oagis.properties?view=diff&rev=551503&r1=551502&r2=551503 ============================================================================== --- ofbiz/trunk/specialpurpose/oagis/config/oagis.properties (original) +++ ofbiz/trunk/specialpurpose/oagis/config/oagis.properties Thu Jun 28 01:31:10 2007 @@ -24,6 +24,7 @@ CNTROLAREA.SENDER.AUTHID=Ofbiz Oagis.Template.ConfirmBod=component://oagis/widget/MessageInfoScreens.xml#ConfirmBod +Oagis.Template.ReceiveDelivery=component://oagis/widget/MessageInfoScreens.xml#ReceiveDelivery # 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=551503&r1=551502&r2=551503 ============================================================================== --- ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml (original) +++ ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml Thu Jun 28 01:31:10 2007 @@ -99,5 +99,10 @@ <attribute name="referenceId" mode="IN" type="String" optional="false"/> <attribute name="sentDate" mode="IN" type="Timestamp" optional="false"/> </service> + <service name="receiveDelivery" max-retry="0" engine="java" + location="org.ofbiz.oagis.OagisShipmentServices" invoke="receiveDelivery"> + <description>Receive Delivery</description> + <attribute name="returnId" mode="IN" type="String" optional="false"/> + </service> </services> 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=551503&r1=551502&r2=551503 ============================================================================== --- ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java (original) +++ ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java Thu Jun 28 01:31:10 2007 @@ -30,6 +30,8 @@ import java.util.List; import java.util.Map; import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.text.DateFormat; import javolution.util.FastMap; import javolution.util.FastList; @@ -37,6 +39,7 @@ import org.w3c.dom.Document; import org.ofbiz.service.DispatchContext; +import org.ofbiz.service.GenericServiceException; import org.ofbiz.service.LocalDispatcher; import org.ofbiz.service.ServiceUtil; import org.ofbiz.base.util.*; @@ -368,5 +371,113 @@ return ServiceUtil.returnError("error in creating message info" + e.getMessage()); } return ServiceUtil.returnSuccess(); + } + + public static Map receiveDelivery(DispatchContext dctx, Map context) { + LocalDispatcher dispatcher = dctx.getDispatcher(); + GenericDelegator delegator = dctx.getDelegator(); + String returnId = (String) context.get("returnId"); + GenericValue userLogin = (GenericValue) context.get("userLogin"); + GenericValue returnHeader = null; + GenericValue postalAddress =null; + List returnItems = new ArrayList(); + String partyId = null; + String orderId = null; + if (returnId != null) { + try { + returnHeader = delegator.findByPrimaryKey("ReturnHeader", UtilMisc.toMap("returnId", returnId)); + String statusId = returnHeader.getString("statusId"); + if (statusId.equals("RETURN_ACCEPTED")) { + returnItems = delegator.findByAnd("ReturnItem", UtilMisc.toMap("returnId", returnId)); + postalAddress = delegator.findByPrimaryKey("PostalAddress", UtilMisc.toMap("contactMechId", returnHeader.getString("originContactMechId"))); + + // calculate total qty of return items in a shipping unit received + double itemQty = 0.0; + double totalQty = 0.0; + Iterator riIter = returnItems.iterator(); + while (riIter.hasNext()) { + GenericValue returnItem = (GenericValue) riIter.next(); + itemQty = returnItem.getDouble("returnQuantity").doubleValue(); + totalQty = totalQty + itemQty; + orderId = returnItem.getString("orderId"); + } + partyId = returnHeader.getString("fromPartyId"); + List partyContactMechs = new ArrayList(); + GenericValue contactMech = null; + GenericValue telecomNumber =null; + String emailString = null; + partyContactMechs = delegator.findByAnd("PartyContactMech", UtilMisc.toMap("partyId", partyId)); + Iterator pcmIter = partyContactMechs.iterator(); + while (pcmIter.hasNext()) { + GenericValue partyContactMech = (GenericValue) pcmIter.next(); + String contactMechId = partyContactMech.getString("contactMechId"); + contactMech = delegator.findByPrimaryKey("ContactMech", UtilMisc.toMap("contactMechId", contactMechId)); + String contactMechTypeId = contactMech.getString("contactMechTypeId"); + if(contactMechTypeId.equals("EMAIL_ADDRESS")) { + emailString = contactMech.getString("infoString"); + } + if(contactMechTypeId.equals("TELECOM_NUMBER")) { + telecomNumber = delegator.findByPrimaryKey("TelecomNumber", UtilMisc.toMap("contactMechId", contactMechId)); + } + } + String logicalId = UtilProperties.getPropertyValue("oagis.properties", "CNTROLAREA.SENDER.LOGICALID"); + String authId = UtilProperties.getPropertyValue("oagis.properties", "CNTROLAREA.SENDER.AUTHID"); + String referenceId = delegator.getNextSeqId("OagisMessageInfo"); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSS'Z'Z"); + Timestamp timestamp = UtilDateTime.nowTimestamp(); + String sentDate = dateFormat.format(timestamp); + Map bodyParameters = new HashMap(); + bodyParameters.put("returnId", returnId); + bodyParameters.put("returnItems", returnItems); + bodyParameters.put("totalQty", new Double(totalQty)); + bodyParameters.put("postalAddress", postalAddress); + bodyParameters.put("telecomNumber", telecomNumber); + bodyParameters.put("emailString", emailString); + bodyParameters.put("logicalId", logicalId); + bodyParameters.put("authId", authId); + bodyParameters.put("referenceId", referenceId); + bodyParameters.put("sentDate", sentDate); + bodyParameters.put("returnId", returnId); + String bodyScreenUri = UtilProperties.getPropertyValue("oagis.properties", "Oagis.Template.ReceiveDelivery"); + Map emfsCtx = new HashMap(); + emfsCtx.put("bodyParameters", bodyParameters); + emfsCtx.put("bodyScreenUri", bodyScreenUri); + + // export the message + try { + dispatcher.runSync("exportMsgFromScreen", emfsCtx); + } catch (GenericServiceException e) { + Debug.logError("Error in exporting message" + e.getMessage(), module); + return ServiceUtil.returnError("Error in exporting message"); + } + + // prepare map to store BOD information + Map comiCtx = new HashMap(); + comiCtx.put("logicalId", logicalId); + comiCtx.put("authId", authId); + comiCtx.put("referenceId", referenceId); + comiCtx.put("sentDate", timestamp); + comiCtx.put("component", "INVENTORY"); + comiCtx.put("task", "RMA"); + comiCtx.put("outgoingMessage", "Y"); + comiCtx.put("confirmation", "1"); + comiCtx.put("bsrVerb", "RECEIVE"); + comiCtx.put("bsrNoun", "DELIVERY"); + comiCtx.put("bsrRevision", "001"); + comiCtx.put("processingStatusId", statusId); + comiCtx.put("returnId", returnId); + comiCtx.put("orderId", orderId); + comiCtx.put("userLogin", userLogin); + try { + dispatcher.runSync("createOagisMessageInfo", comiCtx); + } catch (GenericServiceException e) { + return ServiceUtil.returnError("Error in creating message info" + e.getMessage()); + } + } + } catch (Exception e) { + Debug.logError("Error in Processing" + e.getMessage(), module); + } + } + return ServiceUtil.returnSuccess(""); } } Added: ofbiz/trunk/specialpurpose/oagis/webapp/oagis/message/ReceiveDelivery.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/webapp/oagis/message/ReceiveDelivery.ftl?view=auto&rev=551503 ============================================================================== --- ofbiz/trunk/specialpurpose/oagis/webapp/oagis/message/ReceiveDelivery.ftl (added) +++ ofbiz/trunk/specialpurpose/oagis/webapp/oagis/message/ReceiveDelivery.ftl Thu Jun 28 01:31:10 2007 @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8"?> +<#-- + 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. +--> +<n:RECEIVE_DELIVERY_001 xmlns:n="http://www.openapplications.org/197_receive_delivery_001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openapplications.org/197_receive_delivery_001 file:///C:/Documents%20and%20Settings/022523/My%20Documents/Vudu/XML%20Specs/OAG%20721/197_receive_delivery_001.xsd" xmlns:N1="http://www.openapplications.org/oagis_segments" xmlns:N2="http://www.openapplications.org/oagis_fields"> + <N1:CNTROLAREA> + <N1:BSR> + <N2:VERB>RECEIVE</N2:VERB> + <N2:NOUN>DELIVERY</N2:NOUN> + <N2:REVISION>001</N2:REVISION> + </N1:BSR> + <N1:SENDER> + <N2:LOGICALID>${logicalId}</N2:LOGICALID> + <N2:COMPONENT>INVENTORY</N2:COMPONENT> + <N2:TASK>RMA</N2:TASK> + <N2:REFERENCEID>${referenceId?if_exists}</N2:REFERENCEID/> + <N2:CONFIRMATION>1</N2:CONFIRMATION> + <N2:LANGUAGE>ENG</N2:LANGUAGE> + <N2:CODEPAGE>NONE</N2:CODEPAGE> + <N2:AUTHID>${authId}</N2:AUTHID> + </N1:SENDER> + <N1:DATETIMEANY>${sentDate?if_exists}</N1:DATETIMEANY> + </N1:CNTROLAREA> + <n:DATAAREA> + <n:RECEIVE_DELIVERY> + <n:RECEIPTHDR> + <N1:DATETIMEANY>${sentDate?if_exists}</N1:DATETIMEANY> + <N2:RECEIPTID></N2:RECEIPTID> + <N2:CARRIER></N2:CARRIER> + <N2:NOTES></N2:NOTES> + <N2:RECEIPTYPE>RMA</N2:RECEIPTYPE> + <N1:PARTNER> + <N2:NAME>${postalAddress.toName?if_exists}</N2:NAME> + <N2:PARTNRTYPE>SHIPFROM</N2:PARTNRTYPE> + <N2:CURRENCY>USD</N2:CURRENCY> + <#if postalAddress?has_content> + <N1:ADDRESS> + <N2:ADDRLINE>${postalAddress.address1?if_exists}</N2:ADDRLINE> + <#if postalAddress.address2?exists> + <N2:ADDRLINE>${postalAddress.address2?if_exists}</N2:ADDRLINE> + </#if> + <N2:CITY>${postalAddress.city?if_exists}</N2:CITY> + <N2:COUNTRY>${postalAddress.countryGeoId?if_exists}</N2:COUNTRY> + <N2:FAX></N2:FAX> + <N2:POSTALCODE>${postalAddress.postalCode?if_exists}</N2:POSTALCODE> + <N2:STATEPROVN>${postalAddress.stateProvinceGeoId?if_exists}</N2:STATEPROVN> + <N2:TELEPHONE>${telecomNumber.countryCode?if_exists}${telecomNumber.areaCode?if_exists}-${telecomNumber.contactNumber?if_exists}</N2:TELEPHONE> + </N1:ADDRESS> + <N1:CONTACT> + <N2:NAME>${postalAddress.toName?if_exists}</N2:NAME> + <N2:EMAIL>${emailString?if_exists}</N2:EMAIL> + <N2:FAX></N2:FAX> + <N2:TELEPHONE>${telecomNumber.countryCode?if_exists}${telecomNumber.areaCode?if_exists}-${telecomNumber.contactNumber?if_exists}</N2:TELEPHONE> + </N1:CONTACT> + </#if> + </N1:PARTNER> + </n:RECEIPTHDR> + <n:RECEIPTUNT> + <N1:QUANTITY> + <N2:VALUE>${totalQty?if_exists}</N2:VALUE> + <N2:NUMOFDEC>0</N2:NUMOFDEC> + <N2:SIGN>+</N2:SIGN> + <N2:UOM>EACH</N2:UOM> + </N1:QUANTITY> + <n:RECEIPTITM> + <#list returnItems as returnItem> + <#assign returnReason = returnItem.getRelatedOne("ReturnReason")> + <N1:QUANTITY> + <N2:VALUE>${returnItem.returnQuantity?if_exists}</N2:VALUE> + <N2:NUMOFDEC>0</N2:NUMOFDEC> + <N2:SIGN>+</N2:SIGN> + <N2:UOM>EACH</N2:UOM> + </N1:QUANTITY> + <N2:ITEM>${returnItem.productId?if_exists}</N2:ITEM> + <N2:NOTES>${returnReason.description?if_exists}</N2:NOTES> + <N1:DOCUMNTREF> + <N2:DOCTYPE>RMA</N2:DOCTYPE> + <N2:DOCUMENTID></N2:DOCUMENTID> + <N2:LINENUM></N2:LINENUM> + </N1:DOCUMNTREF> + </#list> + <n:INVDETAIL> + <N2:SERIALNUM></N2:SERIALNUM> + </n:INVDETAIL> + </n:RECEIPTITM> + </n:RECEIPTUNT> + </n:RECEIVE_DELIVERY> + </n:DATAAREA> +</n:RECEIVE_DELIVERY_001> Modified: ofbiz/trunk/specialpurpose/oagis/widget/MessageInfoScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/widget/MessageInfoScreens.xml?view=diff&rev=551503&r1=551502&r2=551503 ============================================================================== --- ofbiz/trunk/specialpurpose/oagis/widget/MessageInfoScreens.xml (original) +++ ofbiz/trunk/specialpurpose/oagis/widget/MessageInfoScreens.xml Thu Jun 28 01:31:10 2007 @@ -126,4 +126,14 @@ </section> </screen> + <screen name="ReceiveDelivery"> + <section> + <widgets> + <platform-specific> + <html><html-template location="component://oagis/webapp/oagis/message/ReceiveDelivery.ftl"/></html> + </platform-specific> + </widgets> + </section> + </screen> + </screens> |
Free forum by Nabble | Edit this page |