Author: sichen
Date: Wed Mar 14 15:02:11 2007
New Revision: 518349

URL: http://svn.apache.org/viewvc?view=rev&rev=518349
Log:
When receiving inventory against a PO, issue order item quantity and receive 
the same inventory quantity in sequence via a service group, to eliminate 
redundant steps

Modified:
    ofbiz/trunk/applications/product/servicedef/services_shipment.xml
    ofbiz/trunk/applications/product/webapp/facility/WEB-INF/controller.xml
    
ofbiz/trunk/applications/product/webapp/facility/shipment/ReceiveInventoryAgainstPurchaseOrder.ftl

Modified: ofbiz/trunk/applications/product/servicedef/services_shipment.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services_shipment.xml?view=diff&rev=518349&r1=518348&r2=518349
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services_shipment.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services_shipment.xml Wed Mar 
14 15:02:11 2007
@@ -523,6 +523,14 @@
         <override name="facilityId" optional="false"/>
     </service>
 
+    <service name="issueOrderItemToShipmentAndReceiveAgainstPO" engine="group" 
auth="true">
+        <description>Issues order item quantity specified to the shipment, 
then receives inventory for that item and quantity</description>
+        <group>
+            <invoke name="issueOrderItemToShipment" result-to-context="true"/>
+            <invoke name="receiveInventoryProduct" result-to-context="true"/>
+        </group>
+    </service>
+
     <service name="quickReceiveReturn" engine="simple"
             location="org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml" 
invoke="quickReceiveReturn" auth="true">
         <attribute name="returnId" type="String" mode="IN" optional="false"/>

Modified: 
ofbiz/trunk/applications/product/webapp/facility/WEB-INF/controller.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/facility/WEB-INF/controller.xml?view=diff&rev=518349&r1=518348&r2=518349
==============================================================================
--- ofbiz/trunk/applications/product/webapp/facility/WEB-INF/controller.xml 
(original)
+++ ofbiz/trunk/applications/product/webapp/facility/WEB-INF/controller.xml Wed 
Mar 14 15:02:11 2007
@@ -1007,6 +1007,12 @@
         <security https="true" auth="true"/>
         <response name="success" type="view" 
value="ReceiveInventoryAgainstPurchaseOrder"/>
     </request-map>
+    <request-map uri="issueOrderItemToShipmentAndReceiveAgainstPO">
+        <security https="true" auth="true"/>
+        <event type="service-multi" path="" 
invoke="issueOrderItemToShipmentAndReceiveAgainstPO"/>
+        <response name="success" type="view" 
value="ReceiveInventoryAgainstPurchaseOrder"/>
+        <response name="error" type="view" 
value="ReceiveInventoryAgainstPurchaseOrder"/>
+    </request-map>
     <!-- ================ Shipment Items From Order Requests ================= 
-->
     <request-map uri="EditShipmentPlan">
         <security https="true" auth="true"/>

Modified: 
ofbiz/trunk/applications/product/webapp/facility/shipment/ReceiveInventoryAgainstPurchaseOrder.ftl
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/facility/shipment/ReceiveInventoryAgainstPurchaseOrder.ftl?view=diff&rev=518349&r1=518348&r2=518349
==============================================================================
--- 
ofbiz/trunk/applications/product/webapp/facility/shipment/ReceiveInventoryAgainstPurchaseOrder.ftl
 (original)
+++ 
ofbiz/trunk/applications/product/webapp/facility/shipment/ReceiveInventoryAgainstPurchaseOrder.ftl
 Wed Mar 14 15:02:11 2007
@@ -18,6 +18,19 @@
 -->
 <#if shipment?exists>
 
+    <#-- JS to populate the quantity_o_# field required by the chained 
issueOrderItemToShipment service -->
+    <script type="text/javascript">
+      function populateQuantities(rowCount) {
+        for (var x = 0; x <= rowCount; x++) {
+          var quantityAcceptedInput = 
document.getElementById('quantityAccepted_o_' + x);
+          var quantityInput = document.getElementById('quantity_o_' + x);
+          if (quantityAcceptedInput != null && quantityInput != null) {
+            quantityInput.value = quantityAcceptedInput.value;
+          }
+        }
+      }
+    </script>
+
     <#assign productId = parameters.productId?if_exists/>
     <div 
class="head3">${uiLabelMap.ProductReceiveInventoryAgainstPurchaseOrder}</div>
 
@@ -64,7 +77,7 @@
         <#if orderItemDatas?exists>
             <#assign rowCount = 0>
             <#assign totalReadyToReceive = 0/>
-            <form 
action="<@ofbizUrl>receiveInventoryProduct/ReceiveInventoryAgainstPurchaseOrder?clearAll=Y</@ofbizUrl>"
 method="post" name="selectAllForm">
+            <form 
action="<@ofbizUrl>issueOrderItemToShipmentAndReceiveAgainstPO?clearAll=Y</@ofbizUrl>"
 method="post" name="selectAllForm">
                 <input type="hidden" name="facilityId" value="${facilityId}"/>
                 <input type="hidden" name="purchaseOrderId" 
value="${orderId}"/>
                 <input type="hidden" name="shipmentId" value="${shipmentId}">
@@ -124,13 +137,15 @@
                                     <input type="hidden" 
name="ownerPartyId_o_${rowCount}" value="${(facility.ownerPartyId)?if_exists}"/>
                                     <input type="hidden" 
name="datetimeReceived_o_${rowCount}" value="${now}"/>
                                     <input type="hidden" 
name="quantityRejected_o_${rowCount}" value="0"/>
+                                    <#-- quantity field required by the 
chained issueOrderItemToShipment service -->
+                                    <input type="hidden" 
name="quantity_o_${rowCount}" id="quantity_o_${rowCount}" value=""/>
                                     <#if itemQuantitiesToReceive?exists && 
itemQuantitiesToReceive.get(orderItemAndShipGroupAssoc.orderItemSeqId)?exists>
                                         <#assign quantityToReceive = 
itemQuantitiesToReceive.get(orderItemAndShipGroupAssoc.orderItemSeqId)>
                                     <#else>
                                         <#assign quantityToReceive = 0>
                                     </#if>
                                     <#assign totalReadyToReceive = 
totalReadyToReceive + quantityToReceive/>
-                                    <input type="text" class='inputBox' 
size="5" name="quantityAccepted_o_${rowCount}" value="${quantityToReceive}"/>
+                                    <input type="text" class='inputBox' 
size="5" name="quantityAccepted_o_${rowCount}" 
id="quantityAccepted_o_${rowCount}" value="${quantityToReceive}"/>
                                 </td>
                                 <td>              
                                     <select 
name="inventoryItemTypeId_o_${rowCount}" class="selectBox">
@@ -159,7 +174,7 @@
                                 <a 
href="<@ofbizUrl>ReceiveInventoryAgainstPurchaseOrder?shipmentId=${shipmentId}&purchaseOrderId=${orderId}&clearAll=Y</@ofbizUrl>"
 class="buttontext">${uiLabelMap.CommonClearAll}</a>
                             </td>
                             <td align="right">
-                                <input type="submit" class="smallSubmit" 
value="${uiLabelMap.ProductReceiveItem}"/>
+                                <a class="smallSubmit" 
href="javascript:populateQuantities(${rowCount - 
1});document.selectAllForm.submit();">${uiLabelMap.ProductReceiveItem}</a>
                             </td>
                         </tr>
                     </#if>


Reply via email to