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