Bezeichnung des Algorithmus | XEN_Geschuldeter_Betrag_erhaltene_Zusagen_Garantien |
Kurzbezeichnung | Geschuldeter Betrag erhaltene Zusagen und Garantien |
Verbale Beschreibung/Beispiele | Algorithmus zur Ermittlung der Wertart "Geschuldeter Betrag - erhaltene Zusagen und Garantien (GBE)" Der Algorithmus berechnet jenen Betrag, den der Melder der Gegenpartei (in Form erhaltener Zusagen und Garantien) schuldet. Dabei werden alle Arten von Eventualverbindlichkeiten mit ihrem Ausstehenden Nominalwert berücksichtigt. Sofern die Gegenpartei Teil einer Gruppe verbundener Kunden, einer Identer Kunde-Zusammenfassung, einer Natürliche Person-Einzelunternehmen-Zusammenfassung oder einer Hauptanstalt-Zweiganstalt-Beziehung ist, so wird sie nicht einzeln, sondern innerhalb der Gruppe betrachtet. Der Algorithmus stellt zuerst fest, ob es sich um eine konzernintern Einheiten handelt - diese werden ausgeschlossen. Im nächsten Schritt wird festgestellt, ob die Einheit Teil einer relevanten Einheitenzusammenfassung ist - in diesem Fall wird sie vom Algorithmus ausgeschlossen, da sie im Rahmen der übergeordneten Einheit in der Zusammenfassung berücksichtigt wird. Standalone Einheiten sind einzeln zu betrachten. Anschließend werden alle relevanten Geschäftsfälle oder Sicherheiten selektiert, die die Einheit oder Zusammenfassung besitzt. Dieses werden mit ihrem entsprechenden Wert in den Wert "Geschuldeter Betrag - erhaltene Zusagen und Garantien (GBE)" einberechnet. |
Kommt vor in/wird verwendet für | Wertart_CL |
Formale Beschreibung | FUNKTION XEN_Geschuldeter_Betrag_erhaltene_Zusagen_Garantien(AI_Einheitennummer_ID emId, AI_Stichtag_Datum repDate, AI_Kons_ID konsId) intragroup = SELEKTIERE EM.EMA78_Bilanzieller_Konsolidierungskreis_Kennzeichen VON EM_Einheit_MS //Sollten mehrere der selektierten AI_Zusammenfassungstyp_Code vorhanden sein, so ist vorrangig der Typ "GVK" zu selektieren. ez_uebergeordnete = SELEKTIERE ALLE EZ_Einheiten_Zusammenfassung_MS MIT (EZ.AI_Zusammenfassungstyp_Code ENTHAELT ("Gruppe verbundener Kunden (GVK)", "Identer Kunde (IDK)", "Natürliche Person - Einzelunternehmen (NPE)", "Hauptanstalt-Zweiganstalt (HZ)") UND EZ.AI_Einheitennummer_ID ISTGLEICH emId) ez_untergeordnete = SELEKTIERE ALLE EZ_Einheiten_Zusammenfassung_MS MIT (EZ.AI_Zusammenfassungstyp_Code ENTHAELT ("Gruppe verbundener Kunden (GVK)", "Identer Kunde (IDK)", "Natürliche Person - Einzelunternehmen (NPE)", "Hauptanstalt-Zweiganstalt (HZ)") UND EZ.AI_Gruppen_Einheitennummer_ID ISTGLEICH emId) //Konzerninterne Einheiten werden vom Algorithmus ausgeschlossen. WENN(intragroup ISTGLEICH FALSCH) DANN //Sofern es keine übergeordnete Einheit gibt, so ist die Einheit entweder selbst die übergeordnete oder es handelt sich um eine standalone Einheit. Einheiten, die Teil einer GvK oder in einer der anderen relevanten Einheitenzusammenfassungen untergeordnet sind, werden vom Algorithmus ausgeschlossen. Die übergeordnete Einheit ist durch eine eigene Einheit repräsentiert. WENN(ISTLEER(ez_uebergeordnete)) DANN //Sofern es untergeordnete Einheiten gibt, so sind deren Geschäfte im Algorithmus bei der übergeordneten Einheit mit zu berücksichtigen. WENN(NICHT(ISTLEER(ez_untergeordnete))) DANN gfIds = SELEKTIERE ALLE KR.AI_Geschaeftsfall_ID VON KR_Kundenrollen MIT (KR.AI_Rolle_Code ISTGLEICH "Inhaber (IH)" UND (KR.AI_Einheitennummer_ID ENTHAELT ez_untergeordnete ODER KR.AI_Einheitennummer_ID ISTGLEICH emId)) stIds = SELEKTIERE ALLE KR.AI_Sicherheiten_ID VON KR_Kundenrollen MIT (KR.AI_Rolle_Code ISTGLEICH "Der Sicherheit zugeordnete Einheit (SE)" UND (KR.AI_Einheitennummer_ID ENTHAELT ez_untergeordnete ODER KR.AI_Einheitennummer_ID ISTGLEICH emId)) //Es handelt sich um eine Standalone-Einheit. SONST gfIds = SELEKTIERE ALLE KR.AI_Geschaeftsfall_ID VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Inhaber (IH)" VON EM_Einheit_MS stIds = SELEKTIERE ALLE KR.AI_Sicherheiten_ID VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Der Sicherheit zugeordnete Einheit (SE)" VON EM_Einheit_MS ENDE rValue = 0 ITERIERE gfId VON 0, Max(gfIds) offb_typ = SELEKTIERE GF.GFA203_Erhaltene_Zusagen_Code VON GF_Geschaeftsfall MIT GF.AI_Geschaeftsfall_ID ISTGLEICH gfId nn = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Nominale (NN)" UND GFW.AI_Geschaeftsfall_ID ISTGLEICH gfId WENN(NICHT(offb_typ ISTGLEICH NULL)) DANN rValue = rValue + nn ENDE ITERATION ENDE ITERIERE stId VON 0, Max(stIds) offb_typ = SELEKTIERE ST.STA15_Erhaltene_Garantien_Sicherheiten_Code VON ST_Sicherheiten_Stammdaten MIT ST.AI_Sicherheiten_ID ISTGLEICH stId WENN(offb_typ ENTHAELT ("Kreditzusagen (T1)", "Finanzielle Garantien (T2)", "Sonstige Zusagen (T3)")) DANN sicherheiten_zerlegungen = SELEKTIERE ALLE SZ.AI_Exposure_ID VON SZ_Sicherheiten_Zerlegung MIT (SZ.AI_Sicherheiten_ID ISTGLEICH stId UND SZ.AI_Zerlegungsansatz_Code ISTGLEICH "FinRep (FIN)") ITERIERE expId VON 0, Max(sicherheiten_zerlegungen) bel = SELEKTIERE SZW.Wert VON SZW_Sicherheiten_Zerlegungs_Wert MIT (SZW.AI_Wertart_Code ISTGLEICH "Anrechenbarer Wert der Sicherheit (BEL)" UND SZW.AI_Sicherheiten_ID ISTGLEICH stId UND SZW.AI_Exposure_ID ISTGLEICH expId) rValue = rValue + bel ENDE ENDE ITERATION ENDE RUECKGABE rValue ENDE ENDE FUNKTIONSENDE |