X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FBudgets.pm;h=882172f05e5de7992e64a5859be699b18fda4cae;hb=3c8c0591e2344ba6e44df16319b47065d23d652e;hp=91247a2e9e3863fbf69e33b8fd53bc65cf990646;hpb=1e808f180540a7552a9c1467ee685ac037d8c042;p=srvgit diff --git a/C4/Budgets.pm b/C4/Budgets.pm index 91247a2e9e..882172f05e 100644 --- a/C4/Budgets.pm +++ b/C4/Budgets.pm @@ -35,6 +35,7 @@ BEGIN { &GetBudget &GetBudgetByOrderNumber + &GetBudgetByCode &GetBudgets &GetBudgetHierarchy &AddBudget @@ -498,7 +499,7 @@ sub GetBudgetHierarchy { my @bind_params; my $dbh = C4::Context->dbh; my $query = qq| - SELECT aqbudgets.*, aqbudgetperiods.budget_period_active + SELECT aqbudgets.*, aqbudgetperiods.budget_period_active, aqbudgetperiods.budget_period_description FROM aqbudgets JOIN aqbudgetperiods USING (budget_period_id)|; @@ -695,6 +696,31 @@ sub GetBudgetByOrderNumber { return $result; } +=head2 GetBudgetByCode + + my $budget = &GetBudgetByCode($budget_code); + +Retrieve all aqbudgets fields as a hashref for the budget that has +given budget_code + +=cut + +sub GetBudgetByCode { + my ( $budget_code ) = @_; + + my $dbh = C4::Context->dbh; + my $query = qq{ + SELECT * + FROM aqbudgets + WHERE budget_code = ? + ORDER BY budget_id DESC + LIMIT 1 + }; + my $sth = $dbh->prepare( $query ); + $sth->execute( $budget_code ); + return $sth->fetchrow_hashref; +} + =head2 GetChildBudgetsSpent &GetChildBudgetsSpent($budget-id); @@ -825,30 +851,52 @@ sub CanUserUseBudget { } # Budget restricted to owner - if ($budget->{budget_permission} == 1 - && $budget->{budget_owner_id} - && $budget->{budget_owner_id} != $borrower->{borrowernumber}) { - return 0; + if ( $budget->{budget_permission} == 1 ) { + if ( $budget->{budget_owner_id} + and $budget->{budget_owner_id} != $borrower->{borrowernumber} ) + { + return 0; + } } - my @budget_users = GetBudgetUsers($budget->{budget_id}); - # Budget restricted to owner, users and library - if ($budget->{budget_permission} == 2 - && $budget->{budget_owner_id} - && $budget->{budget_owner_id} != $borrower->{borrowernumber} - && (0 == grep {$borrower->{borrowernumber} == $_} @budget_users) - && defined $budget->{budget_branchcode} - && $budget->{budget_branchcode} ne C4::Context->userenv->{branch}) { - return 0; + elsif ( $budget->{budget_permission} == 2 ) { + my @budget_users = GetBudgetUsers( $budget->{budget_id} ); + + if ( + ( + $budget->{budget_owner_id} + and $budget->{budget_owner_id} != + $borrower->{borrowernumber} + or not $budget->{budget_owner_id} + ) + and ( 0 == grep { $borrower->{borrowernumber} == $_ } + @budget_users ) + and defined $budget->{budget_branchcode} + and $budget->{budget_branchcode} ne + C4::Context->userenv->{branch} + ) + { + return 0; + } } # Budget restricted to owner and users - if ($budget->{budget_permission} == 3 - && $budget->{budget_owner_id} - && $budget->{budget_owner_id} != $borrower->{borrowernumber} - && (0 == grep {$borrower->{borrowernumber} == $_} @budget_users)) { - return 0; + elsif ( $budget->{budget_permission} == 3 ) { + my @budget_users = GetBudgetUsers( $budget->{budget_id} ); + if ( + ( + $budget->{budget_owner_id} + and $budget->{budget_owner_id} != + $borrower->{borrowernumber} + or not $budget->{budget_owner_id} + ) + and ( 0 == grep { $borrower->{borrowernumber} == $_ } + @budget_users ) + ) + { + return 0; + } } }