Bug 406082

Summary: Frequency of Scheduled transaction changes when switching between versions
Product: [Applications] kmymoney Reporter: Gopal Sagar <gkdada>
Component: generalAssignee: KMyMoney Devel Mailing List <kmymoney-devel>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 5.0.3   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In: 5.0.4
Sentry Crash Report:
Attachments: The original test file
Opened in v.5.0.0, added one new transaction and saved.
'original' in v.5.0.3 on Debian Buster
'original' in v.5.0.0 on Linux Mint 19.1

Description Gopal Sagar 2019-03-31 14:47:22 UTC
While switching back and forth between v5.0.3 (on Debian Buster) and v.5.0.0 on Linux Mint 19, the frequency of those scheduled transactions that had frequencies other than Monthly and Yearly changed. Those with frequency 3 months went to 9 months and those with 2 weeks changed to 16 weeks.

It is hard to say WHEN it happened, but I do open the same file with different versions of KMyMoney.

STEPS TO REPRODUCE
1. Create a KMyMoney file encrypted with GPG key and a number of scheduled transactions some of have frequency of 2 weeks, and some with frequency of 3 months.
2. Alternatively open and save them in v 5.0.3 (on Debian Buster) and v.5.0.0 (on Linux Mint 19.1).
3. At some point, the frequency of the scheduled transaction should change (even though the next due date doesn't change.

OBSERVED RESULT
The frequency of scheduled transaction changes from 2 weeks to 16 weeks and from 3 months to 9 months.

EXPECTED RESULT
The frequency of scheduled transaction shouldn't change when switching between versions


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: Debian Buster
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version:5.54.0 
Qt Version: 5.11.3

ADDITIONAL INFORMATION
Comment 1 Thomas Baumgart 2019-04-06 12:59:14 UTC
This is rather strange. It would be cool to see what changes in the file and knowing the from and to version. You could use the automatic backup files to compare both versions. To get them, set the number of backup files to be kept in the general/global settings tab to something like 10 or so. Then you can go back a few steps and see what changes in that schedule.
Comment 2 Bug Janitor Service 2019-04-21 04:33:08 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 3 Bug Janitor Service 2019-05-06 04:33:10 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!
Comment 4 Gopal Sagar 2019-05-07 13:54:21 UTC
Created attachment 119886 [details]
The original test file

This was created in v.5.0.3 and not yet opened in v.5.0.0.
Comment 5 Gopal Sagar 2019-05-07 13:55:07 UTC
Created attachment 119887 [details]
Opened in v.5.0.0, added one new transaction and saved.
Comment 6 Gopal Sagar 2019-05-07 13:59:58 UTC
Created attachment 119888 [details]
'original' in v.5.0.3 on Debian Buster

The scheduled transactions show a period of 'every three months' and 'every other week' respectively.
Comment 7 Gopal Sagar 2019-05-07 14:01:50 UTC
Created attachment 119889 [details]
'original' in v.5.0.0 on Linux Mint 19.1

The same 'original' file opened in v.5.0.0 running on Linux Mint 19.1. Scheduled transactions show an altered period of 'Every 9 months' and 'Every four weeks' respectively.
Comment 8 Gopal Sagar 2019-05-07 14:02:59 UTC
I could not share my own KMyMoney file because of privacy concerns. I succeeded in recreating the problem by creating a simple file with one account and a few scheduled transactions.
Comment 9 Gopal Sagar 2019-05-08 13:27:47 UTC
Forget everything that I have said before. Encryption with GPG key is not required to see the problem. Let me reinstate root of the problem:

The 'original test file' I have uploaded above was created using KMyMoney v.5.0.3 running on Debian Buster. It has two scheduled transactions. 

When opening in v.5.0.3 (on Debian Buster, I haven't tested elsewhere), the two have periods of of 'Every three months' and 'Every other week'.

When the same file is opened in v.5.0.0 (on Linux Mint 19.1 - installed without adding any PPA), the same two transactions have a periods of 'Every 9 months' and 'Every four weeks' respectively.

If you now save the file in v.5.0.0 (the second attached file), the modified periods show up when opening in v.5.0.3 on Debian Buster.
Comment 10 Thomas Baumgart 2019-05-09 20:22:45 UTC
Git commit f9a1d6eec37eb24f0725dadf30d46d159473e282 by Thomas Baumgart.
Committed on 09/05/2019 at 20:17.
Pushed by tbaumgart into branch '5.0'.

Fix storage of schedules

Fix code to provide prior behavior
FIXED-IN: 5.0.4

M  +1    -1    kmymoney/dialogs/keditscheduledlg.cpp
M  +2    -2    kmymoney/mymoney/mymoneyforecast.cpp
M  +3    -3    kmymoney/mymoney/mymoneyschedule.cpp
M  +5    -4    kmymoney/mymoney/mymoneyschedule.h
M  +2    -2    kmymoney/mymoney/storage/mymoneystoragemgr.cpp
M  +70   -70   kmymoney/mymoney/tests/mymoneyschedule-test.cpp
M  +2    -2    kmymoney/plugins/icalendar/export/schedulestoicalendar.cpp
M  +1    -1    kmymoney/plugins/sql/mymoneystoragesql.cpp
M  +1    -1    kmymoney/plugins/sql/mymoneystoragesql_p.h
M  +3    -3    kmymoney/plugins/xml/tests/mymoneyxmlcontenthandler-test.cpp
M  +1    -1    kmymoney/widgets/kmymoneybriefschedule.cpp
M  +1    -1    kmymoney/wizards/newloanwizard/keditloanwizard.cpp

https://commits.kde.org/kmymoney/f9a1d6eec37eb24f0725dadf30d46d159473e282