CLOSED - New Plugin needed - redmine_time_wallet

Added by Matthew Paul about 7 years ago

Update - did it with back end process instead. Not good enough at ruby.

Name - Matthew Paul
Location - US
Language - English

I need a new plugin written as follows -

1) Module enabled at project level to allow time wallet functionality. Project level is allowed to select project for wallet transactions which defaults to self.
2) log a time credit against a project issue for an initial time value (should be standard) - checkbox indicates it is a 'wallet' issue and verifies that there is only ONE such issue for that project/user i.e. you can only have one time wallet per project/user.
3) allow negative time entries (simple change to app/models/time_entry.rb>validate_time_entry)
4) allow log time on issue CREATION not just issue update - this is important - right now you have to create an issue then you can log time to it. I want to create an issue and see the time log fields when I create that issue.
5) when time is logged on a project that is wallet enabled, should automatically add negative time debit to project/user/wallet issue.
6) total balance on time wallet issue should not be allowed below zero
7) When you change a time log, it should also change the negative time log in the wallet - that is, the positive and negative time logs should always be equal.

SO - the effect would be -

Structure -

Proj - wallet project set to Proj
- SubProj1 - wallet project set to Proj
- SubProj2 - wallet project set to Proj
- SubProj3 - wallet project not set

1) Create issue against Proj - mark it as the wallet issue
2) Log Time against Proj of 100 Hours to 'credit' that issue with 100 hours of time
3) Create issue for SubProj1 with time log of 30 hours. System automatically creates time log against Proj/user/issue of -30 hours - total time on wllet issue is now 70.
4) Create issue for SubProj3 with time log of 60 hours - no wallet set, no auto time log created
5) Create issue for SubProj2 with time log of 80 hours. System tries to create -80 hours against Proj/user/issue but total time on that issue would end up as -10 so whole transaction fails (time log of +80 and auto log of -80) - error.
6) Create issue for SubProj2 with time log of 50 hours. System creates -50 hours against Proj/user/issue for wallet balance of 20.

So, the idea is that you can set up a time wallet, and that you can then point any given sub projects to a wallet project. After that it should automatically log negative time to the target time wallet project, making sure it doesn't go below zero. So, if someone wants to log time against an issue in a SubProject, they have to get the main project admin to add credit to the time wallet before they can do that.

I've tried to use existing structures only because it seems easier. Could also do all of this with a copy of the time functionality but I didn't want to make it too complex. So I figured just specifying a wallet/budget type functionality would keep it simple. This way I can use all existing screen to go into the wallet project and see what the balance is on any given project/user, and what the credit and debit transaction history is for that balance, because the initial time credit (+ve) and all subsequent time debits (-ve) are listed out.

Ideas? Rough idea of cost of such a plugin? I'd pay in USD and would then donate to the community.