Code Monkey home page Code Monkey logo

moneymanagerex / moneymanagerex Goto Github PK

View Code? Open in Web Editor NEW
1.7K 71.0 267.0 196.83 MB

Money Manager Ex is an easy to use, money management application built with wxWidgets

Home Page: http://moneymanagerex.org

License: GNU General Public License v2.0

Shell 0.08% Python 0.99% C++ 92.58% C 2.33% Batchfile 0.05% HTML 0.11% CMake 3.04% Dockerfile 0.29% Ruby 0.01% VBScript 0.01% JavaScript 0.46% Objective-C++ 0.06%
wxwidgets c-plus-plus sqlite3 money-manager finance cpp cryptocurrency money cash-flow budget-manager

moneymanagerex's Introduction

Money Manager Ex (MMEX)

stable unstable a ci s gha ghl p w i cd c l o

Money Manager Ex (MMEX) is a free/libre, open-source, cross-platform, easy-to-use personal finance software. It helps organize finances and track cash flow.

MMEX includes all the basic features that 90% of users would want to see in a personal finance application. The design goals are to concentrate on simplicity and user-friendliness – an application that can be used everyday.

Features

Download

Download on Flathub

Github All Releases

Screenshots

Dashboard (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon) Payee Report (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon)
Budget Planner (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon) Multiple User Interface Language Support – Hungarian (magyar) (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon)
Category Manager – unlimited nested multi-level category support (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon) Transaction Report Filter (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon)
Import from CSV (Comma-Separated Values) file (MMEX 1.6.4-Beta.4 64-bit on Linux Mint 21.1 Cinnamon) Import from QIF (Quicken Interchange Format) file (MMEX 1.6.4-Beta.4 64-bit on Linux Mint 21.1 Cinnamon)
Export as XML (eXtensible Markup Language) file (MMEX 1.6.4-Beta.4 64-bit on Linux Mint 21.1 Cinnamon) Currency Manager – multi currency support (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon)

Credits

MMEX is mainly written in C++11 and uses the following open-source packages:

External public resources

Slack | Forum | Wiki | Facebook | YouTube | Crowdin | SourceForge | GitHub | Docker images | Twitter tw

Tips

  • Database file (both regular and encrypted) can be opened directly with wxsqliteplus
  • Download dozens of useful reports from the general reports repository
  • Star this repository if you feel it is helpful st

Support

Donate via PayPal

Buy us a Cofee

License

GPL

Translations

CrowdIn

Stargazers over time

Stargazers over time

moneymanagerex's People

Contributors

bancrash avatar bkmgit avatar blake-madden avatar developmentanything avatar frankieorabona avatar gabriele-v avatar gerstrong avatar guanlisheng avatar intcooper avatar ishehadeh avatar jeffjl74 avatar joshua-stone avatar jucor avatar kolmo7 avatar loki36 avatar lonemadmax avatar martinx3 avatar n-stein avatar omalleypat avatar ovari avatar siena123 avatar slodki avatar stef145g avatar tasukus avatar thehobbit78 avatar unknown321 avatar vomikan avatar whalley avatar yfzhang-nk avatar yurand avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moneymanagerex's Issues

build errors due to unimplemented compiler features

release/bk-deps g++ -c -o mmex_accountdialog.o -I../lib/wxsqlite3/sqlite3/secure/src -I../lib/wxsqlite3/include -I../lib/lua/src -I../lib -I../3rd -I../3rd/LuaGlue/include -I../3rd/cgitemplate -I../3rd/csv-parser/include -I../3rd/route -I../src -DNOPCH -I/tmp/wx/lib/wx/include/gtk3-unicode-static-3.0 -I/tmp/wx/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -pthread -fPIC -DPIC -g -O2 -std=c++0x -g0 -O2 ../src/accountdialog.cpp
In file included from ../src/model/Model_Account.h:26:0,
from ../src/accountdialog.h:22,
from ../src/accountdialog.cpp:19:
../src/model/Model_Billsdeposits.h:70:20: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:70:20: error: ISO C++ forbids in-class initialisation of non-const static member ‘BDID’
../src/model/Model_Billsdeposits.h:71:65: error: temporary of non-literal type ‘wxString’ in a constant expression
../src/model/Model_Billsdeposits.h:71:65: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:71:65: error: in-class initialisation of static data member ‘TRANSDATE’ of non-literal type
../src/model/Model_Billsdeposits.h:72:27: error: incomplete type ‘Model_Billsdeposits’ used in nested name specifier
../src/model/Model_Billsdeposits.h:72:86: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:72:86: error: in-class initialisation of static data member ‘STATUS’ of non-literal type
../src/model/Model_Billsdeposits.h:73:26: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:73:26: error: ISO C++ forbids in-class initialisation of non-const static member ‘ACCOUNTID’
../src/model/Model_Billsdeposits.h:74:28: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:74:28: error: ISO C++ forbids in-class initialisation of non-const static member ‘TOACCOUNTID’
../src/model/Model_Billsdeposits.h:75:30: error: incomplete type ‘Model_Billsdeposits’ used in nested name specifier
../src/model/Model_Billsdeposits.h:75:93: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:75:93: error: in-class initialisation of static data member ‘TRANSCODE’ of non-literal type
../src/model/Model_Billsdeposits.h:76:24: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:76:24: error: ISO C++ forbids in-class initialisation of non-const static member ‘CATEGID’
../src/model/Model_Billsdeposits.h:77:27: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:77:27: error: ISO C++ forbids in-class initialisation of non-const static member ‘SUBCATEGID’
../src/model/Model_Billsdeposits.h:78:30: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:78:30: error: ‘constexpr’ needed for in-class initialisation of static data member ‘TRANSAMOUNT’ of non-integral type
../src/model/Model_Billsdeposits.h:79:32: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:79:32: error: ‘constexpr’ needed for in-class initialisation of static data member ‘TOTRANSAMOUNT’ of non-integral type
../src/model/Model_Billsdeposits.h:80:27: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:80:27: error: ISO C++ forbids in-class initialisation of non-const static member ‘FOLLOWUPID’
../src/model/Model_Billsdeposits.h:83:24: sorry, unimplemented: non-static data member initialisers
../src/model/Model_Billsdeposits.h:83:24: error: ISO C++ forbids in-class initialisation of non-const static member ‘PAYEEID’
In file included from ../src/accountdialog.cpp:28:0:
../src/attachmentdialog.h:56:55: error: temporary of non-literal type ‘wxUniChar’ in a constant expression
../src/attachmentdialog.h:56:55: sorry, unimplemented: non-static data member initialisers
../src/attachmentdialog.h:56:55: error: in-class initialisation of static data member ‘m_PathSep’ of non-literal type
make: *** [mmex_accountdialog.o] Error 1

using this compiler on ubuntu-12.04 x64
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

new recurring transaction problem with pay date

I'm using mac version 1.2-beta.
When you insert a new recurring transaction, when the dialog open, both the due date and the pay date are set to 1/1/2001, however you can change the due date to what you want but the pay date remains unchanged and you cannot modify it.
When you go to the recurring transactions view, your newly inserted recurring transaction will get the due date warning even if its due date is far away because the pay date is still set to 1/1/2001.

recurring transactions

error: cannot convert 'const wxString' to 'const char*' for argument '2' to 'void

Hi,

I tried to compile the current master branch on openSUSE 13.2 and I ran into the following error:

error: cannot convert 'const wxString' to 'const char*' for argument '2' to 'void mg_printf_data(mg_connection*, const char*, ...)'
             mg_printf_data(conn, str);

# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.8/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.8 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib64 --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --enable-linker-build-id --enable-linux-futex --program-suffix=-4.8 --without-system-libunwind --with-arch-32=i586 --with-tune=generic --build=x86_64-suse-linux --host=x86_64-suse-linux
Thread model: posix
gcc version 4.8.3 20140627 [gcc-4_8-branch revision 212064] (SUSE Linux)

Option dialog improvement

Now we use wxListbook to store the following panels

  • General Panel
  • Views Panel
  • Attachment Panel
  • Others Panel
  • Network Panel

Ideally, we can apply and save each panel separately.

General Report Framework supports multi SQLs

As well known that existing GRF(General Report Framework) only support one single SQL and return the result as CONTENTS in template engine.

One intuitive approach is to store each result in each CONTENTS, (for instance, CONTENTS1, CONTENTS2).

Budget question

Hi,

I don't know if it's the good place to ask my question, But I'm looking for the best way to input my budget.

I want have a yearly budget :
with some entries for the year (i found how)
with some entries for the year by month (or other) (i found how two)
with some entries for one or some defined month (I don't find how do for yearly budgets).

And I want to be able to see this budget by month or by year and from the beginning of year until current month.

That's I understand, I can enter budget for a year or for a given month, but not all in one time, right ?

QIF file dates should be configurable

Currently, the dates in exported .qif file are stored in ISO format (D2015-01-24).
Quicken imports this but shows the imported transaction(s) at the beginning, instead of the end, of the transaction list. The displayed date in Quicken looks correct but something is obviously wrong. While this is clearly a Quicken bug, it would still be helpful to be able to configure the date for the export file in order to work around this problem.
The date configuration for the desktop version contains all the Quicken date formats already. Only, the set date is not used when exporting to .qif file.
When Quicken exports the .qif file, the dates are in the following format: MM/DD'YY (1/24'15)

For this reason, the category does not get imported into Quicken. If I fix the date manually, the transaction gets imported correctly.

QIF import ignores account type for new accounts

Version 1.2.0-Beta
When importing a QIF file, the !Account record contains a T line that
specifies the account type. MMEX does not use this information
and always creates Checking accounts for new accounts.

New reporting look and feel

I think it will be a good chance to examine all existing reports and do a complete reorganization like the following
mmex_reporting

build errors with wxsqlite3

The latest moneymanagerex doesn't build with wxsqlite3.

The github master.zip doesn't include lib/wxsqlite3 so I downloaded it. However it fails to build, giving these errors:

/users/local/arb/Downloads/moneymanagerex/moneymanagerex-master/release/bk-deps gcc -c -o wxsqlite_sqlite3secure.o -DNOPCH -DSQLITE_CORE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_HAS_CODEC -DSQLITE_ENABLE_EXTFUNC -DSQLITE_ENABLE_COLUMN_METADATA -DWXSQLITE3_HAVE_CODEC -DWXSQLITE3_HAVE_METADATA -I../lib/wxsqlite3/sqlite3/secure/src -I../lib/wxsqlite3/include -fPIC -DPIC -I/tmp/wx/lib/wx/include/gtk3-unicode-static-3.0 -I/tmp/wx/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -pthread -g -O2 -g0 -O2 ../lib/wxsqlite3/sqlite3/secure/src/sqlite3secure.c
In file included from ../lib/wxsqlite3/sqlite3/secure/src/sqlite3secure.c:58:0:
../lib/wxsqlite3/sqlite3/secure/src/extensionfunctions.c:213:25: error: conflicting types for ‘i64’
../lib/wxsqlite3/sqlite3/secure/src/sqlite3.c:8479:22: note: previous declaration of ‘i64’ was here
../lib/wxsqlite3/sqlite3/secure/src/extensionfunctions.c:402:15: error: static declaration of ‘acosh’ follows non-static declaration
../lib/wxsqlite3/sqlite3/secure/src/extensionfunctions.c:410:15: error: static declaration of ‘asinh’ follows non-static declaration
../lib/wxsqlite3/sqlite3/secure/src/extensionfunctions.c:418:15: error: static declaration of ‘atanh’ follows non-static declaration
../lib/wxsqlite3/sqlite3/secure/src/extensionfunctions.c:725:5: error: expected ‘)’ before ‘c’
../lib/wxsqlite3/sqlite3/secure/src/extensionfunctions.c:725:5: error: expected expression before ‘)’ token
../lib/wxsqlite3/sqlite3/secure/src/extensionfunctions.c: In function ‘print_elem’:
../lib/wxsqlite3/sqlite3/secure/src/extensionfunctions.c:1966:3: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘int64_t’ [-Wformat]
make: *** [wxsqlite_sqlite3secure.o] Error 1

I tried an older release of wxsqlite3 (3.0.6 instead of 3.1.1) with similar errors.
Does it need some manual configuration step first?
Thanks for any advice.

Transaction report filter

There is a problem with report via "Transaction report filter". There are results for all transfer transactions when filtering only by payee.

GPL Version

In LICENSE, it contains GPLv2

In setup/linux/debian/build_new.sh it states GPLv3

In setup/linux/rpm/mmex.spec it states GPLv2

On the website, it states GPLv2

Repeating Transactions: Provide Payment_Date and Due_Date

Method: Replace Next_Occurence with Payment_Date and Due_Date
Within the dialog, the calendar control is renamed to 'Payment Date' and will set 'payment date' and 'due date'.
The current database fields will be the meanings modified as:
next_occurance becomes the Payment Date,
transaction_date stores the Due date. (Currently not utilised)

Other sections modified accordingly to reflect this change.

assertion failed (datetime)

When opening a database after entering the password I get numerous failed assertions.
After clicking "continue" on quite a lot then database eventually opens and looks ok (not checked to see if there's any hidden corruption). Using mmex-1.1.0-amd64 on ubuntu-12.04. Don't remember changing anything since the last time it worked ok (I open this database on both windows and linux).

ASSERT INFO:
../include/wx/datetime.h(1702): assert "tm.IsValid()" failed in Set(): invalid broken down date/time

BACKTRACE:
[1] wxDateTime::SetMonth(wxDateTime::Month)
[2] wxEntry(int&, wchar_t**)
[3] __libc_start_main

ASSERT INFO:
../src/common/datetime.cpp(1221): assert "(0 < day) && (day <= GetNumberOfDays(month, year))" failed in Set(): Invalid date in wxDateTime::Set()

BACKTRACE:
[1] wxDateTime::Set(unsigned short, wxDateTime::Month, int, unsigned short, unsigned short, unsigned short, unsigned short)
[2] wxDateTime::SetMonth(wxDateTime::Month)
[3] wxEntry(int&, wchar_t**)
[4] __libc_start_main

automatic assignment

I want create a way to make automatic assignment on transaction

a way could be create a new table with rules for automatic assignment and apply it after import.

a table "field" where store all field's name where criterion could be apply
a table "condition" where we store condition code and label (ex : like - like / equal - = / ...)
a table "assignment" for rules assignment

are you interested with this feature ?

--creation table assignment
CREATE  TABLE  IF NOT EXISTS "main"."field" (
  "field_s" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE ,
  "name" VARCHAR NOT NULL UNIQUE
);

INSERT INTO hip_field (name) VALUES ('note');

CREATE  TABLE  IF NOT EXISTS "main"."condition" (
  "condition_s" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE ,
  "name" VARCHAR NOT NULL UNIQUE,
  "code" VARCHAR NOT NULL,
);

INSERT INTO hip_condition (name,code) VALUES ('like','like');

CREATE  TABLE  IF NOT EXISTS "main"."assignment" (
  "assignment_s" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE ,
  "name" VARCHAR UNIQUE,
  "field_s" INTEGER NOT NULL,
  "condition_s" INTEGER NOT NULL,
  "criterion" VARCHAR,
  "third_s" INTEGER NOT NULL DEFAULT (-1),
  "third_overwrite_flag" NOT NULL DEFAULT (0),
  "subcategory_s" INTEGER NOT NULL DEFAULT (-1), 
  "subcategory_overwrite_flag" NOT NULL DEFAULT (0), 
  FOREIGN KEY(third_s) REFERENCES third(third_s),
  FOREIGN KEY(subcategory_s) REFERENCES subcategory(subcategory_s),
  FOREIGN KEY(field_s) REFERENCES field(field_s),
  FOREIGN KEY(condition_s) REFERENCES condition(condition_s)
);

example :
INSERT INTO "assignment" VALUES ("2","COFIROUTE","1","1","%COFIROUTE%","59","0","119","0");
INSERT INTO "assignment" VALUES ("14","Free Telecom","1","1","Free Telecom","15","0","108","0");

Import from CSV not possible

In 1.2.0-Alpha.1 it seems impossible to import transactions from CSV. No matter how I configure the import fields, it always skips every line with:
"One of the following fields: Date, Amount, Type is missing, skipping".
As Date and Amount are set in my fields and "Type" is not available in the fields list I guess this is a bug.

Somehow the checks for the required fields seem inconsistent in respect to "Type" elsewhere too, if an import attempt is done without selecting any fields, only "Date" and "Amount" are reported as missing.

mmParseDisplayStringToDate() is broken

Commit c5972a3, util.cpp line 176 added an "&" to the return assignment for date_formats_regex().at(). This does not work. The new "&regex" is not a date format regular expression string and the following pattern matching gets random results. (I am building with Visual Studio Express 2013.)

undefined reference to wxWebViewFSHandler

I followed the instructions from http://sourceforge.net/p/moneymanagerex/wiki/Building%20mmex%20Debian%20%28Ubuntu%29%20Linux/ but

$ make -j1
g++ -o mmex mmex_aboutdialog.o mmex_accountdialog.o mmex_appstartdialog.o mmex_assetdialog.o mmex_assetspanel.o mmex_attachmentdialog.o mmex_billsdepositsdialog.o mmex_billsdepositspanel.o mmex_budgetentrydialog.o mmex_budgetingpanel.o mmex_budgetyeardialog.o mmex_budgetyearentrydialog.o mmex_categdialog.o mmex_constants.o mmex_currencydialog.o mmex_dbwrapper.o mmex_filtertransdialog.o mmex_general_report_manager.o mmex_images_list.o mmex_maincurrencydialog.o mmex_minimal_editor.o mmex_mmCalculator.o mmex_mmOption.o mmex_mmOptionAttachmentSettings.o mmex_mmOptionBaseSettings.o mmex_mmOptionGeneralSettings.o mmex_mmOptionMiscSettings.o mmex_mmOptionNetSettings.o mmex_mmOptionViewSettings.o mmex_mmSimpleDialogs.o mmex_mmcheckingpanel.o mmex_mmex.o mmex_mmframe.o mmex_mmframereport.o mmex_mmhelppanel.o mmex_mmhomepagepanel.o mmex_mmpanelbase.o mmex_mmreportspanel.o mmex_optionsdialog.o mmex_paths.o mmex_payeedialog.o mmex_recentfiles.o mmex_relocatecategorydialog.o mmex_relocatepayeedialog.o mmex_splitdetailsdialog.o mmex_splittransactionsdialog.o mmex_stockdialog.o mmex_stockspanel.o mmex_transdialog.o mmex_util.o mmex_webapp.o mmex_webappdialog.o mmex_webserver.o mmex_wizard_newaccount.o mmex_wizard_newdb.o mmex_wizard_update.o mmex_budget.o mmex_budgetcategorysummary.o mmex_budgetingperf.o mmex_cashflow.o mmex_categexp.o mmex_categovertimeperf.o mmex_htmlbuilder.o mmex_incexpenses.o mmex_mmDateRange.o mmex_myusage.o mmex_payee.o mmex_reportbase.o mmex_summary.o mmex_summarystocks.o mmex_transactions.o mmex_platfdep.o mmex_export.o mmex_qif_export.o mmex_qif_import.o mmex_qif_import_gui.o mmex_univcsvdialog.o mmex_Model_Account.o mmex_Model_Asset.o mmex_Model_Attachment.o mmex_Model_Billsdeposits.o mmex_Model_Budget.o mmex_Model_Budgetsplittransaction.o mmex_Model_Budgetyear.o mmex_Model_Category.o mmex_Model_Checking.o mmex_Model_Currency.o mmex_Model_Infotable.o mmex_Model_Payee.o mmex_Model_Report.o mmex_Model_Setting.o mmex_Model_Splittransaction.o mmex_Model_Stock.o mmex_Model_StockHistory.o mmex_Model_Subcategory.o mmex_Model_Usage.o mmex_html_template.o mmex_mongoose.o mmex_csv_parser.o  -L. -L.      -lwxsqlite -llua -L/usr/lib/x86_64-linux-gnu -pthread   -lwx_gtk2u_aui-3.0 -lwx_gtk2u_stc-3.0 -lwx_gtk2u_xrc-3.0 -lwx_gtk2u_html-3.0 -lwx_gtk2u_qa-3.0 -lwx_gtk2u_adv-3.0 -lwx_gtk2u_core-3.0 -lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0  -ldl
./liblua.a(lua_loslib.o): In function `os_tmpname':
loslib.c:(.text+0x2ad): warning: the use of `tmpnam' is dangerous, better use `mkstemp'
mmex_general_report_manager.o: In function `mmGeneralReportManager::createOutputTab(wxNotebook*, int)':
general_report_manager.cpp:(.text+0x91e): undefined reference to `wxWebViewNameStr'
general_report_manager.cpp:(.text+0x92d): undefined reference to `wxWebViewBackendDefault'
general_report_manager.cpp:(.text+0x943): undefined reference to `wxWebViewDefaultURLStr'
general_report_manager.cpp:(.text+0x974): undefined reference to `wxWebView::New(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, wxString const&, long, wxString const&)'
mmex_mmhelppanel.o: In function `mmHelpPanel::CreateControls()':
mmhelppanel.cpp:(.text+0x112f): undefined reference to `wxWebViewNameStr'
mmhelppanel.cpp:(.text+0x1202): undefined reference to `wxWebViewBackendDefault'
mmhelppanel.cpp:(.text+0x12dc): undefined reference to `wxWebViewDefaultURLStr'
mmhelppanel.cpp:(.text+0x13b6): undefined reference to `wxWebView::New(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, wxString const&, long, wxString const&)'
mmex_mmhomepagepanel.o: In function `mmHomePagePanel::CreateControls()':
mmhomepagepanel.cpp:(.text+0x31cb): undefined reference to `wxWebViewNameStr'
mmhomepagepanel.cpp:(.text+0x31e1): undefined reference to `wxWebViewBackendDefault'
mmhomepagepanel.cpp:(.text+0x31f7): undefined reference to `wxWebViewDefaultURLStr'
mmhomepagepanel.cpp:(.text+0x322b): undefined reference to `wxWebView::New(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, wxString const&, long, wxString const&)'
mmhomepagepanel.cpp:(.text+0x328d): undefined reference to `wxWebViewFSHandler::wxWebViewFSHandler(wxString const&)'
mmex_mmhomepagepanel.o: In function `_GLOBAL__sub_I_mmhomepagepanel.cpp':
mmhomepagepanel.cpp:(.text.startup+0xdc): undefined reference to `wxEVT_WEBVIEW_NAVIGATING'
mmex_mmpanelbase.o: In function `mmPanelBase::PrintPage()':
mmpanelbase.cpp:(.text+0x516c): undefined reference to `wxWebViewNameStr'
mmpanelbase.cpp:(.text+0x521f): undefined reference to `wxWebViewBackendDefault'
mmpanelbase.cpp:(.text+0x52ef): undefined reference to `wxWebViewDefaultURLStr'
mmpanelbase.cpp:(.text+0x53c5): undefined reference to `wxWebView::New(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, wxString const&, long, wxString const&)'
mmpanelbase.cpp:(.text+0x5517): undefined reference to `wxWebViewFSHandler::wxWebViewFSHandler(wxString const&)'
mmex_mmreportspanel.o: In function `mmReportsPanel::CreateControls()':
mmreportspanel.cpp:(.text+0x6b0): undefined reference to `wxWebViewNameStr'
mmreportspanel.cpp:(.text+0x6c6): undefined reference to `wxWebViewBackendDefault'
mmreportspanel.cpp:(.text+0x6dc): undefined reference to `wxWebViewDefaultURLStr'
mmreportspanel.cpp:(.text+0x709): undefined reference to `wxWebView::New(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, wxString const&, long, wxString const&)'
mmreportspanel.cpp:(.text+0x766): undefined reference to `wxWebViewFSHandler::wxWebViewFSHandler(wxString const&)'
collect2: error: ld returned 1 exit status
make: *** [mmex] Error 1

Please make the database storage path editable on Android App

Like the title says.
Would make it so much easier to support all other kinds of sync services besides Dropbox.

For the same reason, please allow the path to be on external storage.

UPDATE: Oh sorry, I'll move this to the android repo. Please close.

transfers not ex-/imported to/from CSV

When exporting to CSV, transfers are not written to the file.
As they also contribute to the total balance of the account, the balance of the internal and the exported account differ.
I suppose there is also no way of importing transfers from CSV.

Better yet than importing transfers as a separate kind of transaction, mapping them to certain transaction names/descriptions during importing would be way better, as this allows importing from account reports of banks, where transfers are not specially marked.

OFX Import

Hi,

there is an ofx import planed for future or not ?
Beacause ofx format is gowing.
A quick win could be include in mmex ofx2qif (an exe on windows and a package dependance on linux)

moneymanagerex (Arch Linux) help files

In Arch Linux moneymanagerex (repo version) can't find the help files, instead displaying the error message shown here

The actual help files are actually stored in '/usr/share/doc/mmex/help', so my solution was to run the command: sudo ln -s /usr/share/doc/mmex/help /usr/share/mmex/help
to get moneymanagerex to see the help files.

It could be that the Arch repo version of moneymanagerex hasn't been updated for a while, and upstream may have already fixed this however I thought I'd open an issue nethertheless.

Crash report collection

Since we already have 3k+ daily active users, it becomes important now to collect the crash report from end users. we may need to set up a server for this.
@gabriele-v , i think you can help here.

Transaction dialog search category does not work on OSX

I'm on MMEX 1.1.2, previously when you enter a new transaction, as soon as you start type some letters in the category field it will narrow the category list with only the categories that match.
Now it does not work at all and if you clear the field first and then start type some letters occasionally you have got some crashes.

MS Money support

Since there are many audiences who want to switch from MS Money to Money Manager Ex, we will benefit a lot if we support the data migration.

Custom autocomplete ComboBox

It will be nice to create a custom ComboBox with autocomplete that will work fine under Windows & Mac, with support for wildcards like * or % for search in the middle of strings.

Than it could be used in lots of places where autocomplete could help.

crash on mac when right clicking on "recurring operations" and select reset columns dimensions

I'm using MMEX 1.2.0 Beta, in the recurring operations page I clicked in the column's header and choose "reset columns dimensions" and I got an assert:

../src/generic/listctrl.cpp(3173): assert "col >= 0 && col < GetColumnCount()" failed in SetColumnWidth(): invalid column index

Call stack:
[00] billsDepositsListCtrl::OnHeaderReset(wxCommandEvent&) 
[01] mmGUIApp::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const 
[02] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) 
[03] wxEvtHandler::ProcessEventLocally(wxEvent&) 
[04] wxEvtHandler::ProcessEvent(wxEvent&)    
[05] wxScrollHelperEvtHandler::ProcessEvent(wxEvent&) 
[06] wxWindowBase::TryAfter(wxEvent&)        
[07] wxEvtHandler::ProcessEvent(wxEvent&)    
[08] wxEvtHandler::SafelyProcessEvent(wxEvent&) 
[09] wxMenuBase::SendEvent(int, int)         
[10] wxMenu::HandleCommandProcess(wxMenuItem*, wxWindow*) 
[11] _os_activity_initiate                   
[12] -[NSApplication sendAction:to:from:]    
[13] -[NSMenuItem _corePerformAction]        
[14] -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] 
[15] _os_activity_initiate                   
[16] -[NSMenu performActionForItemAtIndex:]  
[17] -[NSMenu _internalPerformActionForItemAtIndex:] 
[18] -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] 
[19] NSSLMMenuEventHandler                   
[20] DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) 
Do you want to stop the program?
You can also choose [Cancel] to suppress further warnings.

I did the same in the transactions view and it worked.

Bug QIF Import on master branch under ubuntu

Version of master branch crash on QIF import under ubuntu due to line 176 on file util.cpp

replace
const wxString& regex = date_formats_regex().at(mask);
by
const wxString regex = date_formats_regex().at(mask);

Support transfer operation for stock account

Now we only support the transfer between non-stock account and there will be one single transaction as Account A, $100 ==>Account B, ¥600.
Both of the account will show this transaction will opposite transfer direction as

  • Account A , -> $100
  • Account B, <- ¥600

This enhancement is to support the transfer to any account (even Asset).

import webapp

Hi,

there is a bug in webapp import on ubuntu 14.04 with version in master branch (i think it's the 1.2.0 beta)
when there is data in web-moneymanagerex there is a windows with title error mmex and message :
Wrong type, required: long, but: string

i found this http://trac.wxwidgets.org/ticket/15955#no1

and with following change error seems to be solved :

line 118
replace 
data.push_back(wxVariant(WebTran.ID)); //WEBTRAN_ID
by
data.push_back(wxVariant(wxString::Format(wxT("%i"),WebTran.ID))); //WEBTRAN_ID

line 131
replace
data.push_back(wxVariant(WebTran.Amount)); //WEBTRAN_AMOUNT
by
data.push_back(wxVariant(wxString::Format(wxT("%f"),WebTran.Amount))); //WEBTRAN_AMOUNT

http://usagestats.moneymanagerex.org/API/main_stats_v1.php?User_ID=gtk_20141027185523&Version=1.2.0-Beta&Platform=gtk&OperatingSystem=Linux 3.13.0-45-generic x86_64&Language=french&Country=&Resolution=2646x1024&Start_Time=2015-02-17 23:10:22&End_Time=2015-02-17 23:21:01

Assets should be closeable or have an end date

Currently, when an asset is sold, the only way to stop showing the asset is by deleting it. I think it would be better if the asset had an end date so that the asset could show up in the history based on its start and end date.

I ran into this when I was trying to display my net worth over time.

For the time being, I've changed all of my assets to term accounts as a work around. I put in the first transaction for the purchase date and the second transaction is the sale date.

Refactor home page (phase 2)

Given that home page is base on HTML5 already but we mixed the html code with c++ everywhere.
The basic aim is to cleanup these hybrid code with template.
Eventually, each component should be a piece of HTML code and we can combine them freely.

max osx: crash when trying to insert a new transaction

When you are editing a new transaction, since you cannot shrink the payee list (#359), you have to scroll it with the mouse (i.e. key up and down are not working), sometimes you get a crash, below the last crash report:

<?xml version="1.0" encoding="UTF-8"?>
<report version="1.0" kind="exception">
  <system description="Mac OS X (Darwin 14.0.0 x86_64)"/>
  <stack>
    <frame level="0" function="wxFatalSignalHandler " offset="00000000"/>
    <frame level="1" function="_sigtramp " offset="00000000"/>
    <frame level="2" function="_sigtramp " offset="00000000"/>
    <frame level="3" function="-[NSWindow _reallySendEvent:] " offset="00000000"/>
    <frame level="4" function="-[NSWindow sendEvent:] " offset="00000000"/>
    <frame level="5" function="-[wxNSPanel sendEvent:] " offset="00000000"/>
    <frame level="6" function="-[NSComboBoxCell filterEvents:] " offset="00000000"/>
    <frame level="7" function="-[NSComboBoxCell popUp:] " offset="00000000"/>
    <frame level="8" function="_os_activity_initiate " offset="00000000"/>
    <frame level="9" function="-[NSApplication sendAction:to:from:] " offset="00000000"/>
    <frame level="10" function="-[NSControl sendAction:to:] " offset="00000000"/>
    <frame level="11" function="__26-[NSCell _sendActionFrom:]_block_invoke " offset="00000000"/>
    <frame level="12" function="_os_activity_initiate " offset="00000000"/>
    <frame level="13" function="-[NSCell _sendActionFrom:] " offset="00000000"/>
    <frame level="14" function="-[NSButtonCell _sendActionFrom:] " offset="00000000"/>
    <frame level="15" function="__48-[NSCell trackMouse:inRect:ofView:untilMouseUp:]_block_invoke " offset="00000000"/>
    <frame level="16" function="_os_activity_initiate " offset="00000000"/>
    <frame level="17" function="-[NSCell trackMouse:inRect:ofView:untilMouseUp:] " offset="00000000"/>
    <frame level="18" function="-[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] " offset="00000000"/>
    <frame level="19" function="-[NSComboBoxCell trackMouse:inRect:ofView:untilMouseUp:] " offset="00000000"/>
    <frame level="20" function="-[NSComboBox mouseDown:] " offset="00000000"/>
    <frame level="21" function="wxNSComboBoxControl::mouseEvent(NSEvent*, NSView*, void*) " offset="00000000"/>
    <frame level="22" function="-[NSWindow _reallySendEvent:] " offset="00000000"/>
    <frame level="23" function="-[NSWindow sendEvent:] " offset="00000000"/>
    <frame level="24" function="-[wxNSPanel sendEvent:] " offset="00000000"/>
    <frame level="25" function="-[NSApplication sendEvent:] " offset="00000000"/>
    <frame level="26" function="-[wxNSApplication sendEvent:] " offset="00000000"/>
    <frame level="27" function="-[NSApplication _realDoModalLoop:peek:] " offset="00000000"/>
    <frame level="28" function="-[NSApplication runModalSession:] " offset="00000000"/>
    <frame level="29" function="wxGUIEventLoop::DoDispatchTimeout(unsigned long) " offset="00000000"/>
    <frame level="30" function="wxCFEventLoop::DispatchTimeout(unsigned long) " offset="00000000"/>
    <frame level="31" function="wxCFEventLoop::OSXDoRun() " offset="00000000"/>
    <frame level="32" function="wxModalEventLoop::OSXDoRun() " offset="00000000"/>
    <frame level="33" function="wxCFEventLoop::DoRun() " offset="00000000"/>
    <frame level="34" function="wxEventLoopBase::Run() " offset="00000000"/>
    <frame level="35" function="wxDialog::ShowModal() " offset="00000000"/>
    <frame level="36" function="TransactionListCtrl::OnNewTransaction(wxCommandEvent&amp;) " offset="00000000"/>
    <frame level="37" function="mmGUIApp::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&amp;), wxEvent&amp;) const " offset="00000000"/>
    <frame level="38" function="wxEventHashTable::HandleEvent(wxEvent&amp;, wxEvtHandler*) " offset="00000000"/>
    <frame level="39" function="wxEvtHandler::ProcessEventLocally(wxEvent&amp;) " offset="00000000"/>
    <frame level="40" function="wxEvtHandler::ProcessEvent(wxEvent&amp;) " offset="00000000"/>
    <frame level="41" function="wxWindowBase::TryAfter(wxEvent&amp;) " offset="00000000"/>
    <frame level="42" function="wxEvtHandler::ProcessEvent(wxEvent&amp;) " offset="00000000"/>
    <frame level="43" function="wxWindowBase::TryAfter(wxEvent&amp;) " offset="00000000"/>
    <frame level="44" function="wxEvtHandler::ProcessEvent(wxEvent&amp;) " offset="00000000"/>
    <frame level="45" function="wxWindowBase::TryAfter(wxEvent&amp;) " offset="00000000"/>
    <frame level="46" function="wxEvtHandler::ProcessEvent(wxEvent&amp;) " offset="00000000"/>
    <frame level="47" function="wxEvtHandler::SafelyProcessEvent(wxEvent&amp;) " offset="00000000"/>
    <frame level="48" function="wxButton::OSXHandleClicked(double) " offset="00000000"/>
    <frame level="49" function="_os_activity_initiate " offset="00000000"/>
    <frame level="50" function="-[NSApplication sendAction:to:from:] " offset="00000000"/>
    <frame level="51" function="-[NSControl sendAction:to:] " offset="00000000"/>
    <frame level="52" function="__26-[NSCell _sendActionFrom:]_block_invoke " offset="00000000"/>
    <frame level="53" function="_os_activity_initiate " offset="00000000"/>
    <frame level="54" function="-[NSCell _sendActionFrom:] " offset="00000000"/>
    <frame level="55" function="-[NSButtonCell _sendActionFrom:] " offset="00000000"/>
    <frame level="56" function="_os_activity_initiate " offset="00000000"/>
    <frame level="57" function="-[NSCell trackMouse:inRect:ofView:untilMouseUp:] " offset="00000000"/>
    <frame level="58" function="-[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] " offset="00000000"/>
    <frame level="59" function="-[NSControl mouseDown:] " offset="00000000"/>
    <frame level="60" function="wxWidgetCocoaImpl::mouseEvent(NSEvent*, NSView*, void*) " offset="00000000"/>
    <frame level="61" function="-[NSWindow _reallySendEvent:] " offset="00000000"/>
    <frame level="62" function="-[NSWindow sendEvent:] " offset="00000000"/>
    <frame level="63" function="-[wxNSWindow sendEvent:] " offset="00000000"/>
    <frame level="64" function="-[NSApplication sendEvent:] " offset="00000000"/>
    <frame level="65" function="-[wxNSApplication sendEvent:] " offset="00000000"/>
    <frame level="66" function="-[NSApplication run] " offset="00000000"/>
    <frame level="67" function="wxGUIEventLoop::OSXDoRun() " offset="00000000"/>
    <frame level="68" function="wxCFEventLoop::DoRun() " offset="00000000"/>
    <frame level="69" function="wxEventLoopBase::Run() " offset="00000000"/>
    <frame level="70" function="wxAppConsoleBase::MainLoop() " offset="00000000"/>
    <frame level="71" function="wxApp::OnRun() " offset="00000000"/>
    <frame level="72" function="wxEntry(int&amp;, wchar_t**) " offset="00000000"/>
    <frame level="73" function="main " offset="00000000"/>
    <frame level="74" function="start " offset="00000000"/>
  </stack>
</report>

Repeating Transfer

I think a bug has been introduced with repeating transfers. To reproduce:

  1. Set up a new repeating transaction. Set it to "Transfer" and choose two accounts and amount $1000. Click OK.
  2. Enter the transaction, but change the amount to $800 on entering. The "From" account will have $800, but the "To" account will have $1000, despite the "Advanced" setting not being checked in the original repeating transaction or the entered transaction.

Totals in the main list are wrong

Please see issue moneymanagerex/android-money-manager-ex#22

The same thing happens in the desktop version on Windows. The total expenses, after spending €20 Euros in Hungary, show up as €1 226 059.70 for the month.
I wish it was that easy. :)

All the values in the database look correct so I assume that the error is in the formula somewhere in the application.

Filtering in account view doesn't work

Using version 1.2.0-Alpha.1 on Windows 7 64bit

Setting transactions filters in the account view doesn't change the view.

I've configured a filter, saved it and clicked OK.
The view blinks shortly, but doesn't change.

This is extremely annoying as long as there is no support for multi-select for deleting or changing transactions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.