Bug 31459: (follow-up) Preserve budget period display
This patch adds a level to the budget_loops and displays the budgets
as optgroups for the funds
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
https://bugs.koha-community.org/show_bug.cgi?id=31559
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 2a22c13cf3
)
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
382e80b737
commit
63a5684020
2 changed files with 49 additions and 36 deletions
|
@ -170,21 +170,26 @@ if ( $suggestion ) {
|
|||
}
|
||||
|
||||
my $patron = Koha::Patrons->find( $loggedinuser )->unblessed;
|
||||
my $budget_loop = [];
|
||||
my %budget_loops;
|
||||
my $budgets = GetBudgetHierarchy( undef, undef, undef, 1 );
|
||||
foreach my $r (@{$budgets}) {
|
||||
next unless (CanUserUseBudget($patron, $r, $userflags));
|
||||
push @{$budget_loop}, {
|
||||
b_id => $r->{budget_id},
|
||||
b_txt => $r->{budget_name},
|
||||
b_sort1_authcat => $r->{'sort1_authcat'},
|
||||
b_sort2_authcat => $r->{'sort2_authcat'},
|
||||
b_active => $r->{budget_period_active},
|
||||
b_sel => ( $r->{budget_id} == $order->budget_id ) ? 1 : 0,
|
||||
b_level => $r->{budget_level},
|
||||
foreach my $budget (@{$budgets}) {
|
||||
next unless (CanUserUseBudget($patron, $budget, $userflags));
|
||||
unless ( defined $budget_loops{$budget->{budget_period_id}} ){
|
||||
$budget_loops{$budget->{budget_period_id}}->{description} = $budget->{budget_period_description};
|
||||
$budget_loops{$budget->{budget_period_id}}->{active} = $budget->{budget_period_active};
|
||||
$budget_loops{$budget->{budget_period_id}}->{funds} = [];
|
||||
}
|
||||
push @{$budget_loops{$budget->{budget_period_id}}->{funds}}, {
|
||||
b_id => $budget->{budget_id},
|
||||
b_txt => $budget->{budget_name},
|
||||
b_sort1_authcat => $budget->{'sort1_authcat'},
|
||||
b_sort2_authcat => $budget->{'sort2_authcat'},
|
||||
b_active => $budget->{budget_period_active},
|
||||
b_sel => ( $budget->{budget_id} == $order->budget_id ) ? 1 : 0,
|
||||
b_level => $budget->{budget_level},
|
||||
};
|
||||
}
|
||||
$template->{'VARS'}->{'budget_loop'} = $budget_loop;
|
||||
$template->{'VARS'}->{'budget_loops'} = \%budget_loops;
|
||||
|
||||
my $op = $input->param('op');
|
||||
if ($op and $op eq 'edit'){
|
||||
|
|
|
@ -284,33 +284,41 @@
|
|||
<label class="required" for="bookfund">Fund: </label>
|
||||
[% active_count = 0 %]
|
||||
[% IF !ordernumber %]
|
||||
[% FOREACH budget_loo IN budget_loop %]
|
||||
[% active_count= active_count + budget_loo.b_active %]
|
||||
[% FOREACH budget_period IN budget_loops.keys %]
|
||||
[% FOREACH fund IN budget_loops.$budget_period.funds %]
|
||||
[% active_count= active_count + fund.b_active %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
<select class="select2" id="bookfund" name="bookfund">
|
||||
[% FOREACH budget_loo IN budget_loop %]
|
||||
[% level_indent_cnt = 0 %]
|
||||
[% level_indent = "" %]
|
||||
[% WHILE level_indent_cnt < budget_loo.b_level %]
|
||||
[% level_indent = level_indent _ " -- " %]
|
||||
[% level_indent_cnt = level_indent_cnt +1 %]
|
||||
[% END %]
|
||||
|
||||
[% IF ( budget_loo.b_sel ) %]
|
||||
[% active_count = 0 #select no other fund %]
|
||||
<option value="[% budget_loo.b_id | html %]" selected="selected" data-sort1-authcat="[% budget_loo.b_sort1_authcat | html %]" data-sort2-authcat="[% budget_loo.b_sort2_authcat | html %]"
|
||||
>
|
||||
[% ELSIF active_count==1 && budget_loo.b_active %]
|
||||
<option value="[% budget_loo.b_id | html %]" selected="selected" data-sort1-authcat="[% budget_loo.b_sort1_authcat | html %]" data-sort2-authcat="[% budget_loo.b_sort2_authcat | html %]"
|
||||
>
|
||||
[% FOREACH budget_period_id IN budget_loops.keys %]
|
||||
[% SET budget_period = budget_loops.$budget_period_id %]
|
||||
[% IF budget_period.active %]
|
||||
<optgroup label="[% budget_period.description %]">
|
||||
[% ELSE %]
|
||||
[% bdgclass=budget_loo.b_active? "": "b_inactive" | html %]
|
||||
<option value="[% budget_loo.b_id | html %]" class="[% bdgclass | html %]" data-sort1-authcat="[% budget_loo.b_sort1_authcat | html %]" data-sort2-authcat="[% budget_loo.b_sort2_authcat | html %]"
|
||||
>
|
||||
<optgroup class="inactive_budget" label="[% budget_period.description %] (Inactive)">
|
||||
[% END %]
|
||||
[% level_indent | html %][% budget_loo.b_txt | html %][% IF !budget_loo.b_active %] (inactive)[% END %]
|
||||
</option>
|
||||
[% FOREACH budget_loo IN budget_period.funds %]
|
||||
[% level_indent_cnt = 0 %]
|
||||
[% level_indent = "" %]
|
||||
[% WHILE level_indent_cnt < budget_loo.b_level %]
|
||||
[% level_indent = level_indent _ " -- " %]
|
||||
[% level_indent_cnt = level_indent_cnt +1 %]
|
||||
[% END %]
|
||||
|
||||
[% IF ( budget_loo.b_sel ) %]
|
||||
[% active_count = 0 #select no other fund %]
|
||||
<option value="[% budget_loo.b_id | html %]" selected="selected" data-sort1-authcat="[% budget_loo.b_sort1_authcat | html %]" data-sort2-authcat="[% budget_loo.b_sort2_authcat | html %]">
|
||||
[% ELSIF active_count==1 && budget_loo.b_active %]
|
||||
<option value="[% budget_loo.b_id | html %]" selected="selected" data-sort1-authcat="[% budget_loo.b_sort1_authcat | html %]" data-sort2-authcat="[% budget_loo.b_sort2_authcat | html %]">
|
||||
[% ELSE %]
|
||||
[% bdgclass=budget_loo.b_active? "": "inactive_budget" | html %]
|
||||
<option value="[% budget_loo.b_id | html %]" class="[% bdgclass | html %]" data-sort1-authcat="[% budget_loo.b_sort1_authcat | html %]" data-sort2-authcat="[% budget_loo.b_sort2_authcat | html %]">
|
||||
[% END %]
|
||||
[% level_indent | html %][% budget_loo.b_txt | html %][% IF !budget_loo.b_active %] (inactive)[% END %]
|
||||
</option>
|
||||
[% END %]
|
||||
</optgroup>
|
||||
[% END %]
|
||||
</select>
|
||||
<span class="required">Required</span>
|
||||
|
@ -548,14 +556,14 @@
|
|||
|
||||
//keep a copy of all budgets before removing the inactives
|
||||
disabledBudgetsCopy = $('#bookfund').html();
|
||||
$('#bookfund .b_inactive').remove();
|
||||
$('#bookfund .inactive_budget').remove();
|
||||
|
||||
$('#showallbudgets').click(function() {
|
||||
if ($(this).is(":checked")) {
|
||||
$('#bookfund').html(disabledBudgetsCopy); //Puts back all the funds
|
||||
}
|
||||
else {
|
||||
$('#bookfund .b_inactive').remove();
|
||||
$('#bookfund .inactive_budget').remove();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in a new issue