Author: ashish
Date: Wed Jul 8 16:42:28 2009 New Revision: 792222 URL: http://svn.apache.org/viewvc?rev=792222&view=rev Log: Applied patch from jira issue OFBIZ-2706 - Create a screen under AP -> Invoice, which will search for a PURCHASE_INVOICE between dates. Following thing is covered in this patch: – Added running total functionality for selected invoices. Thanks Arpit, Rishi for your contribution. Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/controller.xml ofbiz/trunk/applications/accounting/webapp/ap/invoices/PurchaseInvoices.ftl Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml?rev=792222&r1=792221&r2=792222&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml (original) +++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml Wed Jul 8 16:42:28 2009 @@ -625,4 +625,23 @@ </iterate> </simple-method> + <simple-method method-name="getInvoiceRunningTotal" short-description="calculate running total for Invoices"> + <set field="invoiceIds" from-field="parameters.invoiceIds"/> + <set field="invoiceRunningTotal" type="BigDecimal" value="0"/> + <iterate list="invoiceIds" entry="invoiceId"> + <entity-one entity-name="Invoice" value-field="invoice" auto-field-map="true"/> + <set field="serviceInMap.invoiceId" from-field="invoice.invoiceId"/> + <call-service service-name="getInvoicePaymentInfoList" in-map-name="serviceInMap"> + <result-to-field result-name="invoicePaymentInfoList"/> + </call-service> + <first-from-list list="invoicePaymentInfoList" entry="invoicePaymentInfo"/> + <calculate field="invoiceRunningTotal"> + <calcop operator="add" field="invoiceRunningTotal"> + <calcop operator="get" field="invoicePaymentInfo.outstandingAmount"/> + </calcop> + </calculate> + </iterate> + <field-to-result field="invoiceRunningTotal"/> + </simple-method> + </simple-methods> Modified: ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml?rev=792222&r1=792221&r2=792222&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml (original) +++ ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml Wed Jul 8 16:42:28 2009 @@ -292,4 +292,12 @@ <description>Cancel Invoice</description> <attribute name="invoiceId" type="String" mode="IN" optional="false"/> </service> + + <service name="getInvoiceRunningTotal" engine="simple" + location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="getInvoiceRunningTotal" auth="true"> + <description>calculate running total for selected Invoices</description> + <attribute name="invoiceIds" type="List" mode="IN" optional="false"/> + <attribute name="invoiceRunningTotal" type="BigDecimal" mode="OUT" optional="false"/> + </service> + </services> Modified: ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/controller.xml?rev=792222&r1=792221&r2=792222&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/accounting/webapp/ap/WEB-INF/controller.xml Wed Jul 8 16:42:28 2009 @@ -43,6 +43,11 @@ <security https="true" auth="true"/> <response name="success" type="view" value="NewPurchaseInvoice"/> </request-map> + <request-map uri="getInvoiceRunningTotal"> + <event type="jsonservice" invoke="getInvoiceRunningTotal"/> + <response name="success" type="none"/> + <response name="error" type="none"/> + </request-map> <!-- ================ Vendor requests ================ --> <request-map uri="findVendors"> Modified: ofbiz/trunk/applications/accounting/webapp/ap/invoices/PurchaseInvoices.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/ap/invoices/PurchaseInvoices.ftl?rev=792222&r1=792221&r2=792222&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/webapp/ap/invoices/PurchaseInvoices.ftl (original) +++ ofbiz/trunk/applications/accounting/webapp/ap/invoices/PurchaseInvoices.ftl Wed Jul 8 16:42:28 2009 @@ -16,12 +16,58 @@ specific language governing permissions and limitations under the License. --> +<script language="JavaScript" type="text/javascript"> +<!-- +function toggleInvoiceId(master) { + var form = document.listPurchaseInvoices; + var invoices = form.elements.length; + for (var i = 0; i < invoices; i++) { + var element = form.elements[i]; + if (element.name == "invoiceIds") { + element.checked = master.checked; + } + } + getInvoiceRunningTotal(master); +} + +function getInvoiceRunningTotal(e) { + var form = document.listPurchaseInvoices; + var invoices = form.elements.length; + var isSingle = true; + for (var i = 0; i < invoices; i++) { + var element = form.elements[i]; + if (element.name == "invoiceIds" && element.checked) { + isSingle = false; + } + } + if (!($(e).checked)) { + $('checkAllInvoices').checked = false; + } + if (!isSingle) { + new Ajax.Request('getInvoiceRunningTotal', { + asynchronous: false, + onSuccess: function(transport) { + var data = transport.responseText.evalJSON(true); + $('showInvoiceRunningTotal').update(data.invoiceRunningTotal); + }, parameters: $('listPurchaseInvoices').serialize(), requestHeaders: {Accept: 'application/json'} + }); + } else { + $('showInvoiceRunningTotal').update(""); + } +} +--> +</script> <#if invoices?has_content > - <form name="ListPurchaseInvoices"> + <div> + <span class="label">${uiLabelMap.AccountingRunningTotal} :</span> + <span class="label" id="showInvoiceRunningTotal"></span> + </div> + <form name="listPurchaseInvoices" id="listPurchaseInvoices"> <table class="basic-table hover-bar" cellspacing="0"> <#-- Header Begins --> <tr class="header-row-2"> + <td width="8%"><input type="checkbox" id="checkAllInvoices" name="checkAllInvoices" onchange="javascript:toggleInvoiceId(this);"/> ${uiLabelMap.CommonSelectAll}</td> <td width="10%">${uiLabelMap.FormFieldTitle_invoiceId}</td> <td width="15%">${uiLabelMap.AccountingVendorParty}</td> <td width="10%">${uiLabelMap.CommonStatus}</td> @@ -40,6 +86,7 @@ <#if invoicePaymentInfo.outstandingAmount != 0> <#assign statusItem = invoice.getRelatedOneCache("StatusItem")> <tr valign="middle"<#if alt_row> class="alternate-row"</#if>> + <td><input type="checkbox" id="invoiceId_${invoice_index}" name="invoiceIds" value="${invoice.invoiceId}" onclick="javascript:getInvoiceRunningTotal('invoiceId_${invoice_index}');"/></td> <td><a class="buttontext" href="<@ofbizUrl>invoiceOverview?invoiceId=${invoice.invoiceId}</@ofbizUrl>">${invoice.get("invoiceId")}</a></td> <td>${Static["org.ofbiz.party.party.PartyHelper"].getPartyName(delegator, invoice.partyIdFrom, false)?if_exists}</td> <td>${statusItem.get("description")?if_exists}</td> |
Free forum by Nabble | Edit this page |