@@ -, +, @@ budget as inactive --- C4/Budgets.pm | 22 ++++++++++-- admin/aqbudgetperiods.pl | 2 ++ .../prog/en/modules/admin/aqbudgetperiods.tt | 5 +++ t/db_dependent/Budgets.t | 35 ++++++++++++++++++-- 4 files changed, 60 insertions(+), 4 deletions(-) --- a/C4/Budgets.pm +++ a/C4/Budgets.pm @@ -994,10 +994,13 @@ 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; + budget_period_enddate => $budget_period_enddate; + mark_original_budget_as_inactive => 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. =cut @@ -1006,6 +1009,8 @@ sub CloneBudgetPeriod { my $budget_period_id = $params->{budget_period_id}; my $budget_period_startdate = $params->{budget_period_startdate}; my $budget_period_enddate = $params->{budget_period_enddate}; + my $mark_original_budget_as_inactive = + $params->{mark_original_budget_as_inactive} || 0; my $budget_period = GetBudgetPeriod($budget_period_id); @@ -1017,8 +1022,21 @@ sub CloneBudgetPeriod { my $budgets = GetBudgetHierarchy($budget_period_id); CloneBudgetHierarchy( - { budgets => $budgets, new_budget_period_id => $new_budget_period_id } + { + budgets => $budgets, + new_budget_period_id => $new_budget_period_id + } ); + + if ($mark_original_budget_as_inactive) { + ModBudgetPeriod( + { + budget_period_id => $budget_period_id, + budget_period_active => 0, + } + ); + } + return $new_budget_period_id; } --- a/admin/aqbudgetperiods.pl +++ a/admin/aqbudgetperiods.pl @@ -185,12 +185,14 @@ elsif ( $op eq 'duplicate_budget' ){ my $budget_period_startdate = $input->param('budget_period_startdate'); my $budget_period_enddate = $input->param('budget_period_enddate'); + my $mark_original_budget_as_inactive = $input->param('mark_original_budget_as_inactive'); my $new_budget_period_id = C4::Budgets::CloneBudgetPeriod( { budget_period_id => $budget_period_id, budget_period_startdate => $budget_period_startdate, budget_period_enddate => $budget_period_enddate, + mark_original_budget_as_inactive => $mark_original_budget_as_inactive, } ); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt @@ -185,6 +185,11 @@