Page 1 of 1

Patch: Repeating virtual transaction

Posted: Sun Oct 11, 2009 4:14 pm
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

Re: Repeating virtual transaction

Posted: Sun Oct 11, 2009 10:33 pm
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

Re: Repeating virtual transaction

Posted: Mon Oct 12, 2009 3:29 am
by elliswr
If you would, post a patch file of the changes that you made.

Re: Repeating virtual transaction

Posted: Tue Oct 13, 2009 8:07 pm
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

Re: Repeating virtual transaction

Posted: Tue Oct 13, 2009 10:40 pm
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

Re: Patch: Repeating virtual transaction

Posted: Mon Oct 19, 2009 9:11 pm
by elliswr
Nikolay or Vadim,

Could you take a look at this patch?

Re: Patch: Repeating virtual transaction

Posted: Sat Oct 24, 2009 2:12 pm
by Nikolay
The patch seems outdated.
Could you please update it?

Re: Patch: Repeating virtual transaction

Posted: Sun Oct 25, 2009 8:27 pm
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

Re: Patch: Repeating virtual transaction

Posted: Mon Oct 26, 2009 2:55 am
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?

Re: Patch: Repeating virtual transaction

Posted: Mon Oct 26, 2009 3:53 pm
by hmaac
Yes,

It's based on the trunk version, so I think that should be it.

Re: Patch: Repeating virtual transaction

Posted: Mon Oct 26, 2009 8:57 pm
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.

Re: Patch: Repeating virtual transaction

Posted: Tue Oct 27, 2009 7:51 pm
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 ==========

Re: Patch: Repeating virtual transaction

Posted: Tue Oct 27, 2009 10:46 pm
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

Re: Patch: Repeating virtual transaction

Posted: Wed Oct 28, 2009 7:37 am
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 ==========

Re: Patch: Repeating virtual transaction

Posted: Wed Oct 28, 2009 8:17 am
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 :)

Re: Patch: Repeating virtual transaction

Posted: Wed Oct 28, 2009 3:10 pm
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...

Re: Patch: Repeating virtual transaction

Posted: Wed Oct 28, 2009 3:21 pm
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.

Re: Patch: Repeating virtual transaction

Posted: Sun Nov 01, 2009 9:39 am
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?