Author: sichen Date: Wed Oct 18 18:06:40 2006 New Revision: 465435 URL: http://svn.apache.org/viewvc?view=rev&rev=465435 Log: Ability to change the billing and order shipping address within orderview. Handy macro to generate the options. Thanks to Ashish Vijaywargiya.
Modified: incubator/ofbiz/trunk/applications/order/config/OrderErrorUiLabels.properties incubator/ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml incubator/ofbiz/trunk/applications/order/servicedef/services.xml incubator/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/orderview.bsh incubator/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml incubator/ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl Modified: incubator/ofbiz/trunk/applications/order/config/OrderErrorUiLabels.properties URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/config/OrderErrorUiLabels.properties?view=diff&rev=465435&r1=465434&r2=465435 ============================================================================== --- incubator/ofbiz/trunk/applications/order/config/OrderErrorUiLabels.properties (original) +++ incubator/ofbiz/trunk/applications/order/config/OrderErrorUiLabels.properties Wed Oct 18 18:06:40 2006 @@ -238,6 +238,7 @@ OrderSecurityErrorToRunUpdateReturnHeader=Security Error : to run updateReturnHeader you must have the ORDERMGR_UPDATE or ORDERMGR_ADMIN permission OrderSecurityErrorToRunUpdateOrderItemShipGroup=Security Error: to run updateOrderItemShipGroup you must have the ORDERMGR_UPDATE or ORDERMGR_ADMIN permission OrderSecurityErrorToRunCreateOrderContactMech=Security Error: to run createOrderContactMech you must have the ORDERMGR_CREATE or ORDERMGR_ADMIN permission +OrderSecurityErrorToRunUpdateOrderContactMech = Security Error: to run updateOrderContactMech you must have the ORDERMGR_UPDATE or ORDERMGR_ADMIN permission OrderSecurityErrorToRunRemoveOrderContactMech=Security Error: to run removeOrderContactMech you must have the ORDERMGR_DELETE or ORDERMGR_ADMIN permission OrderSendMailServiceFailed=SendMail service failed : OrderServiceExceptionSeeLogs=Service exception; see logs Modified: incubator/ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml?view=diff&rev=465435&r1=465434&r2=465435 ============================================================================== --- incubator/ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml (original) +++ incubator/ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml Wed Oct 18 18:06:40 2006 @@ -525,6 +525,50 @@ </iterate> </simple-method> + <!--UpdateOrderContactMech--> + + <simple-method method-name="updateOrderContactMech" short-description="Update OrderContactMech"> + <check-permission permission="ORDERMGR" action="_UPDATE"> + <fail-property resource="OrderErrorUiLabels" property="OrderSecurityErrorToRunUpdateOrderContactMech"/> + </check-permission> + <check-errors/> + <make-value value-name="orderContactMechMap" entity-name="OrderContactMech"/> + <set-pk-fields map-name="parameters" value-name="orderContactMechMap"/> + <set from-field="parameters.orderId" field="inputMap.orderId"/> + <set from-field="parameters.contactMechPurposeTypeId" field="inputMap.contactMechPurposeTypeId"/> + <set from-field="parameters.contactMechId" field="inputMap.contactMechId"/> + <if-compare value="SHIPPING_LOCATION" field-name="parameters.contactMechPurposeTypeId" operator="equals"> + <if-compare value="parameters.oldContactMechId" field-name="parameters.contactMechId" operator="not-equals"> + <set field="orderItemShipGroupMap.orderId" from-field="parameters.orderId"/> + <set field="orderItemShipGroupMap.contactMechId" from-field="parameters.oldContactMechId"/> + <find-by-and entity-name="OrderItemShipGroup" list-name="shipGroupList" map-name="orderItemShipGroupMap"/> + <if-not-empty field-name="shipGroupList"> + <iterate list-name="shipGroupList" entry-name="shipGroup"> + <set field="inputMap.shipGroupSeqId" from-field="shipGroup.shipGroupSeqId"/> + <set field="inputMap.shipmentMethod" value="[EMAIL PROTECTED]"/> + <set field="inputMap.oldContactMechId" from-field="parameters.oldContactMechId"/> + <set-service-fields to-map-name="orderItemShipGroupMap" service-name="updateOrderItemShipGroup" map-name="inputMap"/> + <call-service service-name="updateOrderItemShipGroup" in-map-name="orderItemShipGroupMap" include-user-login="true"/> + </iterate> + </if-not-empty> + </if-compare> + <else> + <find-by-and entity-name="OrderContactMech" map-name="inputMap" list-name="orderContactMechList"/> + <!-- If orderContactMechList value is null then create new entry in OrderContactMech entity--> + <if-empty field-name="orderContactMechList"> + <set-service-fields service-name="createOrderContactMech" map-name="parameters" to-map-name="createOrderContactMechMap"/> + <call-service service-name="createOrderContactMech" in-map-name="createOrderContactMechMap" include-user-login="true"/> + <set from-field="parameters.orderId" field="orderContactMechLookupMap.orderId"/> + <set from-field="parameters.oldContactMechId" field="orderContactMechLookupMap.contactMechId"/> + <set from-field="parameters.contactMechPurposeTypeId" field="orderContactMechLookupMap.contactMechPurposeTypeId"/> + <set-service-fields service-name="removeOrderContactMech" map-name="orderContactMechLookupMap" to-map-name="removeOrderContactMechMap"/> + <call-service service-name="removeOrderContactMech" in-map-name="removeOrderContactMechMap" include-user-login="true"/> + </if-empty> + <store-value value-name="orderContactMechMap"/> + </else> + </if-compare> + </simple-method> + <!-- OrderItemShipGroup --> <simple-method method-name="updateOrderItemShipGroup" short-description="Update OrderItemShipGroup"> <check-permission permission="ORDERMGR" action="_UPDATE"> Modified: incubator/ofbiz/trunk/applications/order/servicedef/services.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/servicedef/services.xml?view=diff&rev=465435&r1=465434&r2=465435 ============================================================================== --- incubator/ofbiz/trunk/applications/order/servicedef/services.xml (original) +++ incubator/ofbiz/trunk/applications/order/servicedef/services.xml Wed Oct 18 18:06:40 2006 @@ -533,6 +533,13 @@ <auto-attributes include="pk" mode="IN" optional="false"/> </service> + <service name="updateOrderContactMech" engine="simple" + location="org/ofbiz/order/order/OrderServices.xml" invoke="updateOrderContactMech" auth="true" default-entity-name="OrderContactMech"> + <description>Update Order Contact Mech</description> + <auto-attributes include="pk" mode="IN" optional="false"/> + <attribute name="oldContactMechId" type="String" mode="IN" optional="true"/> + </service> + <service name="removeOrderContactMech" default-entity-name="OrderContactMech" engine="simple" location="org/ofbiz/order/order/OrderServices.xml" invoke="removeOrderContactMech" auth="true"> <description>Remove Order Contact Mech</description> Modified: incubator/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/orderview.bsh URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/orderview.bsh?view=diff&rev=465435&r1=465434&r2=465435 ============================================================================== --- incubator/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/orderview.bsh (original) +++ incubator/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/orderview.bsh Wed Oct 18 18:06:40 2006 @@ -361,4 +361,11 @@ if (displayParty != null) { List paymentMethodValueMaps = PaymentWorker.getPartyPaymentMethodValueMaps(delegator, assignPartyId, false); context.put("paymentMethodValueMaps", paymentMethodValueMaps); -} \ No newline at end of file +} + +if (orderHeader != null) { + // list to find all the POSTAL_ADDRESS for the party. + orderParty = delegator.findByPrimaryKey("Party", UtilMisc.toMap("partyId", partyId)); + postalContactMechList = ContactHelper.getContactMechByType(orderParty,"POSTAL_ADDRESS", false); + context.put("postalContactMechList",postalContactMechList); +} Modified: incubator/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml?view=diff&rev=465435&r1=465434&r2=465435 ============================================================================== --- incubator/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml (original) +++ incubator/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml Wed Oct 18 18:06:40 2006 @@ -633,6 +633,14 @@ <security https="true" auth="true"/> <response name="success" type="view" value="custsetting"/> </request-map> + + <request-map uri="updateOrderContactMech"> + <security https="true" auth="true"/> + <event type="service" invoke="updateOrderContactMech"/> + <response name="success" type="view" value="orderview"/> + <response name="error" type="view" value="orderview"/> + </request-map> + <!-- ================================================================= --> <!-- ================== MultiParty Modifs =========================== --> Modified: incubator/ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl?view=diff&rev=465435&r1=465434&r2=465435 ============================================================================== --- incubator/ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl (original) +++ incubator/ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl Wed Oct 18 18:06:40 2006 @@ -15,6 +15,22 @@ under the License. --> +<#macro partyPostalAddress postalContactMechList contactMechPurposeTypeId contactPostalAddress> + <select name="contactMechId" class="selectBox"> + <option value="${contactPostalAddress.contactMechId}">${(contactPostalAddress.address1)?default("")} - ${contactPostalAddress.city?default("")}</option> + <option value="${contactPostalAddress.contactMechId}"></option> + <#list postalContactMechList as postalContactMech> + <#assign postalAddress = postalContactMech.getRelatedOne("PostalAddress")?if_exists> + <#assign partyContactPurposes = postalAddress.getRelated("PartyContactMechPurpose")?if_exists> + <#list partyContactPurposes as partyContactPurpose> + <#if postalContactMech.contactMechId?has_content && partyContactPurpose.contactMechPurposeTypeId == contactMechPurposeTypeId> + <option value="${postalContactMech.contactMechId?if_exists}">${(postalAddress.address1)?default("")} - ${postalAddress.city?default("")}</option> + </#if> + </#list> + </#list> + </select> +</#macro> + <#if displayParty?has_content || orderContactMechValueMaps?has_content> <div class="screenlet"> <div class="screenlet-header"> @@ -74,6 +90,15 @@ </#if> </#if> </div> + <#if (!orderHeader.statusId.equals("ORDER_COMPLETED")) && !(orderHeader.statusId.equals("ORDER_REJECTED")) && !(orderHeader.statusId.equals("ORDER_CANCELLED"))> + <form name="updateOrderContactMech" method="post" action="<@ofbizUrl>updateOrderContactMech</@ofbizUrl>"> + <input type="hidden" name="orderId" value="${orderId?if_exists}"> + <input type="hidden" name="contactMechPurposeTypeId" value="${contactMechPurpose.contactMechPurposeTypeId?if_exists}"> + <input type="hidden" name="oldContactMechId" value="${contactMech.contactMechId?if_exists}"> + <hr class="sepbar"> + <div><@partyPostalAddress postalContactMechList = postalContactMechList?if_exists contactMechPurposeTypeId = contactMechPurpose.contactMechPurposeTypeId?if_exists contactPostalAddress=postalAddress?if_exists/><input type="submit" value="${uiLabelMap.CommonUpdate}" class="smallSubmit"/></div> + </form> + </#if> </#if> <#elseif contactMech.contactMechTypeId == "TELECOM_NUMBER"> <#assign telecomNumber = orderContactMechValueMap.telecomNumber>