dkfurrow / moneydance-investment-reports

Useful Investment Reports Addin for Moneydance Personal Finance Software
3 stars 2 forks source link

Investment Reports Extension for the Moneydance Application

The Investment Reports Extension (invextension.mxt) is a set of four useful investment reports which are displayed in table form or downloaded in .csv form to a directory of the user's choosing. Reports are detailed below, and a basic overview of classes is provided.

Please note that this project is not affiliated the Moneydance application or its developer Infinite Kind in any way, and this project is no longer under active development. As with all open-source projects, use of any code associated with this project is at your own risk.

Getting Started

To download the executable (*.mxt) file from its official source, go to the "Extensions/Manage Extension" in your moneydance app, and add this extension (there will be a warning that the extension is unsafe, you must acknowlege to continue). To build the app on your own machine, use ANT, the build.xml file is in the src directory.

Prerequisites

The current java version I used to build the .mxt file for this project is OpenJDK 21. build.xml will build the invextension.mxt file, buildbundled.xml will build the invextension_bundled.jar file which is useful in 'headless' operation.

Running the tests

The tests verify transaction data and replicate report output from a test data file "testMD02.moneydance" which is found in the resources directory. The data file contains a series of dummy transactions and securities (from the 2009-2010 timeframe) which span a variety of attributes (transaction type, term, etc). Tests include:

  1. BulkSecInfo tests: test whether transaction data is correctly translated from base datafile into java objects, also specifically test whether lot matching and average cost basis is working correctly.
  2. ReportProd tests: test consistency of reports (one 'FromTo' report and one 'Snap' report) compared to saved data (csv files) contained within the resources directory.
  3. ConsistencyTest tests: Iteratively runs 'FromTo' report to check whether return values produced are consistent with values in the 'Snap Reports'.

Also Useful:

Within the test folder is a module TestReportOutput which will run the reports (by default pointing to the test datafile indicated above) headless, i.e. from the development environment, without the need to open moneydance. This feature is essential for running/debugging any modifications.

And of course, there is a help file accessible from within the application, or here

Built With

Contributing

Please ensure that all test pass before submitting pull requests.

Versioning

We use SemVer for versioning. For the versions available, see the tags for this project.

Authors

License

This project is licensed under the BSD License - see the Open Source Initiative file for details

Acknowledgments

   Thanks to the following people for testing and encouragement