Bug 21604: Fix add/edit fund/budget
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 18 Oct 2018 21:10:19 +0000 (18:10 -0300)
committerNick Clemens <nick@bywatersolutions.com>
Fri, 2 Nov 2018 10:33:01 +0000 (10:33 +0000)
[Strict SQL modes context]

For insert aqbudgetperiods:
Incorrect integer value: '' for column 'budget_period_id'

For insert/update aqbudgets
Incorrect integer value: '' for column 'budget_owner_id'
Incorrect decimal value: '' for column 'budget_encumb'

Test plan:
Add/edit budgets and funds

A good example of why we should use Koha::Object for all our objects

Signed-off-by: Pierre-Marc Thibault <pierre-marc.thibault@inLibro.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
C4/Budgets.pm

index b97e19d..6c7e946 100644 (file)
@@ -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;
 }
@@ -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;
 }