]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-lineitem-summary.sql
ACQ unified search submit on enter (for real)
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / XXXX.schema.acq-lineitem-summary.sql
1 BEGIN;
2
3 CREATE OR REPLACE VIEW acq.lineitem_summary AS
4     SELECT 
5         li.id AS lineitem, 
6         (
7             SELECT COUNT(lid.id) 
8             FROM acq.lineitem_detail lid
9             WHERE lineitem = li.id
10         ) AS item_count,
11         (
12             SELECT COUNT(lid.id) 
13             FROM acq.lineitem_detail lid
14             WHERE recv_time IS NOT NULL AND lineitem = li.id
15         ) AS recv_count,
16         (
17             SELECT COUNT(lid.id) 
18             FROM acq.lineitem_detail lid
19             WHERE cancel_reason IS NOT NULL AND lineitem = li.id
20         ) AS cancel_count,
21         (
22             SELECT COUNT(lid.id) 
23             FROM acq.lineitem_detail lid
24                 JOIN acq.fund_debit debit ON (lid.fund_debit = debit.id)
25             WHERE NOT debit.encumbrance AND lineitem = li.id
26         ) AS invoice_count,
27         (
28             SELECT COUNT(DISTINCT(lid.id)) 
29             FROM acq.lineitem_detail lid
30                 JOIN acq.claim claim ON (claim.lineitem_detail = lid.id)
31             WHERE lineitem = li.id
32         ) AS claim_count,
33         (
34             SELECT (COUNT(lid.id) * li.estimated_unit_price)::NUMERIC(8,2)
35             FROM acq.lineitem_detail lid
36             WHERE lid.cancel_reason IS NULL AND lineitem = li.id
37         ) AS estimated_amount,
38         (
39             SELECT SUM(debit.amount)::NUMERIC(8,2)
40             FROM acq.lineitem_detail lid
41                 JOIN acq.fund_debit debit ON (lid.fund_debit = debit.id)
42             WHERE debit.encumbrance AND lineitem = li.id
43         ) AS encumbrance_amount,
44         (
45             SELECT SUM(debit.amount)::NUMERIC(8,2)
46             FROM acq.lineitem_detail lid
47                 JOIN acq.fund_debit debit ON (lid.fund_debit = debit.id)
48             WHERE NOT debit.encumbrance AND lineitem = li.id
49         ) AS paid_amount
50
51         FROM acq.lineitem AS li;
52
53 COMMIT;