summaryrefslogtreecommitdiff
path: root/sql-ledger/sql/Oracle-tables.sql
blob: d2bf7c779e41f30218e77eaa121f307ad74705ae (plain)
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
-- Oracle-tables.sql
-- Paulo Rodrigues: added functions and triggers, Oct. 31, 2001
-- 
-- Modified for use with SL 2.0 and Oracle 9i2, Dec 13, 2002
--
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
--
CREATE SEQUENCE id START WITH 10000 INCREMENT BY 1 MAXVALUE 2147483647 MINVALUE 1  CACHE 2;
SELECT ID.NEXTVAL FROM DUAL;
--
CREATE TABLE makemodel (
  parts_id INTEGER,
  name VARCHAR2(100)
);
--
CREATE TABLE gl (
  id INTEGER,
  reference VARCHAR2(50),
  description VARCHAR2(100),
  transdate DATE DEFAULT SYSDATE,
  employee_id INTEGER,
  notes VARCHAR2(4000) 
);
--
CREATE TABLE chart (
  id INTEGER,
  accno VARCHAR2(20) NOT NULL,
  description VARCHAR2(100),
  charttype CHAR(1) DEFAULT 'A',
  category CHAR(1),
  link VARCHAR2(100),
  gifi_accno VARCHAR2(20)
);
--
CREATE TABLE gifi (
  accno VARCHAR2(20),
  description VARCHAR2(100)
);
--
CREATE TABLE defaults (
  inventory_accno_id INTEGER,
  income_accno_id INTEGER,
  expense_accno_id INTEGER,
  fxgain_accno_id INTEGER,
  fxloss_accno_id INTEGER,
  invnumber VARCHAR2(30),
  sonumber VARCHAR2(30),
  yearend VARCHAR2(5),
  weightunit VARCHAR2(5),
  businessnumber VARCHAR2(30),
  version VARCHAR2(8),
  curr VARCHAR2(500),
  closedto DATE,
  revtrans CHAR(1) DEFAULT '0',
  ponumber VARCHAR2(30)
);
INSERT INTO defaults (version) VALUES ('2.0.8');
--
CREATE TABLE acc_trans (
  trans_id INTEGER,
  chart_id INTEGER,
  amount FLOAT,
  transdate DATE DEFAULT SYSDATE,
  source VARCHAR2(20),
  cleared CHAR(1) DEFAULT '0',
  fx_transaction CHAR(1) DEFAULT '0',
  project_id INTEGER
);
--
CREATE TABLE invoice (
  id INTEGER,
  trans_id INTEGER,
  parts_id INTEGER,
  description VARCHAR2(4000),
  qty FLOAT,
  allocated FLOAT,
  sellprice FLOAT,
  fxsellprice FLOAT,
  discount FLOAT,
  assemblyitem CHAR(1) DEFAULT '0',
  unit VARCHAR2(5),
  project_id INTEGER,
  deliverydate DATE
);
--
CREATE TABLE vendor (
  id INTEGER,
  name VARCHAR2(35),
  addr1 VARCHAR2(35),
  addr2 VARCHAR2(35),
  addr3 VARCHAR2(35),
  addr4 VARCHAR2(35),
  contact VARCHAR2(35),
  phone VARCHAR2(20),
  fax VARCHAR2(20),
  email VARCHAR2(50),
  notes VARCHAR2(4000),
  terms INTEGER DEFAULT 0,
  taxincluded CHAR(1),
  vendornumber VARCHAR2(40),
  cc VARCHAR2(50),
  bcc VARCHAR2(50)
);
--
CREATE TABLE customer (
  id INTEGER,
  name VARCHAR2(35),
  addr1 VARCHAR2(35),
  addr2 VARCHAR2(35),
  addr3 VARCHAR2(35),
  addr4 VARCHAR2(35),
  contact VARCHAR2(35),
  phone VARCHAR2(20),
  fax VARCHAR2(20),
  email VARCHAR2(50),
  notes VARCHAR2(4000),
  discount FLOAT,
  taxincluded CHAR(1),
  creditlimit FLOAT,
  terms INTEGER DEFAULT 0,
  customernumber VARCHAR2(40),
  cc VARCHAR2(50),
  bcc VARCHAR2(50)
);
--
CREATE TABLE parts (
  id INTEGER,
  partnumber VARCHAR2(30), 
  description VARCHAR2(4000),
  unit VARCHAR2(5),
  listprice FLOAT,
  sellprice FLOAT,
  lastcost FLOAT,
  priceupdate DATE DEFAULT SYSDATE,
  weight FLOAT,
  onhand FLOAT DEFAULT 0,
  notes VARCHAR2(4000),
  makemodel CHAR(1) DEFAULT '0',
  assembly CHAR(1) DEFAULT '0',
  alternate CHAR(1) DEFAULT '0',
  rop FLOAT,
  inventory_accno_id INTEGER,
  income_accno_id INTEGER,
  expense_accno_id INTEGER,
  bin VARCHAR2(20),
  obsolete CHAR(1) DEFAULT '0',
  bom CHAR(1) DEFAULT '0',
  image VARCHAR2(100),
  drawing VARCHAR2(100),
  microfiche VARCHAR2(100),
  partsgroup_id INTEGER
);
--
CREATE TABLE assembly (
  id INTEGER,
  parts_id INTEGER,
  qty FLOAT,
  bom CHAR(1)
);
--
CREATE TABLE ar (
  id INTEGER,
  invnumber VARCHAR2(30),
  transdate DATE DEFAULT SYSDATE,
  customer_id INTEGER,
  taxincluded CHAR(1),
  amount FLOAT,
  netamount FLOAT,
  paid FLOAT,
  datepaid DATE,
  duedate DATE,
  invoice CHAR(1) DEFAULT '0',
  shippingpoint VARCHAR2(100),
  terms INTEGER DEFAULT 0,
  notes VARCHAR2(4000),
  curr CHAR(3),
  ordnumber VARCHAR2(30),
  employee_id INTEGER
);
--
CREATE TABLE ap (
  id INTEGER,
  invnumber VARCHAR2(30),
  transdate DATE DEFAULT SYSDATE,
  vendor_id INTEGER,
  taxincluded CHAR(1) DEFAULT '0',
  amount FLOAT,
  netamount FLOAT,
  paid FLOAT,
  datepaid DATE,
  duedate DATE,
  invoice CHAR(1) DEFAULT '0',
  ordnumber VARCHAR2(30),
  curr CHAR(3),
  notes VARCHAR2(4000),
  employee_id INTEGER
);
--
CREATE TABLE partstax (
  parts_id INTEGER,
  chart_id INTEGER
);
--
CREATE TABLE tax (
  chart_id INTEGER,
  rate FLOAT,
  taxnumber VARCHAR2(30)
);
--
CREATE TABLE customertax (
  customer_id INTEGER,
  chart_id INTEGER
);
--
CREATE TABLE vendortax (
  vendor_id INTEGER,
  chart_id INTEGER
);
--
CREATE TABLE oe (
  id INTEGER,
  ordnumber VARCHAR2(30),
  transdate DATE DEFAULT SYSDATE,
  vendor_id INTEGER,
  customer_id INTEGER,
  amount FLOAT,
  netamount FLOAT,
  reqdate DATE,
  taxincluded CHAR(1),
  shippingpoint VARCHAR2(100),
  notes VARCHAR2(4000),
  curr CHAR(3),
  employee_id INTEGER,
  closed CHAR(1) DEFAULT '0'
);
--
CREATE TABLE orderitems (
  trans_id INTEGER,
  parts_id INTEGER,
  description VARCHAR2(4000),
  qty FLOAT,
  sellprice FLOAT,
  discount FLOAT,
  unit VARCHAR2(5),
  project_id INTEGER,
  reqdate DATE
);
--
CREATE TABLE exchangerate (
  curr CHAR(3),
  transdate DATE,
  buy FLOAT,
  sell FLOAT
);
--
CREATE TABLE employee (
  id INTEGER,
  login VARCHAR2(20),
  name VARCHAR2(35),
  addr1 VARCHAR2(35),
  addr2 VARCHAR2(35),
  addr3 VARCHAR2(35),
  addr4 VARCHAR2(35),
  workphone VARCHAR2(20),
  homephone VARCHAR2(20),
  startdate DATE DEFAULT SYSDATE,
  enddate DATE,
  notes VARCHAR2(4000)
);
--
CREATE TABLE shipto (
  trans_id INTEGER,
  shiptoname VARCHAR2(35),
  shiptoaddr1 VARCHAR2(35),
  shiptoaddr2 VARCHAR2(35),
  shiptoaddr3 VARCHAR2(35),
  shiptoaddr4 VARCHAR2(35),
  shiptocontact VARCHAR2(35),
  shiptophone VARCHAR2(20),
  shiptofax VARCHAR2(20),
  shiptoemail VARCHAR2(50)
);
--
CREATE TABLE project (
  id INTEGER,
  projectnumber VARCHAR2(50),
  description VARCHAR2(4000)
);
--
CREATE TABLE partsgroup (
  id INTEGER,
  partsgroup VARCHAR2(100)
);
--
-- functions
--
CREATE OR REPLACE FUNCTION current_date RETURN date AS
BEGIN
  return(sysdate);--
END;;
--
-- triggers
--
CREATE OR REPLACE TRIGGER glid BEFORE INSERT ON gl FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER chartid BEFORE INSERT ON chart FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER invoiceid BEFORE INSERT ON invoice FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER vendorid BEFORE INSERT ON vendor FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER customerid BEFORE INSERT ON customer FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER partsid BEFORE INSERT ON parts FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER arid BEFORE INSERT ON ar FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER apid BEFORE INSERT ON ap FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER oeid BEFORE INSERT ON oe FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER employeeid BEFORE INSERT ON employee FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER projectid BEFORE INSERT ON project FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--
CREATE OR REPLACE TRIGGER partsgroupid BEFORE INSERT ON partsgroup FOR EACH ROW
BEGIN
  SELECT id.nextval
  INTO :new.id
  FROM DUAL;--
END;;
--