In that scenario could we just allow the user to change which invoice a payment is applied to (but leave the invoice as-is otherwise)? This may fall into the issue that Adrian mentioned, but it sounds reasonable.
-David On Thu, 2009-07-09 at 11:43 +0200, Jacopo Cappellato wrote: > Well, > > a credit memo is the right way of doing it if the company is giving > back some money to the customer (a payment was really received > etc...); the process we are working on should address the situation > where a user, by error, applied a payment to a wrong (never issued to > customers) invoice, and wants to cancel the invoice and use the real > payment for other invoices. > All the cancel processes we are implementing for payments/invoices are > really addressed at fixing user errors. > > Jacopo > > > > On Jul 8, 2009, at 7:58 PM, Adrian Crum wrote: > > > Wouldn't a credit memo work in that scenario? Canceling paid > > invoices introduces a control problem. > > > > -Adrian > > > > Jacopo Cappellato wrote: > >> What we would like to implement is the ability to cancel an invoice > >> to which payment are already applied (by error of the user); the > >> process, behind the lines, will do the following tasks: > >> 1) cancel the invoice > >> 2) post "reverse" GL transactions to reset the invoice transactions > >> 3) unapply payments (applications) from the invoice (the payment > >> will then be ready to be applied to other invoices) > >> 4) post "reverse" GL transactions to reset the payment application > >> transactions > >> Jacopo > >> On Jul 8, 2009, at 5:38 PM, David E. Jones wrote: > >>> > >>> This is interesting... what does it mean when you cancel a paid > >>> invoice? > >>> > >>> -David > >>> > >>> > >>> On Wed, 2009-07-08 at 15:35 +0000, [email protected] wrote: > >>>> Author: ashish > >>>> Date: Wed Jul 8 15:35:10 2009 > >>>> New Revision: 792188 > >>>> > >>>> URL: http://svn.apache.org/viewvc?rev=792188&view=rev > >>>> Log: > >>>> Added one more StatusValidChange record for invoice. > >>>> Thanks Sumit & Jacopo. > >>>> > >>>> Modified: > >>>> ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml > >>>> ofbiz/trunk/applications/accounting/widget/Menus.xml > >>>> > >>>> Modified: ofbiz/trunk/applications/accounting/data/ > >>>> AccountingTypeData.xml > >>>> URL: > >>>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml?rev=792188&r1=792187&r2=792188&view=diff > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> =================================================================== > >>>> --- ofbiz/trunk/applications/accounting/data/ > >>>> AccountingTypeData.xml (original) > >>>> +++ ofbiz/trunk/applications/accounting/data/ > >>>> AccountingTypeData.xml Wed Jul 8 15:35:10 2009 > >>>> @@ -846,6 +846,7 @@ > >>>> <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"/> > >>>> + <StatusValidChange condition="" statusId="INVOICE_PAID" > >>>> statusIdTo="INVOICE_CANCELLED" transitionName="Cancel"/> > >>>> > >>>> <!-- payment status --> > >>>> <StatusType description="Payment Status" hasTable="N" > >>>> parentTypeId="" statusTypeId="PMNT_STATUS"/> > >>>> > >>>> Modified: ofbiz/trunk/applications/accounting/widget/Menus.xml > >>>> URL: > >>>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/Menus.xml?rev=792188&r1=792187&r2=792188&view=diff > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> = > >>>> =================================================================== > >>>> --- ofbiz/trunk/applications/accounting/widget/Menus.xml (original) > >>>> +++ ofbiz/trunk/applications/accounting/widget/Menus.xml Wed Jul > >>>> 8 15:35:10 2009 > >>>> @@ -297,6 +297,8 @@ > >>>> <if-compare field="invoice.statusId" > >>>> operator="equals" value="INVOICE_IN_PROCESS"/> > >>>> <if-compare field="invoice.statusId" > >>>> operator="equals" value="INVOICE_SENT"/> > >>>> <if-compare field="invoice.statusId" > >>>> operator="equals" value="INVOICE_RECEIVED"/> > >>>> + <if-compare field="invoice.statusId" > >>>> operator="equals" value="INVOICE_READY"/> > >>>> + <if-compare field="invoice.statusId" > >>>> operator="equals" value="INVOICE_PAID"/> > >>>> </or> > >>>> </and> > >>>> </condition> > >>>> > >>>> > >>> >
