[Koha-patches] [PATCH] Bug 8821 - Receive shipment page should hide inactive funds like new order form

Owen Leonard oleonard at myacpl.org
Fri Jul 19 15:11:19 CEST 2013


This patch adapts the fund-handling code from neworderempty.pl
in order to limit the display of funds by default to active ones,
with the option to check a box to display all funds.

This patch also adds "(inactive)" to the display of funds on this and
the neworderempty.tt template because it seemed like that was useful
information.

To test, make sure you have both active and inactive funds.
Start the process of receiving a shipment. The "fund" option
in the receive shipment form should show only active funds.
Checking the "show all" checkbox should allow you to choose
from both active and inactive funds.
---
 acqui/parcels.pl                                   |   24 +++++++++++++++-----
 .../prog/en/modules/acqui/neworderempty.tt         |    2 +-
 .../intranet-tmpl/prog/en/modules/acqui/parcels.tt |   23 ++++++++++++++++++-
 3 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/acqui/parcels.pl b/acqui/parcels.pl
index 37a0023..c95d77b 100755
--- a/acqui/parcels.pl
+++ b/acqui/parcels.pl
@@ -179,13 +179,25 @@ if ($count_parcels) {
     $template->param( searchresults => $loopres, count => $count_parcels );
 }
 
-my $budgets = GetBudgets();
-my @budgets_loop;
-foreach my $budget (@$budgets) {
-    next unless CanUserUseBudget($loggedinuser, $budget, $flags);
-    push @budgets_loop, $budget;
+# build budget list
+my $budget_loop = [];
+my $budgets = GetBudgetHierarchy;
+foreach my $r (@{$budgets}) {
+    next unless (CanUserUseBudget($loggedinuser, $r, $flags));
+    if (!defined $r->{budget_amount} || $r->{budget_amount} == 0) {
+        next;
+    }
+    push @{$budget_loop}, {
+        b_id  => $r->{budget_id},
+        b_txt => $r->{budget_name},
+        b_active => $r->{budget_period_active},
+    };
 }
 
+@{$budget_loop} =
+  sort { uc( $a->{b_txt}) cmp uc( $b->{b_txt}) } @{$budget_loop};
+
+
 $template->param(
     orderby                  => $order,
     filter                   => $code,
@@ -196,7 +208,7 @@ $template->param(
     shipmentdate_today       => C4::Dates->new()->output(),
     booksellerid             => $booksellerid,
     GST                      => C4::Context->preference('gist'),
-    budgets                  => \@budgets_loop,
+    budgets                  => $budget_loop,
 );
 
 output_html_with_http_headers $input, $cookie, $template->output;
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
index bbcd4e8..10b0399 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
@@ -426,7 +426,7 @@ $(document).ready(function()
                         <option value="[% budget_loo.b_id %]" selected="selected">[% budget_loo.b_txt %]</option>
                     [% ELSE %]
                         [% IF ( budget_loo.b_active ) %]<option value="[% budget_loo.b_id %]">[% budget_loo.b_txt %]</option>
-                        [% ELSE %]<option value="[% budget_loo.b_id %]" class="b_inactive">[% budget_loo.b_txt %]</option>
+                        [% ELSE %]<option value="[% budget_loo.b_id %]" class="b_inactive">[% budget_loo.b_txt %] (inactive)</option>
                         [% END %]
                     [% END %]
                 [% END %]
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt
index 26e4af8..5e003f1 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt
@@ -16,6 +16,20 @@
     var parcelst = $("#parcelst").dataTable($.extend(true, {}, dataTablesDefaults, {
         "sPaginationType": "four_button"
     } ) );
+
+    //keep a copy of all budgets before removing the inactives
+    var budgetId = $("#shipmentcost_budgetid");
+    var disabledBudgetsCopy = budgetId.html();
+    $('.b_inactive').remove();
+
+    $('#showallfunds').click(function() {
+        if ($(this).is(":checked")) {
+            budgetId.html(disabledBudgetsCopy); //Puts back all the funds
+        }
+        else {
+            $('.b_inactive').remove();
+        }
+    });
  });
  //]]>
 </script>
@@ -172,9 +186,16 @@
             <select id="shipmentcost_budgetid" name="shipmentcost_budgetid">
                 <option value="">No fund</option>
                 [% FOREACH budget IN budgets %]
-                    <option value="[% budget.budget_id %]">[% budget.budget_name %]</option>
+                    [% IF ( budget.b_active ) %]
+                        <option value="[% budget.b_id %]">[% budget.b_txt %]</option>
+                    [% ELSE %]
+                        <option value="[% budget.b_id %]" class="b_inactive">[% budget.b_txt %] (inactive)</option>
+                    [% END %]
                 [% END %]
             </select>
+            <label for="showallfunds" style="float:none;width:auto;"> Show all:</label>
+            <input type="checkbox" id="showallfunds" />
+
         </li>
 		</ol>
     </fieldset>
-- 
1.7.9.5


More information about the Koha-patches mailing list