Bezeichnung des AlgorithmusXEN_Neukreditvergabe
KurzbezeichnungAlgorithmus zur Ableitung der Wertart "Neukreditvergabe (NV)" für Kredite
Verbale Beschreibung/Beispiele

Der Algorithmus ermittelt die Neukreditvergabe gem. EZB.

Da notleidende Kredite bzw. Kredite, die im Rahmen einer Stundung ("Forbearance") nicht zu marktüblichen Konditionen vergeben werden, nicht unter Neukreditvergabe fallen, sind diese bei der Selektion aller relevanten Datensätze mithilfe der Attribute GFA127_Performing_gem_FinRep_Kennzeichen und GFA129_Stundungsmassnahmen_Code auszuschließen.

Wenn es sich nicht um notleidende Kredite oder Stundungen aber um eine der Geschaeftsfallkategorien "Wechselkredit (B)", "Barvorlage (E)", "Operating Leasing (F)", "Finance Leasing (G)", "Kreditkartenkredit (C)", "Revolvierender Kredit (exkl. Überziehungskredit) (V)", "Überziehungskredit (W)", "Einmalkredit (exkl. Kreditlinie) (X)", "Kreditlinie (Y)" handelt, werden diese Datensätze selektiert. Mehrzweckrahmen-Geschäfte (Kredite mit GF196_Mehrzweckrahmen_Kennzeichen = WAHR) sind vom Algorithmus ausgenommen. In den folgenden drei Fällen wird eine Neukreditvergabe ermittelt:

  • Wenn der AI_Ereignisart_Code der selektierten Geschäftsfälle "Zuteilung Bauspardarlehen (ZB)" ist und es im Ereignis eine Verknüpfung zu einer Zwischenfinanzierung der Vorperiode per AI_Geschaeftsfall_ID2 gibt, so wird die Differenz zum Rahmen der Zwischenfinanzierung als Rückgabewert definiert.
  • Wenn der AI_Ereignisart_Code der selektierten Geschäftsfälle nicht "Forderungskauf (FK)" ist und diesen Datensatz in der Vorperiode nicht gibt, werden diese Geschäftsfälle selektiert.
  • Wenn es sich um eine revolvierende Ausnutzung ohne Sublimit unter einem Mehrzweckrahmen handelt, wird die Differenz des "Ausstehenden Nominalwert (ONA)" zum Vormonat gebildet und die Erhöhung gegenüber der Vorperiode in EUR zurückgegeben. Sollte diese Differenz einen negativen Wert annehmen, so wird 0 als Rückgabewert definiert.
  • Wenn der AI_Ereignisart_Code der selektierten Geschäftsfälle eine "Rahmenerhöhung (RA)" ist, wird die Differenz zum Vormonat gebildet und somit die Erhöhung gegenüber der Vorperiode in EUR zurückgegeben. Sollte diese Differenz einen negativen Wert annehmen, so wird 0 als Rückgabewert definiert.

Hinweise:

Kommt vor in/wird verwendet fürWertart_CL
Formale Beschreibung

FUNKTION XEN_Neukreditvergabe(AI_Mandant MA, AI_Geschaeftsfall_ID GFID, AI_Stichtag_Datum date)

//Geschäfte, die innerhalb eines Mehrzweckrahmens abgeschlossen werden, lösen keine Neukreditvergabe aus.

mehrzweckrahmen_kennzeichen = SELEKTIERE GF.GF196_Mehrzweckrahmen_Kennzeichen VON GF_Geschaeftsfall

WENN (mehrzweckrahmen_kennzeichen ISTGLEICH FALSCH) DANN

//Selektion relevanter Geschaeftsfallkategorien

relevanteGFKategorie = FALSCH

gfKategorie = SELEKTIERE GF.GF00_Geschaeftsfallkategorie_Code VON GF_Geschaeftsfall

WENN (gfKategorie ENTHAELT ("Wechselkredit (B)", "Barvorlage (E)", "Operating Leasing (F)", "Finance Leasing (G)", "Kreditkartenkredit (C)", "Revolvierender Kredit (exkl. Überziehungskredit) (V)", "Überziehungskredit (W)", "Einmalkredit (exkl. Kreditlinie) (X)", "Kreditlinie (Y)")) DANN

relevanteGFKategorie = WAHR

ENDE

//Ermittlung des Performing- und Stundungs-Status des betrachteten Geschäftsfalls

performing = SELEKTIERE GF.GFA127_Performing_gem_FinRep_Kennzeichen VON GF_Geschaeftsfall

umschuldungJN = FALSCH

WENN (GFA129_Stundungsmassnahmen_Code ENTHAELT ("Instrumente mit geändertem, unter den Marktkonditionen liegendem Zinssatz (Z)", "Instrumente mit anderen geänderten vertraglichen Bedingungen (V)", "Refinanzierung (R)")) DANN

umschuldungJN = WAHR 

ENDE

//Ermittlung von Ereignissen, welche dem betrachteten Geschaeftsfall innerhalb der aktuellen Periode ((date-1), date) zugeordnet wurden

Ereignisse = SELEKTIERE EE.AI_Ereignisart_Code VON EE_Ereignis MIT (EE.AI_Geschaeftsfall_ID ISTGLEICH GFID UND ((date-1) < EE.AI_Ereignis_Datum <= date))

//Geschaeftsfall in der vorangegangenen Periode

GFt0 = XEN_GF_Vorperiode(MA, GFID, date)

MAt0 = XEN_Mandant_Vorperiode(MA, GFID, date)

//Selektion einer eventuell vorhandenen Zwischenfinanzierung (für Bauspardarlehen)

zwischenfinanzierung_bauspardarlehen = SELEKTIERE EE.AI_Geschaeftsfall_ID2 VON EE_Ereignis MIT (EE.AI_Ereignisart_Code ISTGLEICH "Zuteilung Bauspardarlehen (ZB)") UND EE. AI_Geschaeftsfall_ID ISTGLEICH GFID UND ((date-1) < EE.AI_Ereignis_Datum <= date))

//Selektion von Währung und Kurs

waehrung = SELEKTIERE GF.GF03_Geschaeftsfall_Waehrung_Code VON GF_Geschaeftsfall

ultimokurs = SELEKTIERE WK02_Tages_Ultimokurs VON WK_Waehrungskurs MIT ((WK.AI_Waehrungskurs_Datum ISTGLEICH AI_Stichtag_Datum) UND (WK.AI_Waehrung_Code ISTGLEICH waehrung))

//Selektion revolvierender Ausnutzungen von Mehrzweckrahmen (ohne Sublimit)

revAusnutzungOhneSublimit = FALSCH

rahmenbeziehung = SELEKTIERE GB.AI_Geschaeftsfall_ID VON GB_Geschaeftsfall_Sachkonto_Beziehung MIT ((GB.GB01_Beziehungsart_Code ISTGLEICH "Rahmengeschäftsfall Beziehung (RB)") UND (GB.AI_Geschaeftsfall_ID2 ISTGLEICH GFID))

SublimitJN = SELEKTIERE GF.GF211_Sublimit_Kennzeichen VON GF_Geschaeftsfall

WENN (NICHT(ISTLEER(rahmenbeziehung)) UND gfKategorie ENTHAELT ("Revolvierender Kredit (exkl. Überziehungskredit) (V)", "Überziehungskredit (W)") UND SublimitJN ISTGLEICH FALSCH) DANN

revAusnutzungOhneSublimit = WAHR

ENDE

rValue = 0

WENN (relevanteGFKategorie ISTGLEICH WAHR UND performing ISTGLEICH WAHR UND umschuldungJN ISTGLEICH FALSCH) DANN

//1. Fall: Zuteilung von Bauspardarlehen nach Zwischenfinanzierung → Neukreditvergabe = Differenz "kommunizierter Gesamtrahmen (KGR)" zur Zwischenfinanzierung der Vorperiode.

WENN (ISTLEER(GFt0) UND Ereignisse ENTHAELT ("Zuteilung Bauspardarlehen (ZB)" UND NICHT(ISTLEER(zwischenfinanzierung_bauspardarlehen)) DANN

valuet0 = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH zwischenfinanzierung_bauspardarlehen UND GFW.AI_Wertart_Code ISTGLEICH "kommunizierter Gesamtrahmen (KGR)" UND GFW.AI_Wertmesseinheit_Code ISTGLEICH "Originalwährung (ORW)" UND GFW. AI_Stichtag_Datum ISTGLEICH (date-1))

valuet1 = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH GFID UND GFW.AI_Wertart_Code ISTGLEICH "kommunizierter Gesamtrahmen (KGR)" UND GFW.AI_Wertmesseinheit_Code ISTGLEICH "Originalwährung (ORW)" UND GFW. AI_Stichtag_Datum ISTGLEICH date)

WENN (valuet1 > valuet0) DANN

rValue = (valuet1 - valuet0) / ultimokurs

ENDE

//2. Fall: Beim betrachteten Geschaeftsfall handelt es sich um einen neuen Geschaeftsfall, der nicht aufgrund eines "Forderungskaufes" eine neue AI_Geschaeftsfall_ID darstellt → Neukreditvergabe = "kommunizierter Gesamtrahmen (KGR)"

SONST WENN(NICHT(Ereignisse ENTHAELT ("Forderungskauf (FK)")) UND ISTLEER(GFt0)) DANN

komRahmen = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "kommunizierter Gesamtrahmen (KGR)" UND GFW.AI_Wertmesseinheit_Code ISTGLEICH "Euro-Gegenwert (EUR)" VON GF_Geschaeftsfall

rValue = rValue + komRahmen

//3. Fall: Es handelt sich um eine revolvierende Ausnutzung ohne Sublimit unter einem Mehrzweckrahmen und nicht um einen Forderungskauf → Neukreditvergabe = Differenz "Ausstehender Nominalwert (ONA)" zum Vormonat

SONST WENN (NICHT(Ereignisse ENTHAELT ("Forderungskauf (FK)")) UND revAusnutzungOhneSublimit ISTGLEICH WAHR) DANN

valuet0 = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH GFt0 UND GFW.AI_Mandant ISTGLEICH MAt0 UND GFW.AI_Wertart_Code ISTGLEICH "Ausstehender Nominalwert (ONA)" UND GFW.AI_Wertmesseinheit_Code ISTGLEICH "Originalwährung (ORW)" UND GFW.AI_Stichtag_Datum ISTGLEICH (date-1))

valuet1 = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH GFID UND GFW.AI_Wertart_Code ISTGLEICH "Ausstehender Nominalwert (ONA)" UND GFW.AI_Wertmesseinheit_Code ISTGLEICH "Originalwährung (ORW)" UND GFW. AI_Stichtag_Datum ISTGLEICH date)

WENN (valuet1 > valuet0) DANN

rValue = (valuet1 valuet0) / ultimokurs

ENDE

//4. Fall: In der aktuellen Periode fand eine "Rahmenerhöhung" statt → Neukreditvergabe = Differenz "kommunizierter Gesamtrahmen (KGR)" zum Vormonat

SONST WENN (Ereignisse ENTHAELT ("Rahmenerhöhung (RA)")) DANN

valuet0 = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH GFt0 UND GFW.AI_Mandant ISTGLEICH MAt0 UND GFW.AI_Wertart_Code ISTGLEICH "kommunizierter Gesamtrahmen (KGR)" UND GFW.AI_Wertmesseinheit_Code ISTGLEICH "Originalwährung (ORW)" UND GFW.AI_Stichtag_Datum ISTGLEICH (date-1))

valuet1 = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH GFID UND GFW.AI_Wertart_Code ISTGLEICH "kommunizierter Gesamtrahmen (KGR)" UND GFW.AI_Wertmesseinheit_Code ISTGLEICH "Originalwährung (ORW)" UND GFW. AI_Stichtag_Datum ISTGLEICH date)

WENN (valuet1 > valuet0) DANN

rValue = (valuet1 valuet0) / ultimokurs

ENDE

ENDE

WENN (rValue > 0) DANN

RUECKGABE rValue

ENDE

ENDE

FUNKTIONSENDE

  • No labels