The sth was created before the query.
The query was modified after the sth creation and an error was raised.
Test plan:
0/ Don't apply the patch
1/ Create a budget A (amount=1000)
2/ Create a fund A1 (amount=1000)
3/ Create a child fund A11 (amount=1000)
4/ Edit A11 and change the amount to 2000
You are able to do it, an error appears in the Koha log:
"check_parent_total.pl: DBD::mysql::st execute failed: called with 2 bind
variables when 1 are needed"
5/ Apply the patch, edit A11 and save. You get an error
6/ Edit A11 and change the amount to <=1000
7/ Verify that there is no regression on adding/removing/editing budgets
and funds.
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script.
Works as described, no regressions found.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit
331ca7df3ec351a83982496bed7f103050e89af5)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
(cherry picked from commit
098ffcdd9ad10307ab63ea49b05c474263561992)
if ($parent) {
my $query = " SELECT SUM(budget_amount) as sum FROM aqbudgets where budget_parent_id = ? ";
- my $sth = $dbh->prepare($query);
my @sql_params;
- push @sql_params, $parent->{'budget_id'} ;
- if ($budget_id){
- $query.=qq| and budget_id <> ? |;
- push @sql_params,$budget_id;
- }
- $sth->execute( @sql_params );
+ my $sth = $dbh->prepare($query);
+ $sth->execute( $parent->{'budget_id'} );
my $sum = $sth->fetchrow_hashref;
$sth->finish;
-
$sub_unalloc = $parent->{'budget_amount'} - $sum->{sum};
-
# TRICKY.. , IF THE PARENT IS THE CURRENT PARENT - THEN SUBSTRACT CURRENT BUDGET FROM TOTAL
$sub_unalloc += $budget->{'budget_amount'} if ( $budget->{'budget_parent_id'} == $parent_id ) ;
}