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