r18666 - gnucash/trunk/src/business/business-reports - Bug #564380 Payment on bills doubles bill

Geert Janssens gjanssens at code.gnucash.org
Wed Feb 17 05:51:10 EST 2010


Author: gjanssens
Date: 2010-02-17 05:51:10 -0500 (Wed, 17 Feb 2010)
New Revision: 18666
Trac: http://svn.gnucash.org/trac/changeset/18666

Modified:
   gnucash/trunk/src/business/business-reports/invoice.scm
Log:
Bug #564380 Payment on bills doubles bill

Patch by Mike Evans

Modified: gnucash/trunk/src/business/business-reports/invoice.scm
===================================================================
--- gnucash/trunk/src/business/business-reports/invoice.scm	2010-02-17 08:53:13 UTC (rev 18665)
+++ gnucash/trunk/src/business/business-reports/invoice.scm	2010-02-17 10:51:10 UTC (rev 18666)
@@ -388,15 +388,31 @@
     (define (add-payment-row table used-columns split total-collector)
       (let* ((t (xaccSplitGetParent split))
 	     (currency (xaccTransGetCurrency t))
-	     ;; XXX Need to know when to reverse the value
+	     (invoice (opt-val invoice-page invoice-name))
+	     (owner '())
 	     (amt (gnc:make-gnc-monetary currency (xaccSplitGetValue split)))
 	     (payment-style "grand-total")
 	     (row '()))
+
+	; Update to fix bug 564380, payment on bill doubles bill Mike Evans <mikee at saxicola.co.uk>
+	;; Reverse the value when needed
+	(if (not (null? invoice))
+	    (begin
+		 (set! owner (gncInvoiceGetOwner invoice))
+		 (let ((type (gncOwnerGetType
+				(gncOwnerGetEndOwner owner))))
+		      (cond
+			((eqv? type GNC-OWNER-CUSTOMER)
+			 (total-collector 'add 
+			    (gnc:gnc-monetary-commodity amt)
+			    (gnc:gnc-monetary-amount amt)))
+			((eqv? type GNC-OWNER-VENDOR)
+			 (total-collector 'add 
+			    (gnc:gnc-monetary-commodity amt)
+			    (gnc:gnc-monetary-amount (gnc:monetary-neg amt))))
+	))))
+	       
 	
-	(total-collector 'add 
-			 (gnc:gnc-monetary-commodity amt)
-			 (gnc:gnc-monetary-amount amt))
-
 	(if (date-col used-columns)
 	    (addto! row
 		    (gnc-print-date (gnc-transaction-get-date-posted t))))



More information about the gnucash-changes mailing list