You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2013/06/19 07:59:13 UTC

svn commit: r1494466 - in /ofbiz/trunk/applications/order: config/OrderErrorUiLabels.xml src/org/ofbiz/order/OrderManagerEvents.java webapp/ordermgr/order/receivepayment.ftl widget/ordermgr/OrderViewScreens.xml

Author: hansbak
Date: Wed Jun 19 05:59:13 2013
New Revision: 1494466

URL: http://svn.apache.org/r1494466
Log:
now you can also (next to the payment method type) enter the payment on the sales order using the payment method used by the related receiving accounting company

Modified:
    ofbiz/trunk/applications/order/config/OrderErrorUiLabels.xml
    ofbiz/trunk/applications/order/src/org/ofbiz/order/OrderManagerEvents.java
    ofbiz/trunk/applications/order/webapp/ordermgr/order/receivepayment.ftl
    ofbiz/trunk/applications/order/widget/ordermgr/OrderViewScreens.xml

Modified: ofbiz/trunk/applications/order/config/OrderErrorUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/config/OrderErrorUiLabels.xml?rev=1494466&r1=1494465&r2=1494466&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/config/OrderErrorUiLabels.xml (original)
+++ ofbiz/trunk/applications/order/config/OrderErrorUiLabels.xml Wed Jun 19 05:59:13 2013
@@ -2805,6 +2805,9 @@
         <value xml:lang="zh">按订单获取退货金额时出现问题</value>
         <value xml:lang="zh_TW">按訂單獲取退貨金額時出現問題</value>
     </property>
+    <property key="OrderProblemsWithPaymentMethodLookup">
+        <value xml:lang="en">Problems with PaymentMethod lookup. </value>
+    </property>
     <property key="OrderProblemsWithPaymentTypeLookup">
         <value xml:lang="de">Problem mit Zahlungsart-Suchhilfe. </value>
         <value xml:lang="en">Problems with PaymentType lookup. </value>

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/OrderManagerEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/OrderManagerEvents.java?rev=1494466&r1=1494465&r2=1494466&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/OrderManagerEvents.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/OrderManagerEvents.java Wed Jun 19 05:59:13 2013
@@ -131,11 +131,14 @@ public class OrderManagerEvents {
         Locale locale = UtilHttp.getLocale(request);
 
         String orderId = request.getParameter("orderId");
+        String partyId = request.getParameter("partyId");
 
         // get the order header & payment preferences
         GenericValue orderHeader = null;
+        List<GenericValue> orderRoles = null;
         try {
             orderHeader = delegator.findOne("OrderHeader", UtilMisc.toMap("orderId", orderId), false);
+            orderRoles = delegator.findList("OrderRole", EntityCondition.makeCondition("orderId", EntityOperator.EQUALS, orderId), null, null, null, false);
         } catch (GenericEntityException e) {
             Debug.logError(e, "Problems reading order header from datasource.", module);
             request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage(resource_error,"OrderProblemsReadingOrderHeaderInformation", locale));
@@ -164,7 +167,17 @@ public class OrderManagerEvents {
             return "error";
         }
 
-        List<GenericValue> toBeStored = FastList.newInstance();
+        // get the payment methods to receive
+        List<GenericValue> paymentMethods = null;
+        try {
+            EntityExpr ee = EntityCondition.makeCondition("partyId", EntityOperator.EQUALS, partyId);
+            paymentMethods = delegator.findList("PaymentMethod", ee, null, null, null, false);
+        } catch (GenericEntityException e) {
+            Debug.logError(e, "Problems getting payment methods", module);
+            request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage(resource_error,"OrderProblemsWithPaymentMethodLookup", locale));
+            return "error";
+        }
+
         GenericValue placingCustomer = null;
         try {
             List<GenericValue> pRoles = delegator.findByAnd("OrderRole", UtilMisc.toMap("orderId", orderId, "roleTypeId", "PLACING_CUSTOMER"), null, false);
@@ -176,6 +189,48 @@ public class OrderManagerEvents {
             return "error";
         }
 
+        for(GenericValue paymentMethod : paymentMethods) {
+            String paymentMethodId = paymentMethod.getString("paymentMethodId");
+            String paymentMethodAmountStr = request.getParameter(paymentMethodId + "_amount");
+            String paymentMethodReference = request.getParameter(paymentMethodId + "_reference");
+            if (!UtilValidate.isEmpty(paymentMethodAmountStr)) {
+                BigDecimal paymentMethodAmount = BigDecimal.ZERO;
+                try {
+                	paymentMethodAmount = (BigDecimal) ObjectType.simpleTypeConvert(paymentMethodAmountStr, "BigDecimal", null, locale);
+                } catch (GeneralException e) {
+                    request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage(resource_error,"OrderProblemsPaymentParsingAmount", locale));
+                    return "error";
+                }
+                if (paymentMethodAmount.compareTo(BigDecimal.ZERO) > 0) {
+                    // create a payment, payment reference and payment appl record, when not exist yet.
+                    Map<String, Object> results = null;
+                    try {
+                        results = dispatcher.runSync("createPaymentFromOrder", 
+                            UtilMisc.toMap("orderId", orderId,
+                            		"paymentMethodId", paymentMethodId,
+                            		"paymentRefNum", paymentMethodReference, 
+                                    "comments", "Payment received offline and manually entered.",
+                                    "userLogin", userLogin));
+                    } catch (GenericServiceException e) {
+                        Debug.logError(e, "Failed to execute service createPaymentFromOrder", module);
+                        request.setAttribute("_ERROR_MESSAGE_", e.getMessage());
+                        return "error";
+                    }
+
+                    if ((results == null) || (results.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_ERROR))) {
+                        Debug.logError((String) results.get(ModelService.ERROR_MESSAGE), module);
+                        request.setAttribute("_ERROR_MESSAGE_", results.get(ModelService.ERROR_MESSAGE));
+                        return "error";
+                    }
+                	
+                }
+                OrderChangeHelper.approveOrder(dispatcher, userLogin, orderId);
+                return "success";
+            }
+        }
+        
+        
+        List<GenericValue> toBeStored = FastList.newInstance();
         for(GenericValue paymentMethodType : paymentMethodTypes) {
             String paymentMethodTypeId = paymentMethodType.getString("paymentMethodTypeId");
             String amountStr = request.getParameter(paymentMethodTypeId + "_amount");
@@ -189,7 +244,6 @@ public class OrderManagerEvents {
                     return "error";
                 }
                 if (paymentTypeAmount.compareTo(BigDecimal.ZERO) > 0) {
-
                     // create the OrderPaymentPreference
                     // TODO: this should be done with a service
                     Map<String, String> prefFields = UtilMisc.<String, String>toMap("orderPaymentPreferenceId", delegator.getNextSeqId("OrderPaymentPreference"));

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/order/receivepayment.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/order/receivepayment.ftl?rev=1494466&r1=1494465&r2=1494466&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/order/receivepayment.ftl (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/order/receivepayment.ftl Wed Jun 19 05:59:13 2013
@@ -33,6 +33,30 @@ under the License.
         <#if requestParameters.workEffortId?exists>
             <input type="hidden" name="workEffortId" value="${requestParameters.workEffortId}" />
         </#if>
+        <input type="hidden" name="partyId" value="${orderRoles[0].partyId}" />
+
+        <#if paymentMethods?has_content>
+        <table class="basic-table" cellspacing='0'>
+          <tr class="header-row">
+            <td width="30%" align="right">${uiLabelMap.PaymentMethod}</td>
+            <td width="1">&nbsp;&nbsp;&nbsp;</td>
+            <td width="1">${uiLabelMap.OrderAmount}</td>
+            <td width="1">&nbsp;&nbsp;&nbsp;</td>
+            <td width="70%">${uiLabelMap.OrderReference}</td>
+          </tr>
+          <#list paymentMethods as payMethod>
+          <tr>
+            <td width="30%" align="right">${payMethod.get("description",locale)?default(payMethod.paymentMethodId)}</td>
+            <td width="1">&nbsp;&nbsp;&nbsp;</td>
+            <td width="1"><input type="text" size="7" name="${payMethod.paymentMethodId}_amount" /></td>
+            <td width="1">&nbsp;&nbsp;&nbsp;</td>
+            <td width="70%"><input type="text" size="15" name="${payMethod.paymentMethodId}_reference" /></td>
+          </tr>
+          </#list>
+        </table>
+        </#if>
+        <br /> <br />
+        <#if paymentMethodTypes?has_content>
         <table class="basic-table" cellspacing='0'>
           <tr class="header-row">
             <td width="30%" align="right">${uiLabelMap.OrderPaymentType}</td>
@@ -51,6 +75,7 @@ under the License.
           </tr>
           </#list>
         </table>
+        </#if>
       </form>
 
       <a href="<@o...@ofbizUrl>" class="buttontext">${uiLabelMap.CommonBack}</a>

Modified: ofbiz/trunk/applications/order/widget/ordermgr/OrderViewScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/widget/ordermgr/OrderViewScreens.xml?rev=1494466&r1=1494465&r2=1494466&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/widget/ordermgr/OrderViewScreens.xml (original)
+++ ofbiz/trunk/applications/order/widget/ordermgr/OrderViewScreens.xml Wed Jun 19 05:59:13 2013
@@ -331,8 +331,15 @@ under the License.
         <section>
             <actions>
                 <set field="titleProperty" value="OrderReceiveOfflinePayments"/>
-               <set field="headerItem" value="findorders"/>
+                <set field="headerItem" value="findorders"/>
                 <script location="component://order/webapp/ordermgr/WEB-INF/actions/order/ReceivePayment.groovy"/>
+                <entity-and entity-name="OrderRole" list="orderRoles">
+                	<field-map field-name="orderId" value="${parameters.orderId}"/>
+                	<field-map field-name="roleTypeId" value="BILL_FROM_VENDOR"/>
+                </entity-and>
+                <entity-and entity-name="PaymentMethod" list="paymentMethods">
+                	<field-map field-name="partyId" from-field="orderRoles[0].partyId"/>
+                </entity-and>
             </actions>
             <widgets>
                 <decorator-screen name="CommonOrderViewDecorator">