svn commit: r782931 - in /ofbiz/trunk/applications: order/config/ product/config/ product/servicedef/ product/src/org/ofbiz/shipment/weightPackage/ product/webapp/facility/WEB-INF/ product/webapp/facility/WEB-INF/actions/shipment/ product/webapp/facili...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r782931 - in /ofbiz/trunk/applications: order/config/ product/config/ product/servicedef/ product/src/org/ofbiz/shipment/weightPackage/ product/webapp/facility/WEB-INF/ product/webapp/facility/WEB-INF/actions/shipment/ product/webapp/facili...

ashish-18
Author: ashish
Date: Tue Jun  9 09:46:03 2009
New Revision: 782931

URL: http://svn.apache.org/viewvc?rev=782931&view=rev
Log:
Applied patch from jira issue OFBIZ-2407 (Functionality for "Weight Packages Only" option on pack order screen)
-- Worked on "Warning Form". Now when newEstimatedShippingCharges is greater/less than 10% of estimatedShippingCharges then shown warning form.

Thanks Akash Jain for your contribution.


Modified:
    ofbiz/trunk/applications/order/config/OrderErrorUiLabels.xml
    ofbiz/trunk/applications/product/config/ProductUiLabels.xml
    ofbiz/trunk/applications/product/servicedef/services_shipment.xml
    ofbiz/trunk/applications/product/src/org/ofbiz/shipment/weightPackage/WeightPackageServices.java
    ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/shipment/WeightPackage.groovy
    ofbiz/trunk/applications/product/webapp/facility/WEB-INF/controller.xml
    ofbiz/trunk/applications/product/webapp/facility/shipment/PackOrder.ftl
    ofbiz/trunk/applications/product/webapp/facility/shipment/WeightPackage.ftl

Modified: ofbiz/trunk/applications/order/config/OrderErrorUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/config/OrderErrorUiLabels.xml?rev=782931&r1=782930&r2=782931&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/config/OrderErrorUiLabels.xml (original)
+++ ofbiz/trunk/applications/order/config/OrderErrorUiLabels.xml Tue Jun  9 09:46:03 2009
@@ -706,7 +706,7 @@
         <value xml:lang="th">ใบสั่งซื้อสินค้า ${orderId} ไม่เป็นรายการสั่งซื้อ</value>
     </property>
     <property key="OrderErrorOrderNotVerified">
-        <value xml:lang="en">ERROR: Order #${orderId} is not verified, click Pack Order button instead of Weight Package Only button for further processing</value>
+        <value xml:lang="en">ERROR: Order #${orderId} is not verified, click Pack Order button instead of Weight Package Only for further processing</value>
     </property>
     <property key="OrderErrorOrderNotVerifiedForPacking">
         <value xml:lang="en">ERROR: Order #${orderId} is not verified for packing</value>

Modified: ofbiz/trunk/applications/product/config/ProductUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/config/ProductUiLabels.xml?rev=782931&r1=782930&r2=782931&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/config/ProductUiLabels.xml (original)
+++ ofbiz/trunk/applications/product/config/ProductUiLabels.xml Tue Jun  9 09:46:03 2009
@@ -19,6 +19,9 @@
     under the License.
 -->
 <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <property key="FacilityActualShippingCharges">
+        <value xml:lang="en">Actual shipping charges</value>
+    </property>
     <property key="FacilityBillingAddressSameShipping">
         <value xml:lang="de">Rechnungsadresse und Lieferadresse stimmen überein</value>
         <value xml:lang="en">Billing address is the same as the shipping address</value>
@@ -48,6 +51,9 @@
         <value xml:lang="fr">Un module de la famille Open For Business, logiciel libre de gestion d'entreprise.</value>
         <value xml:lang="it">Part of the Open For Business Family of Open Source Software</value>
     </property>
+    <property key="FacilityEstimatedShippingCharges">
+        <value xml:lang="en">Estimated shipping charges</value>
+    </property>
     <property key="FacilityFacility">
         <value xml:lang="de">Lager</value>
         <value xml:lang="en">Facility</value>

Modified: ofbiz/trunk/applications/product/servicedef/services_shipment.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services_shipment.xml?rev=782931&r1=782930&r2=782931&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services_shipment.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services_shipment.xml Tue Jun  9 09:46:03 2009
@@ -530,7 +530,10 @@
         <attribute name="dimensionUomId" type="String" mode="IN" optional="true"/>
         <attribute name="weightUomId" type="String" mode="IN" optional="true"/>
         <attribute name="estimatedShippingCost" type="BigDecimal" mode="IN" optional="true"/>
+        <attribute name="shipNow" type="String" mode="IN" optional="true"/>
+        <attribute name="newEstimatedShippingCost" type="BigDecimal" mode="IN" optional="true"/>
         <attribute name="shipmentId" type="String" mode="INOUT" optional="true"/>
+        <attribute name="showWarningForm" type="Boolean" mode="OUT" optional="true"/>
     </service>
 
     <!-- Pack Order Services -->

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/shipment/weightPackage/WeightPackageServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/shipment/weightPackage/WeightPackageServices.java?rev=782931&r1=782930&r2=782931&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/shipment/weightPackage/WeightPackageServices.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/shipment/weightPackage/WeightPackageServices.java Tue Jun  9 09:46:03 2009
@@ -27,6 +27,7 @@
 
 import org.ofbiz.base.util.GeneralException;
 import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.base.util.UtilNumber;
 import org.ofbiz.base.util.UtilProperties;
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.entity.GenericDelegator;
@@ -38,6 +39,7 @@
 public class WeightPackageServices {
 
     private static BigDecimal ZERO = BigDecimal.ZERO;
+    private static int rounding = UtilNumber.getBigDecimalRoundingMode("invoice.rounding");
 
     public static Map<String, Object> weightPackageOnly(DispatchContext dctx, Map<String, ? extends Object> context) {
         GenericDelegator delegator = dctx.getDelegator();
@@ -152,17 +154,43 @@
         String invoiceId = (String) context.get("invoiceId");
         String dimensionUomId = (String) context.get("dimensionUomId");
         String weightUomId = (String) context.get("weightUomId");
-        BigDecimal estimatedShipCost = (BigDecimal) context.get("shipmentEstimateCost");
+        BigDecimal estimatedShippingCost = (BigDecimal) context.get("estimatedShippingCost");
+        BigDecimal newEstimatedShippingCost = (BigDecimal) context.get("newEstimatedShippingCost");
+
+        if (UtilValidate.isEmpty(newEstimatedShippingCost)) {
+            newEstimatedShippingCost = ZERO;
+        }
 
         weightPackageSession.setDimensionUomId(dimensionUomId);
         weightPackageSession.setWeightUomId(weightUomId);
         weightPackageSession.setShipmentId(shipmentId);
         weightPackageSession.setInvoiceId(invoiceId);
-        weightPackageSession.setEstimatedShipCost(estimatedShipCost);
+        weightPackageSession.setEstimatedShipCost(estimatedShippingCost);
 
+        BigDecimal diffInShipCostInPerc = ZERO;
         Map<String, Object> response = FastMap.newInstance();
         try {
-            if (weightPackageSession.complete(orderId, locale)) {
+            String shipNow = (String) context.get("shipNow");
+            if (UtilValidate.isEmpty(shipNow)) {
+                shipNow = "N";
+            }
+            if ("N".equals(shipNow)) {
+                BigDecimal doEstimates = new BigDecimal(UtilProperties.getPropertyValue("shipment.properties", "shipment.default.cost.actual_over_estimated_percent_allowed", "10"));
+                // calculate the difference (in percentage) between estimatedShippingCharges (taken when order is created) and newEstimatedShippingCharges (calculated according to package weight)
+                if (estimatedShippingCost.compareTo(ZERO) > 0) {
+                    diffInShipCostInPerc = (((newEstimatedShippingCost.subtract(estimatedShippingCost)).divide(estimatedShippingCost, 2, rounding)).multiply(new BigDecimal(100))).abs();
+                } else {
+                    diffInShipCostInPerc = newEstimatedShippingCost;
+                }
+                // check the difference in shippingCharges, if it is greater/less than 10% then show warning form
+                if (doEstimates.compareTo(diffInShipCostInPerc) == -1) {
+                    response.put("showWarningForm", true);
+                } else if (weightPackageSession.complete(orderId, locale)) {
+                    response.put("shipmentId", shipmentId);
+                } else {
+                    response = ServiceUtil.returnError(UtilProperties.getMessage("ProductErrorUiLabels", "ProductErrorNoItemsCurrentlySetToBeShippedCannotComplete", locale));
+                }
+            } else if (weightPackageSession.complete(orderId, locale)) {
                 response.put("shipmentId", shipmentId);
             } else {
                 response = ServiceUtil.returnError(UtilProperties.getMessage("ProductErrorUiLabels", "ProductErrorNoItemsCurrentlySetToBeShippedCannotComplete", locale));

Modified: ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/shipment/WeightPackage.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/shipment/WeightPackage.groovy?rev=782931&r1=782930&r2=782931&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/shipment/WeightPackage.groovy (original)
+++ ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/shipment/WeightPackage.groovy Tue Jun  9 09:46:03 2009
@@ -22,7 +22,6 @@
 import org.ofbiz.entity.condition.EntityCondition;
 import org.ofbiz.order.order.OrderReadHelper;
 import org.ofbiz.shipment.weightPackage.WeightPackageSession;
-
 weightPackageSession = session.getAttribute("weightPackageSession");
 if (!weightPackageSession) {
     weightPackageSession = new WeightPackageSession(dispatcher, userLogin);
@@ -30,6 +29,12 @@
 }
 context.weightPackageSession = weightPackageSession;
 
+showWarningForm = parameters.showWarningForm;
+if (!showWarningForm) {
+    showWarningForm = false;
+}
+context.showWarningForm = showWarningForm;
+
 orderId = parameters.orderId;
 shipGroupSeqId = parameters.shipGroupSeqId;
 
@@ -67,10 +72,31 @@
     }
 }
 
+shipmentId = parameters.shipmentId;
+if (!shipmentId) {
+    shipmentId = request.getAttribute("shipmentId");
+}
+context.shipmentId = shipmentId;
+//invoiceIds = null;
+if (shipmentId) {
+    // Get the primaryOrderId from the shipment
+    shipment = delegator.findOne("Shipment",  [shipmentId : shipmentId], false);
+    if (shipment && shipment.primaryOrderId) {
+        orderItemBillingList = delegator.findList("OrderItemBilling", EntityCondition.makeCondition([orderId : shipment.primaryOrderId]), null, ['invoiceId'], null, false);
+        invoiceIds = EntityUtil.getFieldListFromEntityList(orderItemBillingList, "invoiceId", true);
+        if (invoiceIds) {
+            context.invoiceIds = invoiceIds;
+            orderId = null;
+            
+        }
+    }
+}
+
 weightPackageSession.setPrimaryShipGroupSeqId(shipGroupSeqId);
 weightPackageSession.setPrimaryOrderId(orderId);
 weightPackageSession.setPicklistBinId(picklistBinId);
 weightPackageSession.setFacilityId(facilityId);
+context.primaryOrderId = orderId;
 
 if (orderId) {
     orderHeader = delegator.findOne("OrderHeader", [orderId : orderId], false);
@@ -79,6 +105,7 @@
         GenericValue orderItemShipGroup = orderReadHelper.getOrderItemShipGroup(shipGroupSeqId);
         if ("ORDER_APPROVED".equals(orderHeader.statusId)) {
             if (shipGroupSeqId) {
+            if (shipment) {
                 productStoreId = orderReadHelper.getProductStoreId();
                 shippableItemInfo = orderReadHelper.getOrderItemAndShipGroupAssoc(shipGroupSeqId);
                 shippableItems = delegator.findList("OrderItemAndShipGrpInvResAndItemSum", EntityCondition.makeCondition([orderId : orderId, shipGroupSeqId : shipGroupSeqId]), null, null, null, false);
@@ -94,6 +121,10 @@
                 context.productStoreId = productStoreId;
                 context.estimatedShippingCost = estimatedShippingCost;
             } else {
+                orderId = null;
+                request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage("OrderErrorUiLabels", "OrderErrorOrderNotVerified", ["orderId" : orderId], locale));
+            }
+            } else {
                 request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage("ProductErrorUiLabels", "ProductErrorNoShipGroupSequenceIdFoundCannotProcess", locale));
             }
         } else {

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?rev=782931&r1=782930&r2=782931&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/facility/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/product/webapp/facility/WEB-INF/controller.xml Tue Jun  9 09:46:03 2009
@@ -693,11 +693,10 @@
     </request-map>
 
      <!-- ============= Weight Package Only Requests ============== -->
-    <request-map uri="weightPackageOnly">
+    <request-map uri="WeightPackageOnly">
         <security https="true" auth="true"/>
-        <event type="service" invoke="weightPackageOnly"/>
         <response name="success" type="view" value="WeightPackageOnly"/>
-        <response name="error" type="view" value="PackOrder"/>
+        <response name="error" type="view" value="WeightPackageOnly"/>
     </request-map>
     <request-map uri="setPackageInfo">
         <security https="true" auth="true"/>
@@ -717,10 +716,21 @@
         <response name="success" type="view" value="WeightPackageOnly"/>
         <response name="error" type="view" value="WeightPackageOnly"/>
     </request-map>
+    <request-map uri="shipNow">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="completePackage"/>
+        <response name="success" type="view" value="WeightPackageOnly"/>
+        <response name="error" type="view" value="WeightPackageOnly"/>
+    </request-map>
+    <request-map uri="HoldShipment">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="WeightPackageOnly"/>
+        <response name="error" type="view" value="WeightPackageOnly"/>
+    </request-map>
     <request-map uri="completePackage">
         <security https="true" auth="true"/>
         <event type="service" invoke="completePackage"/>
-        <response name="success" type="view" value="PackOrder"/>
+        <response name="success" type="view" value="WeightPackageOnly"/>
         <response name="error" type="view" value="WeightPackageOnly"/>
     </request-map>
 
@@ -775,18 +785,6 @@
         <response name="success" type="view" value="PackOrder"/>
         <response name="error" type="view" value="PackOrder"/>
     </request-map>
-    <request-map uri="shipNow">
-        <security https="true" auth="true"/>
-        <event type="service" invoke="completePack"/>
-        <response name="success" type="view" value="PackOrder"/>
-        <response name="error" type="view" value="PackOrder"/>
-    </request-map>
-    <request-map uri="holdShipment">
-        <security https="true" auth="true"/>
-        <event type="service" invoke="holdShipment"/>
-        <response name="success" type="view" value="PackOrder"/>
-        <response name="error" type="view" value="PackOrder"/>
-    </request-map>
     <request-map uri="CompletePack">
         <security https="true" auth="true"/>
         <event type="service" invoke="completePack"/>

Modified: ofbiz/trunk/applications/product/webapp/facility/shipment/PackOrder.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/facility/shipment/PackOrder.ftl?rev=782931&r1=782930&r2=782931&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/facility/shipment/PackOrder.ftl (original)
+++ ofbiz/trunk/applications/product/webapp/facility/shipment/PackOrder.ftl Tue Jun  9 09:46:03 2009
@@ -75,7 +75,7 @@
                   <td colspan="2">
                     <input type="image" src="<@ofbizContentUrl>/images/spacer.gif</@ofbizContentUrl>" onClick="javascript:document.selectOrderForm.submit();">
                     <a href="javascript:document.selectOrderForm.submit();" class="buttontext">${uiLabelMap.ProductPackOrder}</a>
-                    <a href="javascript:document.selectOrderForm.action='<@ofbizUrl>weightPackageOnly</@ofbizUrl>';document.selectOrderForm.submit();" class="buttontext">${uiLabelMap.ProductWeightPackageOnly}</a>
+                    <a href="javascript:document.selectOrderForm.action='<@ofbizUrl>WeightPackageOnly</@ofbizUrl>';document.selectOrderForm.submit();" class="buttontext">${uiLabelMap.ProductWeightPackageOnly}</a>
                   </td>
                 </tr>
               </table>
@@ -100,7 +100,7 @@
                   <td colspan="1">
                     <input type="image" src="<@ofbizContentUrl>/images/spacer.gif</@ofbizContentUrl>" onClick="javascript:document.selectPicklistBinForm.submit();">
                     <a href="javascript:document.selectPicklistBinForm.submit();" class="buttontext">${uiLabelMap.ProductPackOrder}</a>
-                    <a href="javascript:document.selectPicklistBinForm.action='<@ofbizUrl>weightPackageOnly</@ofbizUrl>';document.selectPicklistBinForm.submit();" class="buttontext">${uiLabelMap.ProductWeightPackageOnly}</a>
+                    <a href="javascript:document.selectPicklistBinForm.action='<@ofbizUrl>WeightPackageOnly</@ofbizUrl>';document.selectPicklistBinForm.submit();" class="buttontext">${uiLabelMap.ProductWeightPackageOnly}</a>
                   </td>
                 </tr>
               </table>

Modified: ofbiz/trunk/applications/product/webapp/facility/shipment/WeightPackage.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/facility/shipment/WeightPackage.ftl?rev=782931&r1=782930&r2=782931&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/facility/shipment/WeightPackage.ftl (original)
+++ ofbiz/trunk/applications/product/webapp/facility/shipment/WeightPackage.ftl Tue Jun  9 09:46:03 2009
@@ -18,6 +18,7 @@
 -->
 
 <#if security.hasEntityPermission("FACILITY", "_VIEW", session)>
+<#if !(showWarningForm)>
   <div class="screenlet">
     <div class="screenlet-title-bar">
       <ul>
@@ -26,6 +27,73 @@
       <br class="clear"/>
     </div>
     <div class="screenlet-body">
+      <#if invoiceIds?has_content>
+        <div>
+          ${uiLabelMap.CommonView} <a href="<@ofbizUrl>/PackingSlip.pdf?shipmentId=${shipmentId}</@ofbizUrl>" target="_blank" class="buttontext">${uiLabelMap.ProductPackingSlip}</a> ${uiLabelMap.CommonOr}
+          ${uiLabelMap.CommonView} <a href="<@ofbizUrl>/ShipmentBarCode.pdf?shipmentId=${shipmentId}</@ofbizUrl>" target="_blank" class="buttontext">${uiLabelMap.ProductBarcode}</a> ${uiLabelMap.CommonFor} ${uiLabelMap.ProductShipmentId} <a href="<@ofbizUrl>/ViewShipment?shipmentId=${shipmentId}</@ofbizUrl>" class="buttontext">${shipmentId}</a>
+        </div>
+        <#if invoiceIds?exists && invoiceIds?has_content>
+          <div>
+            <p>${uiLabelMap.AccountingInvoices}:</p>
+            <ul>
+              <#list invoiceIds as invoiceId>
+                <li>
+                  #<a href="/accounting/control/invoiceOverview?invoiceId=${invoiceId}&externalLoginKey=${externalLoginKey}" target="_blank" class="buttontext">${invoiceId}</a>
+                  (<a href="/accounting/control/invoice.pdf?invoiceId=${invoiceId}&externalLoginKey=${externalLoginKey}" target="_blank" class="buttontext">PDF</a>)
+                </li>
+              </#list>
+            </ul>
+          </div>
+        </#if>
+      </#if>
+      <br/>
+      <#if (invoiceIds?has_content) || !(orderId?has_content)>
+        <form name="selectOrderForm" method="post" action="<@ofbizUrl>WeightPackageOnly</@ofbizUrl>">
+          <input type="hidden" name="facilityId" value="${(facility.facilityId)?if_exists}">
+          <table cellspacing="0" class="basic-table">
+            <tr>
+              <td width="25%" align="right"><span class="label">${uiLabelMap.ProductOrderId}</span></td>
+              <td width="1">&nbsp;</td>
+              <td width="25%">
+                <input type="text" name="orderId" size="20" maxlength="20" value="${primaryOrderId?if_exists}"/>
+                /
+                <input type="text" name="shipGroupSeqId" size="6" maxlength="6" value="${shipGroupSeqId?default("00001")}"/>
+              </td>
+              <td>&nbsp;</td>
+            </tr>
+            <tr>
+              <td colspan="2">&nbsp;</td>
+              <td colspan="2">
+                <a href="javascript:document.selectOrderForm.submit();" class="buttontext">${uiLabelMap.ProductWeightPackageOnly}</a>
+                <a href="javascript:document.selectOrderForm.action='<@ofbizUrl>PackOrder</@ofbizUrl>';document.selectOrderForm.submit();" class="buttontext">${uiLabelMap.ProductPackOrder}</a>
+              </td>
+            </tr>
+          </table>
+        </form>
+        <br/>
+        <!-- select picklist bin form -->
+        <form name="selectPicklistBinForm" method="post" action="<@ofbizUrl>WeightPackageOnly</@ofbizUrl>" style="margin: 0;">
+          <input type="hidden" name="facilityId" value="${(facility.facilityId)?if_exists}">
+          <table cellspacing="0" class="basic-table">
+            <tr>
+              <td width="25%" align='right'><span class="label">${uiLabelMap.FormFieldTitle_picklistBinId}</span></td>
+              <td width="1">&nbsp;</td>
+              <td width="25%">
+                <input type="text" name="picklistBinId" size="29" maxlength="60" value="${picklistBinId?if_exists}"/>
+              </td>
+              <td>&nbsp;</td>
+            </tr>
+            <tr>
+              <td colspan="2">&nbsp;</td>
+              <td colspan="1">
+                <a href="javascript:document.selectPicklistBinForm.submit();" class="buttontext">${uiLabelMap.ProductWeightPackageOnly}</a>
+                <a href="javascript:document.selectPicklistBinForm.action='<@ofbizUrl>PackOrder</@ofbizUrl>';document.selectPicklistBinForm.submit();" class="buttontext">${uiLabelMap.ProductPackOrder}</a>
+              </td>
+            </tr>
+          </table>
+        </form>
+      </#if>
+      <#if !(invoiceIds?has_content) && (orderId?has_content)>
       <#assign packedLines = weightPackageSession.getPackedLines(orderId)/>
       <#if packedLines?has_content>
         <table class="basic-table" cellpadding="2" cellspacing='0'>
@@ -88,9 +156,10 @@
           <input type="hidden" name="facilityId" value="${(facility.facilityId)?if_exists}"/>
           <input type="hidden" name="weightUomId" value="${defaultWeightUomId}"/>
           <input type="hidden" name="dimensionUomId" value="${defaultDimensionUomId}"/>
-          <input type="hidden" name="shipmentId" value="${(shipment.shipmentId)?default("")}"/>
-          <input type="hidden" name="invoiceId" value="${(invoice.invoiceId)?default("")}"/>
+          <input type="hidden" name="shipmentId" value="${(shipment.shipmentId)?if_exists}"/>
+          <input type="hidden" name="invoiceId" value="${(invoice.invoiceId)?if_exists}"/>
           <input type="hidden" name="estimatedShippingCost" value="${estimatedShippingCost?if_exists}"/>
+          <input type="hidden" name="newEstimatedShippingCost" value="${newEstimatedShippingCost?if_exists}"/>
         </form>
       </#if>
       <table class="basic-table" cellpadding="2" cellspacing='0'>
@@ -130,9 +199,43 @@
               </select>
             </td>
             <td align="right"><a href="javascript:document.weightPackageForm.submit()" class="buttontext">${uiLabelMap.ProductNextPackage}</a></td>
-          </form>
-        </table>
+          </tr>
+        </form>
+      </table>
+      </#if>
+    </div>
+  </div>
+<#else>
+  <div class="screenlet">
+    <div class="screenlet-title-bar">
+      <ul>
+        <li class="h3">${uiLabelMap.WebtoolsWarningLogLevel}:</li>
+      </ul>
+      <br class="clear"/>
+    </div>
+    <div class="screenlet-body">
+      <div>
+        <h3>${uiLabelMap.FacilityWarningMessageThereIsMuchDifferenceInShippingCharges}&nbsp[${uiLabelMap.FacilityEstimatedShippingCharges} = ${estimatedShippingCost?if_exists}, ${uiLabelMap.FacilityActualShippingCharges} = ${newEstimatedShippingCost?if_exists}]</h3>
+      </div>
+      <form name="shipNowForm" method="post" action="<@ofbizUrl>shipNow</@ofbizUrl>">
+        <input type="hidden" name="orderId" value="${orderId?if_exists}"/>
+        <input type="hidden" name="shipGroupSeqId" value="${shipGroupSeqId?if_exists}"/>
+        <input type="hidden" name="facilityId" value="${(facility.facilityId)?if_exists}"/>
+        <input type="hidden" name="shipmentId" value="${(shipment.shipmentId)?if_exists}"/>
+        <input type="hidden" name="invoiceId" value="${(invoice.invoiceId)?if_exists}"/>
+        <input type="hidden" name="shipNow" value="Y"/>
+      </form>
+      <form name="holdShipmentForm" method="post" action="<@ofbizUrl>HoldShipment</@ofbizUrl>">
+        <input type="hidden" name="orderId" value="${orderId?if_exists}"/>
+        <input type="hidden" name="shipGroupSeqId" value="${shipGroupSeqId?if_exists}"/>
+        <input type="hidden" name="facilityId" value="${(facility.facilityId)?if_exists}"/>
+      </form>
+      <div>
+        <a href="javascript:document.shipNowForm.submit()" class="buttontext">${uiLabelMap.FacilityShip} ${uiLabelMap.CommonNow}</a>
+        &nbsp;
+        <a href="javascript:document.holdShipmentForm.submit()" class="buttontext">${uiLabelMap.FacilityHoldShipment}</a>
       </div>
     </div>
   </div>
+</#if>
 </#if>
\ No newline at end of file