Example #1
0
        public LoonkostFormViewModel(Loonkost loon, IEnumerable <Doelgroep> doelgroepen)
        {
            DecimalConverter dc = new DecimalConverter();

            Id = loon.Id;
            AantalUrenPerWeek      = loon.AantalUrenPerWeek;
            Beschrijving           = loon.Beschrijving;
            Bedrag                 = dc.ConvertToString(loon.Bedrag);
            BrutoMaandloonFulltime = dc.ConvertToString(loon.BrutoMaandloonFulltime);
            Ondersteuningspremie   = (int)loon.Ondersteuningspremie;
            AantalMaandenIBO       = loon.AantalMaandenIBO;
            IBOPremie              = dc.ConvertToString(loon.IBOPremie);
            doelgroep              = loon.Doelgroep?.DoelgroepId;

            Doelgroep mogelijkVerwijderd = doelgroepen.SingleOrDefault(d => d.DoelgroepId == loon.Doelgroep?.DoelgroepId);

            if (mogelijkVerwijderd == null)
            {
                List <Doelgroep> doelgroeps = doelgroepen.ToList();
                doelgroeps.Add(loon.Doelgroep);
                doelgroepen = doelgroeps;
            }

            DoelgroepSelectList = new SelectList(doelgroepen, nameof(Doelgroep.DoelgroepId),
                                                 nameof(Doelgroep.Omschrijving), doelgroep);
        }
Example #2
0
        public void TestBerekenBrutoloonPerMaand_GegevenGelijkAan0_Returns0()
        {
            _aantalWerkuren = 37;

            _loonkost = new Loonkost
            {
                BrutoMaandloonFulltime = 2000,
                AantalUrenPerWeek      = 0
            };

            Assert.Equal(0, _loonkost.BerekenBrutoloonPerMaand(_aantalWerkuren, PatronaleBijdrage));
        }
Example #3
0
        public void TestBerekenBrutoloonPerMaand_GegevenOntbreekt_Returns0()
        {
            // Werkgever.AantalWerkuren ontbreekt (standaard 0)
            _aantalWerkuren = 0;
            _loonkost       = new Loonkost
            {
                BrutoMaandloonFulltime = 2000,
                AantalUrenPerWeek      = 23
            };

            Assert.Equal(0, _loonkost.BerekenBrutoloonPerMaand(_aantalWerkuren, PatronaleBijdrage));
        }
Example #4
0
        public void TestBerekenGemiddeldeVOPPerMaand_GegevenOntbreekt_Returns0()
        {
            // doelgroep ontbreekt
            _aantalWerkuren = 37;

            _loonkost = new Loonkost
            {
                BrutoMaandloonFulltime = 2000,
                AantalUrenPerWeek      = 23
            };

            Assert.Equal(0, _loonkost.BerekenGemiddeldeVOPPerMaand(_aantalWerkuren, PatronaleBijdrage));
        }
        public LoonkostViewModel(Loonkost loon)
        {
            DecimalConverter dc = new DecimalConverter();

            Id = loon.Id;
            AantalUrenPerWeek      = loon.AantalUrenPerWeek;
            Beschrijving           = loon.Beschrijving;
            Bedrag                 = dc.ConvertToString(loon.Bedrag);
            BrutoMaandloonFulltime = dc.ConvertToString(loon.BrutoMaandloonFulltime);
            Ondersteuningspremie   = (int)loon.Ondersteuningspremie;
            AantalMaandenIBO       = loon.AantalMaandenIBO;
            IBOPremie              = dc.ConvertToString(loon.IBOPremie);
            Doelgroep              = loon.Doelgroep;
        }
Example #6
0
        public void TestBerekenGemiddeldeVOPPerMaand_DoelgroepNull_Returns0()
        {
            _aantalWerkuren = 37;

            _loonkost = new Loonkost
            {
                BrutoMaandloonFulltime = 2000,
                AantalUrenPerWeek      = 23,
                Doelgroep            = null,
                Ondersteuningspremie = 30
            };

            Assert.Equal(0, _loonkost.BerekenGemiddeldeVOPPerMaand(_aantalWerkuren, PatronaleBijdrage));
        }
Example #7
0
        public void TestBerekenTotaleLoonkost_GegevenOntbreekt_Returns0()
        {
            // IBOPremie en AantalMaandenIBO ontbreken
            _aantalWerkuren = 37;

            _loonkost = new Loonkost
            {
                BrutoMaandloonFulltime = 2000,
                AantalUrenPerWeek      = 23,
                Doelgroep            = new Doelgroep(Laaggeschoold, 2500M, 1550M),
                Ondersteuningspremie = 20
            };

            Assert.Equal(0, _loonkost.BerekenTotaleLoonkost(_aantalWerkuren, PatronaleBijdrage));
        }
        public IActionResult VoegToe(Analyse analyse, LoonkostFormViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.Loonkost);
                    DecimalConverter dc   = new DecimalConverter();
                    Loonkost         kost = new Loonkost
                    {
                        Beschrijving           = model.Beschrijving,
                        AantalUrenPerWeek      = model.AantalUrenPerWeek,
                        BrutoMaandloonFulltime = dc.ConvertToDecimal(model.BrutoMaandloonFulltime),
                        Ondersteuningspremie   = model.Ondersteuningspremie,
                        AantalMaandenIBO       = model.AantalMaandenIBO,
                        IBOPremie = dc.ConvertToDecimal(model.IBOPremie)
                    };

                    if (model.doelgroep != null)
                    {
                        int doelgroepid = model.doelgroep ?? 0;
                        kost.Doelgroep = _doelgroepRepository.GetById(doelgroepid);
                    }

                    analyse.Loonkosten.Add(kost);
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();

                    TempData["message"] = Meldingen.VoegToeSuccesvolKost;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "LoonKosten", "VoegToe -- POST --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            return(RedirectToAction("Index"));
        }
Example #9
0
        public void TestSetBedrag_DoetNiets()
        {
            _aantalWerkuren = 37;

            _loonkost = new Loonkost
            {
                BrutoMaandloonFulltime = 2000,
                AantalUrenPerWeek      = 23,
                Doelgroep            = new Doelgroep(Laaggeschoold, 2500M, 1550M),
                Ondersteuningspremie = 20,
                AantalMaandenIBO     = 2,
                IBOPremie            = 564.0M
            };

            Assert.Equal(0, _loonkost.Bedrag);
        }
        public IActionResult Bewerk(Analyse analyse, LoonkostViewModel model)
        {
            try
            {
                analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.Loonkost);
                Loonkost         kost = KostOfBaatExtensions.GetBy(analyse.Loonkosten, model.Id);
                DecimalConverter dc   = new DecimalConverter();
                if (ModelState.IsValid && kost != null)
                {
                    kost.Id                     = model.Id;
                    kost.Beschrijving           = model.Beschrijving;
                    kost.AantalUrenPerWeek      = model.AantalUrenPerWeek;
                    kost.BrutoMaandloonFulltime = dc.ConvertToDecimal(model.BrutoMaandloonFulltime);
                    kost.Doelgroep              = _doelgroepRepository.GetById(model.Doelgroep.DoelgroepId);
                    kost.Ondersteuningspremie   = model.Ondersteuningspremie;
                    kost.AantalMaandenIBO       = model.AantalMaandenIBO;
                    kost.IBOPremie              = dc.ConvertToDecimal(model.IBOPremie);

                    if (kost.Doelgroep == null)
                    {
                        TempData["error"] =
                            "Opgelet! U heeft nog geen doelgroep geselecteerd. Er zal dus nog geen resultaat " +
                            "berekend worden bij deze kost.";
                    }

                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();

                    TempData["message"] = Meldingen.OpslaanSuccesvolKost;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    ModelState.AddModelError("", e.Message);
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "LoonKosten", "Bewerk -- GET --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }
            return(RedirectToAction("Index"));
        }
        private void MaakLoonkosten()
        {
            string laaggeschoold   = "Wn's < 25 jaar laaggeschoold";
            string middengeschoold = "Wn's < 25 jaar middengeschoold";
            string tussen55En60    = "Wn's ≥ 55 en < 60 jaar";

            Poetsvrouw = new Loonkost
            {
                Id = 1,
                BrutoMaandloonFulltime = 1800,
                AantalUrenPerWeek      = 37,
                Doelgroep            = new Doelgroep(laaggeschoold, 2500M, 1550M),
                Ondersteuningspremie = 20,
                AantalMaandenIBO     = 2,
                IBOPremie            = 564.0M
            };

            Secretaresse = new Loonkost
            {
                Id = 2,
                BrutoMaandloonFulltime = 2200,
                AantalUrenPerWeek      = 23,
                Doelgroep            = new Doelgroep(middengeschoold, 2500M, 1000M),
                Ondersteuningspremie = 20,
                AantalMaandenIBO     = 2,
                IBOPremie            = 564.0M
            };

            Postbode = new Loonkost
            {
                Id = 3,
                BrutoMaandloonFulltime = 1900,
                AantalUrenPerWeek      = 35,
                Doelgroep            = new Doelgroep(tussen55En60, 2500M, 1150M),
                Ondersteuningspremie = 20,
                AantalMaandenIBO     = 2,
                IBOPremie            = 564.0M
            };

            Loonkosten = new List <Loonkost>
            {
                Poetsvrouw,
                Secretaresse,
                Postbode
            };
        }
Example #12
0
        public void TestBerekenBrutoloonPerMaand_AlleGegevensIngevuld
            (int werkuren, decimal brutoloon, int urenPerWeek, string omschrijving,
            decimal minBrutoloon, decimal doelgroepvermindering, decimal expected)
        {
            _aantalWerkuren = werkuren;

            _loonkost = new Loonkost
            {
                BrutoMaandloonFulltime = brutoloon,
                AantalUrenPerWeek      = urenPerWeek,
                Doelgroep = new Doelgroep(omschrijving, minBrutoloon, doelgroepvermindering)
            };

            decimal brutoloonPerMaand = _loonkost.BerekenBrutoloonPerMaand(_aantalWerkuren, PatronaleBijdrage);

            // afronden omdat je werkt met decimals, de excel is ook afgerond op 2 decimalen
            brutoloonPerMaand = Math.Round(brutoloonPerMaand, 2);
            Assert.Equal(expected, brutoloonPerMaand);
        }
Example #13
0
        private List <Loonkost> MaakLoonkosten()
        {
            Loonkost poetsvrouw = new Loonkost
            {
                Beschrijving           = "Poetsvrouw",
                BrutoMaandloonFulltime = 1800,
                AantalUrenPerWeek      = 37,
                Doelgroep            = _doelgroepRepository.GetById(1),
                Ondersteuningspremie = 20M,
                AantalMaandenIBO     = 2,
                IBOPremie            = 564.0M
            };

            Loonkost secretaresse = new Loonkost
            {
                Beschrijving           = "Secretaresse",
                BrutoMaandloonFulltime = 2200,
                AantalUrenPerWeek      = 23,
                Doelgroep            = _doelgroepRepository.GetById(2),
                Ondersteuningspremie = 20M,
                AantalMaandenIBO     = 2,
                IBOPremie            = 564.0M
            };

            Loonkost postbode = new Loonkost
            {
                Beschrijving           = "Postbode",
                BrutoMaandloonFulltime = 1900,
                AantalUrenPerWeek      = 35,
                Doelgroep            = _doelgroepRepository.GetById(3),
                Ondersteuningspremie = 20M,
                AantalMaandenIBO     = 2,
                IBOPremie            = 564.0M
            };

            return(new List <Loonkost>
            {
                poetsvrouw,
                secretaresse,
                postbode
            });
        }
Example #14
0
        public void TestBerekenGemiddeldeVOPPerMaand_AlleGegevensIngevuld
            (decimal brutoloon, decimal urenPerWeerk, string omschrijving, decimal minBrutoloon,
            decimal doelgroepvermindering, decimal VOP, decimal expected)
        {
            _aantalWerkuren = 37;

            _loonkost = new Loonkost
            {
                BrutoMaandloonFulltime = brutoloon,
                AantalUrenPerWeek      = urenPerWeerk,
                Doelgroep            = new Doelgroep(omschrijving, minBrutoloon, doelgroepvermindering),
                Ondersteuningspremie = VOP
            };

            decimal gemiddeldeVopPerMaand = _loonkost.BerekenGemiddeldeVOPPerMaand(_aantalWerkuren, PatronaleBijdrage);

            // afronden omdat je werkt met decimals, de excel is ook afgerond op 2 decimalen
            gemiddeldeVopPerMaand = Math.Round(gemiddeldeVopPerMaand, 2);
            Assert.Equal(expected, gemiddeldeVopPerMaand);
        }
Example #15
0
        public void TestBerekenTotaleLoonkost_AlleGegevensIngevuld()
        {
            _aantalWerkuren = 37;

            _loonkost = new Loonkost
            {
                BrutoMaandloonFulltime = 2000,
                AantalUrenPerWeek      = 23,
                Doelgroep            = new Doelgroep(Laaggeschoold, 2500M, 1550M),
                Ondersteuningspremie = 20,
                AantalMaandenIBO     = 2,
                IBOPremie            = 564.0M
            };

            decimal totaleLoonkost = _loonkost.BerekenTotaleLoonkost(_aantalWerkuren, PatronaleBijdrage);

            // afronden omdat je werkt met decimals, de excel is ook afgerond op 2 decimalen
            totaleLoonkost = Math.Round(totaleLoonkost, 2);
            Assert.Equal(14272.00M, totaleLoonkost);
        }
        public IActionResult Verwijder(Analyse analyse, int id)
        {// id is het id van de baat die moet verwijderd worden
            try
            {
                analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.Loonkost);
                Loonkost kost = KostOfBaatExtensions.GetBy(analyse.Loonkosten, id);

                if (kost != null)
                {
                    analyse.Loonkosten.Remove(kost);
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();
                }
            }
            catch (Exception e)
            {
                _exceptionLogRepository.Add(new ExceptionLog(e, "LoonKosten", "Verwijder"));
                _exceptionLogRepository.Save();
                TempData["error"] = Meldingen.VerwijderFoutmeldingKost;
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult Bewerk(Analyse analyse, int id)
        {// id is het id van de baat die moet bewerkt wordens
            try
            {
                analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.Loonkost);
                Loonkost kost = KostOfBaatExtensions.GetBy(analyse.Loonkosten, id);

                if (kost != null)
                {
                    LoonkostFormViewModel model = new LoonkostFormViewModel(kost, _doelgroepRepository.GetAll());

                    return(PartialView("_Formulier", model));
                }
            }
            catch (Exception e)
            {
                _exceptionLogRepository.Add(new ExceptionLog(e, "LoonKosten", "Bewerk -- GET --"));
                _exceptionLogRepository.Save();

                TempData["error"] = Meldingen.OphalenFoutmeldingKost;
            }

            return(RedirectToAction("Index"));
        }
        public void TestGetBy_Loonkosten()
        {
            Loonkost loonkost = KostOfBaatExtensions.GetBy(_dbContext.Loonkosten, 2);

            Assert.Equal(_dbContext.Secretaresse, loonkost);
        }
        public void TestGetBy_GeenGevonden_ReturnsNull()
        {
            Loonkost loonkost = KostOfBaatExtensions.GetBy(_dbContext.Loonkosten, 0);

            Assert.Null(loonkost);
        }
Example #20
0
 public void TestConstructorSetsTypeEnSoort()
 {
     _loonkost = new Loonkost();
     Assert.Equal(Type.Kost, _loonkost.Type);
     Assert.Equal(Soort.Loonkost, _loonkost.Soort);
 }