/// <summary> /// Beregner arbejdsløshedsdagpenge /// For at få udregningen pr måned sættes ugerArbejdsløs = 4, for et helt år sættes ugerArbejdsløs = 52 og hvis personen har været arbejdsløs i et halvt år beregnes det ved at sætte ugerArbejdsløs = 52/2. /// </summary> /// <param name="år">År der simuleres</param> /// <param name="akasse">Akasse medlemskab</param> /// <param name="dagpengeMåneder">Antal måneder personen allerede har modtaget dagpenge i</param> /// <param name="ugerBeskæftigetSomLønmodtager">Antal uger beskæftiget som lønmodtager inden for de sidste tre år</param> /// <param name="hf">Højst fuldførte uddannelse (DREAMs kategorier)</param> /// <param name="månederArbejdsløs">Antal uger personen skal have dagpenge i/er arbejdsløs i</param> /// <param name="alder">Personens alder</param> /// <param name="arbejdstimer">Arbejdstimer arbejdet, som dagpengesatsen skal nedsættes ift</param> /// <param name="deltidsforsikret">Sand hvis personen kun er deltidsforsikret</param> /// <param name="arbejdsindkomst">Indkomst, som dagpengesatsen skal nedsættes ift. Omregnes til arbejdstimer og anvendes kun hvis arbejdstimer ikke er angivet</param> /// <param name="månedslønFørArbejdsløshed">Seneste månedsløn</param> /// <returns>Arbejdsløshedsdagpenge pr år</returns> public static int Dagpenge(int alder, Boolean deltidsforsikret, int arbejdsindkomst, double arbejdstimer, int år, Boolean akasse, int ugerBeskæftigetSomLønmodtager, int månedslønFørArbejdsløshed, Education hf, int dagpengeMåneder = 0, int månederArbejdsløs = 1) { //Dagpenge til nyuddannede og værnepligtige rammes automatisk idet månedslønFørArbejdsløshed er meget lille //Krav: - Medlem af en a-kasse i mindst ét år. - Beskæftiget som lønmodtager i mindst 52 uger inden for de sidste tre år, hvis du er fuldtidsforsikret. - Beskæftiget som lønmodtager i mindst 34 uger inden for de sidste tre år, hvis du er deltidsforsikret. //Du har ret til arbejdsløshedsdagpenge i to år (104 uger) inden for en periode på tre år, hvis du opfylder betingelserne. if (!akasse || dagpengeMåneder > (104 / 4) || ugerBeskæftigetSomLønmodtager < 34 || (!deltidsforsikret && ugerBeskæftigetSomLønmodtager < 52)) { return(0); //opfylder ikke krav for dagpenge } int dagpenge; if (alder < 25 && hf < Education.ErhFag && ugerBeskæftigetSomLønmodtager < (52 * 2) && dagpengeMåneder >= 26 / 4) //særlige regler for unge uden uddannelse efter 26. uge... { //hvis du er under 25 år, og du ikke har en dimittenduddannelse (en uddannelse over gymnasieniveau af mindst 1½ års varighed), og du ikke har arbejdet mindst 3.848 timer (to år på fuld tid) inden for de seneste tre år, så får du kun udbetalt 50 % af den maksimale dagpengesats (408 kroner per dag i 2014 tal) fra din 26. ledighedsuge til din 104. ledighedsuge. dagpenge = Convert.ToInt32(Satser.DpMaksimalSats() * 0.5); //fra 26. uge!! } else { //Sats (mindstesats er 82% af maksimalsats). dagpenge = Convert.ToInt32(Math.Max(0.82 * Satser.DpMaksimalSats(), Math.Min(Satser.DpMaksimalSats(), månedslønFørArbejdsløshed * 12 * 0.9))); //Du kan dog højst få 90 pct. af den løn, du tjente, før du blev arbejdsløs. } if (deltidsforsikret) { dagpenge *= 2 / 3; //check type-cast! } //reduktion ved supplerende dagpenge if (arbejdstimer == 0) { arbejdstimer = arbejdsindkomst / Satser.Timesats(); //omregn fra indkomst til timer } arbejdstimer *= 12 / 52d; //omregnes fra timer pr måned til timer pr uge double reduktion = arbejdstimer > 30 ? 0 : 1 - arbejdstimer / 37d; //Aftrapning af ydelse ved supplerende dagpenge int månederMedDagpenge = Math.Min(26 - dagpengeMåneder, månederArbejdsløs); double andelAfÅrligtBeløb = månederMedDagpenge / 12d; //der skal kun udbetales dagpenge i de uger, personen skal have dagpenge i.... return(Convert.ToInt32(dagpenge * reduktion * andelAfÅrligtBeløb)); //Ikke implementeret: //Særligt genoptjeningskrav (kravet samme for alle her) //Seniorjob? }
/// <summary> /// /// </summary> /// <param name="akasse">Om man har været medlem af en a-kasse i mellem 25 og 30 år og fortsat er medlem af akasse</param> /// <param name="indbetaltEfterlønsbidrag">Om man har indbetalt efterlønsbidrag i mellem 25 og 30 år</param> /// <param name="retTilDagpengeVedLedighed">Opfylder betingelserne for ret til a-dagpenge ved ledighed</param> /// <param name="tilRådighed">Er rask og står til rådighed for arbejdsmarkedet den dag, man får efterlønsbeviset</param> /// <param name="tidligEfterløn">går på efterløn tidligere end 3 år før folkepensionsalderen</param> /// <param name="andenPension">Depotværdien ved efterlønsalderen, al kapitalpension, privat ratepension, Ophørende livrente (ikke-udbetalt), Ophørende indeks (ikke-udbetalt), Indefrosne dyrtidsportioner (ikke-udbetalt)</param> /// <param name="udbetaltAndenPension">Udbetalt pension oprettet som led i et ansættelsesforhold. Omfatter ratepension og livsvarig livrente og ophørende livsrente</param> /// <param name="privatLivsvarigLivsrente">Private livsvarig livsrente-pension (udbetalt eller ikke-udbetalt) samt ikke-privat ikke-udbetalt livsvarig livsrente-pension</param> /// <returns></returns> public static int Efterløn(int alder, int år, int udbetaltAndenPension, int privatLivsvarigLivrente, int andenPension, Boolean deltidsforsikret = false, Boolean tidligEfterløn = false, Boolean retTilDagpengeVedLedighed = true, Boolean akasse = true, Boolean indbetaltEfterlønsbidrag = true, Boolean tilRådighed = true) { int efterlønsalder; int født = år - alder; if (født < 1954) { efterlønsalder = 60; } else if (født < 1955) { efterlønsalder = 61; } else if (født < 1956) { efterlønsalder = 62; } else if (født < 1959) { efterlønsalder = 63; } else { efterlønsalder = 64; } //Krav: if (!akasse || !indbetaltEfterlønsbidrag || !retTilDagpengeVedLedighed || !tilRådighed || alder < efterlønsalder) { return(0); //Antages at man har bopæl i Danmark mv. at man har fået indberettet værdien af sin pensionsformue ved opnået efterlønsalder } int dagpengesats = deltidsforsikret ? Convert.ToInt32(Satser.DpMaksimalSats() * 2 / 3d) : Satser.DpMaksimalSats(); //deltidsforsinkerede får 2/3 af maksimal sats int efterløn; if (født < 1959 && tidligEfterløn) { efterløn = Convert.ToInt32(0.91 * dagpengesats); //Er man født den 1. januar 1956 – 30. juni 1959 og går på efterløn tidligere end 3 år før folkepensionsalderen, vil efterlønnen være maks. 91 pct. af dagpengesatsen i hele efterlønsperioden. } else { efterløn = dagpengesats; //Er man født den 1. januar 1956 eller senere og tidligst går på efterløn 3 år før folkepensionsalderen, er efterlønssatsen maks. 100 pct. af dagpengesatsen i hele efterlønsperioden. } //Modregning: int bundfradrag = Satser.elBundfradrag(); //Andre pensionsordninger double andenPensioniBeregning = andenPension * 0.05; double modregning; if (født < 1956) { modregning = Math.Max(0, (andenPensioniBeregning - bundfradrag) * 0.6); //For kapitalpensioner, ratepensioner mv. er modregningsgrundlaget 5 pct. af depotværdien ved efterlønsalderen. Fradraget sker herefter med 60 pct. bundfradrag = andenPensioniBeregning >= bundfradrag ? 0 : bundfradrag - Convert.ToInt32(andenPensioniBeregning); //eventuel resterende del af bundfradrag } else { modregning = Math.Max(0, andenPensioniBeregning * 0.8); //For kapitalpensioner, ratepensioner mv. er modregningsgrundlaget 5 pct. af depotværdien ved efterlønsalderen. Fradraget sker herefter med 80 pct. } if (født < 1956) { modregning += udbetaltAndenPension * 0.5; } else { modregning += udbetaltAndenPension * 0.64; } if (født < 1956) { modregning += (privatLivsvarigLivrente * 0.8 - bundfradrag) * 0.6; } else { modregning += privatLivsvarigLivrente * 0.8 * 0.8; } return(Convert.ToInt32((efterløn - modregning) / 12)); //Ikke implementeret: //Særlige betingelser for selvstændige //Indbetaling af efterlønsbidrag //Tilbagebetaling af efterlønsbidrag //Fortrydelsesret //Udskydelse af tidspunktet, hvor man går på efterløn //Modregning af pensioner, hvis man er født før den 1. januar 1956 og har udskudt sin efterløn //Indberetning af pensionsformue //Betingelser for af få efterløn som fuldtidsforsikret //Særregel for løbende pensioner, der er oprettet som led i et ansættelsesforhold }