Bugzilla – Attachment 29735 Details for
Bug 12164
Rollover outstanding orders not yet received
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 12164: On cloning budget periods, add a "reset all funds" option
Bug-12164-On-cloning-budget-periods-add-a-reset-al.patch (text/plain), 5.71 KB, created by
Jonathan Druart
on 2014-07-16 09:02:35 UTC
(
hide
)
Description:
Bug 12164: On cloning budget periods, add a "reset all funds" option
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2014-07-16 09:02:35 UTC
Size:
5.71 KB
patch
obsolete
>From b346a1a2ae7e9208f2942568cfa58d1f776d2a6c Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Mon, 2 Jun 2014 10:16:13 +0200 >Subject: [PATCH] Bug 12164: On cloning budget periods, add a "reset all funds" > option > >This patch adds a checkbox "reset all funds" (budgets). >If it is checked, the new created budgets (funds) will be reset. > >Signed-off-by: Paola Rossi <paola.rossi@cineca.it> >Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> >--- > C4/Budgets.pm | 19 +++++++++++--- > admin/aqbudgetperiods.pl | 2 ++ > .../prog/en/modules/admin/aqbudgetperiods.tt | 5 ++++ > t/db_dependent/Budgets.t | 29 +++++++++++++++++++++- > 4 files changed, 51 insertions(+), 4 deletions(-) > >diff --git a/C4/Budgets.pm b/C4/Budgets.pm >index 4095488..aed5e82 100644 >--- a/C4/Budgets.pm >+++ b/C4/Budgets.pm >@@ -1013,15 +1013,19 @@ sub ConvertCurrency { > > my $new_budget_period_id = CloneBudgetPeriod({ > budget_period_id => $budget_period_id, >- budget_period_startdate => $budget_period_startdate; >- budget_period_enddate => $budget_period_enddate; >- mark_original_budget_as_inactive => 1 >+ budget_period_startdate => $budget_period_startdate, >+ budget_period_enddate => $budget_period_enddate, >+ mark_original_budget_as_inactive => 1n >+ reset_all_budgets => 1, > }); > > Clone a budget period with all budgets. > If the mark_origin_budget_as_inactive is set (0 by default), > the original budget will be marked as inactive. > >+If the reset_all_budgets is set (0 by default), all budget (fund) >+amounts will be reset. >+ > =cut > > sub CloneBudgetPeriod { >@@ -1031,6 +1035,7 @@ sub CloneBudgetPeriod { > my $budget_period_enddate = $params->{budget_period_enddate}; > my $mark_original_budget_as_inactive = > $params->{mark_original_budget_as_inactive} || 0; >+ my $reset_all_budgets = $params->{reset_all_budgets} || 0; > > my $budget_period = GetBudgetPeriod($budget_period_id); > >@@ -1057,6 +1062,14 @@ sub CloneBudgetPeriod { > ); > } > >+ if ( $reset_all_budgets ) { >+ my $budgets = GetBudgets({ budget_period_id => $new_budget_period_id }); >+ for my $budget ( @$budgets ) { >+ $budget->{budget_amount} = 0; >+ ModBudget( $budget ); >+ } >+ } >+ > return $new_budget_period_id; > } > >diff --git a/admin/aqbudgetperiods.pl b/admin/aqbudgetperiods.pl >index 6309530..013d207 100755 >--- a/admin/aqbudgetperiods.pl >+++ b/admin/aqbudgetperiods.pl >@@ -189,6 +189,7 @@ elsif ( $op eq 'duplicate_budget' ){ > my $budget_period_startdate = dt_from_string $input->param('budget_period_startdate'); > my $budget_period_enddate = dt_from_string $input->param('budget_period_enddate'); > my $mark_original_budget_as_inactive = $input->param('mark_original_budget_as_inactive'); >+ my $reset_all_budgets = $input->param('reset_all_budgets'); > > my $new_budget_period_id = C4::Budgets::CloneBudgetPeriod( > { >@@ -196,6 +197,7 @@ elsif ( $op eq 'duplicate_budget' ){ > budget_period_startdate => $budget_period_startdate, > budget_period_enddate => $budget_period_enddate, > mark_original_budget_as_inactive => $mark_original_budget_as_inactive, >+ reset_all_budgets => $reset_all_budgets, > } > ); > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt >index 0f4bca6..6dc9a4d 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt >@@ -190,6 +190,11 @@ > <input type="checkbox" id="mark_as_inactive" name="mark_original_budget_as_inactive" /> > </li> > >+ <li> >+ <label for="reset_all_budgets">Set all funds to zero</label> >+ <input type="checkbox" id="reset_all_budgets" name="reset_all_budgets" /> >+ </li> >+ > </ol> > </fieldset> > >diff --git a/t/db_dependent/Budgets.t b/t/db_dependent/Budgets.t >index e471b75..bf40821 100755 >--- a/t/db_dependent/Budgets.t >+++ b/t/db_dependent/Budgets.t >@@ -1,5 +1,5 @@ > use Modern::Perl; >-use Test::More tests => 69; >+use Test::More tests => 71; > > BEGIN { > use_ok('C4::Budgets') >@@ -382,6 +382,14 @@ is( $budget_period->{budget_period_active}, 1, > 'CloneBudgetPeriod does not mark as inactive the budgetperiod if not needed' > ); > >+$budget_hierarchy_cloned = GetBudgetHierarchy($budget_period_id_cloned); >+my $number_of_budgets_not_reset = 0; >+for my $budget (@$budget_hierarchy_cloned) { >+ $number_of_budgets_not_reset++ if $budget->{budget_amount} > 0; >+} >+is( $number_of_budgets_not_reset, 5, >+ 'CloneBudgetPeriod does not reset budgets (funds) if not needed' ); >+ > $budget_period_id_cloned = C4::Budgets::CloneBudgetPeriod( > { > budget_period_id => $budget_period_id, >@@ -407,6 +415,25 @@ is( $budget_period->{budget_period_active}, 0, > 'CloneBudgetPeriod (with inactive param) marks as inactive the budgetperiod' > ); > >+# CloneBudgetPeriod with param reset_all_budgets >+$budget_period_id_cloned = C4::Budgets::CloneBudgetPeriod( >+ { >+ budget_period_id => $budget_period_id, >+ budget_period_startdate => '2014-01-01', >+ budget_period_enddate => '2014-12-31', >+ reset_all_budgets => 1, >+ } >+); >+ >+$budget_hierarchy_cloned = GetBudgetHierarchy($budget_period_id_cloned); >+$number_of_budgets_not_reset = 0; >+for my $budget (@$budget_hierarchy_cloned) { >+ $number_of_budgets_not_reset++ if $budget->{budget_amount} > 0; >+} >+is( $number_of_budgets_not_reset, 0, >+ 'CloneBudgetPeriod has reset all budgets (funds)' ); >+ >+ > sub _get_dependencies { > my ($budget_hierarchy) = @_; > my $graph; >-- >2.0.0.rc2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 12164
:
27905
|
27906
|
27907
|
27908
|
27909
|
27910
|
27911
|
28588
|
28589
|
28590
|
28591
|
28592
|
28593
|
28695
|
28702
|
28703
|
28704
|
28705
|
28706
|
28707
|
28708
|
29354
|
29355
|
29356
|
29422
|
29423
|
29424
|
29425
|
29426
|
29427
|
29428
|
29429
|
29430
|
29733
|
29734
| 29735 |
29736
|
29737
|
29738
|
29739
|
29740
|
29741
|
30043
|
30044