r17359 - gnucash/branches/2.2/src - [r17180] QIF Import: Add support for importing to A/R and A/P account types,
Andreas Köhler
andi5 at cvs.gnucash.org
Sun Jul 20 19:52:38 EDT 2008
Author: andi5
Date: 2008-07-20 19:52:37 -0400 (Sun, 20 Jul 2008)
New Revision: 17359
Trac: http://svn.gnucash.org/trac/changeset/17359
Modified:
gnucash/branches/2.2/src/engine/Account.c
gnucash/branches/2.2/src/import-export/qif-import/qif-dialog-utils.scm
gnucash/branches/2.2/src/import-export/qif-import/qif-guess-map.scm
gnucash/branches/2.2/src/import-export/qif-import/qif-objects.scm
Log:
[r17180] QIF Import: Add support for importing to A/R and A/P account types,
which were previously unknown to the importer. I also had to adjust a function
in the engine's Account API that caused imported accounts trees to not merge
properly in rare cases where one an existing GnuCash account has a NULL string
pointer but an importer-created account has an empty string instead. This
situation arises as a side effect of using SWIG, which doesn't let Scheme
distinguish between NULL and an empty string (a string containing only NUL).
Committed by cedayiv.
Modified: gnucash/branches/2.2/src/engine/Account.c
===================================================================
--- gnucash/branches/2.2/src/engine/Account.c 2008-07-20 23:52:26 UTC (rev 17358)
+++ gnucash/branches/2.2/src/engine/Account.c 2008-07-20 23:52:37 UTC (rev 17359)
@@ -4280,15 +4280,15 @@
Account *acc_b = node_b->data;
priv_b = GET_PRIVATE(acc_b);
- if (0 != safe_strcmp(priv_a->accountName, priv_b->accountName))
+ if (0 != null_strcmp(priv_a->accountName, priv_b->accountName))
continue;
- if (0 != safe_strcmp(priv_a->accountCode, priv_b->accountCode))
+ if (0 != null_strcmp(priv_a->accountCode, priv_b->accountCode))
continue;
- if (0 != safe_strcmp(priv_a->description, priv_b->description))
+ if (0 != null_strcmp(priv_a->description, priv_b->description))
continue;
if (!gnc_commodity_equiv(priv_a->commodity, priv_b->commodity))
continue;
- if (0 != safe_strcmp(xaccAccountGetNotes(acc_a),
+ if (0 != null_strcmp(xaccAccountGetNotes(acc_a),
xaccAccountGetNotes(acc_b)))
continue;
if (priv_a->type != priv_b->type)
Modified: gnucash/branches/2.2/src/import-export/qif-import/qif-dialog-utils.scm
===================================================================
--- gnucash/branches/2.2/src/import-export/qif-import/qif-dialog-utils.scm 2008-07-20 23:52:26 UTC (rev 17358)
+++ gnucash/branches/2.2/src/import-export/qif-import/qif-dialog-utils.scm 2008-07-20 23:52:37 UTC (rev 17359)
@@ -149,7 +149,9 @@
GNC-CCARD-TYPE
GNC-CASH-TYPE
GNC-ASSET-TYPE
- GNC-LIABILITY-TYPE)))
+ GNC-LIABILITY-TYPE
+ GNC-RECEIVABLE-TYPE
+ GNC-PAYABLE-TYPE)))
((divx cgshortx cgmidx cglongx intincx margintx rtrncapx)
(set! qif-account
@@ -159,7 +161,9 @@
GNC-CCARD-TYPE
GNC-CASH-TYPE
GNC-ASSET-TYPE
- GNC-LIABILITY-TYPE)))
+ GNC-LIABILITY-TYPE
+ GNC-RECEIVABLE-TYPE
+ GNC-PAYABLE-TYPE)))
((miscincx miscexpx)
(set! qif-account
(qif-split:miscx-category
@@ -168,7 +172,9 @@
GNC-CCARD-TYPE
GNC-CASH-TYPE
GNC-ASSET-TYPE
- GNC-LIABILITY-TYPE))))
+ GNC-LIABILITY-TYPE
+ GNC-RECEIVABLE-TYPE
+ GNC-PAYABLE-TYPE))))
;; now reference the near-end account
(if qif-account
@@ -203,7 +209,9 @@
GNC-CCARD-TYPE
GNC-CASH-TYPE
GNC-ASSET-TYPE
- GNC-LIABILITY-TYPE)))
+ GNC-LIABILITY-TYPE
+ GNC-RECEIVABLE-TYPE
+ GNC-PAYABLE-TYPE)))
((buyx sellx xin xout)
(set! qif-account
(qif-split:category
@@ -212,7 +220,9 @@
GNC-CCARD-TYPE
GNC-CASH-TYPE
GNC-ASSET-TYPE
- GNC-LIABILITY-TYPE)))
+ GNC-LIABILITY-TYPE
+ GNC-RECEIVABLE-TYPE
+ GNC-PAYABLE-TYPE)))
((stksplit)
(set! qif-account
@@ -220,7 +230,9 @@
(set! qif-account-types (list GNC-STOCK-TYPE
GNC-MUTUAL-TYPE
GNC-ASSET-TYPE
- GNC-LIABILITY-TYPE)))
+ GNC-LIABILITY-TYPE
+ GNC-RECEIVABLE-TYPE
+ GNC-PAYABLE-TYPE)))
((cgshort cgshortx reinvsg reinvsh)
(set! qif-account
(default-cgshort-acct from-acct stock-acct))
@@ -301,12 +313,13 @@
(if (not entry)
(set! entry (qif-import:guess-acct
from-acct
- (list
- GNC-BANK-TYPE
- GNC-CCARD-TYPE
- GNC-CASH-TYPE
- GNC-ASSET-TYPE
- GNC-LIABILITY-TYPE)
+ (list GNC-BANK-TYPE
+ GNC-CCARD-TYPE
+ GNC-CASH-TYPE
+ GNC-ASSET-TYPE
+ GNC-LIABILITY-TYPE
+ GNC-RECEIVABLE-TYPE
+ GNC-PAYABLE-TYPE)
gnc-acct-info)))
(qif-map-entry:set-display?! entry #t)
(hash-set! acct-hash from-acct entry)
@@ -325,12 +338,13 @@
(set! entry
(qif-import:guess-acct
xtn-acct
- (list
- GNC-BANK-TYPE
- GNC-CCARD-TYPE
- GNC-CASH-TYPE
- GNC-ASSET-TYPE
- GNC-LIABILITY-TYPE)
+ (list GNC-BANK-TYPE
+ GNC-CCARD-TYPE
+ GNC-CASH-TYPE
+ GNC-ASSET-TYPE
+ GNC-LIABILITY-TYPE
+ GNC-RECEIVABLE-TYPE
+ GNC-PAYABLE-TYPE)
gnc-acct-info)))
(qif-map-entry:set-display?! entry #t)
(hash-set! acct-hash xtn-acct entry)))))
@@ -497,10 +511,12 @@
(list GNC-INCOME-TYPE GNC-EXPENSE-TYPE
GNC-BANK-TYPE GNC-CCARD-TYPE
GNC-LIABILITY-TYPE GNC-ASSET-TYPE
+ GNC-RECEIVABLE-TYPE GNC-PAYABLE-TYPE
GNC-STOCK-TYPE GNC-MUTUAL-TYPE)
(list GNC-EXPENSE-TYPE GNC-INCOME-TYPE
GNC-BANK-TYPE GNC-CCARD-TYPE
GNC-LIABILITY-TYPE GNC-ASSET-TYPE
+ GNC-RECEIVABLE-TYPE GNC-PAYABLE-TYPE
GNC-STOCK-TYPE GNC-MUTUAL-TYPE)))))
(qif-map-entry:set-display?! entry #t)
(hash-set! memo-hash key-string entry)))))
Modified: gnucash/branches/2.2/src/import-export/qif-import/qif-guess-map.scm
===================================================================
--- gnucash/branches/2.2/src/import-export/qif-import/qif-guess-map.scm 2008-07-20 23:52:26 UTC (rev 17358)
+++ gnucash/branches/2.2/src/import-export/qif-import/qif-guess-map.scm 2008-07-20 23:52:37 UTC (rev 17359)
@@ -17,6 +17,8 @@
(define GNC-INCOME-TYPE 8)
(define GNC-EXPENSE-TYPE 9)
(define GNC-EQUITY-TYPE 10)
+(define GNC-RECEIVABLE-TYPE 11)
+(define GNC-PAYABLE-TYPE 12)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Modified: gnucash/branches/2.2/src/import-export/qif-import/qif-objects.scm
===================================================================
--- gnucash/branches/2.2/src/import-export/qif-import/qif-objects.scm 2008-07-20 23:52:26 UTC (rev 17358)
+++ gnucash/branches/2.2/src/import-export/qif-import/qif-objects.scm 2008-07-20 23:52:37 UTC (rev 17359)
@@ -552,10 +552,12 @@
(cond
((memv t (list GNC-BANK-TYPE GNC-CASH-TYPE GNC-CCARD-TYPE
GNC-STOCK-TYPE GNC-MUTUAL-TYPE
- GNC-ASSET-TYPE GNC-LIABILITY-TYPE))
+ GNC-ASSET-TYPE GNC-LIABILITY-TYPE
+ GNC-RECEIVABLE-TYPE GNC-PAYABLE-TYPE))
(add-types GNC-BANK-TYPE GNC-CASH-TYPE GNC-CCARD-TYPE
GNC-STOCK-TYPE GNC-MUTUAL-TYPE
- GNC-ASSET-TYPE GNC-LIABILITY-TYPE))
+ GNC-ASSET-TYPE GNC-LIABILITY-TYPE
+ GNC-RECEIVABLE-TYPE GNC-PAYABLE-TYPE))
((memv t (list GNC-INCOME-TYPE GNC-EXPENSE-TYPE))
(add-types GNC-INCOME-TYPE GNC-EXPENSE-TYPE))
(#t
More information about the gnucash-changes
mailing list