Bug 18941 - C4::Budgets GetBudgetByCode should return active budgets over inactive...
authorNick Clemens <nick@bywatersolutions.com>
Fri, 14 Jul 2017 11:25:42 +0000 (11:25 +0000)
committerKatrin Fischer <katrin.fischer.83@web.de>
Sun, 1 Oct 2017 21:38:01 +0000 (23:38 +0200)
To test:
1 - Create an active budget
2 - Create an inactive budget
3 - Ensure they each have a fund with the same code
4 - Set MarcFieldsToOrder to get the budget_code from a marc field
5 - Stage a file using the duplicated code
6 - Add to a basket from the staged file
7 - Add the items
8 - Note funds are encumbered from the inactive budget
9 - Apply patch
10 - Repeat 5-8 with a new basket
11 - Note the active budget is now used

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit 0e2c823e8806c35673505d0e2a03081cac00190a)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit 8818b604696512da7d094101036c8704ba315d96)
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

C4/Budgets.pm

index c68fbec..26cf835 100644 (file)
@@ -776,10 +776,11 @@ sub GetBudgetByCode {
 
     my $dbh = C4::Context->dbh;
     my $query = qq{
-        SELECT *
+        SELECT aqbudgets.*
         FROM aqbudgets
+        JOIN aqbudgetperiods USING (budget_period_id)
         WHERE budget_code = ?
-        ORDER BY budget_id DESC
+        ORDER BY budget_period_active DESC, budget_id DESC
         LIMIT 1
     };
     my $sth = $dbh->prepare( $query );