r22126 - gnucash/trunk/src/report/business-reports - Bug 670008 - taxinvoice lacks flexibility necessary to produce legally valid Australian Tax Invoice

Mike Evans mikee at code.gnucash.org
Sat Mar 31 08:07:08 EDT 2012


Author: mikee
Date: 2012-03-31 08:07:07 -0400 (Sat, 31 Mar 2012)
New Revision: 22126
Trac: http://svn.gnucash.org/trac/changeset/22126

Modified:
   gnucash/trunk/src/report/business-reports/taxinvoice.eguile.scm
Log:
Bug 670008 - taxinvoice lacks flexibility necessary to produce legally valid Australian Tax Invoice
Patches supplied by Dmitry Smirnov, many thanks.

Modified: gnucash/trunk/src/report/business-reports/taxinvoice.eguile.scm
===================================================================
--- gnucash/trunk/src/report/business-reports/taxinvoice.eguile.scm	2012-03-30 17:51:19 UTC (rev 22125)
+++ gnucash/trunk/src/report/business-reports/taxinvoice.eguile.scm	2012-03-31 12:07:07 UTC (rev 22126)
@@ -68,9 +68,7 @@
            (payments?  #f) ; have any payments been made on this invoice?
            (units?     #f) ; does any row specify units?
            (qty?       #f) ; does any row have qty <> 1?
-           (spancols_subtotal	1)	; for subtotal line
-           (spancols_payments	0)	; for payments line (between total and subtotal)
-           (spancols_total	1))	; for total line
+           (tbl_cols   0)) ; number of columns for 'colspan' attributes
 
       ; load splits, if any
       (if (not (null? lot))
@@ -282,34 +280,29 @@
     <tr bgcolor="#ccc" valign="bottom">
       <?scm (if opt-col-date (begin ?>
       <th align="center" ><?scm:d (_ "Date") ?></th>
-      <?scm (set! spancols_subtotal (+ spancols_subtotal 1))
-            (set! spancols_total (+ spancols_total 1)))) ?>
+      <?scm (set! tbl_cols (+ tbl_cols 1)) )) ?>
       <th align="left" width="80%"><?scm:d (_ "Description") ?></th>
       <?scm (if (and units? opt-col-units) (begin ?>
         <th align="left"><?scm:d opt-units-heading ?></th>
-        <?scm (set! spancols_subtotal (+ spancols_subtotal 1))
-              (set! spancols_total (+ spancols_total 1)))) ?>
+      <?scm (set! tbl_cols (+ tbl_cols 1)) )) ?>
       <?scm (if (or units? qty?) (begin ?>
         <th align="right"><?scm:d opt-qty-heading ?></th>
-        <?scm (set! spancols_total (+ spancols_total 1))
-               (set! spancols_subtotal (+ spancols_subtotal 1)))) ?>
+      <?scm (set! tbl_cols (+ tbl_cols 1)) )) ?>
       <?scm (if (or units? qty? discount?) (begin ?>
         <th align="right"><?scm:d opt-unit-price-heading ?></th>
-        <?scm (set! spancols_total (+ spancols_total 1))
-              (set! spancols_subtotal (+ spancols_subtotal 1)))) ?>
+      <?scm (set! tbl_cols (+ tbl_cols 1)) )) ?>
       <?scm (if discount? (begin ?>
         <th align="right"><?scm:d opt-disc-rate-heading ?></th>
         <th align="right"><?scm:d opt-disc-amount-heading ?></th>
-        <?scm (set! spancols_total (+ spancols_total 2))
-              (set! spancols_subtotal (+ spancols_subtotal 1)))) ?>
+      <?scm (set! tbl_cols (+ tbl_cols 2)) )) ?>
       <?scm (if (and tax? taxtables?) (begin ?>
         <th align="right"><?scm:d opt-net-price-heading ?></th>
+        <?scm (set! tbl_cols (+ tbl_cols 1)) ?>
         <?scm (if opt-col-taxrate (begin ?>
         <th align="right"><?scm:d opt-tax-rate-heading ?></th>
-        <?scm (set! spancols_total (+ spancols_total 1)))) ?>
+        <?scm (set! tbl_cols (+ tbl_cols 1)) )) ?>
         <th align="right"><?scm:d opt-tax-amount-heading ?></th>
-        <?scm (set! spancols_total (+ spancols_total 1))
-              (set! spancols_subtotal (+ spancols_subtotal 0)))) ?>
+      <?scm (set! tbl_cols (+ tbl_cols 1)) )) ?>
       <th align="right"><?scm:d opt-total-price-heading ?></th>
     </tr>
   </thead>
@@ -375,10 +368,14 @@
     </tr>
     <?scm )) ?>
 
-    <!-- display subtotals row -->
+    <!-- subtotals row -->
     <?scm (if (or tax? discount? payments?) (begin ?>
       <tr valign="top"> 
-        <td align="left" class="subtotal" colspan="<?scm:d spancols_subtotal ?>"><strong><?scm:d opt-subtotal-heading ?></strong></td>
+        <td align="left" class="subtotal" colspan="<?scm:d 
+        (- tbl_cols (if (and tax? taxtables? opt-col-taxrate) 1 0)
+                    (if (and tax? taxtables?) 1 -1)
+                    (if (and discount?) 1 0)
+        ) ?>"><strong><?scm:d opt-subtotal-heading ?></strong></td>
         <?scm (if discount? (begin ?>
           <td align="right" class="subtotal"><strong><?scm (display-comm-coll-total dsc-total #f) ?></strong></td>
         <?scm )) ?>
@@ -393,7 +390,7 @@
       </tr>
     <?scm )) ?>
 
-    <!-- payments -->
+    <!-- payments row -->
     <?scm 
       (if payments? 
         (for split in splits do
@@ -402,20 +399,20 @@
                 (let ((c (xaccTransGetCurrency t))
                       (a (xaccSplitGetValue    split))) 
                   (inv-total 'add c a) 
-        (set! spancols_payments (+ 0 spancols_total))
     ?>
     <tr valign="top">
       <?scm (if opt-col-date (begin ?>
       <td align="center"><?scm:d (gnc-print-date (gnc-transaction-get-date-posted t)) ?></td>
-      <?scm (set! spancols_payments (- spancols_payments 1)))) ?>
-      <td align="left" colspan="<?scm:d spancols_payments ?>"><?scm:d opt-payment-recd-heading ?></td> 
+      <?scm )) ?>
+      <td align="left" colspan="<?scm:d (+ tbl_cols (if opt-col-date 0 1)) ?>"><?scm:d opt-payment-recd-heading ?></td>
       <td align="right"><?scm:d (fmtmoney c a) ?></td>
     </tr>
     <?scm ))))) ?>
 
     <!-- total row -->
     <tr valign="top">
-      <td align="left" class="total" colspan="<?scm:d spancols_total ?>"><strong><?scm:d opt-amount-due-heading ?><?scm (if (not (string=? (gnc-commodity-get-mnemonic opt-report-currency) "")) (begin ?>,
+      <td align="left" class="total" colspan="<?scm:d (+ tbl_cols 1) ?>"><strong>
+        <?scm:d opt-amount-due-heading ?><?scm (if (not (string=? (gnc-commodity-get-mnemonic opt-report-currency) "")) (begin ?>,
         <?scm:d (gnc-commodity-get-mnemonic opt-report-currency) ?><?scm )) ?></strong></td>
       <td align="right" class="total"><strong><?scm (display-comm-coll-total inv-total #f) ?></strong></td>
     </tr>



More information about the gnucash-changes mailing list