You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ap...@apache.org on 2009/11/07 07:27:53 UTC

svn commit: r833636 - in /ofbiz/trunk/applications/accounting: config/AccountingUiLabels.xml script/org/ofbiz/accounting/payment/PaymentServices.xml servicedef/services_payment.xml webapp/ar/WEB-INF/controller.xml webapp/ar/payment/batchPayments.ftl

Author: apatel
Date: Sat Nov  7 06:27:52 2009
New Revision: 833636

URL: http://svn.apache.org/viewvc?rev=833636&view=rev
Log:
Adding mass payment status change to find screen. Also added few more details in payments list.

Modified:
    ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml
    ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml
    ofbiz/trunk/applications/accounting/servicedef/services_payment.xml
    ofbiz/trunk/applications/accounting/webapp/ar/WEB-INF/controller.xml
    ofbiz/trunk/applications/accounting/webapp/ar/payment/batchPayments.ftl

Modified: ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml?rev=833636&r1=833635&r2=833636&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml (original)
+++ ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml Sat Nov  7 06:27:52 2009
@@ -7695,6 +7695,10 @@
         <value xml:lang="en">Payment status must be received or sent</value>
         <value xml:lang="hi_IN">भुगतान की स्थिति 'प्राप्त' या 'भेजा दिया' होना चाहिए</value>
     </property>
+    <property key="AccountingPaymentStatusToNotPaid">
+        <value xml:lang="en">Status to "Not Paid"</value>
+        <value xml:lang="hi_IN">भुगतान नहीं दिया</value>
+    </property>
     <property key="AccountingPermissionError">
         <value xml:lang="ar">لا رخصة لديكم لهذه العملية</value>
         <value xml:lang="de">Sie haben keine Berechtigung für diese Funktion.</value>

Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml?rev=833636&r1=833635&r2=833636&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml (original)
+++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml Sat Nov  7 06:27:52 2009
@@ -694,4 +694,13 @@
         </else>
         </if-not-empty>
     </simple-method>
+    
+    <simple-method method-name="massChangePaymentStatus" short-description="Service set status of Payments in bulk.">
+        <iterate list="parameters.paymentIds" entry="paymentId">
+            <set field="setPaymentStatusMap.paymentId" from-field="paymentId"/>
+            <set field="setPaymentStatusMap.statusId" from-field="parameters.statusId"/>
+            <call-service service-name="setPaymentStatus" in-map-name="setPaymentStatusMap"/>
+            <clear-field field="setPaymentStatusMap"/>
+        </iterate>
+    </simple-method>
 </simple-methods>

Modified: ofbiz/trunk/applications/accounting/servicedef/services_payment.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_payment.xml?rev=833636&r1=833635&r2=833636&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/servicedef/services_payment.xml (original)
+++ ofbiz/trunk/applications/accounting/servicedef/services_payment.xml Sat Nov  7 06:27:52 2009
@@ -225,4 +225,12 @@
         <description>Check the valid(unbatched) payment and create batch for same</description>
         <implements service="createPaymentGroupAndMember"/>
     </service>
+    
+    <service name="massChangePaymentStatus" engine="simple"
+            location="component://accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml" invoke="massChangePaymentStatus" auth="true">
+        <description>Set status of Payments in bulk.</description>
+        <attribute name="paymentIds" type="List" mode="IN" optional="false"/>
+        <attribute name="statusId" type="String" mode="IN" optional="false"/>
+        <attribute name="errorMessage" type="String" optional="true" mode="OUT"/>
+    </service>
 </services>

Modified: ofbiz/trunk/applications/accounting/webapp/ar/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/ar/WEB-INF/controller.xml?rev=833636&r1=833635&r2=833636&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/ar/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/accounting/webapp/ar/WEB-INF/controller.xml Sat Nov  7 06:27:52 2009
@@ -83,7 +83,12 @@
         <security https="true" auth="true"/>
         <response name="success" type="view" value="FindArPaymentGroups"/>
     </request-map>
-
+    <request-map uri="massChangePaymentStatus">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="massChangePaymentStatus"/>
+        <response name="success" type="view" value="BatchPayments"/>
+        <response name="error" type="view" value="BatchPayments"/>
+    </request-map>
     <!-- end of request mappings -->
 
     <!-- View Mappings -->

Modified: ofbiz/trunk/applications/accounting/webapp/ar/payment/batchPayments.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/ar/payment/batchPayments.ftl?rev=833636&r1=833635&r2=833636&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/ar/payment/batchPayments.ftl (original)
+++ ofbiz/trunk/applications/accounting/webapp/ar/payment/batchPayments.ftl Sat Nov  7 06:27:52 2009
@@ -17,136 +17,183 @@
 under the License.
 -->
 
-<script language="JavaScript" type="text/javascript">
-<!-- //
+<script type="text/javascript">
+//<![CDATA[
 function togglePaymentId(master) {
-    var form = document.paymentBatchForm;
-    var payments = form.elements.length;
-    for (var i = 0; i < payments; i++) {
-        var element = form.elements[i];
-        if (element.name == "paymentIds") {
-            element.checked = master.checked;
-        }
-    }
+    var payments = $('paymentBatchForm').getInputs('checkbox','paymentIds');
+    payments.each(function(payment){
+        payment.checked = master.checked;
+    });
     getPaymentRunningTotal();
 }
 function getPaymentRunningTotal() {
-    var form = document.paymentBatchForm;
-    var payments = form.elements.length;
-    var isSingle = true;
-    var isAllSelected = true;
-    for (var i = 0; i < payments; i++) {
-        var element = form.elements[i];
-        if (element.name == "paymentIds") {
-            if (element.checked) {
-                isSingle = false;
-            } else {
-                isAllSelected = false;
-            }
-        }
-    }
-    if (isAllSelected) {
+    var payments = $('paymentBatchForm').getInputs('checkbox','paymentIds');
+    if(payments.pluck('checked').all()) {
         $('checkAllPayments').checked = true;
     } else {
         $('checkAllPayments').checked = false;
     }
-    if (!isSingle) {
-        $('submitButton').disabled = false;
+
+    if(payments.pluck('checked').any()) {
         new Ajax.Request('getPaymentRunningTotal', {
             asynchronous: false,
             onSuccess: function(transport) {
                 var data = transport.responseText.evalJSON(true);
                 $('showPaymentRunningTotal').update(data.paymentRunningTotal);
-            }, parameters: $('paymentBatchForm').serialize(), requestHeaders: {Accept: 'application/json'}
+            }, 
+            parameters: $('paymentBatchForm').serialize(), 
+            requestHeaders: {Accept: 'application/json'}
         });
+        if($F('serviceName') != "") {
+            $('submitButton').disabled = false;
+        }
+        
     } else {
         $('submitButton').disabled = true;
         $('showPaymentRunningTotal').update("");
     }
 }
 function setServiceName(selection) {
-    $('paymentBatchForm').action = '<@o...@ofbizUrl>';
-    showCreatePaymentBatch(selection);
-    $('submitButton').disabled = true;
-}
-function showCreatePaymentBatch(selection) {
-    if (selection.value == 'createPaymentBatch') {
-        Effect.BlindDown('createPaymentBatch',{duration: 0.0});
+    if (selection.value == 'massPaymentsToNotPaid' || selection.value == 'massPaymentsToSent' || selection.value == 'massPaymentsToReceived' || selection.value == 'massPaymentsToConfirmed' || selection.value == 'massPaymentsToCancelled' || selection.value == 'massPaymentsToVoid') {
+        $('paymentBatchForm').action = $('paymentStatusChange').value;
+    }
+    else {
+        $('paymentBatchForm').action = selection.value;
+    }
+    if (selection.value == 'massPaymentsToNotPaid') {
+        $('statusId').value = "PMNT_NOT_PAID";
+    } else if (selection.value == 'massPaymentsToSent') {
+        $('statusId').value = "PMNT_SENT";
+    }else if (selection.value == 'massPaymentsToReceived') {
+        $('statusId').value = "PMNT_RECEIVED";
+    }else if (selection.value == 'massPaymentsToConfirmed') {
+        $('statusId').value = "PMNT_CONFIRMED";
+    }else if (selection.value == 'massPaymentsToCancelled') {
+        $('statusId').value = "PMNT_CANCELLED";
+    }else if (selection.value == 'massPaymentsToVoid') {
+        $('statusId').value = "PMNT_VOID";
+    }
+    if ($('processBatchPayment').selected) {
+        Effect.BlindDown('createPaymentBatch');
     } else {
-        Effect.BlindUp('createPaymentBatch',{duration: 0.0});
+        Effect.BlindUp('createPaymentBatch');
+    }
+    if($('paymentBatchForm').getInputs('checkbox','paymentIds').pluck('checked').any() && ($F('serviceName') != "")) {
+            $('submitButton').disabled = false;
+    } else {
+        $('submitButton').disabled = true;
     }
-}
 
-// -->
+}
+//]]>
 
 </script>
 <div class="screenlet">
     <div class="screenlet-body">
-        <form id="paymentBatchForm" name="paymentBatchForm" method="post" action="">
+        <form id="paymentBatchForm" method="post" action="">
             <#if paymentList?has_content>
-                <div>
+                <div class="clearfix">
+                <div class="float-left">
                     <span class="label">${uiLabelMap.AccountingRunningTotal} :</span>
                     <span class="label" id="showPaymentRunningTotal"></span>
                 </div>
-                <div align="right">
+                <div class="align-float">
                     <select name="serviceName" id="serviceName" onchange="javascript:setServiceName(this);">
                         <option value="">${uiLabelMap.AccountingSelectAction}</options>
-                        <option value="createPaymentBatch">${uiLabelMap.AccountingCreateBatch}</option>
+                        <option value="<@o...@ofbizUrl>" id="processBatchPayment">${uiLabelMap.AccountingCreateBatch}</option>
+                        <option value="massPaymentsToNotPaid">${uiLabelMap.AccountingPaymentStatusToNotPaid}</option>
+                        <option value="massPaymentsToSent">${uiLabelMap.AccountingInvoiceStatusToSent}</option>
+                        <option value="massPaymentsToReceived">${uiLabelMap.AccountingInvoiceStatusToReceived}</option>
+                        <option value="massPaymentsToConfirmed">${uiLabelMap.AccountingPaymentTabStatusToConfirmed}</option>
+                        <option value="massPaymentsToCancelled">${uiLabelMap.AccountingPaymentTabStatusToCancelled}</option>
+                        <option value="massPaymentsToVoid">${uiLabelMap.AccountingPaymentTabStatusToVoid}</option>
                     </select>
-                    <input id="submitButton" type="button"  onclick="javascript:$('paymentBatchForm').submit();" value="${uiLabelMap.CommonRun}" disabled/>
-                    <input type="hidden" name='organizationPartyId' value="${organizationPartyId?if_exists}">
-                    <input type="hidden" name='paymentGroupTypeId' value="BATCH_PAYMENT">
-                    <input type="hidden" name="groupInOneTransaction" value="Y"/>
+                    <input id="submitButton" type="button" onclick="javascript:$('paymentBatchForm').submit();" value="${uiLabelMap.CommonRun}" disabled="disabled" />
+                    <input type="hidden" name='organizationPartyId' value="${organizationPartyId?if_exists}" />
+                    <input type="hidden" name='paymentGroupTypeId' value="BATCH_PAYMENT" />
+                    <input type="hidden" name="groupInOneTransaction" value="Y" />
+                    <input type="hidden" name="paymentStatusChange" id="paymentStatusChange" value="<@o...@ofbizUrl>" />
+                    <input type="hidden" name="statusId" id="statusId" value="${parameters.statusId?if_exists}" />
                     <#if finAccountId?has_content>
-                        <input type="hidden" name='finAccountId' value="${finAccountId?if_exists}">
+                        <input type="hidden" name='finAccountId' value="${finAccountId?if_exists}" />
                     </#if>
-                    <input type="hidden" name='paymentMethodTypeId' value="${paymentMethodTypeId?if_exists}">
-                    <input type="hidden" name='cardType' value="${cardType?if_exists}">
-                    <input type="hidden" name='partyIdFrom' value="${partyIdFrom?if_exists}">
-                    <input type="hidden" name='fromDate' value="${fromDate?if_exists}">
-                    <input type="hidden" name='thruDate' value="${thruDate?if_exists}">
+                    <input type="hidden" name='paymentMethodTypeId' value="${paymentMethodTypeId?if_exists}" />
+                    <input type="hidden" name='cardType' value="${cardType?if_exists}" />
+                    <input type="hidden" name='partyIdFrom' value="${partyIdFrom?if_exists}" />
+                    <input type="hidden" name='fromDate' value="${fromDate?if_exists}" />
+                    <input type="hidden" name='thruDate' value="${thruDate?if_exists}" />
                 </div>
-                <table class="basic-table">
+                </div>
+                <div id="createPaymentBatch" style="display: none;" class="align-float">
+                    <label for="paymentGroupName">${uiLabelMap.AccountingPaymentGroupName}</label>
+                    <input type="text" size='25' id="paymentGroupName" name='paymentGroupName' />
+                    <#if finAccounts?has_content>
+                        <label for="finAccountId">${uiLabelMap.AccountingBankAccount}</label>
+                        <select name="finAccountId" id="finAccountId">
+                            <#list finAccounts as finAccount>
+                                <option value="${finAccount.get("finAccountId")}">${finAccount.get("finAccountName")} [${finAccount.get("finAccountId")}]</option>
+                            </#list>
+                        </select>
+                    </#if>
+                </div>
+                <table class="basic-table hover-bar">
+                  <thead>
                     <tr class="header-row-2">
-                        <td>${uiLabelMap.FormFieldTitle_paymentId}</td>
-                        <td>${uiLabelMap.Party}</td>
-                        <td>${uiLabelMap.CommonAmount}</td>
-                        <td>${uiLabelMap.CommonDate}</td>
-                        <td align="right">
-                            ${uiLabelMap.CommonSelectAll}&nbsp;
-                            <input type="checkbox" id="checkAllPayments" name="checkAllPayments" onchange="javascript:togglePaymentId(this);"/>
-                        </td>
+                      <th>${uiLabelMap.FormFieldTitle_paymentId}</th>
+                      <th>${uiLabelMap.AccountingPaymentType}</th>
+                      <th>${uiLabelMap.CommonStatus}</th>
+                      <th>${uiLabelMap.CommonComments}</th>
+                      <th>${uiLabelMap.AccountingFromParty}</th>
+                      <th>${uiLabelMap.AccountingToParty}</th>
+                      <th>${uiLabelMap.AccountingEffectiveDate}</th>
+                      <th>${uiLabelMap.AccountingAmount}</th>
+                      <th>${uiLabelMap.FormFieldTitle_amountToApply}</th>
+                      <th>${uiLabelMap.CommonPaymentMethodType}</th>
+                      <th>
+                        ${uiLabelMap.CommonSelectAll}
+                        <input type="checkbox" id="checkAllPayments" name="checkAllPayments" onchange="javascript:togglePaymentId(this);"/>
+                      </th>
                     </tr>
+                  </thead>
+                  <tbody>
                     <#assign alt_row = false>
                     <#list paymentList as payment>
-                        <tr <#if alt_row> class="alternate-row"</#if>>
-                            <td><a href="<@o...@ofbizUrl>">${payment.paymentId}</a></td>
-                            <td>
-                                    <a href="/partymgr/control/viewprofile?partyId=${payment.partyIdFrom}">${(payment.partyFromFirstName)!} ${(payment.partyFromLastName)!} ${(payment.partyFromGroupName)!}[${(payment.partyIdFrom)!}]</a>
-                            </td>
-                            <td><@ofbizCurrency amount=payment.amount isoCode=payment.currencyUomId/></td>
-                            <td>${payment.effectiveDate?if_exists}</td>
-                            <td align="right">
-                                <input type="checkbox" id="paymentId_${payment_index}" name="paymentIds" value="${payment.paymentId}" onclick="javascript:getPaymentRunningTotal('paymentId_${payment_index}');"/>
-                            </td>
-                        </tr>
+                      <tr <#if alt_row> class="alternate-row"</#if>>
+                        <td><a href="<@o...@ofbizUrl>" class="buttontext">${payment.paymentId}</a></td>
+                        <td>
+                          ${payment.paymentTypeDesc?default(payment.paymentTypeId)}
+                        </td>
+                        <td>
+                          ${payment.statusDesc?default(payment.statusId)}
+                        </td>
+                        <td>${(payment.comments)?if_exists}</td>
+                        <td>
+                          <a href="/partymgr/control/viewprofile?partyId=${payment.partyIdFrom}">${(payment.partyFromFirstName)?if_exists} ${(payment.partyFromLastName)?if_exists} ${(payment.partyFromGroupName)?if_exists}[${(payment.partyIdFrom)?if_exists}]</a>
+                        </td>
+                        <td>
+                          <a href="/partymgr/control/viewprofile?partyId=${payment.partyIdTo}">${(payment.partyToFirstName)?if_exists} ${(payment.partyToLastName)?if_exists} ${(payment.partyToGroupName)?if_exists}[${(payment.partyIdTo)?if_exists}]</a>
+                        </td>
+                        <td>${payment.effectiveDate?if_exists}</td>
+                        <td><@ofbizCurrency amount = payment.amount isoCode = payment.currencyUomId /></td>
+                        <td>
+                          <#assign amountToApply = Static["org.ofbiz.accounting.payment.PaymentWorker"].getPaymentNotApplied(payment) />
+                          <@ofbizCurrency amount = amountToApply isoCode = amountToApply.currencyUomId />
+                        </td>
+                        <td>
+                          <#assign creditCard = (delegator.findOne("CreditCard", {"paymentMethodId" : payment.paymentMethodId}, false))?if_exists />
+                          ${payment.paymentMethodTypeDesc?default(payment.paymentMethodTypeId)}
+                          <#if creditCard?has_content>/${(creditCard.cardType)?if_exists}</#if>
+                        </td>
+                        <td>
+                          <input type="checkbox" id="paymentId_${payment_index}" name="paymentIds" value="${payment.paymentId}" onclick="javascript:getPaymentRunningTotal('paymentId_${payment_index}');" />
+                        </td>
+                      </tr>
                         <#assign alt_row = !alt_row>
                     </#list>
-                    <div id="createPaymentBatch" style="display: none;" align="right">
-                        <span class="label">${uiLabelMap.AccountingPaymentGroupName}</span>
-                        <input type="text" size='25' id="paymentGroupName" name='paymentGroupName'>
-                        <#if finAccounts?has_content>
-                            <span class="label">${uiLabelMap.AccountingBankAccount}</span>
-                            <select name="finAccountId">
-                                <#list finAccounts as finAccount>
-                                    <option value="${finAccount.get("finAccountId")}">${finAccount.get("finAccountName")} [${finAccount.get("finAccountId")}]</option>
-                                </#list>
-                            </select>
-                        </#if>
-                    <div>
+                  </tbody>
                 </table>
             <#else>
-                <span class="label">${uiLabelMap.AccountingNoRecordFound}</span>
+                <h2>${uiLabelMap.AccountingNoRecordFound}</h3>
             </#if>
         </form>
     </div>