Ejemplo n.º 1
0
        /// <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?
        }
Ejemplo n.º 2
0
        /// <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
        }