200 likes | 288 Views
Pensionslücken- Berechnungssystem. Use-Case Diagramm. NEU: XML/DB ändern. Zustandsdiagramm Pensionsberechnung. Zustandsdiagramm Admin - XML - Ändern. Zustandsdiagramm Admin – DB - Ändern. Klassendiagramm WebClient. Klassendiagramm WebAdmin. Klassendiagramm WebService.
E N D
Pensionslücken- Berechnungssystem
Use-Case Diagramm • NEU: XML/DB ändern
Zustandsdiagramm Pensionsberechnung
Zustandsdiagramm Admin - XML - Ändern
Zustandsdiagramm Admin – DB - Ändern
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() { //brutto get gewuenschtes_Pensionsantrittsalter aus Stub_xml get bisherigeBeitragsmonate, Ersatzzeiten aus Stub_XML Beitragsmonate=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 DB Verminderung = Verminderung * (Pensionsantrittsalter - gewuenschtes_Pensionsantrittsalter) (in Jahren) Verminderung darf max maxVerminderung sein Pensions= getBemessungsgrundlage() * Steigerungbetrag() * (1 - Verminderung) }
Pseudocode – Pensionsberechnung 2 else { //Hacklerregelung get Pensionsantrittsalter für Hacklerregelung aus DB wenn gewuenschtes_Pensionsantrittsalter >= PensionsantrittsalterHackler { Pension= getBemessungsgrundlage() * SteigerungsbetragHackler() } else { get Verminderung aus DB Verminderung = Verminderung * (PensionsantrittsalterHackler - gewuenschtes_Pensionsantrittsalter) (in Jahren) Verminderung darf max 15 % sein Pensions = getBemessungsgrundlage() * SteigerungbetragHackler() * (1 - Verminderung) } } } get Geburtsdatum_der_Kinder aus Stub_xml get Kinderzuschuss, LebensjahrKinderzuschuss aus DB für jedes Kind wo Alter kleiner als Lebensjahr ist (zum Zeitpunkt des Pensionsantritts) gibt es Kinderzuschuss get Höchstpension aus DB wenn Pension > Höchstpension, Pension = Höchstpension } back
Pseudocode - Bemessungsgrundlage getBemessungsgrundlage() { get Geschlecht, Geburtsdatum, Gehalt, Anzahl_Kinder aus Stub_xml get Bemessungszeitraum, RichtsatzKindererziehung, Verkürzung_BMZ_Kind aus DB get Pensionsantrittsalter aus DB wenn weiblich, verringere Bemessungszeitraum um Verkürzung_BMZ_Kind pro Kind Bemessungszeitraum muss mindestens 180 Monate sein Berechne ungefähres Gehalt bei Pensionsantritt Berechne Durchschnittswert für Bemessungsgrundlage aufgrund von Alter, Bemessungszeitraum, Gehalt, Pensionsantrittsalter } back
Pseudocode - Steigerungsbetrag Steigerungsbetrag() { get Steigerungsbetrag, maxSteigerungsbetrag, maxBeitragsjahre_bisMaxSteigerungsbetrag aus DB Gesamtsteigerungsbetrag = Steigerungsbetrag * Versicherungszeiten/12 (in Jahren) wenn Versicherungszeiten < maxBeitragsjahre_bisMaxSteigerungsbetrag { Gesamtsteigerungsbetrag darf höchstens maxSteigerungsbetrag sein } } SteigerungsbetragHackler() { get Steigerungsbetrag, maxSteigerungsbetrag, maxBeitragsjahre_bisMaxSteigerungsbetrag aus DB Gesamtsteigerungsbetrag = 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 - Witwenpension berechneWitwenpension() { HöchsprozentsatzWitwenpension, mindWitwenpension Prozentsatz = 70 - 30 * (BRGL der Hinterbliebenen / BRGL des Verstorbenen) Prozentsatz darf höchstens HöchsprozentsatzWitwenpension sein Witwenpension = Prozentsatz * BRGL des Verstorbenen Eigenpension = 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 Pension berechneBUPension() { Get PensionsantrittalterFrühpension aus DB Wenn gewuenschtesPensionsantrittsalter < PensionsantrittalterFrühpension { Versicherungszeit = Versicherungszeit + PensionsantrittalterFrühpension - gewuenschtesPensionsantrittsalter } Gesamtsteigerungsbetrag = Steigerungsbetrag * Versicherungszeiten (in Jahren) Gesamtsteigerungsbetrag darf höchstens maxSteigerungsbetragBU sein BU Pension = Bemessungsgrundlage * Gesamtsteigerungsbetrag } back
Danke für die Aufmerksamkeit! Das PLBS-Team