Merge pull request #1609 from xtuple/4_5_x
[xtuple] / foundation-database / public / views / docinfo.sql
1 SELECT dropIfExists('VIEW','docinfo');
2 CREATE VIEW docinfo AS
3 ------------ IMAGE -----------
4  SELECT imageass_id AS id,
5         image_id::text AS target_number,
6         'IMG' AS target_type,
7         imageass_image_id AS target_id,
8         imageass_source AS source_type,
9         imageass_source_id AS source_id,
10         image_name AS name, image_descrip AS description,
11         imageass_purpose AS purpose
12         FROM imageass, image
13         WHERE (imageass_image_id=image_id)
14 ------------ URL (file and website) -----------
15  UNION ALL
16  SELECT url_id AS id, 
17         url_id::text AS target_number,
18         'URL' AS target_type,
19         url_id AS target_id,
20         url_source AS source_type,
21         url_source_id AS source_id, 
22         url_title AS name, url_url AS description,
23         'S' AS doc_purpose
24         FROM url
25  WHERE (url_stream IS NULL)
26  UNION ALL
27  SELECT url_id AS id, 
28         url_id::text AS target_number,
29         'FILE' AS target_type,
30         url_id AS target_id,
31         url_source AS source_type,
32         url_source_id AS source_id, 
33         url_title AS name, url_url AS description,
34         'S' AS doc_purpose
35         FROM url
36  WHERE (url_stream IS NOT NULL)
37                 
38 ------------ INCIDENT -----------
39  UNION ALL
40  SELECT docass_id AS id,
41         incdt_number::text AS target_number,
42         docass_target_type AS target_type,
43         docass_target_id AS target_id,
44         docass_source_type AS source_type,
45         docass_source_id AS source_id,
46         incdt_summary AS name, 
47         firstline(incdt_descrip) AS description,
48         docass_purpose AS purpose
49         FROM docass, incdt
50         WHERE ((docass_target_type='INCDT')
51          AND (docass_target_id=incdt_id))
52  UNION ALL
53  SELECT docass_id AS id,
54         incdt_number::text AS target_number,
55         docass_source_type AS target_type,
56         docass_source_id AS target_id,
57         docass_target_type AS source_type,
58         docass_target_id AS source_id,
59         incdt_summary AS name, 
60         firstline(incdt_descrip) AS description,
61         CASE 
62           WHEN docass_purpose = 'A' THEN 'C'
63           WHEN docass_purpose = 'C' THEN 'A'
64           ELSE docass_purpose
65         END AS purpose
66         FROM docass, incdt
67         WHERE ((docass_source_type='INCDT')
68          AND (docass_source_id=incdt_id))  
69  UNION ALL
70 ------------ TO DO -----------
71  SELECT docass_id AS id,
72         todoitem_id::text AS target_number,
73         docass_target_type,
74         docass_target_id AS target_id,
75         docass_source_type AS source_type,
76         docass_source_id AS source_id,
77         todoitem_name AS name, 
78         firstline(todoitem_description) AS description,
79         docass_purpose AS purpose
80         FROM docass, todoitem
81          WHERE ((docass_target_type='TODO')
82          AND (docass_target_id=todoitem_id))
83  UNION ALL
84  SELECT docass_id AS id,
85         todoitem_id::text AS target_number,
86         docass_source_type AS target_type,
87         docass_source_id AS target_id,
88         docass_target_type AS source_type,
89         docass_target_id AS source_id,
90         todoitem_name AS name, 
91         firstline(todoitem_description) AS description,
92         CASE 
93           WHEN docass_purpose = 'A' THEN 'C'
94           WHEN docass_purpose = 'C' THEN 'A'
95           ELSE docass_purpose
96         END AS purpose
97         FROM docass, todoitem
98          WHERE ((docass_source_type='TODO')
99          AND (docass_source_id=todoitem_id))
100  ------------ PROJECT -----------
101  UNION ALL
102  SELECT docass_id AS id,
103         prj_number AS target_number,
104         docass_target_type AS target_type,
105         docass_target_id AS target_id,
106         docass_source_type AS source_type,
107         docass_source_id AS source_id,
108         prj_name AS name, firstline(prj_descrip) AS description,
109         docass_purpose AS purpose
110         FROM docass, prj
111         WHERE ((docass_target_type='J')
112          AND (docass_target_id=prj_id))
113  UNION ALL
114  SELECT docass_id AS id,
115         prj_number AS target_number,
116         docass_source_type AS target_type,
117         docass_source_id AS target_id,
118         docass_target_type AS source_type,
119         docass_target_id AS source_id,
120         prj_name AS name, firstline(prj_descrip) AS description,
121         CASE 
122           WHEN docass_purpose = 'A' THEN 'C'
123           WHEN docass_purpose = 'C' THEN 'A'
124           ELSE docass_purpose
125         END AS purpose
126         FROM docass, prj
127         WHERE ((docass_source_type='J')
128          AND (docass_source_id=prj_id)) 
129  ------------ ITEM -----------
130  UNION ALL
131  SELECT docass_id AS id,
132         item_number AS target_number,
133         docass_target_type AS target_type,
134         docass_target_id AS target_id,
135         docass_source_type AS source_type,
136         docass_source_id AS source_id,
137         firstline(item_descrip1) AS name, firstline(item_descrip2) AS description,
138         docass_purpose AS purpose
139         FROM docass, item
140         WHERE ((docass_target_type='I')
141         AND (docass_target_id=item_id))
142  UNION ALL
143  SELECT docass_id AS id,
144         item_number AS target_number,
145         docass_source_type AS target_type,
146         docass_source_id AS target_id,
147         docass_target_type AS source_type,
148         docass_target_id AS source_id,
149         firstline(item_descrip1) AS name, firstline(item_descrip2) AS description,
150         CASE 
151           WHEN docass_purpose = 'A' THEN 'C'
152           WHEN docass_purpose = 'C' THEN 'A'
153           ELSE docass_purpose
154         END AS purpose
155         FROM docass, item
156         WHERE ((docass_source_type='I')
157         AND (docass_source_id=item_id))
158  UNION ALL
159  ------------ CRM ACCOUNT -----------
160  SELECT docass_id AS id,
161         crmacct_number AS target_number,
162         docass_target_type AS target_type,
163         docass_target_id AS target_id,
164         docass_source_type AS source_type,
165         docass_source_id AS source_id,
166         crmacct_name AS name,
167         firstline(crmacct_notes) AS description,
168         docass_purpose AS purpose
169              FROM docass, crmacct
170              WHERE ((docass_target_type='CRMA')
171              AND (docass_target_id=crmacct_id))
172  UNION ALL
173  SELECT docass_id AS id,
174         crmacct_number AS target_number,
175         docass_source_type AS target_type,
176         docass_source_id AS target_id,
177         docass_target_type AS source_type,
178         docass_target_id AS source_id,
179         crmacct_name AS name,
180         firstline(crmacct_notes) AS description,
181         CASE 
182           WHEN docass_purpose = 'A' THEN 'C'
183           WHEN docass_purpose = 'C' THEN 'A'
184           ELSE docass_purpose
185         END AS purpose
186         FROM docass, crmacct
187         WHERE ((docass_source_type='CRMA')
188          AND (docass_source_id=crmacct_id))
189  ------------ CUSTOMER -----------
190  UNION
191  SELECT docass_id AS id,
192         cust_number AS target_number,
193         docass_target_type AS target_type,
194         docass_target_id AS target_id,
195         docass_source_type AS source_type,
196         docass_source_id AS source_id,
197         cust_name AS name, firstline(cust_comments) AS description,
198         docass_purpose AS purpose
199         FROM docass, custinfo
200         WHERE ((docass_target_type='C')
201          AND (docass_target_id=cust_id))
202  UNION ALL
203  SELECT docass_id AS id,
204         cust_number AS target_number,
205         docass_source_type AS target_type,
206         docass_source_id AS target_id,
207         docass_target_type AS source_type,
208         docass_target_id AS source_id,
209         cust_name AS name, firstline(cust_comments) AS description,
210         CASE 
211           WHEN docass_purpose = 'A' THEN 'C'
212           WHEN docass_purpose = 'C' THEN 'A'
213           ELSE docass_purpose
214         END AS purpose
215         FROM docass, custinfo
216         WHERE ((docass_source_type='C')
217          AND (docass_source_id=cust_id))
218 ------------ VENDOR -----------
219  UNION ALL
220  SELECT docass_id AS id,
221         vend_number AS target_number,
222         docass_target_type AS target_type,
223         docass_target_id AS target_id,
224         docass_source_type AS source_type,
225         docass_source_id AS source_id,
226         vend_name AS name, firstline(vend_comments) AS description,
227         docass_purpose AS purpose
228         FROM docass, vendinfo
229         WHERE ((docass_target_type='V')
230         AND (docass_target_id=vend_id))
231  UNION ALL
232  SELECT docass_id AS id,
233         vend_number AS target_number,
234         docass_source_type AS target_type,
235         docass_source_id AS target_id,
236         docass_target_type AS source_type,
237         docass_target_id AS source_id,
238         vend_name AS name, firstline(vend_comments) AS description,
239         CASE 
240           WHEN docass_purpose = 'A' THEN 'C'
241           WHEN docass_purpose = 'C' THEN 'A'
242           ELSE docass_purpose
243         END AS purpose
244         FROM docass, vendinfo
245         WHERE ((docass_source_type='V')
246         AND (docass_source_id=vend_id))
247  ------------ CONTACT -----------
248  UNION ALL
249  SELECT docass_id AS id,
250         cntct_number AS target_number,
251         docass_target_type AS target_type,
252         docass_target_id AS target_id,
253         docass_source_type AS source_type,
254         docass_source_id AS source_id,
255         cntct_name AS name, cntct_title AS description,
256         docass_purpose AS purpose
257         FROM docass, cntct
258         WHERE ((docass_target_type='T')
259         AND (docass_target_id=cntct_id))
260  UNION ALL
261  SELECT docass_id AS id,
262         cntct_number AS target_number,
263         docass_source_type AS target_type,
264         docass_source_id AS target_id,
265         docass_target_type AS source_type,
266         docass_target_id AS source_id,
267         cntct_name AS name, cntct_title AS description,
268         CASE 
269           WHEN docass_purpose = 'A' THEN 'C'
270           WHEN docass_purpose = 'C' THEN 'A'
271           ELSE docass_purpose
272         END AS purpose
273         FROM docass, cntct
274         WHERE ((docass_source_type='T')
275         AND (docass_source_id=cntct_id))
276  ------------ OPPORTUNITY -----------
277  UNION ALL
278  SELECT docass_id AS id,
279         ophead_id::text AS target_number,
280         docass_target_type AS target_type,
281         docass_target_id AS target_id,
282         docass_source_type AS source_type,
283         docass_source_id AS source_id,
284         ophead_name AS name, firstline(ophead_notes) AS description,
285         docass_purpose AS purpose
286         FROM docass, ophead
287         WHERE ((docass_target_type='OPP')
288          AND (docass_target_id=ophead_id))
289  UNION ALL
290  SELECT docass_id AS id,
291         ophead_id::text AS target_number,
292         docass_source_type AS target_type,
293         docass_source_id AS target_id,
294         docass_target_type AS source_type,
295         docass_target_id AS source_id,
296         ophead_name AS name, firstline(ophead_notes) AS description,
297         CASE 
298           WHEN docass_purpose = 'A' THEN 'C'
299           WHEN docass_purpose = 'C' THEN 'A'
300           ELSE docass_purpose
301         END AS purpose
302         FROM docass, ophead
303         WHERE ((docass_source_type='OPP')
304          AND (docass_source_id=ophead_id))
305  UNION ALL
306 ------------ QUOTE -----------
307  SELECT docass_id AS id,
308         quhead_number AS target_number,
309         docass_target_type AS target_type,
310         docass_target_id AS target_id,
311         docass_source_type AS source_type,
312         docass_source_id AS source_id,
313         cust_name AS name, firstline(quhead_ordercomments) AS description,
314         docass_purpose AS purpose
315         FROM docass, quhead, custinfo
316         WHERE ((docass_target_type='Q')
317          AND (docass_target_id=quhead_id)
318          AND (cust_id=quhead_cust_id))
319  UNION ALL
320  SELECT docass_id AS id,
321         quhead_number AS target_number,
322         docass_source_type AS target_type,
323         docass_source_id AS target_id,
324         docass_target_type AS source_type,
325         docass_target_id AS source_id,
326         cust_name AS name, firstline(quhead_ordercomments) AS description,
327         CASE 
328           WHEN docass_purpose = 'A' THEN 'C'
329           WHEN docass_purpose = 'C' THEN 'A'
330           ELSE docass_purpose
331         END AS purpose
332         FROM docass, quhead, custinfo
333         WHERE ((docass_source_type='Q')
334          AND (docass_source_id=quhead_id)
335          AND (cust_id=quhead_cust_id))
336  UNION ALL
337 ------------ SALES ORDER -----------
338  SELECT docass_id AS id,
339         cohead_number AS target_number,
340         docass_target_type AS target_type,
341         docass_target_id AS target_id,
342         docass_source_type AS source_type,
343         docass_source_id AS source_id,
344         cust_name AS name, firstline(cohead_ordercomments) AS description,
345         docass_purpose AS purpose
346         FROM docass, cohead, custinfo
347         WHERE ((docass_target_type='S')
348          AND (docass_target_id=cohead_id)
349          AND (cust_id=cohead_cust_id))
350  UNION ALL
351  SELECT docass_id AS id,
352         cohead_number AS target_number,
353         docass_source_type AS target_type,
354         docass_source_id AS target_id,
355         docass_target_type AS source_type,
356         docass_target_id AS source_id,
357         cust_name AS name, firstline(cohead_ordercomments) AS description,
358         CASE 
359           WHEN docass_purpose = 'A' THEN 'C'
360           WHEN docass_purpose = 'C' THEN 'A'
361           ELSE docass_purpose
362         END AS purpose
363         FROM docass, cohead, custinfo
364         WHERE ((docass_source_type='S')
365          AND (docass_source_id=cohead_id)
366          AND (cust_id=cohead_cust_id))
367  ------------ PURCHASE ORDER -----------
368  UNION ALL
369  SELECT docass_id AS id,
370         pohead_number AS target_number,
371         docass_target_type AS target_type,
372         docass_target_id AS target_id,
373         docass_source_type AS source_type,
374         docass_source_id AS source_id,
375         vend_name AS name, firstline(pohead_comments) AS description,
376         docass_purpose AS purpose
377         FROM docass, pohead, vendinfo
378         WHERE ((docass_target_type='P')
379          AND (docass_target_id=pohead_id)
380          AND (vend_id=pohead_vend_id))
381  UNION ALL
382  SELECT docass_id AS id,
383         pohead_number AS target_number,
384         docass_source_type AS target_type,
385         docass_source_id AS target_id,
386         docass_target_type AS source_type,
387         docass_target_id AS source_id,
388         vend_name AS name, firstline(pohead_comments) AS description,
389         CASE 
390           WHEN docass_purpose = 'A' THEN 'C'
391           WHEN docass_purpose = 'C' THEN 'A'
392           ELSE docass_purpose
393         END AS purpose
394         FROM docass, pohead, vendinfo
395         WHERE ((docass_source_type='P')
396          AND (docass_source_id=pohead_id)
397          AND (vend_id=pohead_vend_id))
398 ------------ WORK ORDER -----------
399  UNION ALL
400  SELECT docass_id AS id,
401         formatWoNumber(wo_id) AS target_number,
402         docass_target_type AS target_type,
403         docass_target_id AS target_id,
404         docass_source_type AS source_type,
405         docass_source_id AS source_id,
406         item_descrip1 AS name, item_descrip2 AS description,
407         docass_purpose AS purpose
408         FROM docass, wo, itemsite, item
409         WHERE ((docass_target_type='W')
410          AND (docass_target_id=wo_id)
411          AND (wo_itemsite_id=itemsite_id)
412          AND (itemsite_item_id=item_id))
413  UNION ALL
414  SELECT docass_id AS id,
415         formatWoNumber(wo_id) AS target_number,
416         docass_source_type AS target_type,
417         docass_source_id AS target_id,
418         docass_target_type AS source_type,
419         docass_target_id AS source_id,
420         item_descrip1 AS name, item_descrip2 AS description,
421         CASE 
422           WHEN docass_purpose = 'A' THEN 'C'
423           WHEN docass_purpose = 'C' THEN 'A'
424           ELSE docass_purpose
425         END AS purpose
426         FROM docass, wo, itemsite, item
427         WHERE ((docass_source_type='W')
428          AND (docass_source_id=wo_id)
429          AND (wo_itemsite_id=itemsite_id)
430          AND (itemsite_item_id=item_id))
431 UNION ALL
432 ------------ EMPLOYEE -----------
433  SELECT docass_id AS id,
434         emp_number AS target_number,
435         docass_target_type AS target_type,
436         docass_target_id AS target_id,
437         docass_source_type AS source_type,
438         docass_source_id AS source_id,
439         cntct_name AS name, cntct_title AS description,
440         docass_purpose AS purpose
441         FROM docass, emp
442           LEFT OUTER JOIN cntct ON (emp_cntct_id=cntct_id)
443         WHERE ((docass_target_type='EMP')
444          AND (docass_target_id=emp_id))
445  UNION ALL
446  SELECT docass_id AS id,
447         emp_number AS target_number,
448         docass_source_type AS target_type,
449         docass_source_id AS target_id,
450         docass_target_type AS source_type,
451         docass_target_id AS source_id,
452         cntct_name AS name, cntct_title AS description,
453         CASE 
454           WHEN docass_purpose = 'A' THEN 'C'
455           WHEN docass_purpose = 'C' THEN 'A'
456           ELSE docass_purpose
457         END AS purpose
458         FROM docass, emp
459           LEFT OUTER JOIN cntct ON (emp_cntct_id=cntct_id)
460         WHERE ((docass_source_type='EMP')
461          AND (docass_source_id=emp_id));
462
463 REVOKE ALL ON TABLE docinfo FROM PUBLIC;
464 GRANT  ALL ON TABLE docinfo TO GROUP xtrole;