Author: ashish
Date: Fri Jul 3 14:26:57 2009
New Revision: 790926
URL: http://svn.apache.org/viewvc?rev=790926&view=rev
Log:
Applied patch from jira issue OFBIZ-2695 (Imporve service on when set invoice
status to cancel)
Thanks Surya & Sumit Pandit for your contribution.
Modified:
ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml
ofbiz/trunk/applications/accounting/servicedef/secas_ledger.xml
ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml
ofbiz/trunk/applications/accounting/webapp/accounting/invoice/InvoiceSubTabBar.ftl
Modified: ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml?rev=790926&r1=790925&r2=790926&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml (original)
+++ ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml Fri Jul 3
14:26:57 2009
@@ -845,7 +845,7 @@
<StatusValidChange condition="" statusId="INVOICE_READY"
statusIdTo="INVOICE_PAID" transitionName="Pay"/>
<StatusValidChange condition="" statusId="INVOICE_READY"
statusIdTo="INVOICE_WRITEOFF" transitionName="Write Off"/>
<StatusValidChange condition="" statusId="INVOICE_PAID"
statusIdTo="INVOICE_READY" transitionName="Unpay"/>
-
+ <StatusValidChange condition="" statusId="INVOICE_READY"
statusIdTo="INVOICE_CANCELLED" transitionName="Cancel"/>
<!-- payment status -->
<StatusType description="Payment Status" hasTable="N" parentTypeId=""
statusTypeId="PMNT_STATUS"/>
@@ -863,6 +863,8 @@
<StatusValidChange condition="" statusId="PMNT_SENT"
statusIdTo="PMNT_VOID" transitionName="Payment Voided"/>
<StatusValidChange condition="" statusId="PMNT_RECEIVED"
statusIdTo="PMNT_VOID" transitionName="Payment Voided"/>
<StatusValidChange condition="" statusId="PMNT_NOT_PAID"
statusIdTo="PMNT_VOID" transitionName="Payment Voided"/>
+ <StatusValidChange condition="" statusId="PMNT_SENT"
statusIdTo="PMNT_NOT_PAID" transitionName="Payment Not Paid"/>
+ <StatusValidChange condition="" statusId="PMNT_RECEIVED"
statusIdTo="PMNT_NOT_PAID" transitionName="Payment Not Paid"/>
<SettlementTerm settlementTermId="COD" termName="Cash Due on Delivery"
termValue="0" uomId="TF_day"/>
<SettlementTerm settlementTermId="NET_15" termName="Net Due in 15 Days"
termValue="15" uomId="TF_day"/>
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=790926&r1=790925&r2=790926&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
Fri Jul 3 14:26:57 2009
@@ -503,20 +503,6 @@
<call-service service-name="createPaymentApplication"
in-map-name="payAppl"/>
</if-compare>
</if-compare>
-
- <!-- if new status is cancelled remove existing payment
applications and time entries. -->
- <if-compare field="parameters.statusId" operator="equals"
value="INVOICE_CANCELLED">
- <set field="removePaymentApplicationMap.invoiceId"
from-field="parameters.invoiceId"/>
- <remove-by-and entity-name="PaymentApplication"
map="removePaymentApplicationMap"/>
- <entity-and entity-name="TimeEntry" list="entries">
- <field-map field-name="invoiceId"
from-field="parameters.invoiceId"/>
- </entity-and>
- <iterate entry="entry" list="entries">
- <clear-field field="entry.invoiceId"/>
- <clear-field field="entry.invoiceItemSeqId"/>
- <store-value value-field="entry"/>
- </iterate>
- </if-compare>
</else>
</if-empty>
</if-compare-field>
@@ -598,4 +584,45 @@
<call-service service-name="updateInvoice"
in-map-name="updateInvoiceCtx"/>
</iterate>
</simple-method>
+
+ <simple-method method-name="cancelInvoice" short-description="Service to
cancel the Invoices">
+ <entity-one entity-name="Invoice" value-field="invoice"/>
+ <if-empty field="invoice">
+ <add-error><fail-message
message="${uiLabelMap.AccountingInvoiceNotFound}"/></add-error>
+ <check-errors/>
+ </if-empty>
+ <get-related relation-name="AcctgTrans" list="acctgTransInvoiceList"
value-field="invoice"/>
+ <iterate list="acctgTransInvoiceList" entry="acctgTransInvoice">
+ <set field="copyAcctgTransCtx.fromAcctgTransId"
from-field="acctgTransInvoice.acctgTransId"/>
+ <set field="copyAcctgTransCtx.revert" value="Y"/>
+ <call-service service-name="copyAcctgTransAndEntries"
in-map-name="copyAcctgTransCtx"/>
+ </iterate>
+ <get-related relation-name="PaymentApplication" value-field="invoice"
list="paymentApplications"/>
+ <iterate list="paymentApplications" entry="paymentApplication">
+ <get-related-one relation-name="Payment"
value-field="paymentApplication" to-value-field="payment"/>
+ <if>
+ <condition>
+ <or>
+ <if-compare field="updatePaymentCtx.statusId"
operator="equals" value="PMNT_SENT"/>
+ <if-compare field="updatePaymentCtx.statusId"
operator="equals" value="PMNT_RECEIVED"/>
+ </or>
+ </condition>
+ <then>
+ <set field="paymentStatusCtx.paymentId"
from-field="payment.paymentId"/>
+ <set field="paymentStatusCtx.statusId"
value="PMNT_NOT_PAID"/>
+ <call-service service-name="setPaymentStatus"
in-map-name="paymentStatusCtx"/>
+ <get-related relation-name="AcctgTrans"
value-field="payment" list="acctgTransPaymentList"/>
+ <clear-field field="copyAcctgTransCtx"/>
+ <iterate list="acctgTransPaymentList"
entry="acctgTransPayment">
+ <set field="copyAcctgTransCtx.fromAcctgTransId"
from-field="acctgTransPayment.acctgTransId"/>
+ <set field="copyAcctgTransCtx.revert" value="Y"/>
+ <call-service service-name="copyAcctgTransAndEntries"
in-map-name="copyAcctgTransCtx"/>
+ </iterate>
+ </then>
+ </if>
+ <set field="removePaymentApplicationCtx.paymentApplicationId"
from-field="paymentApplication.paymentApplicationId"/>
+ <call-service service-name="removePaymentApplication"
in-map-name="removePaymentApplicationCtx"/>
+ </iterate>
+ </simple-method>
+
</simple-methods>
Modified: ofbiz/trunk/applications/accounting/servicedef/secas_ledger.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/secas_ledger.xml?rev=790926&r1=790925&r2=790926&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/servicedef/secas_ledger.xml (original)
+++ ofbiz/trunk/applications/accounting/servicedef/secas_ledger.xml Fri Jul 3
14:26:57 2009
@@ -125,5 +125,11 @@
<condition field-name="oldStatusId" operator="not-equals"
value="PMNT_SENT"/>
<action service="createAcctgTransAndEntriesForOutgoingPayment"
mode="sync"/>
</eca>
+
+ <eca service="setInvoiceStatus" event="commit">
+ <condition field-name="invoiceId" operator="is-not-empty"/>
+ <condition field-name="statusId" operator="equals"
value="INVOICE_CANCELLED"/>
+ <action service="cancelInvoice" mode="sync"/>
+ </eca>
</service-eca>
\ No newline at end of file
Modified: ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml?rev=790926&r1=790925&r2=790926&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml
(original)
+++ ofbiz/trunk/applications/accounting/servicedef/services_invoice.xml Fri Jul
3 14:26:57 2009
@@ -286,4 +286,10 @@
<description>Scheduled service to generate Invoice from an existing
Invoice</description>
<attribute name="recurrenceInfoId" mode="IN" type="String"
optional="false"/>
</service>
+
+ <service name="cancelInvoice" engine="simple"
+
location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml"
invoke="cancelInvoice">
+ <description>Cancel Invoice</description>
+ <attribute name="invoiceId" type="String" mode="IN" optional="false"/>
+ </service>
</services>
Modified:
ofbiz/trunk/applications/accounting/webapp/accounting/invoice/InvoiceSubTabBar.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/invoice/InvoiceSubTabBar.ftl?rev=790926&r1=790925&r2=790926&view=diff
==============================================================================
---
ofbiz/trunk/applications/accounting/webapp/accounting/invoice/InvoiceSubTabBar.ftl
(original)
+++
ofbiz/trunk/applications/accounting/webapp/accounting/invoice/InvoiceSubTabBar.ftl
Fri Jul 3 14:26:57 2009
@@ -93,7 +93,7 @@
</form>
</li>
</#if>
- <#if invoice.statusId == "INVOICE_SENT" || invoice.statusId ==
"INVOICE_RECEIVED" || invoice.statusId == "INVOICE_IN_PROCESS">
+ <#if invoice.statusId == "INVOICE_SENT" || invoice.statusId ==
"INVOICE_RECEIVED" || invoice.statusId == "INVOICE_IN_PROCESS" ||
invoice.statusId == "INVOICE_READY">
<li>
<a href="javascript:confirmActionFormLink('You want to cancel this
invoice number ${invoice.invoiceId}?','InvoiceSubTabBar_statusToCancelled')"
class="buttontext">${uiLabelMap.AccountingInvoiceStatusToCancelled}</a>
<form method="post" action="<@ofbizUrl>setInvoiceStatus</@ofbizUrl>"
onSubmit="javascript:submitFormDisableSubmits(this)"
name="InvoiceSubTabBar_statusToCancelled">