From 95d1efd4fe9d98f3552ec16861413c8ce61ce15e Mon Sep 17 00:00:00 2001 From: Robin Sheat Date: Thu, 29 Jul 2010 16:10:52 +1200 Subject: [PATCH] Bug 5072 - prevent creating new orders if there are no valid budgets On the basket editing screen, the links to add orders to a basket are hidden unless a valid fund is available. --- .gitignore | 2 ++ C4/Budgets.pm | 12 ++++++------ acqui/basket.pl | 13 +++++++++++++ acqui/neworderempty.pl | 2 +- .../prog/en/modules/acqui/basket.tmpl | 4 ++++ 5 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d38c149 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.swp +*~ diff --git a/C4/Budgets.pm b/C4/Budgets.pm index 005bba8..97f6fcd 100644 --- a/C4/Budgets.pm +++ b/C4/Budgets.pm @@ -660,11 +660,11 @@ sub GetBudget { return $result; } -=head2 GetBudgets +=head2 GetChildBudgetsSpent - &GetBudgets($filter, $order_by); + &GetChildBudgetsSpent($budget-id); -gets all budgets +gets the total spent of the level and sublevels of $budget_id =cut @@ -687,11 +687,11 @@ sub GetChildBudgetsSpent { return $total_spent; } -=head2 GetChildBudgetsSpent +=head2 GetBudgets - &GetChildBudgetsSpent($budget-id); + &GetBudgets($filter, $order_by); -gets the total spent of the level and sublevels of $budget_id +gets all budgets =cut diff --git a/acqui/basket.pl b/acqui/basket.pl index 005fcb9..6671ee8 100755 --- a/acqui/basket.pl +++ b/acqui/basket.pl @@ -287,6 +287,18 @@ if ( $op eq 'delete_confirm' ) { my $contract = &GetContract($basket->{contractnumber}); my @orders = GetOrders($basketno); + + my $borrower= GetMember('borrowernumber' => $loggedinuser); + my $budgets = GetBudgetHierarchy(q{},$borrower->{branchcode},$borrower->{borrowernumber}); + my $has_budgets = 0; + foreach my $r (@{$budgets}) { + if (!defined $r->{budget_amount} || $r->{budget_amount} == 0) { + next; + } + $has_budgets = 1; + last; + } + $template->param( basketno => $basketno, basketname => $basket->{'basketname'}, @@ -316,6 +328,7 @@ if ( $op eq 'delete_confirm' ) { basketgroups => $basketgroups, grouped => $basket->{basketgroupid}, unclosable => @orders ? 0 : 1, + has_budgets => $has_budgets, ); } diff --git a/acqui/neworderempty.pl b/acqui/neworderempty.pl index a580ae7..39bf0d9 100755 --- a/acqui/neworderempty.pl +++ b/acqui/neworderempty.pl @@ -92,7 +92,7 @@ use C4::ImportBatch qw/GetImportRecordMarc SetImportRecordStatus/; my $input = new CGI; my $booksellerid = $input->param('booksellerid'); # FIXME: else ERROR! -my $budget_id = $input->param('budget_id') || 0; # FIXME: else ERROR! +my $budget_id = $input->param('budget_id') || 0; my $title = $input->param('title'); my $author = $input->param('author'); my $publicationyear = $input->param('publicationyear'); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tmpl index 3021681..fef0708 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tmpl @@ -288,6 +288,7 @@
Add Order To Basket +
" /> " /> @@ -299,6 +300,9 @@
  • &basketno="> From a staged file
  • + + You can't create any orders unless you first define a budget and a fund. +
    -- 1.7.0.4