diff options
author | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2007-05-06 17:56:02 +0000 |
---|---|---|
committer | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2007-05-06 17:56:02 +0000 |
commit | 7a8d05934ffc6400c57f8331f55e73f9ceed502c (patch) | |
tree | 63710ff994f5128530c9848d92d00b84505b71c4 | |
parent | fc1e4a3c139cbd7c200c26286b3130a284d37e0b (diff) |
Fixing bug 1708011
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1131 4979c152-3d1c-0410-bac9-87ea11338e46
-rw-r--r-- | LedgerSMB/OE.pm | 5 | ||||
-rw-r--r-- | sql/legacy/Pg-upgrade-2.6.18-2.6.19.sql | 8 | ||||
-rw-r--r-- | 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; |