Bug 21738: check items count in C4:ILSDI::HoldTitle
[koha.git] / C4 / Budgets.pm
index 8e7cc86..6c7e946 100644 (file)
@@ -22,7 +22,7 @@ use strict;
 use C4::Context;
 use Koha::Database;
 use Koha::Patrons;
-use Koha::InvoiceAdjustments;
+use Koha::Acquisition::Invoice::Adjustments;
 use C4::Debug;
 use vars qw(@ISA @EXPORT);
 
@@ -134,6 +134,7 @@ sub AddBudgetPeriod {
     my ($budgetperiod) = @_;
     return unless($budgetperiod->{budget_period_startdate} && $budgetperiod->{budget_period_enddate});
 
+    undef $budgetperiod->{budget_period_id};
     my $resultset = Koha::Database->new()->schema->resultset('Aqbudgetperiod');
     return $resultset->create($budgetperiod)->id;
 }
@@ -350,7 +351,7 @@ sub GetBudgetSpent {
     my ($shipmentcost_sum) = $sth->fetchrow_array;
     $sum += $shipmentcost_sum;
 
-    my $adjustments = Koha::InvoiceAdjustments->search({budget_id => $budget_id, closedate => { '!=' => undef } },{ join => 'invoiceid' });
+    my $adjustments = Koha::Acquisition::Invoice::Adjustments->search({budget_id => $budget_id, closedate => { '!=' => undef } },{ join => 'invoiceid' });
     while ( my $adj = $adjustments->next ){
         $sum += $adj->adjustment;
     }
@@ -371,7 +372,7 @@ sub GetBudgetOrdered {
        $sth->execute($budget_id);
     my $sum =  0 + $sth->fetchrow_array;
 
-    my $adjustments = Koha::InvoiceAdjustments->search({budget_id => $budget_id, encumber_open => 1, closedate => undef},{ join => 'invoiceid' });
+    my $adjustments = Koha::Acquisition::Invoice::Adjustments->search({budget_id => $budget_id, encumber_open => 1, closedate => undef},{ join => 'invoiceid' });
     while ( my $adj = $adjustments->next ){
         $sum += $adj->adjustment;
     }
@@ -560,14 +561,14 @@ sub GetBudgetHierarchy {
                SUM( COALESCE(unitprice_tax_included, ecost_tax_included) * quantity ) AS budget_spent
         FROM aqorders JOIN aqbudgets USING (budget_id)
         WHERE quantityreceived > 0 AND datecancellationprinted IS NULL
-        GROUP BY budget_id
+        GROUP BY budget_id, budget_parent_id
         |, 'budget_id');
     my $hr_budget_ordered = $dbh->selectall_hashref(q|
         SELECT aqorders.budget_id, aqbudgets.budget_parent_id,
                SUM(ecost_tax_included *  quantity) AS budget_ordered
         FROM aqorders JOIN aqbudgets USING (budget_id)
         WHERE quantityreceived = 0 AND datecancellationprinted IS NULL
-        GROUP BY budget_id
+        GROUP BY budget_id, budget_parent_id
         |, 'budget_id');
     my $hr_budget_spent_shipment = $dbh->selectall_hashref(q|
         SELECT shipmentcost_budgetid as budget_id,
@@ -633,6 +634,8 @@ sub AddBudget {
     my ($budget) = @_;
     return unless ($budget);
 
+    undef $budget->{budget_encumb} if $budget->{budget_encumb} eq '';
+    undef $budget->{budget_owner_id} if $budget->{budget_owner_id} eq '';
     my $resultset = Koha::Database->new()->schema->resultset('Aqbudget');
     return $resultset->create($budget)->id;
 }
@@ -643,6 +646,8 @@ sub ModBudget {
     my $result = Koha::Database->new()->schema->resultset('Aqbudget')->find($budget);
     return unless($result);
 
+    undef $budget->{budget_encumb} if $budget->{budget_encumb} eq '';
+    undef $budget->{budget_owner_id} if $budget->{budget_owner_id} eq '';
     $result = $result->update($budget);
     return $result->in_storage;
 }
@@ -1221,6 +1226,7 @@ sub CloneBudgetHierarchy {
         my $tidy_budget =
           { map { join( ' ', @columns ) =~ /$_/ ? ( $_ => $budget->{$_} ) : () }
               keys %$budget };
+        delete $tidy_budget->{timestamp};
         my $new_budget_id = AddBudget(
             {
                 %$tidy_budget,