From 7a8d05934ffc6400c57f8331f55e73f9ceed502c Mon Sep 17 00:00:00 2001 From: einhverfr Date: Sun, 6 May 2007 17:56:02 +0000 Subject: Fixing bug 1708011 git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1131 4979c152-3d1c-0410-bac9-87ea11338e46 --- LedgerSMB/OE.pm | 5 +++-- sql/legacy/Pg-upgrade-2.6.18-2.6.19.sql | 8 ++++++-- utils/fixme/fixme.pgsql | 17 ++++++++++------- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/LedgerSMB/OE.pm b/LedgerSMB/OE.pm index ab431769..b1256130 100644 --- a/LedgerSMB/OE.pm +++ b/LedgerSMB/OE.pm @@ -171,8 +171,9 @@ sub transactions { } if ( $form->{$ordnumber} ne "" ) { - $query .= " AND lower(?) LIKE ?"; - push @queryargs, $ordnumber, $number; + $ordnumber = ($ordnumber eq 'ordnumber') ? 'ordnumber' : 'quonumber'; + $query .= " AND lower($ordnumber) LIKE ?"; + push @queryargs, $number; $form->{open} = 1; $form->{closed} = 1; } diff --git a/sql/legacy/Pg-upgrade-2.6.18-2.6.19.sql b/sql/legacy/Pg-upgrade-2.6.18-2.6.19.sql index 5b18932c..32e6dc5d 100644 --- a/sql/legacy/Pg-upgrade-2.6.18-2.6.19.sql +++ b/sql/legacy/Pg-upgrade-2.6.18-2.6.19.sql @@ -58,8 +58,12 @@ ALTER TABLE sic ADD PRIMARY KEY (code); ALTER TABLE status ADD PRIMARY KEY (trans_id); -ALTER TABLE tax ADD PRIMARY KEY (chart_id); -ALTER TABLE tax ADD FOREIGN KEY (chart_id) REFERENCES chart (id); +-- Removing the primary key below since this is not quite the best way +-- do this. The tax table could have multiple rows per chart_id. +-- We need a better fix for 1.3 (perhaps changing date to timestamp and +-- and defaulting to infinity. +-- ALTER TABLE tax ADD PRIMARY KEY (chart_id); +-- ALTER TABLE tax ADD FOREIGN KEY (chart_id) REFERENCES chart (id); ALTER TABLE translation ADD PRIMARY KEY (trans_id, language_code); diff --git a/utils/fixme/fixme.pgsql b/utils/fixme/fixme.pgsql index 7ee23b4d..28ba8183 100644 --- a/utils/fixme/fixme.pgsql +++ b/utils/fixme/fixme.pgsql @@ -25,11 +25,11 @@ insert into id_agregator (id, table_name) SELECT id, 'warehouse' from warehouse; CREATE TEMPORARY VIEW id_view1 AS SELECT id, count(*) AS num_rows FROM id_agregator -GROUP BY id HAVING num_rows > 1; +GROUP BY id HAVING count(*) > 1; -select setval('id', select max(id) + 1 from id_agregator); +select setval('id', (select max(id) + 1 from id_agregator)); -create function fix_dupes() RETURNS OPAQUE AS +create function fix_dupes() RETURNS opaque AS ' DECLARE dupe_id id_agregator%ROWTYPE; @@ -38,20 +38,23 @@ FOR dupe_id IN SELECT id FROM id_agregator WHERE id IN (SELECT id FROM id_view1) LOOP EXECUTE ''UPDATE '' || dupe_id.table_name || - SET id = nextval(''''id'''') WHERE + '' SET id = nextval(''''id'''') WHERE id = '' ||dupe_id.id; UPDATE acc_trans SET trans_id = currval(''id'') WHERE - id = '' ||dupe_id.id; + id = ||dupe_id.id; INSERT INTO acc_trans (trans_id, amount, chart_id) VALUES ( - currval(''id''), '1', ( + currval(''id''), ''1'', ( SELECT id FROM chart WHERE accno = ''1000000000'' ) ); INSERT INTO acc_trans (trans_id, amount, chart_id) VALUES ( - currval(''id''), '-1', ( + currval(''id''), ''-1'', ( SELECT id FROM chart WHERE accno = ''1000000000'' ) ); + +END LOOP; +RETURN NULL; END; ' LANGUAGE PLPGSQL; -- cgit v1.2.3