]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0888.schema.acq-cancel-display.sql
LP1615805 No inputs after submit in patron search (AngularJS)
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0888.schema.acq-cancel-display.sql
1 BEGIN;
2
3 -- check whether patch can be applied
4 SELECT evergreen.upgrade_deps_block_check('0888', :eg_version);
5
6 DROP VIEW acq.lineitem_summary;
7
8 CREATE VIEW acq.lineitem_summary AS
9     SELECT 
10         li.id AS lineitem, 
11         (
12             SELECT COUNT(lid.id) 
13             FROM acq.lineitem_detail lid
14             WHERE lineitem = li.id
15         ) AS item_count,
16         (
17             SELECT COUNT(lid.id) 
18             FROM acq.lineitem_detail lid
19             WHERE recv_time IS NOT NULL AND lineitem = li.id
20         ) AS recv_count,
21         (
22             SELECT COUNT(lid.id) 
23             FROM acq.lineitem_detail lid
24                 JOIN acq.cancel_reason acqcr ON (acqcr.id = lid.cancel_reason)
25             WHERE acqcr.keep_debits IS FALSE AND lineitem = li.id
26         ) AS cancel_count,
27         (
28             SELECT COUNT(lid.id) 
29             FROM acq.lineitem_detail lid
30                 JOIN acq.cancel_reason acqcr ON (acqcr.id = lid.cancel_reason)
31             WHERE acqcr.keep_debits IS TRUE AND lineitem = li.id
32         ) AS delay_count,
33         (
34             SELECT COUNT(lid.id) 
35             FROM acq.lineitem_detail lid
36                 JOIN acq.fund_debit debit ON (lid.fund_debit = debit.id)
37             WHERE NOT debit.encumbrance AND lineitem = li.id
38         ) AS invoice_count,
39         (
40             SELECT COUNT(DISTINCT(lid.id)) 
41             FROM acq.lineitem_detail lid
42                 JOIN acq.claim claim ON (claim.lineitem_detail = lid.id)
43             WHERE lineitem = li.id
44         ) AS claim_count,
45         (
46             SELECT (COUNT(lid.id) * li.estimated_unit_price)::NUMERIC(8,2)
47             FROM acq.lineitem_detail lid
48             WHERE lid.cancel_reason IS NULL AND lineitem = li.id
49         ) AS estimated_amount,
50         (
51             SELECT SUM(debit.amount)::NUMERIC(8,2)
52             FROM acq.lineitem_detail lid
53                 JOIN acq.fund_debit debit ON (lid.fund_debit = debit.id)
54             WHERE debit.encumbrance AND lineitem = li.id
55         ) AS encumbrance_amount,
56         (
57             SELECT SUM(debit.amount)::NUMERIC(8,2)
58             FROM acq.lineitem_detail lid
59                 JOIN acq.fund_debit debit ON (lid.fund_debit = debit.id)
60             WHERE NOT debit.encumbrance AND lineitem = li.id
61         ) AS paid_amount
62
63         FROM acq.lineitem AS li;
64
65 COMMIT;