Your message dated Wed, 06 Jun 2012 21:17:47 +0000
with message-id <[email protected]>
and subject line Bug#655951: fixed in gnucash 1:2.4.10-3
has caused the Debian Bug report #655951,
regarding [gnucash] taxinvoice lacks customizations necessary to produce legaly
valid Australian Tax Invoice
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
655951: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=655951
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: gnucash
Version: 1:2.4.8-1
Severity: important
Tags: patch
--- Please enter the report below this line. ---
Current tax invoice is not flexible enough to be used in Australia.
The attached patch introduce some customization options
necessary to produce legally valid Australian tax invoices.
Patch modifies the following upstream files:
taxinvoice.eguile.scm
taxinvoice.scm
Alternatively new tax invoice template can be evaluated by copying the
attached
invoice-au.eguile.scm
invoice-au.scm
to ~/.gnucash folder.
Please note that comparing to provided patch, invoice-au template comes with
defaults for AU i.e.
"Tax Invoice" instead of "Invoice";
"Net Price (excl GST)" instead of "Net Price";
"GST Amount" instead of "Tax Amount";
"Total Price (incl GST)" instead of "Total Price";
"Total Amount Due" instead of "Amount Due"
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<?scm
(let ((x 42)) ; only here to allow (define)s
; i.e. to avoid "Bad define placement" error
;; taxinvoice.eguile.scm 0.03
;; GnuCash report template called from taxinvoice.scm 0.02
;; (c) 2009 Chris Dennis [email protected]
;;
;; $Author: chris $ $Date: 2009/07/23 10:42:08 $ $Revision: 1.33 $
;;
;; This file is a mixture of HTML and Guile --
;; see eguile-gnc.scm for details.
;;
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 2 of the
;; License, or (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program; if not, write to the Free Software
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
;; 02111-1307 USA
(define (display-report opt-invoice owner endowner ownertype)
;; Main function that creates the tax invoice report
(let* (; invoice and company details
(invoiceid (gncInvoiceGetID opt-invoice))
(book (gncInvoiceGetBook opt-invoice))
(postdate (gncInvoiceGetDatePosted opt-invoice))
(duedate (gncInvoiceGetDateDue opt-invoice))
(billingid (gncInvoiceGetBillingID opt-invoice))
(notes (gncInvoiceGetNotes opt-invoice))
(terms (gncInvoiceGetTerms opt-invoice))
(termsdesc (gncBillTermGetDescription terms))
(lot (gncInvoiceGetPostedLot opt-invoice))
(txn (gncInvoiceGetPostedTxn opt-invoice))
(currency (gncInvoiceGetCurrency opt-invoice))
(entries (gncInvoiceGetEntries opt-invoice))
(splits '())
(slots (qof-book-get-slots book))
(coyname (coy-info slots gnc:*company-name*))
(coycontact (coy-info slots gnc:*company-contact*))
(coyaddr (coy-info slots gnc:*company-addy*))
(coyid (coy-info slots gnc:*company-id*))
(coyphone (coy-info slots gnc:*company-phone*))
(coyfax (coy-info slots gnc:*company-fax*))
(coyurl (coy-info slots gnc:*company-url*))
(coyemail (coy-info slots gnc:*company-email*))
; (owneraddr (gnc:owner-get-name-and-address-dep owner))
(owneraddr (gnc:owner-get-address-dep owner))
(billcontact (gncAddressGetName (gnc:owner-get-address owner)))
; flags and counters
(discount? #f) ; any discounts on this invoice?
(tax? #f) ; any taxable entries on this invoice?
(taxtables? #t) ; are tax tables available in this version?
(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?
(spancols1 1) ; for total line
(spancols2 1)) ; for subtotal line
; load splits, if any
(if (not (null? lot))
(set! splits
(sort-list (gnc-lot-get-split-list lot) ; sort by date
(lambda (s1 s2)
(let ((t1 (xaccSplitGetParent s1))
(t2 (xaccSplitGetParent s2)))
(< (car (gnc-transaction-get-date-posted t1))
(car (gnc-transaction-get-date-posted t2))))))))
; pre-scan invoice entries to look for discounts and taxes
(for entry in entries do
(let ((action (gncEntryGetAction entry))
(qty (gncEntryGetQuantity entry))
(discount (gncEntryGetInvDiscount entry))
(taxtable (gncEntryGetInvTaxTable entry)))
(if (not (string=? action ""))
(set! units? #t))
(if (not (= (gnc-numeric-to-double qty) 1.0))
(set! qty? #t))
(if (not (gnc-numeric-zero-p discount)) (set! discount? #t))
;(if taxable - no, this flag is redundant
(if (not (eq? taxtable '()))
(begin ; presence of a tax table means it's taxed
(set! tax? #t)
(let ((ttentries (gncTaxTableGetEntries taxtable)))
(if (string-prefix? "#<swig-pointer PriceList" (object->string ttentries))
; error in SWIG binding -- disable display of tax details
; (see http://bugzilla.gnome.org/show_bug.cgi?id=573645)
(set! taxtables? #f))))))) ; hack required until Swig is fixed
; pre-scan invoice splits to see if any payments have been made
(for split in splits do
(let* ((t (xaccSplitGetParent split)))
(if (not (equal? t txn))
(set! payments? #t))))
?>
<!-- ====================================================================== -->
<!-- The HTML for the invoice starts here -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<title><?scm:d (_ "Invoice") ?> <?scm:d invoiceid ?></title>
<?scm (if css? (begin ?>
<link rel="stylesheet" href="<?scm:d (make-file-url opt-css-file) ?>" type="text/css">
<!-- Note that the external stylesheet file is overridden by this following: -->
<style type="text/css">
body {
<?scm:d opt-text-font ?>
}
table { /* table does not inherit font */
<?scm:d opt-text-font ?>
border-collapse: collapse;
}
table[border="1"] th {
border: solid grey 1px;
}
table[border="1"] td {
border: solid silver 1px;
}
h1.coyname {
<?scm:d opt-heading-font ?>
/* font-size: 141%; */
text-align: left;
}
</style>
<?scm )) ?>
</head>
<body>
<div class="main">
<!-- company info -->
<table class="coytable" border="0" width="100%">
<tr valign="top" style="vertical-align: top">
<?scm (if (access? opt-logofile R_OK) (begin ?>
<td align="left">
<img align="left" src="<?scm:d (make-file-url opt-logofile) ?>" alt="logo" class="logo"
<?scm (if opt-logo-width (begin ?>
style="width: <?scm:d opt-logo-width ?>"
<?scm )) ?>
>
</td>
<?scm )) ?>
<td align="left">
<h1 class="coyname"><?scm:d (or coyname (_ "Company Name")) ?></h1>
</td>
<td align="right"><h2 class="invoice"><?scm:d opt-report-title ?> #<?scm:d invoiceid ?></h2></td>
</tr>
</table>
<table border="0" width="100%">
<tr valign="top">
<td align="left">
<?scm (if (and opt-row-contact coycontact) (begin ?>
<strong><?scm:d coycontact ?></strong><br>
<?scm )) ?>
<?scm (if coyid (begin ?>
<strong><?scm:d coyid ?></strong><br>
<?scm )) ?>
<?scm (if (and opt-row-address coyaddr) (begin ?>
<?scm:d (nl->br coyaddr) ?><br>
<?scm )) ?>
</td>
<td align="right">
<table border="0">
<?scm (if coyphone (begin ?>
<tr>
<td align="right"><?scm:d (_ "Phone") ?>: </td>
<td align="right"><?scm:d coyphone ?></td>
</tr>
<?scm )) ?>
<?scm (if coyfax (begin ?>
<tr>
<td align="right"><?scm:d (_ "Fax") ?>: </td>
<td align="right"><?scm:d coyfax ?></td>
</tr>
<?scm )) ?>
<?scm (if coyemail (begin ?>
<tr>
<td align="right"><?scm:d (_ "Email") ?>: </td>
<td align="right"><?scm:d coyemail ?></td>
</tr>
<?scm )) ?>
<?scm (if coyurl (begin ?>
<tr>
<td align="right"><?scm:d (_ "Website") ?>: </td>
<td align="right"><?scm:d coyurl ?></td>
</tr>
<?scm )) ?>
</table>
</tr>
</table>
<hr>
<table border="0" width="100%">
<tr valign="top">
<!-- customer info -->
<th align="left" width="1%">To: </th>
<td align="left">
<!--
<?scm (if (not (string=? billcontact "")) (begin ?>
<strong>Attn: <?scm:d billcontact ?></strong><br>
<?scm )) ?>
-->
<?scm (if (not (string=? owneraddr "")) (begin ?>
<?scm:d (nl->br owneraddr) ?>
<?scm )) ?>
</td>
<!-- invoice number etc. -->
<td align="right">
<table border="0">
<!--tr>
<td align="right" class="invnum"><big><strong><?scm:d (nbsp (_ "Invoice Number")) ?>:</strong></big> </td>
<td align="right" class="invnum"><big><strong><?scm:d invoiceid ?></strong></big></td>
</tr-->
<?scm (if (equal? postdate (cons 0 0)) (begin ?>
<tr>
<td colspan="2" align="right"><?scm:d (_ "Invoice in progress...") ?></td>
</tr>
<?scm ) (begin ?>
<tr>
<td align="right"><?scm:d (nbsp (_ "Invoice Date")) ?>: </td>
<td align="right"><?scm:d (gnc-print-date postdate) ?></td>
</tr>
<tr>
<td align="right"><?scm:d (nbsp (_ "Due Date")) ?>: </td>
<td align="right"><?scm:d (gnc-print-date duedate) ?></td>
</tr>
<?scm )) ?>
<?scm (if (not (string=? termsdesc "")) (begin ?>
<tr><td colspan="2" align="right"><?scm:d termsdesc ?></td></tr>
<?scm )) ?>
</table>
</td>
</tr>
<?scm (if (not (string=? billingid "")) (begin ?>
<tr>
<td>Your ref: </td><td><?scm:d billingid ?></td>
</tr>
<?scm )) ?>
</table>
<!-- invoice lines table -->
<p>
<table border="1" width="100%" cellpadding="4" class="entries">
<thead>
<tr bgcolor="#ccc" valign="bottom">
<?scm (if opt-col-date (begin ?>
<?scm (set! spancols1 (+ spancols1 1)) (set! spancols2 (+ spancols2 1)) ?>
<th align="center"><?scm:d (_ "Date") ?></th>
<?scm )) ?>
<th align="left" width="80%"><?scm:d (_ "Description") ?></th>
<?scm (if units? (begin ?>
<th align="left"><?scm:d opt-units-heading ?></th>
<?scm (set! spancols1 (+ spancols1 1))
(set! spancols2 (+ spancols2 1)))) ?>
<?scm (if (or units? qty?) (begin ?>
<th align="right"><?scm:d opt-qty-heading ?></th>
<?scm (set! spancols1 (+ spancols1 1))
(set! spancols2 (+ spancols2 1)))) ?>
<?scm (if (or units? qty? discount?) (begin ?>
<th align="right"><?scm:d opt-unit-price-heading ?></th>
<?scm (set! spancols1 (+ spancols1 1))
(set! spancols2 (+ spancols2 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! spancols1 (+ spancols1 2))
(set! spancols2 (+ spancols2 1)))) ?>
<?scm (if (and tax? taxtables?) (begin ?><?scm (set! spancols1 (- spancols1 1)) ?>
<th align="right"><?scm:d opt-net-price-heading ?></th>
<?scm (if opt-col-taxrate (begin ?><?scm (set! spancols1 (+ spancols1 1)) (set! spancols2 (- spancols2 0)) ?>
<th align="right"><?scm:d opt-tax-rate-heading ?></th>
<?scm )) ?>
<th align="right"><?scm:d opt-tax-amount-heading ?></th>
<?scm (set! spancols1 (+ spancols1 3))
(set! spancols2 (+ spancols2 0)))) ?>
<th align="right"><?scm:d opt-total-price-heading ?></th>
</tr>
</thead>
<tbody> <!-- display invoice entry lines, keeping running totals -->
<?scm
(let ((tax-total (gnc:make-commodity-collector))
(sub-total (gnc:make-commodity-collector))
(dsc-total (gnc:make-commodity-collector))
(inv-total (gnc:make-commodity-collector)))
(for entry in entries do
(let ((qty (gncEntryGetQuantity entry))
(each (gncEntryGetInvPrice entry))
(action (gncEntryGetAction entry))
(rval (gncEntryReturnValue entry #t))
(rdiscval (gncEntryReturnDiscountValue entry #t))
(rtaxval (gncEntryReturnTaxValue entry #t))
(disc (gncEntryGetInvDiscount entry))
(disctype (gncEntryGetInvDiscountType entry))
(acc (gncEntryGetInvAccount entry))
(taxable (gncEntryGetInvTaxable entry))
(taxtable (gncEntryGetInvTaxTable entry)))
(inv-total 'add currency rval)
(inv-total 'add currency rtaxval)
(tax-total 'add currency rtaxval)
(sub-total 'add currency rval)
(dsc-total 'add currency rdiscval)
?>
<tr valign="top">
<?scm (if opt-col-date (begin ?>
<td align="center" nowrap><?scm:d (gnc-print-date (gncEntryGetDate entry)) ?></td>
<?scm )) ?>
<td align="left"><?scm:d (gncEntryGetDescription entry) ?></td>
<!-- td align="left">< ?scm:d (gncEntryGetNotes entry) ?></td -->
<?scm (if units? (begin ?>
<td align="left"><?scm:d action ?></td>
<?scm )) ?>
<?scm (if (or units? qty?) (begin ?>
<td align="right"><?scm:d (fmtnumeric qty) ?></td>
<?scm )) ?>
<?scm (if (or units? qty? discount?) (begin ?>
<td align="right"><?scm:d (fmtmoney currency each) ?></td>
<?scm )) ?>
<?scm (if discount? (begin ?>
<?scm (if (equal? disctype GNC-AMT-TYPE-VALUE) (begin ?>
<td align="right"><?scm:d (gnc:monetary->string (gnc:make-gnc-monetary currency disc)) ?></td>
<?scm ) (begin ?>
<td align="right"><?scm:d (fmtnumeric disc) ?>%</td>
<?scm )) ?>
<td align="right"><?scm:d (fmtmoney currency rdiscval) ?></td>
<?scm )) ?>
<?scm (if (and tax? taxtables?) (begin ?>
<td align="right"><?scm:d (fmtmoney currency rval) ?></td>
<?scm (if opt-col-taxrate (begin ?>
<td align="right"><?scm (taxrate taxable taxtable currency) ?></td>
<?scm )) ?>
<td align="right"><?scm:d (fmtmoney currency rtaxval) ?></td>
<?scm )) ?>
<!-- TO DO: need an option about whether to display the tax-inclusive total? -->
<td align="right"><?scm:d (fmtmoney currency (gnc-numeric-add rval rtaxval GNC-DENOM-AUTO GNC-RND-ROUND)) ?></td>
</tr>
<?scm )) ?>
<!-- display subtotals row -->
<?scm (if (or tax? discount? payments?) (begin ?>
<tr valign="top">
<td align="left" class="subtotal" colspan="<?scm:d spancols2 ?>"><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 )) ?>
<?scm (if (and tax? taxtables?) (begin ?>
<td align="right" class="subtotal"><strong><?scm (display-comm-coll-total sub-total #f) ?></strong></td>
<?scm (if opt-col-taxrate (begin ?>
<td> </td>
<?scm )) ?>
<td align="right" class="subtotal"><strong><?scm (display-comm-coll-total tax-total #f) ?></strong></td>
<?scm )) ?>
<td align="right" class="subtotal"><strong><?scm (display-comm-coll-total inv-total #f) ?></strong></td>
</tr>
<?scm )) ?>
<!-- payments -->
<?scm
(if payments?
(for split in splits do
(let ((t (xaccSplitGetParent split)))
(if (not (equal? t txn)) ; don't process the entry itself as a split
(let ((c (xaccTransGetCurrency t))
(a (xaccSplitGetValue split)))
(inv-total 'add c a)
?>
<tr valign="top">
<td align="center"><?scm:d (gnc-print-date (gnc-transaction-get-date-posted t)) ?></td>
<td align="left" colspan="<?scm:d (- spancols1 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 spancols1 ?>"><strong><?scm:d opt-amount-due-heading ?>,
<?scm:d (gnc-commodity-get-mnemonic opt-report-currency) ?>
</strong></td>
<td align="right" class="total"><strong><?scm (display-comm-coll-total inv-total #f) ?></strong></td>
</tr>
</tbody>
<?scm ) ?> <!-- end of (let) surrounding table body -->
</table>
<p><?scm:d (nl->br notes) ?>
<p><?scm:d (nl->br opt-extra-notes) ?>
<?scm )) ; end of display-report function
; 'mainline' code: check for a valid invoice, then display the report
(if (null? opt-invoice)
(begin
(display (string-append "<h2>" (_ "Tax Invoice") "</h2>"))
(display (string-append "<p>" (_ "No invoice has been selected -- please use the Options menu to select one.") "</p>")))
(let* ((owner (gncInvoiceGetOwner opt-invoice))
(endowner (gncOwnerGetEndOwner owner))
(ownertype (gncOwnerGetType endowner)))
(if (not (eqv? ownertype GNC-OWNER-CUSTOMER))
(begin
(display (string-append "<h2>" (_ "Tax Invoice") "</h2>"))
(display (string-append "<p>" (_ "This report is designed for customer (sales) invoices only. Please use the Options menu to select an <em>Invoice</em>, not a Bill or Expense Voucher.") "</p>")))
(display-report opt-invoice owner endowner ownertype))))
?>
</div>
</body>
</html>
<?scm
) ; end of enclosing let
?>
;; $Author: chris $ $Date: 2009/07/29 09:31:44 $ $Revision: 1.33 $
;;
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 2 of the
;; License, or (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program; if not, write to the Free Software
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
;; 02111-1307 USA
; put the (define-module... back when installing as a 'proper' report
; as opposed to referring to it from .gnucash/config.user
; (see http://wiki.gnucash.org/wiki/Custom_Reports )
(define-module (gnucash report invoice-au))
(use-modules (gnucash main))
(use-modules (gnucash gnc-module))
(use-modules (gnucash app-utils))
(use-modules (gnucash business-utils))
(gnc:module-load "gnucash/report/report-system" 0)
(gnc:module-load "gnucash/business-utils" 0)
(gnc:module-load "gnucash/html" 0)
(gnc:module-load "gnucash/engine" 0)
(use-modules (gnucash report standard-reports))
(use-modules (gnucash report business-reports))
(use-modules (gnucash report eguile-utilities))
(use-modules (gnucash report eguile-html-utilities))
(use-modules (gnucash report eguile-gnc))
(use-modules (srfi srfi-13)) ; for extra string functions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Report-specific routines
(define (taxrate taxable taxtable curr)
;; Display the tax rate applicable to an invoice line.
;; This may be e.g. "15%" or "£5.00" or "15% + £5.00" or "n/a"
;; depending on how complicated the tax table is.
;; (When called from within the eguile template, anything
;; (display)ed becomes part of the HTML string.)
(if (or (not taxable) (eq? taxtable '()))
(display " ")
(let* ((amttot (gnc:make-commodity-collector))
(pctot (gnc:make-numeric-collector))
(entries (gncTaxTableGetEntries taxtable))
(amt? #f) ; becomes #t if any entries are amounts
(pc? #f)) ; becomes #t if any entries are percentages
(for entry in entries do
(let ((tttype (gncTaxTableEntryGetType entry))
(ttamt (gncTaxTableEntryGetAmount entry)))
(if (equal? tttype GNC-AMT-TYPE-VALUE)
(begin
(set! amt? #t)
(amttot 'add curr ttamt))
(begin
(set! pc? #t)
(pctot 'add ttamt)))))
(if pc? (begin (display (fmtnumeric (pctot 'total #f))) (display "%")))
(if (and amt? pc?) (display " + ")) ; both - this seems unlikely in practice
(if amt?
(display-comm-coll-total amttot #f))
(if (and (not amt?) (not pc?)) (display (_ "n/a")))))) ; neither
(define (coy-info slots key)
;; Extract a value from the company info key-value pairs
(kvp-frame-get-slot-path-gslist
slots
(append gnc:*kvp-option-path* (list gnc:*business-label* key))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Define all the options
; option pages
(define rowspage (N_ "Rows"))
(define columnspage (N_ "Columns"))
(define headingpage (N_ "Headings 1"))
(define headingpage2 (N_ "Headings 2"))
(define notespage (N_ "Notes"))
;(define filespage (N_ "Files"))
(define displaypage (N_ "Display"))
(define generalpage gnc:pagename-general)
; option names
(define optname-col-date (N_ "Date"))
(define optname-col-taxrate (N_ "Tax Rate"))
(define optname-row-address (N_ "Address"))
(define optname-row-contact (N_ "Contact"))
(define optname-report-currency (N_ "Report's Currency"))
(define optname-report-title (N_ "Report title"))
(define optname-invoice-number (N_ "Invoice number"))
(define optname-template-file (N_ "Template file"))
(define optname-css-file (N_ "CSS stylesheet file"))
(define optname-heading-font (N_ "Heading font"))
(define optname-text-font (N_ "Text font"))
(define optname-logofile (N_ "Logo filename"))
(define optname-logo-width (N_ "Logo width"))
(define optname-units (N_ "Units"))
(define optname-qty (N_ "Qty"))
(define optname-unit-price (N_ "Unit Price"))
(define optname-disc-rate (N_ "Discount Rate"))
(define optname-disc-amount (N_ "Discount Amount"))
(define optname-net-price (N_ "Net Price"))
(define optname-tax-rate (N_ "Tax Rate"))
(define optname-tax-amount (N_ "Tax Amount"))
(define optname-total-price (N_ "Total Price"))
(define optname-subtotal (N_ "Sub-total"))
(define optname-amount-due (N_ "Amount Due"))
(define optname-payment-recd (N_ "Payment received text"))
(define optname-extra-notes (N_ "Extra notes"))
; Choose only customer invoices
; (This doesn't work very nicely -- all invoices and bills
; are offered for selection, but if a non-customer invoice
; is selected, the user is dumped back to viewing the
; previous invoice (or none) with no error message)
(define (customers-only invoice)
(let* ((owner (gncInvoiceGetOwner invoice))
(endowner (gncOwnerGetEndOwner owner))
(ownertype (gncOwnerGetType endowner)))
;(gnc:debug "ownertype is ")(gnc:debug ownertype)
(if (eqv? ownertype GNC-OWNER-CUSTOMER)
(list #t invoice)
(list #f invoice))))
(define (options-generator)
;; Options
(define report-options (gnc:new-options))
(define (add-option new-option)
(gnc:register-option report-options new-option))
(add-option
(gnc:make-invoice-option ; defined in gnucash/scm/business-options.scm
generalpage optname-invoice-number
"a" "" (lambda () '())
#f)) ;customers-only)) ;-- see above
;; Column options
(add-option (gnc:make-simple-boolean-option columnspage optname-col-date
"a" (N_ "Display the date?") #f))
(add-option (gnc:make-simple-boolean-option columnspage optname-col-taxrate
"b" (N_ "Display the Tax Rate?") #f))
;; Rows options
(add-option (gnc:make-simple-boolean-option rowspage optname-row-contact
"a" (N_ "Display the contact?") #f))
(add-option (gnc:make-simple-boolean-option rowspage optname-row-address
"b" (N_ "Display the address?") #f))
(add-option (gnc:make-currency-option generalpage optname-report-currency "a" "" (N_ "AUD")))
; (add-option (gnc:make-string-option generalpage optname-report-currency
; "a" "" (N_ "Report Currency")))
;; Display options
(add-option (gnc:make-string-option displaypage optname-template-file "a"
(N_ "The file name of the eguile template part of this report. This file should either be in your .gnucash directory, or else in its proper place within the GnuCash installation directories.")
"invoice-au.eguile.scm"))
(add-option (gnc:make-string-option displaypage optname-css-file "b"
(N_ "The file name of the CSS stylesheet to use with this report. This file should either be in your .gnucash directory, or else in its proper place within the GnuCash installation directories.")
"taxinvoice.css"))
(add-option (gnc:make-font-option
displaypage optname-heading-font "c"
(N_ "Font to use for the main heading") "Sans Bold 18"))
(add-option (gnc:make-font-option
displaypage optname-text-font "d"
(N_ "Font to use for everything else") "Sans 10"))
(add-option (gnc:make-pixmap-option
displaypage optname-logofile "e"
(N_ "Name of a file containing a logo to be used on the report")
""))
(add-option (gnc:make-string-option
displaypage optname-logo-width "f" (N_ "Width of the logo in CSS format, e.g. 10% or 32px. Leave blank to display the logo at its natural width. The height of the logo will be scaled accordingly.") ""))
;; Heading options
(add-option (gnc:make-string-option
; page / name / orderkey / tooltip / default
headingpage optname-report-title "a" "" (N_ "Tax Invoice")))
(add-option (gnc:make-string-option
headingpage optname-units "b" "" (N_ "Units")))
(add-option (gnc:make-string-option
headingpage optname-qty "c" "" (N_ "Qty")))
(add-option (gnc:make-string-option
headingpage optname-unit-price "d" "" (N_ "Unit Price")))
(add-option (gnc:make-string-option
headingpage optname-disc-rate "e" "" (N_ "Discount Rate")))
(add-option (gnc:make-string-option
headingpage optname-disc-amount "f" "" (N_ "Discount Amount")))
(add-option (gnc:make-string-option
headingpage optname-net-price "g" "" (N_ "Net Price (excl GST)")))
(add-option (gnc:make-string-option
headingpage optname-tax-rate "h" "" (N_ "Tax Rate")))
(add-option (gnc:make-string-option
headingpage optname-tax-amount "i" "" (N_ "GST Amount")))
(add-option (gnc:make-string-option
headingpage optname-total-price "j" "" (N_ "Total Price (incl GST)")))
(add-option (gnc:make-string-option
headingpage2 optname-subtotal "a" "" (N_ "Sub-total")))
(add-option (gnc:make-string-option
headingpage2 optname-amount-due "b" "" (N_ "Total Amount Due")))
(add-option (gnc:make-string-option
headingpage2 optname-payment-recd "c" ""
(N_ "Payment received, thank you")))
(add-option (gnc:make-text-option
notespage optname-extra-notes "a"
(N_ "Notes added at end of invoice -- may contain HTML markup")
"Thank you for your patronage."))
;(N_ "(Development version -- don't rely on the numbers on this report without double-checking them.<br>Change the 'Extra Notes' option to get rid of this message)")))
(gnc:options-set-default-section
report-options generalpage)
report-options)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Create the report
(define (report-renderer report-obj)
;; Create and return the report as either an HTML string
;; or an <html-document>
(define (opt-value section name)
; wrapper for option routines
(define (get-opt section name)
(gnc:lookup-option (gnc:report-options report-obj) section name))
(gnc:option-value (get-opt section name)))
; Get all the options
(let* ((document (gnc:make-html-document))
(opt-invoice (opt-value generalpage optname-invoice-number))
(opt-template-file (find-file
(opt-value displaypage optname-template-file)))
(opt-css-file (find-file
(opt-value displaypage optname-css-file)))
(opt-heading-font (font-name-to-style-info
(opt-value displaypage optname-heading-font)))
(opt-text-font (font-name-to-style-info
(opt-value displaypage optname-text-font)))
(opt-logofile (opt-value displaypage optname-logofile))
(opt-logo-width (opt-value displaypage optname-logo-width))
(opt-col-date (opt-value columnspage optname-col-date))
(opt-col-taxrate (opt-value columnspage optname-col-taxrate))
(opt-row-contact (opt-value rowspage optname-row-contact))
(opt-row-address (opt-value rowspage optname-row-address))
(opt-report-currency (opt-value generalpage optname-report-currency))
(opt-report-title (opt-value headingpage optname-report-title))
(opt-units-heading (opt-value headingpage optname-units))
(opt-qty-heading (opt-value headingpage optname-qty))
(opt-unit-price-heading (opt-value headingpage optname-unit-price))
(opt-disc-rate-heading (opt-value headingpage optname-disc-rate))
(opt-disc-amount-heading (opt-value headingpage optname-disc-amount))
(opt-net-price-heading (opt-value headingpage optname-net-price))
(opt-tax-rate-heading (opt-value headingpage optname-tax-rate))
(opt-tax-amount-heading (opt-value headingpage optname-tax-amount))
(opt-total-price-heading (opt-value headingpage optname-total-price))
(opt-subtotal-heading (opt-value headingpage2 optname-subtotal))
(opt-amount-due-heading (opt-value headingpage2 optname-amount-due))
(opt-payment-recd-heading (opt-value headingpage2 optname-payment-recd))
(opt-extra-notes (opt-value notespage optname-extra-notes))
(css? #t) ;(and (defined? 'gnc-html-engine-supports-css) (gnc-html-engine-supports-css)))
(html #f))
(set! html (eguile-file-to-string
opt-template-file
(the-environment)))
(gnc:debug "taxinvoice.scm: css? is " css?)
(gnc:debug "taxinvoice.scm: defined is " (defined? 'gnc-html-engine-supports-css))
(gnc:debug "taxinvoice.scm - generated html:") (gnc:debug html)
(if css? ; return report as document or html, depending on version
html
(let ((document (gnc:make-html-document)))
(gnc:html-document-add-object! document html)
document))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Define the report
(gnc:define-report
'version 1
'name (N_ "AU Tax Invoice")
'report-guid "1769e242be474010c4acf264a5512e6f"
'menu-name (N_ "AU Tax Invoice")
'menu-tip (N_ "Display a customer invoice with tax columns (using eguile template)")
'menu-path (list gnc:menuname-business-reports)
'options-generator options-generator
'renderer report-renderer)
Last-Update: 2012-01-15
Author: Dmitry Smirnov <[email protected]>
Forwarded: no
Description: customizable taxinvoice
Original taxinvoice template lacks flexibility necessary to
to make legaly valid Australian Tax Invoices.
This patch introduce some customization options
useful to comply with Australian requirements.
--- a/src/report/business-reports/taxinvoice.eguile.scm
+++ b/src/report/business-reports/taxinvoice.eguile.scm
@@ -52,19 +52,20 @@
(coyphone (coy-info slots gnc:*company-phone*))
(coyfax (coy-info slots gnc:*company-fax*))
(coyurl (coy-info slots gnc:*company-url*))
(coyemail (coy-info slots gnc:*company-email*))
- (owneraddr (gnc:owner-get-name-and-address-dep owner))
+; (owneraddr (gnc:owner-get-name-and-address-dep owner))
+ (owneraddr (gnc:owner-get-address-dep owner))
(billcontact (gncAddressGetName (gnc:owner-get-address owner)))
; flags and counters
(discount? #f) ; any discounts on this invoice?
(tax? #f) ; any taxable entries on this invoice?
(taxtables? #t) ; are tax tables available in this version?
(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?
- (spancols1 2) ; for total line
- (spancols2 2)) ; for subtotal line
+ (spancols1 1) ; for total line
+ (spancols2 1)) ; for subtotal line
; load splits, if any
(if (not (null? lot))
(set! splits
@@ -119,8 +120,15 @@
<?scm:d opt-text-font ?>
}
table { /* table does not inherit font */
<?scm:d opt-text-font ?>
+ border-collapse: collapse;
+ }
+ table[border="1"] th {
+ border: solid grey 1px;
+ }
+ table[border="1"] td {
+ border: solid silver 1px;
}
h1.coyname {
<?scm:d opt-heading-font ?>
/* font-size: 141%; */
@@ -130,9 +138,8 @@
<?scm )) ?>
</head>
<body>
-
<div class="main">
<!-- company info -->
<table class="coytable" border="0" width="100%">
@@ -148,23 +155,23 @@
<?scm )) ?>
<td align="left">
<h1 class="coyname"><?scm:d (or coyname (_ "Company Name")) ?></h1>
</td>
- <td align="right"><h2 class="invoice"><?scm:d opt-report-title ?></h2></td>
+ <td align="right"><h2 class="invoice"><?scm:d opt-report-title ?> #<?scm:d invoiceid ?></h2></td>
</tr>
</table>
<table border="0" width="100%">
<tr valign="top">
<td align="left">
- <?scm (if coycontact (begin ?>
+ <?scm (if (and opt-row-contact coycontact) (begin ?>
<strong><?scm:d coycontact ?></strong><br>
<?scm )) ?>
- <?scm (if coyaddr (begin ?>
- <?scm:d (nl->br coyaddr) ?><br>
- <?scm )) ?>
<?scm (if coyid (begin ?>
<strong><?scm:d coyid ?></strong><br>
<?scm )) ?>
+ <?scm (if (and opt-row-address coyaddr) (begin ?>
+ <?scm:d (nl->br coyaddr) ?><br>
+ <?scm )) ?>
</td>
<td align="right">
<table border="0">
<?scm (if coyphone (begin ?>
@@ -198,23 +205,26 @@
<table border="0" width="100%">
<tr valign="top">
<!-- customer info -->
+ <th align="left" width="1%">To: </th>
<td align="left">
+<!--
<?scm (if (not (string=? billcontact "")) (begin ?>
<strong>Attn: <?scm:d billcontact ?></strong><br>
<?scm )) ?>
+-->
<?scm (if (not (string=? owneraddr "")) (begin ?>
- <strong><?scm:d (nl->br owneraddr) ?></strong>
+ <?scm:d (nl->br owneraddr) ?>
<?scm )) ?>
</td>
<!-- invoice number etc. -->
<td align="right">
<table border="0">
- <tr>
+ <!--tr>
<td align="right" class="invnum"><big><strong><?scm:d (nbsp (_ "Invoice Number")) ?>:</strong></big> </td>
<td align="right" class="invnum"><big><strong><?scm:d invoiceid ?></strong></big></td>
- </tr>
+ </tr-->
<?scm (if (equal? postdate (cons 0 0)) (begin ?>
<tr>
<td colspan="2" align="right"><?scm:d (_ "Invoice in progress...") ?></td>
</tr>
@@ -235,9 +245,9 @@
</td>
</tr>
<?scm (if (not (string=? billingid "")) (begin ?>
<tr>
- <td>Your ref: <?scm:d billingid ?></td>
+ <td>Your ref: </td><td><?scm:d billingid ?></td>
</tr>
<?scm )) ?>
</table>
@@ -245,9 +255,14 @@
<p>
<table border="1" width="100%" cellpadding="4" class="entries">
<thead>
<tr bgcolor="#ccc" valign="bottom">
+
+<?scm (if opt-col-date (begin ?>
+<?scm (set! spancols1 (+ spancols1 1)) (set! spancols2 (+ spancols2 1)) ?>
<th align="center" ><?scm:d (_ "Date") ?></th>
+<?scm )) ?>
+
<th align="left" width="80%"><?scm:d (_ "Description") ?></th>
<?scm (if units? (begin ?>
<th align="left"><?scm:d opt-units-heading ?></th>
<?scm (set! spancols1 (+ spancols1 1))
@@ -264,11 +279,13 @@
<th align="right"><?scm:d opt-disc-rate-heading ?></th>
<th align="right"><?scm:d opt-disc-amount-heading ?></th>
<?scm (set! spancols1 (+ spancols1 2))
(set! spancols2 (+ spancols2 1)))) ?>
- <?scm (if (and tax? taxtables?) (begin ?>
+ <?scm (if (and tax? taxtables?) (begin ?><?scm (set! spancols1 (- spancols1 1)) ?>
<th align="right"><?scm:d opt-net-price-heading ?></th>
+<?scm (if opt-col-taxrate (begin ?><?scm (set! spancols1 (+ spancols1 1)) (set! spancols2 (- spancols2 0)) ?>
<th align="right"><?scm:d opt-tax-rate-heading ?></th>
+<?scm )) ?>
<th align="right"><?scm:d opt-tax-amount-heading ?></th>
<?scm (set! spancols1 (+ spancols1 3))
(set! spancols2 (+ spancols2 0)))) ?>
<th align="right"><?scm:d opt-total-price-heading ?></th>
@@ -299,9 +316,11 @@
(sub-total 'add currency rval)
(dsc-total 'add currency rdiscval)
?>
<tr valign="top">
- <td align="center"><?scm:d (gnc-print-date (gncEntryGetDate entry)) ?></td>
+<?scm (if opt-col-date (begin ?>
+ <td align="center" nowrap><?scm:d (gnc-print-date (gncEntryGetDate entry)) ?></td>
+<?scm )) ?>
<td align="left"><?scm:d (gncEntryGetDescription entry) ?></td>
<!-- td align="left">< ?scm:d (gncEntryGetNotes entry) ?></td -->
<?scm (if units? (begin ?>
<td align="left"><?scm:d action ?></td>
@@ -321,9 +340,11 @@
<td align="right"><?scm:d (fmtmoney currency rdiscval) ?></td>
<?scm )) ?>
<?scm (if (and tax? taxtables?) (begin ?>
<td align="right"><?scm:d (fmtmoney currency rval) ?></td>
+<?scm (if opt-col-taxrate (begin ?>
<td align="right"><?scm (taxrate taxable taxtable currency) ?></td>
+<?scm )) ?>
<td align="right"><?scm:d (fmtmoney currency rtaxval) ?></td>
<?scm )) ?>
<!-- TO DO: need an option about whether to display the tax-inclusive total? -->
<td align="right"><?scm:d (fmtmoney currency (gnc-numeric-add rval rtaxval GNC-DENOM-AUTO GNC-RND-ROUND)) ?></td>
@@ -338,9 +359,11 @@
<td align="right" class="subtotal"><strong><?scm (display-comm-coll-total dsc-total #f) ?></strong></td>
<?scm )) ?>
<?scm (if (and tax? taxtables?) (begin ?>
<td align="right" class="subtotal"><strong><?scm (display-comm-coll-total sub-total #f) ?></strong></td>
+<?scm (if opt-col-taxrate (begin ?>
<td> </td>
+<?scm )) ?>
<td align="right" class="subtotal"><strong><?scm (display-comm-coll-total tax-total #f) ?></strong></td>
<?scm )) ?>
<td align="right" class="subtotal"><strong><?scm (display-comm-coll-total inv-total #f) ?></strong></td>
</tr>
@@ -364,9 +387,11 @@
<?scm ))))) ?>
<!-- total row -->
<tr valign="top">
- <td align="left" class="total" colspan="<?scm:d spancols1 ?>"><strong><?scm:d opt-amount-due-heading ?></strong></td>
+ <td align="left" class="total" colspan="<?scm:d spancols1 ?>"><strong><?scm:d opt-amount-due-heading ?>,
+ <?scm:d (gnc-commodity-get-mnemonic opt-report-currency) ?>
+ </strong></td>
<td align="right" class="total"><strong><?scm (display-comm-coll-total inv-total #f) ?></strong></td>
</tr>
</tbody>
--- a/src/report/business-reports/taxinvoice.scm
+++ b/src/report/business-reports/taxinvoice.scm
@@ -80,15 +80,23 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Define all the options
; option pages
+(define rowspage (N_ "Rows"))
+(define columnspage (N_ "Columns"))
(define headingpage (N_ "Headings 1"))
(define headingpage2 (N_ "Headings 2"))
(define notespage (N_ "Notes"))
;(define filespage (N_ "Files"))
(define displaypage (N_ "Display"))
(define generalpage gnc:pagename-general)
; option names
+(define optname-col-date (N_ "Date"))
+(define optname-col-taxrate (N_ "Tax Rate"))
+(define optname-row-address (N_ "Address"))
+(define optname-row-contact (N_ "Contact"))
+(define optname-report-currency (N_ "Report's Currency"))
+
(define optname-report-title (N_ "Report title"))
(define optname-invoice-number (N_ "Invoice number"))
(define optname-template-file (N_ "Template file"))
(define optname-css-file (N_ "CSS stylesheet file"))
@@ -135,8 +143,25 @@
generalpage optname-invoice-number
"a" "" (lambda () '())
#f)) ;customers-only)) ;-- see above
+
+ ;; Column options
+ (add-option (gnc:make-simple-boolean-option columnspage optname-col-date
+ "a" (N_ "Display the date?") #f))
+ (add-option (gnc:make-simple-boolean-option columnspage optname-col-taxrate
+ "b" (N_ "Display the Tax Rate?") #f))
+
+ ;; Rows options
+ (add-option (gnc:make-simple-boolean-option rowspage optname-row-contact
+ "a" (N_ "Display the contact?") #f))
+ (add-option (gnc:make-simple-boolean-option rowspage optname-row-address
+ "b" (N_ "Display the address?") #f))
+
+ (add-option (gnc:make-currency-option generalpage optname-report-currency "a" "" (N_ "AUD")))
+; (add-option (gnc:make-string-option generalpage optname-report-currency
+; "a" "" (N_ "Report Currency")))
+
;; Display options
(add-option (gnc:make-string-option displaypage optname-template-file "a"
(N_ "The file name of the eguile template part of this report. This file should either be in your .gnucash directory, or else in its proper place within the GnuCash installation directories.")
"taxinvoice.eguile.scm"))
@@ -188,9 +213,9 @@
(add-option (gnc:make-text-option
notespage optname-extra-notes "a"
(N_ "Notes added at end of invoice -- may contain HTML markup")
- ""))
+ "Thank you for your patronage."))
;(N_ "(Development version -- don't rely on the numbers on this report without double-checking them.<br>Change the 'Extra Notes' option to get rid of this message)")))
(gnc:options-set-default-section
report-options generalpage)
@@ -221,8 +246,18 @@
(opt-text-font (font-name-to-style-info
(opt-value displaypage optname-text-font)))
(opt-logofile (opt-value displaypage optname-logofile))
(opt-logo-width (opt-value displaypage optname-logo-width))
+
+
+ (opt-col-date (opt-value columnspage optname-col-date))
+ (opt-col-taxrate (opt-value columnspage optname-col-taxrate))
+ (opt-row-contact (opt-value rowspage optname-row-contact))
+ (opt-row-address (opt-value rowspage optname-row-address))
+
+ (opt-report-currency (opt-value generalpage optname-report-currency))
+
+
(opt-report-title (opt-value headingpage optname-report-title))
(opt-units-heading (opt-value headingpage optname-units))
(opt-qty-heading (opt-value headingpage optname-qty))
(opt-unit-price-heading (opt-value headingpage optname-unit-price))
--- End Message ---
--- Begin Message ---
Source: gnucash
Source-Version: 1:2.4.10-3
We believe that the bug you reported is fixed in the latest version of
gnucash, which is due to be installed in the Debian FTP archive:
gnucash-common_2.4.10-3_all.deb
to main/g/gnucash/gnucash-common_2.4.10-3_all.deb
gnucash-dbg_2.4.10-3_i386.deb
to main/g/gnucash/gnucash-dbg_2.4.10-3_i386.deb
gnucash_2.4.10-3.debian.tar.gz
to main/g/gnucash/gnucash_2.4.10-3.debian.tar.gz
gnucash_2.4.10-3.dsc
to main/g/gnucash/gnucash_2.4.10-3.dsc
gnucash_2.4.10-3_i386.deb
to main/g/gnucash/gnucash_2.4.10-3_i386.deb
python-gnucash_2.4.10-3_i386.deb
to main/g/gnucash/python-gnucash_2.4.10-3_i386.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Micha Lenk <[email protected]> (supplier of updated gnucash package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Wed, 06 Jun 2012 21:22:18 +0200
Source: gnucash
Binary: gnucash gnucash-dbg gnucash-common python-gnucash
Architecture: source i386 all
Version: 1:2.4.10-3
Distribution: unstable
Urgency: low
Maintainer: Sébastien Villemot <[email protected]>
Changed-By: Micha Lenk <[email protected]>
Description:
gnucash - personal and small-business financial-accounting software
gnucash-common - common files for the financial-accounting software Gnucash
gnucash-dbg - debugging symbols for the accounting software Gnucash
python-gnucash - Gnucash interface for Python
Closes: 443774 655951
Changes:
gnucash (1:2.4.10-3) unstable; urgency=low
.
[ Dmitry Smirnov ]
* Added following patches:
- suppress_binreloc_warning.patch: removes start-up message "binreloc
relocation support was disabled at configure time" (closes: #443774).
- taxi0-presentation_options.patch and
taxi1-customization_improvements.patch: improve taxinvoice templates
(closes: #655951).
* debian/rules: export BUILDING_FROM_SVN=true if 'autogen.sh' is present
to switch automatically to 'trunk mode' when building from trunk.
* debian/copyright: remove no longer required '©' characters.
* debian/control: Tightening gnucash relationship to gnucash-common.
.
[ Micha Lenk ]
* Update build-deps after soname bump in libaqbanking.
Checksums-Sha1:
0de11d87e7114af8e453111e481c22aa5a54cecd 2416 gnucash_2.4.10-3.dsc
a03824754e542c161de81dbffd7990213a25c552 43866 gnucash_2.4.10-3.debian.tar.gz
428acfc91da95d4e29318e5753940d4999f53c6a 2739084 gnucash_2.4.10-3_i386.deb
02c26e7429ef5acdbe25d9bb8ce3c12c5f212b07 3317216 gnucash-dbg_2.4.10-3_i386.deb
5b9f26635a386797c5b7951c0c2c72d986f1265b 5811146
gnucash-common_2.4.10-3_all.deb
51c88dc25625c712aee43b8a74cb433ef7b601a5 352984
python-gnucash_2.4.10-3_i386.deb
Checksums-Sha256:
f728d8cbe8fddcb4a420fc396f8b2675aaf70d2bd856953704f61b2a7871ff85 2416
gnucash_2.4.10-3.dsc
c4bd532cb44eacea21d717e3ade4abb44d5bcedfdaf0b6127217a4ccf51e3ed2 43866
gnucash_2.4.10-3.debian.tar.gz
b4c2a0e387b1c66688c25c80b3f3eac886a309e869a7e590335ca68f41907d81 2739084
gnucash_2.4.10-3_i386.deb
a8f805a5a11502d7f57a3ff3e4ae6b5d85e6f78af2c80214b3743c73f3b2f208 3317216
gnucash-dbg_2.4.10-3_i386.deb
aaf23c6c21a6d6b07454134cffa54c910b45420130a7a4e8c9f0a4d33cd6faf1 5811146
gnucash-common_2.4.10-3_all.deb
7d44792c97fbdf19de6033dfe44f72a76ef752b7af67920d19fb05fb7cd24d03 352984
python-gnucash_2.4.10-3_i386.deb
Files:
9f09816ba825f3e9950f1503baaba825 2416 gnome optional gnucash_2.4.10-3.dsc
e47cffe1193b025c0a11d89632429af8 43866 gnome optional
gnucash_2.4.10-3.debian.tar.gz
37bfade05f98cfb3de416be03ca50859 2739084 gnome optional
gnucash_2.4.10-3_i386.deb
5c7b6447df18daf534851974524dd3a7 3317216 debug extra
gnucash-dbg_2.4.10-3_i386.deb
cd4846e285e1c556fe0e4e3402019db2 5811146 gnome optional
gnucash-common_2.4.10-3_all.deb
60ef9c140b13c749a9f8b25cc9716906 352984 python optional
python-gnucash_2.4.10-3_i386.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iQIcBAEBCAAGBQJPz8aZAAoJEOpsprlRuFE5nS4P/j7NnklScma0DhG/eS6GVlOL
Y8gvKj8P9uXD2KUN7carFKJqXExoOftFlbv/JK1t0UsRmL5IW6sweLrlRH1emRLz
9+q8CsbuthNY3GkmgpiHP+kh8NJN+1I06aOTKkC8l27gwnl6m182X4CBjRXBC+09
mo91EP/fHCcRdSHwwU6nAQdsE9ACCl+NmXutmjj4vqPkDMYHhru7/caUeD6rQg6d
3LXU/DZeqJvbh4m/AV29sw1hFe/AuDMoBx9z8Vp1idqysaBGex14hpIlAL1CYA7K
aR3mXFGqwCEmTnNFhENAduGPJ8KWC+t4D1KH8otoUFYJ2VSz7zw07TRLiCTMg3Oj
hqpEGfrrl9toN/djyP4Ulg+B3itvaEeK6e4QmMWnMsy85QUhFOvhI/NWs/CdG8tE
VZRag6Dqmxm9aZi3Q7f7qGQQPOBEfOZ8yIxlKWUbYbxGeo4ehGsu2NmSOiNq5Q06
OBa3LzyleZQAhmm0fzIlWiNbaz6qvPRqOzSnq2G5iVqEBXXMQA+TBbRKw/RoK0V5
vwTNTfMhrwSCQGdYe+H8rbHsuXblDNWIXJySC9whfFSEiGFNOJs+0d57sE6/bIaz
XL31bsuvtxtM45NdLp3VEv6BYBLzeLYiz4kph70h7HjnRMZWPVjnQ23M5OV33bl0
tUXZKNNHD9OHbrQEubkk
=9WQ0
-----END PGP SIGNATURE-----
--- End Message ---