Bezeichnung des AlgorithmusXEN_Geschuldeter_Betrag_erhaltene_Zusagen_Garantien
KurzbezeichnungGeschuldeter 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ürWertart_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

  • No labels