2003-02-04 Benoit Gr�goire <bock@step.polymtl.ca>

* src/import-export/import-backend.c: Add heuristic for duplicate matching by check number.
	* doc/README.OFX: Update


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7945 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Benoit Grégoire 2003-02-05 00:01:16 +00:00
parent bc9f171dd7
commit dc840a9ef7
3 changed files with 78 additions and 51 deletions

View File

@ -1,3 +1,8 @@
2003-02-04 Benoit Grégoire <bock@step.polymtl.ca>
* src/import-export/import-backend.c: Add heuristic for duplicate matching by check number.
* doc/README.OFX: Update
2003-02-04 Derek Atkins <derek@ihtfp.com>
* src/import-export/qif-import/qif-file.scm: mark "splits" as negative

View File

@ -56,8 +56,8 @@ Implemented features (some of these are from the generic import module):
-Commodity import and matching, for investment transactions.
-Transaction duplicate detection, using the unique OFX transaction ID. Even if
downloaded twice, transactions are only imported once.
-Transaction duplicate detection, using amount, date, full or partial memo,
full or partial description.
-Transaction duplicate detection, using amount, date, check number,
full or partial memo, full or partial description.
-"Destination" account matching, using exact string match on either
memo or description.
-Saves ALL transaction data currently supported by LibOFX.
@ -66,7 +66,9 @@ Implemented features (some of these are from the generic import module):
-Files containing multiple statements are supported, and transactions can
be matched at the same time.
4.The import process and transaction matching----------
4.The import process and transaction matching
----------
First, you must successfully download an OFX response file from your bank.

View File

@ -493,8 +493,23 @@ static void split_find_match (GNCImportTransInfo * trans_info,
/*DEBUG("heuristics: probability - 10 (date)"); */
}
/* Check number heuristics */
if(strlen(xaccTransGetNum(gnc_import_TransInfo_get_trans (trans_info)))!=0)
{
if((strcmp(xaccTransGetNum
(gnc_import_TransInfo_get_trans (trans_info)),
xaccTransGetNum(xaccSplitGetParent(split)))
==0))
{
/*An exact match of the Check number gives a +5 */
prob = prob+5;
/*DEBUG("heuristics: probability + 5 (Check number)");*/
}
}
/* Memo heuristics */
if(strlen(xaccSplitGetMemo(gnc_import_TransInfo_get_fsplit (trans_info)))!=0)
{
if((strcmp(xaccSplitGetMemo(gnc_import_TransInfo_get_fsplit (trans_info)),
xaccSplitGetMemo(split))
==0))
@ -515,8 +530,11 @@ static void split_find_match (GNCImportTransInfo * trans_info,
prob = prob+1;
/*DEBUG("heuristics: probability + 1 (memo)"); */
}
}
/* Description heuristics */
if(strlen(xaccTransGetDescription(gnc_import_TransInfo_get_trans (trans_info)))!=0)
{
if((strcmp(xaccTransGetDescription
(gnc_import_TransInfo_get_trans (trans_info)),
xaccTransGetDescription(xaccSplitGetParent(split)))
@ -540,12 +558,14 @@ static void split_find_match (GNCImportTransInfo * trans_info,
prob = prob+1;
/*DEBUG("heuristics: probability + 1 (description)"); */
}
}
/*Online id punishment*/
if ((gnc_import_get_trans_online_id(xaccSplitGetParent(split))!=NULL) &&
(strlen(gnc_import_get_trans_online_id(xaccSplitGetParent(split)))>0))
{
/* If the pref is to show match even with online ID's,
puninsh the transaction with online if */
puninsh the transaction with online id */
prob = prob-3;
}