Pensionslücken- Berechnungssystem
description
Transcript of Pensionslücken- Berechnungssystem
Peter BERAN 0200945
Alexander FRICK 0206513
Gernot HABEL 0205554
Andreas MERTL 0202822
Philipp WEINHOFER 0206311
Pensionslücken-Berechnungssystem
Use-Case Diagramm
• NEU: XML/DB ändern
ZustandsdiagrammPensionsberechnung
ZustandsdiagrammAdmin - XML - Ändern
ZustandsdiagrammAdmin – DB - Ändern
Klassendiagramm WebClient
Klassendiagramm WebAdmin
Klassendiagramm WebService
Klassendiagramm Kommunikation
Gesamtsicht
XML - Datenstruktur
Pseudocode getPensionsluecke { get Witwenpension, BUPension, Ausgleichszulage aus Stub_xml wenn (Witwenpension) pension = berechneWitwenpension() else { wenn (BUPension) pension = berechneBUPension() else pension = berechnePension() } Pension wird auf Ausgleichszulage aufgewertet (falls Anspruch
besteht) Nettopension()
get zusatzpension aus Stub_xml überprüfe zusatzpension auf Maximalbetrag Pensionslücke = Gehalt – Pension – Freiwillige Zusatzpension (muss
aber positiv sein) Schreibe alle Daten ins XML und liefere an Client zurück }
Pseudocode – Pensionsberechnung 1
berechnePension() {//bruttoget gewuenschtes_Pensionsantrittsalter aus Stub_xmlget bisherigeBeitragsmonate, Ersatzzeiten aus Stub_XMLBeitragsmonate=bisherigeBeitragsmonate + (Monate zischen Pensionsantritt und jetzt)Versicherungszeiten = Beitragsmonate + Ersatzzeiten wenn gewuenschtes_Pensionsantrittsalter >= Pensionsantrittsalter {
Pension = getBemessungsgrundlage() * Steigerungsbetrag()} else {
wenn (Beitragszeit < benötigteVersicherungsdauerFuerHacklerregelung oder check Geburtsdatum für Hacklerregelung aus DB!=OK) {
get Verminderung aus DBVerminderung = Verminderung * (Pensionsantrittsalter - gewuenschtes_Pensionsantrittsalter) (in Jahren)Verminderung darf max maxVerminderung seinPensions= getBemessungsgrundlage() * Steigerungbetrag() * (1 - Verminderung)
}
Pseudocode – Pensionsberechnung 2
else {//Hacklerregelungget Pensionsantrittsalter für Hacklerregelung aus DBwenn gewuenschtes_Pensionsantrittsalter >= PensionsantrittsalterHackler {Pension= getBemessungsgrundlage() * SteigerungsbetragHackler()}else {
get Verminderung aus DBVerminderung = Verminderung * (PensionsantrittsalterHackler - gewuenschtes_Pensionsantrittsalter) (in Jahren)Verminderung darf max 15 % seinPensions = getBemessungsgrundlage() * SteigerungbetragHackler
() * (1 - Verminderung)}
}}get Geburtsdatum_der_Kinder aus Stub_xmlget Kinderzuschuss, LebensjahrKinderzuschuss aus DBfür jedes Kind wo Alter kleiner als Lebensjahr ist (zum Zeitpunkt des Pensionsantritts) gibt es Kinderzuschussget Höchstpension aus DBwenn Pension > Höchstpension, Pension = Höchstpension
}
back
Pseudocode - Bemessungsgrundlage
getBemessungsgrundlage() {get Geschlecht, Geburtsdatum, Gehalt, Anzahl_Kinder aus Stub_xmlget Bemessungszeitraum, RichtsatzKindererziehung, Verkürzung_BMZ_Kind aus DBget Pensionsantrittsalter aus DBwenn weiblich, verringere Bemessungszeitraum um Verkürzung_BMZ_Kind pro KindBemessungszeitraum muss mindestens 180 Monate seinBerechne ungefähres Gehalt bei PensionsantrittBerechne Durchschnittswert für Bemessungsgrundlage aufgrund von Alter, Bemessungszeitraum, Gehalt, Pensionsantrittsalter
}
back
Pseudocode - Steigerungsbetrag
Steigerungsbetrag() {get Steigerungsbetrag, maxSteigerungsbetrag, maxBeitragsjahre_bisMaxSteigerungsbetrag aus DBGesamtsteigerungsbetrag = Steigerungsbetrag * Versicherungszeiten/12 (in Jahren)wenn Versicherungszeiten < maxBeitragsjahre_bisMaxSteigerungsbetrag {
Gesamtsteigerungsbetrag darf höchstens maxSteigerungsbetrag sein}
}
SteigerungsbetragHackler() {get Steigerungsbetrag, maxSteigerungsbetrag, maxBeitragsjahre_bisMaxSteigerungsbetrag aus DBGesamtsteigerungsbetrag = Steigerungsbetrag * Versicherungszeiten/12 (in Jahren)wenn Versicherungszeiten < maxBeitragsjahre_bisMaxSteigerungsbetrag {
Gesamtsteigerungsbetrag darf höchstens maxSteigerungsbetrag sein}
}
back
Pseudocode - Nettopension Nettopension() { get Krankenversicherung, KrankenversicherungFürEhepartner,
maxPensionOhneLohnsteuer, maxPensionOhneLohnsteuerFürAlleinverdiener aus DB
get Alleinverdiener, mitversichert aus Stub_xml wenn alleinverdiener { wenn (Pension >
maxPensionOhneLohnstuerFuerAlleinverdiener) Steuern abziehen } else { wenn (Pension > maxPensionOhneLohnstuer) Steuern
abziehen } Pension = Pension * (1-Krankenversicherung) wenn Ehepartner mitversichert Pension = Pension * (1-
KrankenversicherungFürEhepartner) }
back
Pseudocode - WitwenpensionberechneWitwenpension() {
HöchsprozentsatzWitwenpension, mindWitwenpensionProzentsatz = 70 - 30 * (BRGL der Hinterbliebenen / BRGL des Verstorbenen)Prozentsatz darf höchstens HöchsprozentsatzWitwenpension seinWitwenpension = Prozentsatz * BRGL des VerstorbenenEigenpension = berechnePension() oder berechneBUPension()wenn (Witwenpension + Eigenpension < mindWitwenpension {
Witwenpension = mindWitwenpension - Eigenpension Wenn (Witwenpension/BRGL des Verstorbenen *100 >
HöchsprozentsatzWitwenpension) {Witwenpension = HöchsprozentsatzWitwenpension * BRGL
des Verstorbenen}
}Pension = Witwenpension + Eigenpension
}
back
Pseudocode – BU PensionberechneBUPension() {
Get PensionsantrittalterFrühpension aus DBWenn gewuenschtesPensionsantrittsalter < PensionsantrittalterFrühpension {
Versicherungszeit = Versicherungszeit + PensionsantrittalterFrühpension - gewuenschtesPensionsantrittsalter}Gesamtsteigerungsbetrag = Steigerungsbetrag * Versicherungszeiten (in Jahren)Gesamtsteigerungsbetrag darf höchstens maxSteigerungsbetragBU seinBU Pension = Bemessungsgrundlage * Gesamtsteigerungsbetrag
}
back
Danke für die Aufmerksamkeit!
Das PLBS-Team