Files
Implementation_ITSA/Database Backups/SQL Views/view_contract_blocked.sql
AzureAD\SylvainDUVERNAY 832a142e87 Commit all views for ITSA
2026-03-24 14:40:53 +01:00

35 lines
1.5 KiB
SQL

CREATE OR REPLACE VIEW public.view_contract_blocked AS
SELECT p.number AS purchase_number,
'contract'::text AS line_type,
NULL::character varying AS forex_number,
NULL::numeric AS amount_covered,
string_agg(DISTINCT (pp.code)::text, ', '::text) AS products,
max((pl.quantity * (pl.unit_price)::double precision)) AS total_contract_value,
(max((pl.quantity * (pl.unit_price)::double precision)) - (sum(fcpc.amount))::double precision) AS amount_remaining,
max((cc.code)::text) AS currency,
NULL::numeric AS rate,
NULL::date AS maturity_date
FROM ((((purchase_purchase p
LEFT JOIN forex_cover_physical_contract fcpc ON ((fcpc.contract = p.id)))
LEFT JOIN purchase_line pl ON ((pl.purchase = p.id)))
LEFT JOIN product_product pp ON ((pl.product = pp.id)))
LEFT JOIN currency_currency cc ON ((p.currency = cc.id)))
WHERE (p.currency = 2)
GROUP BY p.number, pl.id
UNION ALL
SELECT p.number AS purchase_number,
'forex'::text AS line_type,
forex.number AS forex_number,
fcpc.amount AS amount_covered,
NULL::text AS products,
NULL::numeric AS total_contract_value,
NULL::numeric AS amount_remaining,
cc.code AS currency,
forex.rate,
forex.value_date AS maturity_date
FROM (((purchase_purchase p
JOIN forex_cover_physical_contract fcpc ON ((fcpc.contract = p.id)))
LEFT JOIN forex_forex forex ON ((forex.id = fcpc.forex)))
LEFT JOIN currency_currency cc ON ((forex.buy_currency = cc.id)))
ORDER BY 1, 2;;