Dynamic menu creation OFX patch.

Benoit Grégoire bock@step.polymtl.ca
Sat, 22 Jun 2002 23:26:30 -0400


--------------Boundary-00=_6W253TQPE2J81HQC8FHD
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

Here is the patch.  I'll be on vacation fow almost two weeks.  I hope some of 
you will have time to test it.  Here is the readme from src/import-export/ofx

---------------------

This is the new OFX import module.  It's still very young, but it is now ready 
for other people to test.
Note: You should also read src/import-export/generic-import-design.txt

Implemented features (some of these are from the generic import module):
-OFX file selection
-Account matching, using unique OFX account ID
-Account creation
-Transaction duplicate matching, using the unique OFX transaction ID only.
-Saving of ALL transaction data currently supported by LibOFX.  When no 
gnucash equivalent, it is put in the Transaction's Note field.  You must have 
double-line mode enabled to view the notes field.

Unimplemented features:
-Account currency compatibility check
-Automaticaly set sane defaults when creating new account (parent account, 
sibling, currency, etc.)
-Transaction fuzzy matching and split balancing

To compile:
./autogen.sh --enable-ofx
make
If sucessfull, an item will apear in Gnucash's File/Import submenu.

You must have LibOFX > 0.23 installed. http://step.polymtl.ca/~bock/libofx/
LibOFX depends on OpenSP , read LibOFX's "INSTALL" file.  LibOFX needs a 
recent version (1.5pre5 as of this writing, 1.4 might work).
I suggest you first run your ofx file thru ofxdump before you try it from 
GnuCash.
--------------------
If someone would be so kind as to announce on gnucash-devel once commited.  
Got to run...

Enjoy,
-- 
Benoit Grégoire
LibOFX http://step.polymtl.ca/~bock/libofx/
--------------Boundary-00=_6W253TQPE2J81HQC8FHD
Content-Type: application/x-gzip;
  name="gnucash-20020622-231352-bock.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gnucash-20020622-231352-bock.diff.gz"

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

--------------Boundary-00=_6W253TQPE2J81HQC8FHD--