From 3e297c6cb8e7b6b73b9df2e2ae1ba3dd0bc014e7 Mon Sep 17 00:00:00 2001 From: Henri-Damien LAURENT Date: Sun, 13 Mar 2011 20:52:44 +0100 Subject: [PATCH] bug4438/MT5496 budget Exceeds total allocation This is a followup : When editing a budget, the check for the total allocation would take into account the budget itself. Showing an improper error message The problem was solved when adding a child budget but not when editing the same budget. Signed-off-by: Katrin Fischer Signed-off-by: Chris Cormack --- admin/check_parent_total.pl | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/admin/check_parent_total.pl b/admin/check_parent_total.pl index d5b784d6a8..f0f8c9b85a 100755 --- a/admin/check_parent_total.pl +++ b/admin/check_parent_total.pl @@ -62,7 +62,13 @@ my ($sub_unalloc , $period_sum, $budget_period_unalloc); if ($parent) { my $query = " SELECT SUM(budget_amount) as sum FROM aqbudgets where budget_parent_id = ? "; my $sth = $dbh->prepare($query); - $sth->execute( $parent->{'budget_id'} ); + 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 $sum = $sth->fetchrow_hashref; $sth->finish; @@ -75,10 +81,16 @@ if ($parent) { # ELSE , IF NO PARENT PASSED, THEN CHECK UNALLOCATED FOR PERIOD, IF NOT THEN RETURN 2 else { my $query = qq| SELECT SUM(budget_amount) as sum - FROM aqbudgets WHERE budget_period_id = ? and budget_parent_id IS NULL|; + FROM aqbudgets WHERE budget_period_id = ? and budget_parent_id IS NULL |; + my @sql_params; + push @sql_params, $period_id; + if ($budget_id){ + $query.=qq| and budget_id <> ? |; + push @sql_params,$budget_id; + } - my $sth = $dbh->prepare($query); - $sth->execute( $period_id ); + my $sth = $dbh->prepare($query); + $sth->execute(@sql_params); $period_sum = $sth->fetchrow_hashref; $sth->finish; $budget_period_unalloc = $period->{'budget_period_total'} - $period_sum->{'sum'} if $period->{'budget_period_total'}; -- 2.39.5