Bezeichnung des Algorithmus | XEN_Wert_Belastungsquelle |
Kurzbezeichnung | Ermittlung des Werts der Belastungsquelle (WBQ) |
Verbale Beschreibung/Beispiele | Der Algorithmus ermittelt den Wert der Belastungsquelle. Im ersten Schritt wird der Wert der (Eventual-)Verbindlichkeit, die die Belastung darstellt, ermittelt. Anschließend werden die Assets, Collateral received, etc., die durch dieselbe (Eventual-)Verbindlichkeit belastet sind, selektiert. Sind weitere Belastungen vorhanden, so wird der Wert der Belastungsquelle aliquot aufgeteilt. Als Rückgabewert dient der Wert der Belastungsquelle, aliquot nach den jeweiligen belasteten Vermögenswerten/Collaterals aufgeteilt. |
Kommt vor in/wird verwendet für | Wertart_CL |
Formale Beschreibung | FUNKTION XEN_Wert_Belastungsquelle(AI_Mandant MA, AI_Belastung_ID belId, AI_Stichtag_Datum repDate, AI_Kons_ID konsId) gfId = SELEKTIERE BE:AI_Geschaeftsfall_ID von BE_Belastung gfId2 = SELEKTIERE BE.AI_Geschaeftsfall_ID2 VON BE_Belastung skId2 = SELEKTIERE BE.AI_Sachkonto_ID2 VON BE_Belastung mandant2 = SELEKTIERE BE.AI_Mandant2 VON BE_Belastung art = SELEKTIERE BE.BE01_Art_der_Belastung_Code VON BE_Belastung typ_belasteter_gf = SELEKTIERE GK.GKA07_Typ_des_belasteten_Objekts_Code VON GK_Geschaeftsfall_Konsolidierungssicht VON GF_Geschaeftsfall MIT (GF.AI_Geschaeftsfall_ID ISTGLEICH gfId UND GF.AI_Mandant ISTGLEICH MA) // Für eigene gehaltene Covered bonds oder ABS als belastetes Objekt ist kein Wert der Belastungsquelle zu ermitteln, da es dadurch u.U. zu doppelten Wertedarstellungen kommen könnte (Beispiel: Kredite, die durch einen einbehaltenen Covered bond belastet werden, der wiederum durch ein Repo belastet wird → hier ist in Asset Encumbrance nur die Belastung der Kredite durch das Repo darzustellen). WENN((NICHT(ISTLEER(gfId2)) ODER NICHT(ISTLEER(skId2))) UND NICHT(typ_belasteter_gf ISTGLEICH "Einbehaltener/eigener gehaltener Covered bond oder ABS (CA)") UND NICHT(art ISTGLEICH "Keine Belastung (KB)") DANN WENN(NICHT(ISTLEER(mandant2))) DANN mandant_gf2 = mandant2 SONST mandant_gf2 = MA ENDE WENN(NICHT(ISTLEER(gfId2)) DANN geschaeftsfallkategorie = SELEKTIERE GF.GF00_Geschaeftsfallkategorie_Code VON GF_Geschaeftsfall MIT (GF.AI_Geschaeftsfall_ID ISTGLEICH gfId2 UND GF.AI_Mandant ISTGLEICH mandant_gf2) bilanzseite = SELEKTIERE GK.GKA01_Bilanzseite_Code VON GK_Geschaeftsfall_Konsolidierungssicht VON GF_Geschaeftsfall MIT (GF.AI_Geschaeftsfall_ID ISTGLEICH gfId2 UND GF.AI_Mandant ISTGLEICH mandant_gf2) //Im ersten Schritt wird der Wert der (Eventual-)Verbindlichkeit, die die Belastung darstellt, ermittelt. WENN(bilanzseite ISTGLEICH "Passiv in der Bilanz (PAS)") DANN wert_belastungsquelle = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Netto-Buchwert inkl. Zinsabgrenzungen (NBW)" VON GF_Geschaeftsfall MIT (GF.AI_Geschaeftsfall_ID ISTGLEICH gfId2 UND GF.AI_Mandant ISTGLEICH mandant_gf2) SONST WENN(bilanzseite ENTHAELT ("Aktiv in der Bilanz (AKT)", "Aktiv unter der Bilanz (AUB)", "Passiv unter der Bilanz (PUB)") UND geschaeftsfallkategorie ISTGLEICH "Derivate (Q)") DANN wert_belastungsquelle = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Zinsabgrenzung Haben bilanziell (ZHB)" VON GF_Geschaeftsfall MIT (GF.AI_Geschaeftsfall_ID ISTGLEICH gfId2 UND GF.AI_Mandant ISTGLEICH mandant_gf2) SONST WENN(geschaeftsfallkategorie ENTHAELT ("Empfangene Kreditzusagen (M)")) wert_belastungsquelle = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Nominale (NN)" VON GF_Geschaeftsfall MIT (GF.AI_Geschaeftsfall_ID ISTGLEICH gfId2 UND GF.AI_Mandant ISTGLEICH mandant_gf2) SONST WENN(geschaeftsfallkategorie ISTGLEICH "Leihegabe (AA)") wert_belastungsquelle = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Beizulegender Zeitwert (BZ)" VON GF_Geschaeftsfall MIT (GF.AI_Geschaeftsfall_ID ISTGLEICH gfId2 UND GF.AI_Mandant ISTGLEICH mandant_gf2) ENDE SONST wert_belastungsquelle = SELEKTIERE SKW.Wert VON SKW_Sachkonten_Wert MIT SKW.AI_Wertart_Code ISTGLEICH "Netto-Buchwert inkl. Zinsabgrenzungen (NBW)" VON SK_Sachkonto MIT (SK.AI_Sachkonto_ID ISTGLEICH skId2 UND SK.AI_Mandant ISTGLEICH mandant_gf2) ENDE //Der durch die Beziehung belastete (Anteil des) Wert des Vermögenswerts/Collateral. nbw = SELEKTIERE BEW.Wert VON BE_Belastung_Wert MIT BEW.AI_Wertart_Code ISTGLEICH "Netto-Buchwert inkl. Zinsabgrenzungen (NBW)" WENN(NICHT(ISTLEER(nbw)) DANN wert_belastet = nbw SONST wert_belastet = SELEKTIERE BEW.Wert VON BE_Belastung_Wert MIT BEW.AI_Wertart_Code ISTGLEICH "beizulegender Zeitwert (BZ)" ENDE //Selektiere die Assets, Collateral, etc., die durch dieselbe (Eventual-)Verbindlichkeit belastet sind. Sind weitere Belastungen vorhanden, so wird der Wert der Belastungsquelle aliquot aufgeteilt. wert_belastet_gesamt = 0 WENN(NICHT(ISTLEER(gfId2) DANN weitere_belastungen = SELEKTIERE ALLE BE.AI_Belastung_ID VON BE_Belastung MIT ((BE.AI_Geschaeftsfall_ID2 ISTGLEICH gfId2 UND BE.AI_Mandant ISTGLEICH mandant_gf2 UND ISTLEER(BE.AI_Mandant2)) ODER (BE.AI_Geschaeftsfall_ID2 ISTGLEICH gfId2 UND BE. AI_Mandant2 ISTGLEICH mandant_gf2)) SONST WENN(NICHT(ISTLEER(skId2)) DANN weitere_belastungen = SELEKTIERE ALLE BE.AI_Belastung_ID VON BE_Belastung MIT ((BE.AI_Sachkonto_ID2 ISTGLEICH skId2 UND BE.AI_Mandant ISTGLEICH mandant_gf2 UND ISTLEER(BE.AI_Mandant2)) ODER (BE.AI_Sachkonto_ID2 ISTGLEICH skId2 UND BE. AI_Mandant2 ISTGLEICH mandant_gf2)) ITERIERE weitere_belastung VON 0,Max(weitere_belastungen) nbw = SELEKTIERE BEW.Wert VON BE_Belastung_Wert MIT BEW.AI_Wertart_Code ISTGLEICH "Netto-Buchwert inkl. Zinsabgrenzungen (NBW)" UND BEW.AI_Belastung_ID ISTGLEICH weitere_belastung WENN(NICHT(ISTLEER(nbw))) DANN wert = nbw SONST wert = SELEKTIERE BEW.Wert VON BE_Belastung_Wert MIT BEW.AI_Wertart_Code ISTGLEICH "beizulegender Zeitwert (BZ)" UND BEW.AI_Belastung_ID ISTGLEICH weitere_belastung ENDE wert_belastet_gesamt = wert_belastet_gesamt + wert ITERATION ENDE //Als Rückgabewert dient der Wert der Belastungsquelle, aliquot nach den jeweiligen belasteten Vermögenswerten/Collaterals aufgeteilt (auch unter Berücksichtigung des jeweiligen Anteils der Belastung). rValue = wert_belastungsquelle * wert_belastet/wert_belastet_gesamt RUECKGABE rValue ENDE FUNKTIONSENDE |