/// <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? }