Patch: Repeating virtual transaction

Money Manager Ex Development related posts for both Android and Desktop

Moderator: Renato

Post Reply
hmaac
New User
Posts: 12
Joined: Sat Oct 10, 2009 9:53 am
Are you a spam bot?: No

Patch: Repeating virtual transaction

Post by hmaac »

Hello,

One thing that I miss in MMEX is a way to create a repeating (monthly) transaction that is kind of virtual, I mean, there is a number of transactions that occur in a month that are variable in number and in value; like how much do we spend in food, or in fuel, etc. If we take a close look we can calculate an average for that and place a repeating transaction in the end of the month. For me that is a 'virtual' transaction, because it's just created to help me forecast the future in the Cash Flow report.

The problem is that if I create a monthly transaction at the 30th of the month and today is the 28th, in the cash flow that virtual transaction is going to be counted in (with just 2 days left in the month). What I would like is MMEX to calculate a weighted value of that virtual transaction and use the whole value in the next months.

Is it possible to do it with MMEX by now? I think not, so I'm going to mess a little bit the code to add this feature (at least for me, my customized MMEX version). I don't know if is there anyone with a clever idea to do this, but I was thinking about creating a new repeat type - 'monthly (virtual)'. It's more a hack and probably it's not very elegant; suggestions are very welcome!

Cheers,

Henrique
Last edited by hmaac on Tue Oct 13, 2009 10:45 pm, edited 1 time in total.
hmaac
New User
Posts: 12
Joined: Sat Oct 10, 2009 9:53 am
Are you a spam bot?: No

Re: Repeating virtual transaction

Post by hmaac »

Ok,

I changed the code to do what I talked about. Now MMEX is working exactly like I wanted (just missing the Cash Flow Report in a Calendar view - next step ;) ) :)
As I said, if anybody is interested, just say so. By the way, is it possible to create a branch in SVN where I could commit my stuff so MMEX developers could checkout this and take a look?

Cheers,

Henrique
elliswr
Super User
Posts: 102
Joined: Tue May 05, 2009 8:21 am
Are you a spam bot?: No
Location: Granbury, TX

Re: Repeating virtual transaction

Post by elliswr »

If you would, post a patch file of the changes that you made.
hmaac
New User
Posts: 12
Joined: Sat Oct 10, 2009 9:53 am
Are you a spam bot?: No

Re: Repeating virtual transaction

Post by hmaac »

Hi,

Just need to debug a little since I found a bug. The moment I finish with the bug I'll post here the patch.

Cheers,

Henrique
hmaac
New User
Posts: 12
Joined: Sat Oct 10, 2009 9:53 am
Are you a spam bot?: No

Re: Repeating virtual transaction

Post by hmaac »

Hello again,

Here goes the patch attached. It's based on the HEAD version (Rev.597).

Cheers,

Henrique

PS - It's also included in the patch the change regarding the Cash Flow Forecast thread
Attachments
patch597_Henrique.rar
(36.5 KiB) Downloaded 526 times
elliswr
Super User
Posts: 102
Joined: Tue May 05, 2009 8:21 am
Are you a spam bot?: No
Location: Granbury, TX

Re: Patch: Repeating virtual transaction

Post by elliswr »

Nikolay or Vadim,

Could you take a look at this patch?
Nikolay
Developer
Posts: 1535
Joined: Sat Dec 06, 2008 2:27 pm
Are you a spam bot?: No
Location: Sankt-Petersburg, Russia

Re: Patch: Repeating virtual transaction

Post by Nikolay »

The patch seems outdated.
Could you please update it?
hmaac
New User
Posts: 12
Joined: Sat Oct 10, 2009 9:53 am
Are you a spam bot?: No

Re: Patch: Repeating virtual transaction

Post by hmaac »

Hi,

Here goes the patch updated, with just the source (and .po files) version and another one with also the makefiles.

Regards,

Henrique
Attachments
cashflow_vtransaction_677_all.zip
(8.1 KiB) Downloaded 521 times
cashflow_vtransaction_677_source.zip
(7.65 KiB) Downloaded 514 times
elliswr
Super User
Posts: 102
Joined: Tue May 05, 2009 8:21 am
Are you a spam bot?: No
Location: Granbury, TX

Re: Patch: Repeating virtual transaction

Post by elliswr »

I don't know if I am doing something wrong or what, but this is what I get when I try patching with either of these files:

Code: Select all

$ patch -p0 < /Users/wesleyrellis/Downloads/cashflow_vtransaction_677.patch --dry-run
(Stripping trailing CRs from patch.)
patching file src/filtercashflowdialog.cpp
(Stripping trailing CRs from patch.)
patching file src/filtercashflowdialog.h
(Stripping trailing CRs from patch.)
can't find file to patch at input line 349
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: runtime/en/english-uk.po
|===================================================================
|--- runtime/en/english-uk.po	(revision 594)
|+++ runtime/en/english-uk.po	(working copy)
--------------------------
File to patch: 
I have the exact same setup as SVN branch 0.9.5, but it can't find the file. Should I be using trunk?
hmaac
New User
Posts: 12
Joined: Sat Oct 10, 2009 9:53 am
Are you a spam bot?: No

Re: Patch: Repeating virtual transaction

Post by hmaac »

Yes,

It's based on the trunk version, so I think that should be it.
elliswr
Super User
Posts: 102
Joined: Tue May 05, 2009 8:21 am
Are you a spam bot?: No
Location: Granbury, TX

Re: Patch: Repeating virtual transaction

Post by elliswr »

Yes, Vadim has pointed out how worthless my efforts are in concentrating on a branch. Sorry I didn't catch this sooner, I'll look at this as soon as I get my IDE swapped over to trunk.
Nikolay
Developer
Posts: 1535
Joined: Sat Dec 06, 2008 2:27 pm
Are you a spam bot?: No
Location: Sankt-Petersburg, Russia

Re: Patch: Repeating virtual transaction

Post by Nikolay »

Hi,

It's does not work for me:

(Sorry my VC++ has only russian interface)

Google translation:

Code: Select all

	

1 >------ Construction started: Project: mmex, Configuration: Unicode Release Multilib WX_PYTHON_0 Win32 ------
1> Linking ...
1> mmex.obj: error LNK2019: unresolved external reference to the symbol "public: __thiscall mmFilterCashFlowDialog:: mmFilterCashFlowDialog (class wxWindow *, long *, class wxDateTime *, int, class wxString const &, class wxPoint const &, class wxSize const & , long) "(?? 0mmFilterCashFlowDialog @ @ QAE @ PAVwxWindow @ @ PAJPAVwxDateTime @ @ HABVwxString @ @ ABVwxPoint @ @ ABVwxSize @ @ J @ Z) in function" public: void __thiscall mmGUIFrame:: CashFlowOptions (long &, class wxDateTime &) "(? CashFlowOptions @ mmGUIFrame @ @ QAEXAAJAAVwxDateTime @ @ @ Z)
1> vc-static-u \ mmex.exe: fatal error LNK1120: 1 unresolved external elements
1> log building was saved in "file: / / d: \ Developing \ moneymanagerex \ trunk \ mmex \ build \ msw \ vc-static-u \ mmex \ BuildLog.htm"
1> mmex - errors, 2 warnings 0
========== Build: successfully: 0, errors: 1, without changes: 1, skipped: 0 ==========
> переключить
		
 	
1>------ Построение начато: проект: mmex, Конфигурация: Unicode Release Multilib WX_PYTHON_0 Win32 ------
1>Компоновка...
1>mmex.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall mmFilterCashFlowDialog::mmFilterCashFlowDialog(class wxWindow *,long *,class wxDateTime *,int,class wxString const &,class wxPoint const &,class wxSize const &,long)" (??0mmFilterCashFlowDialog@@QAE@PAVwxWindow@@PAJPAVwxDateTime@@HABVwxString@@ABVwxPoint@@ABVwxSize@@J@Z) в функции "public: void __thiscall mmGUIFrame::CashFlowOptions(long &,class wxDateTime &)" (?CashFlowOptions@mmGUIFrame@@QAEXAAJAAVwxDateTime@@@Z)
1>vc-static-u\mmex.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>Журнал построения был сохранен в "file://d:\Developing\moneymanagerex\trunk\mmex\build\msw\vc-static-u\mmex\BuildLog.htm"
1>mmex - ошибок 2, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 1, пропущено: 0 ==========
hmaac
New User
Posts: 12
Joined: Sat Oct 10, 2009 9:53 am
Are you a spam bot?: No

Re: Patch: Repeating virtual transaction

Post by hmaac »

Sorry,

I'm using the makefile to build the project because I'm using Visual Studio Express. My Visual Studio converts the solution files format, so I'd better not post a patch with those changes, it would be too messy. Could you just add the files filtercashflowdialog.cpp and filtercashflowdialog.h in the solution?

Regards,

Henrique
Nikolay
Developer
Posts: 1535
Joined: Sat Dec 06, 2008 2:27 pm
Are you a spam bot?: No
Location: Sankt-Petersburg, Russia

Re: Patch: Repeating virtual transaction

Post by Nikolay »

Hi,

I'm using Visual Studio Express too. The file has been added but now a lot of error comes.
I read Robert Kiyosaki. Realizing the importance of cash flow, I want to look at this functional.
Could you please upload cpp and h files? I just want to see on you realisation of Cash Flow functionality.


1>------ Построение начато: проект: mmex, Конфигурация: Unicode Release Multilib WX_PYTHON_0 Win32 ------
1>Компиляция...
1>cl: командная строка warning D9035: использование параметра "Wp64" нежелательно, он будет удален в следующих выпусках
1>filtercashflowdialog.cpp
1>..\..\src\filtercashflowdialog.cpp(279) : error C2374: ms_classInfo: переопределение; множественная инициализация
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(62): см. объявление 'ms_classInfo'
1>..\..\src\filtercashflowdialog.cpp(279) : error C2084: функция "wxClassInfo *mmFilterCashFlowDialog::GetClassInfo(void) const" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(62): см. предыдущее определение 'GetClassInfo'
1>..\..\src\filtercashflowdialog.cpp(279) : error C2084: функция "wxObject *mmFilterCashFlowDialog::wxCreateObject(void)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(62): см. предыдущее определение 'wxCreateObject'
1>..\..\src\filtercashflowdialog.cpp(285) : error C2374: sm_eventTable: переопределение; множественная инициализация
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(63): см. объявление 'sm_eventTable'
1>..\..\src\filtercashflowdialog.cpp(285) : error C2084: функция "const wxEventTable *mmFilterCashFlowDialog::GetEventTable(void) const" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(63): см. предыдущее определение 'GetEventTable'
1>..\..\src\filtercashflowdialog.cpp(285) : error C2374: sm_eventHashTable: переопределение; множественная инициализация
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(63): см. объявление 'sm_eventHashTable'
1>..\..\src\filtercashflowdialog.cpp(285) : error C2084: функция "wxEventHashTable &mmFilterCashFlowDialog::GetEventHashTable(void) const" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(63): см. предыдущее определение 'GetEventHashTable'
1>..\..\src\filtercashflowdialog.cpp(285) : error C2374: sm_eventTableEntries: переопределение; множественная инициализация
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(63): см. объявление 'sm_eventTableEntries'
1>..\..\src\filtercashflowdialog.cpp(301) : error C2084: функция "mmFilterCashFlowDialog::mmFilterCashFlowDialog(void)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(67): см. предыдущее определение '{ctor}'
1>..\..\src\filtercashflowdialog.cpp(309) : error C2084: функция "mmFilterCashFlowDialog::mmFilterCashFlowDialog(wxWindow *,long *,wxDateTime *,wxWindowID,const wxString &,const wxPoint &,const wxSize &,long)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(68): см. предыдущее определение '{ctor}'
1>..\..\src\filtercashflowdialog.cpp(322) : error C2084: функция "bool mmFilterCashFlowDialog::Create(wxWindow *,wxWindowID,const wxString &,const wxPoint &,const wxSize &,long)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(78): см. предыдущее определение 'Create'
1>..\..\src\filtercashflowdialog.cpp(348) : error C2084: функция "void mmFilterCashFlowDialog::CreateControls(void)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(86): см. предыдущее определение 'CreateControls'
1>..\..\src\filtercashflowdialog.cpp(414) : error C2084: функция "bool mmFilterCashFlowDialog::ShowToolTips(void)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(99): см. предыдущее определение 'ShowToolTips'
1>..\..\src\filtercashflowdialog.cpp(419) : error C2084: функция "void mmFilterCashFlowDialog::OnButtonokClick(wxCommandEvent &)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(91): см. предыдущее определение 'OnButtonokClick'
1>..\..\src\filtercashflowdialog.cpp(442) : error C2084: функция "void mmFilterCashFlowDialog::OnButtoncancelClick(wxCommandEvent &)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(94): см. предыдущее определение 'OnButtoncancelClick'
1>..\..\src\filtercashflowdialog.cpp(501) : error C2374: ms_classInfo: переопределение; множественная инициализация
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(62): см. объявление 'ms_classInfo'
1>..\..\src\filtercashflowdialog.cpp(501) : error C2084: функция "wxClassInfo *mmFilterCashFlowDialog::GetClassInfo(void) const" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(62): см. предыдущее определение 'GetClassInfo'
1>..\..\src\filtercashflowdialog.cpp(501) : error C2084: функция "wxObject *mmFilterCashFlowDialog::wxCreateObject(void)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(62): см. предыдущее определение 'wxCreateObject'
1>..\..\src\filtercashflowdialog.cpp(501) : error C2264: mmFilterCashFlowDialog::mmFilterCashFlowDialog: ошибка в определении или объявлении функции; функция не вызвана
1>..\..\src\filtercashflowdialog.cpp(507) : error C2374: sm_eventTable: переопределение; множественная инициализация
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(63): см. объявление 'sm_eventTable'
1>..\..\src\filtercashflowdialog.cpp(507) : error C2084: функция "const wxEventTable *mmFilterCashFlowDialog::GetEventTable(void) const" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(63): см. предыдущее определение 'GetEventTable'
1>..\..\src\filtercashflowdialog.cpp(507) : error C2374: sm_eventHashTable: переопределение; множественная инициализация
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(63): см. объявление 'sm_eventHashTable'
1>..\..\src\filtercashflowdialog.cpp(507) : error C2084: функция "wxEventHashTable &mmFilterCashFlowDialog::GetEventHashTable(void) const" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(63): см. предыдущее определение 'GetEventHashTable'
1>..\..\src\filtercashflowdialog.cpp(507) : error C2374: sm_eventTableEntries: переопределение; множественная инициализация
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(63): см. объявление 'sm_eventTableEntries'
1>..\..\src\filtercashflowdialog.cpp(523) : error C2084: функция "mmFilterCashFlowDialog::mmFilterCashFlowDialog(void)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(67): см. предыдущее определение '{ctor}'
1>..\..\src\filtercashflowdialog.cpp(531) : error C2084: функция "mmFilterCashFlowDialog::mmFilterCashFlowDialog(wxWindow *,long *,wxDateTime *,wxWindowID,const wxString &,const wxPoint &,const wxSize &,long)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(68): см. предыдущее определение '{ctor}'
1>..\..\src\filtercashflowdialog.cpp(534) : error C2264: mmFilterCashFlowDialog::Create: ошибка в определении или объявлении функции; функция не вызвана
1>..\..\src\filtercashflowdialog.cpp(544) : error C2084: функция "bool mmFilterCashFlowDialog::Create(wxWindow *,wxWindowID,const wxString &,const wxPoint &,const wxSize &,long)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(78): см. предыдущее определение 'Create'
1>..\..\src\filtercashflowdialog.cpp(554) : error C2264: mmFilterCashFlowDialog::CreateControls: ошибка в определении или объявлении функции; функция не вызвана
1>..\..\src\filtercashflowdialog.cpp(570) : error C2084: функция "void mmFilterCashFlowDialog::CreateControls(void)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(86): см. предыдущее определение 'CreateControls'
1>..\..\src\filtercashflowdialog.cpp(636) : error C2084: функция "bool mmFilterCashFlowDialog::ShowToolTips(void)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(99): см. предыдущее определение 'ShowToolTips'
1>..\..\src\filtercashflowdialog.cpp(641) : error C2084: функция "void mmFilterCashFlowDialog::OnButtonokClick(wxCommandEvent &)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(91): см. предыдущее определение 'OnButtonokClick'
1>..\..\src\filtercashflowdialog.cpp(664) : error C2084: функция "void mmFilterCashFlowDialog::OnButtoncancelClick(wxCommandEvent &)" уже имеет текст реализации
1> d:\developing\moneymanagerex\trunk\mmex\src\filtercashflowdialog.h(94): см. предыдущее определение 'OnButtoncancelClick'
1>Журнал построения был сохранен в "file://d:\Developing\moneymanagerex\trunk\mmex\build\msw\vc-static-u\mmex\BuildLog.htm"
1>mmex - ошибок 33, предупреждений 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 1, пропущено: 0 ==========
Vadim
Super User
Posts: 142
Joined: Mon Aug 03, 2009 7:35 am
Are you a spam bot?: No

Re: Patch: Repeating virtual transaction

Post by Vadim »

Never modify makefiles and solutions. These all files generated by Bakefile!!! Read readme files. All your changes will be lost. And never commits these files to svn. I commit them only if I modify bakefiles. Hand-made modifications are prohibited and will be lost every time when I rerun bakefile.bat.

If you add .cpp\.h files to mmex\src, you need to run mmex\boostrap.bat only. That's all. This will refreshes ALL projects and makefiles. You need to modify .bkl file only when you add new language file .po to runtime\en. In this case add this language to runtime\en\i18n.bkl as described in readme in the same directory.
Very simple rules, I suppose :)
hmaac
New User
Posts: 12
Joined: Sat Oct 10, 2009 9:53 am
Are you a spam bot?: No

Re: Patch: Repeating virtual transaction

Post by hmaac »

Vadim wrote:Never modify makefiles and solutions. These all files generated by Bakefile!!! Read readme files. All your changes will be lost. And never commits these files to svn. I commit them only if I modify bakefiles. Hand-made modifications are prohibited and will be lost every time when I rerun bakefile.bat.

If you add .cpp\.h files to mmex\src, you need to run mmex\boostrap.bat only. That's all. This will refreshes ALL projects and makefiles. You need to modify .bkl file only when you add new language file .po to runtime\en. In this case add this language to runtime\en\i18n.bkl as described in readme in the same directory.
Very simple rules, I suppose :)
Got it! ;)
Nikolay wrote:Hi,

I'm using Visual Studio Express too. The file has been added but now a lot of error comes.
I read Robert Kiyosaki. Realizing the importance of cash flow, I want to look at this functional.
Could you please upload cpp and h files? I just want to see on you realisation of Cash Flow functionality.
Here are the changed/new files attached...
Attachments
cashflow.zip
(46.09 KiB) Downloaded 531 times
hmaac
New User
Posts: 12
Joined: Sat Oct 10, 2009 9:53 am
Are you a spam bot?: No

Re: Patch: Repeating virtual transaction

Post by hmaac »

By the way, what do you think of the wxCalendarCtrl changed so that the calendar view would be bigger, and we could see in each day (in the future) the forecasted balance (and also the total deposits and withdrawals for that day, if any). For me it would be the new Cashflow report.
Nikolay
Developer
Posts: 1535
Joined: Sat Dec 06, 2008 2:27 pm
Are you a spam bot?: No
Location: Sankt-Petersburg, Russia

Re: Patch: Repeating virtual transaction

Post by Nikolay »

Hi,

Still can't make your changes for svn 677. A lot of errors.

Nevertheless, could you describe the cashflow functionality for users with samples and pictures.
What are the advantages of your idea?

For me very important that my total withdrawals for every month were less than deposits. It's mean for me that cashflow is good.
That's enough for me.

Thanks.

PS Did you checked debug version?
Post Reply