| Actor | Fragment | Worker | State |
|---|---|---|---|
| 164932 | 19579 | 33 | running |
| 164933 | 19579 | 33 | running |
| 164934 | 19581 | 33 | running |
| 164935 | 19581 | 33 | running |
| 164936 | 19599 | 33 | running |
| 164937 | 19599 | 33 | running |
| 164938 | 19580 | 33 | running |
| 164939 | 19580 | 33 | running |
| 164940 | 19592 | 33 | running |
| 164941 | 19592 | 33 | running |
| 164942 | 19584 | 33 | running |
| 164943 | 19584 | 33 | running |
CREATE MATERIALIZED VIEW opportunity.account_bond_maturity_breaches_mv AS
WITH bond_holdings AS (
SELECT
b.asset_id,
b.maturity_date,
h.account_id,
'GET_ACCOUNT_DAYS_TO_BOND_ASSET_MATURITY_DATE' AS activity_name
FROM asset_service.bond_assets_dm AS b
JOIN insights.holding_values_latest_mv AS h
ON h.asset_id = b.asset_id AND h.type = 'ASSET'
JOIN insights.open_accounts_mv AS oa
ON oa.account_id = h.account_id
)
SELECT
c.opportunity_id,
b.account_id AS resource_id,
c.as_of_date AS fact_date,
b.asset_id,
b.maturity_date,
ytm.yield_to_maturity,
(
b.maturity_date - c.as_of_date
) AS days_to_maturity,
COALESCE(iss.name_en, '') AS issuer_name_en,
COALESCE(iss.name_ar, iss.name_en, '') AS issuer_name_ar
FROM bond_holdings AS b
JOIN opportunity.opportunity_conditions_mv AS c
ON c.activity_name = b.activity_name
LEFT JOIN insights.asset_latest_yield_to_maturity_mv AS ytm
ON ytm.asset_id = b.asset_id
LEFT JOIN asset_service.assets_dm AS a
ON a.id = b.asset_id
LEFT JOIN asset_service.issuers_dm AS iss
ON iss.id = a.issuer_id
WHERE
NOT c.as_of_date IS NULL
AND b.maturity_date > c.as_of_date
AND CASE c.op
WHEN 'GTE'
THEN (
b.maturity_date - c.as_of_date
) >= c.threshold
WHEN 'GT'
THEN (
b.maturity_date - c.as_of_date
) > c.threshold
WHEN 'LTE'
THEN (
b.maturity_date - c.as_of_date
) <= c.threshold
WHEN 'LT'
THEN (
b.maturity_date - c.as_of_date
) < c.threshold
WHEN 'EQ'
THEN (
b.maturity_date - c.as_of_date
) = c.threshold
ELSE FALSE
END