From ba5890bd2f14e916e47f17a79af49392487dbeb0 Mon Sep 17 00:00:00 2001 From: einhverfr Date: Fri, 10 Oct 2008 15:35:29 +0000 Subject: merging in fix for OE generation git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@2361 4979c152-3d1c-0410-bac9-87ea11338e46 --- LedgerSMB/AM.pm | 24 ++++++++++++++++++++++-- bin/pe.pl | 2 +- sql/modules/Account.sql | 2 +- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/LedgerSMB/AM.pm b/LedgerSMB/AM.pm index d502bc20..b6834e53 100644 --- a/LedgerSMB/AM.pm +++ b/LedgerSMB/AM.pm @@ -1828,8 +1828,28 @@ sub save_defaults { || $form->dberror("Saving $_"); } else { - $sth_plain->execute( $val, $_ ) - || $form->dberror("Saving $_"); + my $found=0; + my $sth_defcheck=$dbh->prepare("select count(*) from defaults where setting_key='$_';") || $form->dberror("Select defaults $_"); + $sth_defcheck->execute() || $form->dberror("execute defaults $_"); + while(my $found1=$sth_defcheck->fetchrow()){$found=$found1;} + + if($val ne '') + { + if($found) + { + $dbh->do("update defaults set value=" . $dbh->quote($val) . " where setting_key='$_';"); + } + else + { + $dbh->do("insert into defaults(value,setting_key) values( " . $dbh->quote($val) . ",'$_');"); + } + } + else + { + if($found){$dbh->do("delete from defaults where setting_key='$_';")}; + + } + } } diff --git a/bin/pe.pl b/bin/pe.pl index f1c11d35..3e9dea04 100644 --- a/bin/pe.pl +++ b/bin/pe.pl @@ -2891,8 +2891,8 @@ sub generate_sales_orders { } $order = new Form; - $order->{dbh} = $form->{dbh}; for ( keys %{ $form->{order} } ) { + $order->{dbh} = $form->{dbh}; for (qw(type vc defaultcurrency login)) { $order->{$_} = $form->{$_} } for ( split / /, $form->{taxaccounts} ) { diff --git a/sql/modules/Account.sql b/sql/modules/Account.sql index 36275744..2265508a 100644 --- a/sql/modules/Account.sql +++ b/sql/modules/Account.sql @@ -13,7 +13,7 @@ $$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION account_is_orphaned (in_id int) RETURNS bool AS $$ BEGIN - SELECT trans_id FROM acc_trans WHERE chart_id = in_id LIMIT 1; + PERFORM trans_id FROM acc_trans WHERE chart_id = in_id LIMIT 1; IF FOUND THEN RETURN true; ELSE -- cgit v1.2.3