File: Pg-upgrade-2.7.5-2.7.6.sql

package info (click to toggle)
sql-ledger 3.2.6-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, forky, sid, trixie
  • size: 33,080 kB
  • sloc: perl: 73,172; sql: 36,530; sh: 34; makefile: 21
file content (135 lines) | stat: -rw-r--r-- 5,716 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
--
create sequence assemblyid;
alter table assembly add aid int;
alter table assembly alter id set default nextval('assemblyid');
update assembly set aid = id;
create table temp (id int default nextval('assemblyid'), aid int);
insert into temp (aid) select oid from assembly;
update assembly set id = temp.id from temp where assembly.oid = temp.aid;
drop table temp;
--
create sequence inventoryid;
alter table inventory add id int;
create table temp (id int default nextval('inventoryid'), iid int);
insert into temp (iid) select oid from inventory;
update inventory set id = temp.id from temp where inventory.oid = temp.iid;
drop table temp; 
alter table inventory alter id set default nextval('inventoryid');
--
insert into address (trans_id) select id from warehouse;
--
alter table parts add tariff_hscode text;
alter table parts add countryorigin text;
--
alter table invoice add lineitemdetail boolean;
alter table orderitems add lineitemdetail boolean;
--
alter table ar add column warehouse_id int;
alter table ap add column warehouse_id int;
alter table oe add column warehouse_id int;
--
create table defau (fldname text, fldvalue text);
insert into defau (fldname, fldvalue) values ('inventory_accno_id', (select inventory_accno_id from defaults));
insert into defau (fldname, fldvalue) values ('income_accno_id', (select income_accno_id from defaults));
insert into defau (fldname, fldvalue) values ('expense_accno_id', (select expense_accno_id from defaults));
insert into defau (fldname, fldvalue) values ('fxgain_accno_id', (select fxgain_accno_id from defaults));
insert into defau (fldname, fldvalue) values ('fxloss_accno_id', (select fxloss_accno_id from defaults));
insert into defau (fldname, fldvalue) values ('sinumber', (select sinumber from defaults));
insert into defau (fldname, fldvalue) values ('sonumber', (select sonumber from defaults));
insert into defau (fldname, fldvalue) values ('yearend', (select yearend from defaults));
insert into defau (fldname, fldvalue) values ('weightunit', (select weightunit from defaults));
insert into defau (fldname, fldvalue) values ('businessnumber', (select businessnumber from defaults));
insert into defau (fldname, fldvalue) values ('version', (select version from defaults));
insert into defau (fldname, fldvalue) values ('currencies', (select curr from defaults));
insert into defau (fldname, fldvalue) values ('closedto', (select closedto from defaults));
insert into defau (fldname, fldvalue) values ('revtrans', '0');
insert into defau (fldname, fldvalue) values ('ponumber', (select ponumber from defaults));
insert into defau (fldname, fldvalue) values ('sqnumber', (select sqnumber from defaults));
insert into defau (fldname, fldvalue) values ('rfqnumber', (select rfqnumber from defaults));
insert into defau (fldname, fldvalue) values ('audittrail', '0');
insert into defau (fldname, fldvalue) values ('vinumber', (select vinumber from defaults));
insert into defau (fldname, fldvalue) values ('employeenumber', (select employeenumber from defaults));
insert into defau (fldname, fldvalue) values ('partnumber', (select partnumber from defaults));
insert into defau (fldname, fldvalue) values ('customernumber', (select customernumber from defaults));
insert into defau (fldname, fldvalue) values ('vendornumber', (select vendornumber from defaults));
insert into defau (fldname, fldvalue) values ('glnumber', (select glnumber from defaults));
insert into defau (fldname, fldvalue) values ('projectnumber', (select projectnumber from defaults));
insert into defau (fldname, fldvalue) values ('vouchernumber', (select vouchernumber from defaults));
insert into defau (fldname, fldvalue) values ('batchnumber', (select batchnumber from defaults));
drop table defaults;
alter table defau rename to defaults;
--
drop trigger del_exchangerate on ar;
drop trigger del_exchangerate on ap;
drop trigger del_exchangerate on oe;
drop function del_exchangerate();
--
CREATE FUNCTION del_exchangerate() RETURNS OPAQUE AS '

declare
  t_transdate date;
  t_curr char(3);
  t_id int;
  d_curr text;

begin

  select into d_curr substr(fldvalue,1,3) from defaults where fldname = ''currencies'';

  if TG_RELNAME = ''ar'' then
    select into t_curr, t_transdate curr, transdate from ar where id = old.id;
  end if;
  if TG_RELNAME = ''ap'' then
    select into t_curr, t_transdate curr, transdate from ap where id = old.id;
  end if;
  if TG_RELNAME = ''oe'' then
    select into t_curr, t_transdate curr, transdate from oe where id = old.id;
  end if;

  if d_curr != t_curr then

    select into t_id a.id from acc_trans ac
    join ar a on (a.id = ac.trans_id)
    where a.curr = t_curr
    and ac.transdate = t_transdate

    except select a.id from ar a where a.id = old.id

    union

    select a.id from acc_trans ac
    join ap a on (a.id = ac.trans_id)
    where a.curr = t_curr
    and ac.transdate = t_transdate

    except select a.id from ap a where a.id = old.id

    union

    select o.id from oe o
    where o.curr = t_curr
    and o.transdate = t_transdate

    except select o.id from oe o where o.id = old.id;

    if not found then
      delete from exchangerate where curr = t_curr and transdate = t_transdate;
    end if;
  end if;
return old;

end;
' language 'plpgsql';
-- end function
--
CREATE TRIGGER del_exchangerate BEFORE DELETE ON ar FOR EACH ROW EXECUTE PROCEDURE del_exchangerate();
-- end trigger
--
CREATE TRIGGER del_exchangerate BEFORE DELETE ON ap FOR EACH ROW EXECUTE PROCEDURE del_exchangerate();
-- end trigger
--
CREATE TRIGGER del_exchangerate BEFORE DELETE ON oe FOR EACH ROW EXECUTE PROCEDURE del_exchangerate();
-- end trigger
--
update defaults set fldvalue = '2.7.6' where fldname = 'version';