public void TestGetBy_ExtaKosten()
        {
            ExtraKost extrakost = KostOfBaatExtensions.GetBy(_dbContext.ExtraKosten, 3);

            Assert.Equal(400, extrakost.Bedrag);
            Assert.Equal("Boeken en ander studiemateriaal", extrakost.Beschrijving);
        }
        public void TestGetBy_MedewerkerNiveauBaat()
        {
            MedewerkerNiveauBaat baat = KostOfBaatExtensions.GetBy(_dbContext.MedewerkerNiveauBaten, 1);

            Assert.Equal(2300, baat.BrutoMaandloonFulltime);
            Assert.Equal(35, baat.Uren);
        }
        public void TestGetBy_BegeleidingsKosten()
        {
            BegeleidingsKost kost = KostOfBaatExtensions.GetBy(_dbContext.BegeleidingsKosten, 2);

            Assert.Equal(25, kost.Uren);
            Assert.Equal(2500, kost.BrutoMaandloonBegeleider);
        }
        public void TestGeefTotaal_UitzendkrachtBesparingen()
        {
            decimal totaal = KostOfBaatExtensions.GeefTotaal(_dbContext.UitzendKrachtBesparingen);

            totaal = Math.Round(totaal, 2);

            Assert.Equal(17570.00M, totaal);
        }
예제 #5
0
        public IDictionary <Soort, decimal> GeefTotalenKosten()
        {
            IDictionary <Soort, decimal> resultaat = new Dictionary <Soort, decimal>();
            decimal totaal;

            // Loonkosten
            if (Departement != null)
            {
                totaal = LoonkostExtensions.GeefTotaalBrutolonenPerJaarAlleLoonkosten(Loonkosten,
                                                                                      Departement.Werkgever.AantalWerkuren,
                                                                                      Departement.Werkgever.PatronaleBijdrage);
            }
            else
            {
                totaal = 0;
            }

            resultaat.Add(Soort.Loonkost, totaal);

            // Enclavekosten
            totaal = KostOfBaatExtensions.GeefTotaal(EnclaveKosten);
            resultaat.Add(Soort.EnclaveKost, totaal);

            // Voorbereidingskosten
            totaal = KostOfBaatExtensions.GeefTotaal(VoorbereidingsKosten);
            resultaat.Add(Soort.VoorbereidingsKost, totaal);

            // Infrastructuurkosten
            totaal = KostOfBaatExtensions.GeefTotaal(PersoneelsKosten);
            resultaat.Add(Soort.PersoneelsKost, totaal);

            // Gereedschapskosten
            totaal = KostOfBaatExtensions.GeefTotaal(GereedschapsKosten);
            resultaat.Add(Soort.GereedschapsKost, totaal);

            // Opleidingskosten
            totaal = KostOfBaatExtensions.GeefTotaal(OpleidingsKosten);
            resultaat.Add(Soort.OpleidingsKost, totaal);

            // Begeleidingskosten
            if (Departement != null)
            {
                totaal = BegeleidingsKostExtensions.GeefTotaal(BegeleidingsKosten, Departement.Werkgever.PatronaleBijdrage);
            }
            else
            {
                totaal = 0;
            }

            resultaat.Add(Soort.BegeleidingsKost, totaal);

            // Extra kosten
            totaal = KostOfBaatExtensions.GeefTotaal(ExtraKosten);
            resultaat.Add(Soort.ExtraKost, totaal);

            return(resultaat);
        }
        public void TestGeefTotaal_ExtaKosten()
        {
            List <KostOfBaat> extraKosten = new List <KostOfBaat>(_dbContext.ExtraKosten);

            // totaal van alle loonkosten:
            decimal totaal = KostOfBaatExtensions.GeefTotaal(extraKosten);

            totaal = Math.Round(totaal, 2);

            Assert.Equal(1550.00M, totaal);
        }
예제 #7
0
        private void PlaatsTotaalInViewData(Analyse analyse)
        {
            if (analyse.ExtraKosten.Count == 0)
            {
                ViewData["totaal"] = 0;
            }

            var totaal = KostOfBaatExtensions.GeefTotaal(analyse.ExtraKosten);

            ViewData["totaal"] = totaal.ToString("C", new CultureInfo("nl-BE"));
        }
        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"));
        }
예제 #9
0
        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.ExterneInkoop);

                ExterneInkoop baat = KostOfBaatExtensions.GetBy(analyse.ExterneInkopen, id);

                ExterneInkoopViewModel model = new ExterneInkoopViewModel();

                DecimalConverter dc = new DecimalConverter();

                if (baat != null)
                {
                    // parameters voor formulier instellen
                    model.Id           = id;
                    model.Type         = baat.Type;
                    model.Soort        = baat.Soort;
                    model.Beschrijving = baat.Beschrijving;
                    model.Bedrag       = dc.ConvertToString(baat.Bedrag);

                    return(PartialView("_Formulier", model));
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "ExterneInkopen", "Bewerk -- GET --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            return(RedirectToAction("Index"));
        }
예제 #10
0
        public IActionResult Bewerk(Analyse analyse, EnclaveKostViewModel model)
        {
            try
            {
                analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.EnclaveKost);
                EnclaveKost      kost = KostOfBaatExtensions.GetBy(analyse.EnclaveKosten, model.Id);
                DecimalConverter dc   = new DecimalConverter();
                if (ModelState.IsValid && kost != null)
                {
                    kost.Id           = model.Id;
                    kost.Type         = model.Type;
                    kost.Beschrijving = model.Beschrijving;
                    kost.Soort        = model.Soort;
                    kost.Bedrag       = dc.ConvertToDecimal(model.Bedrag);

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

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

            PlaatsTotaalInViewData(analyse);

            return(RedirectToAction("Index"));
        }
예제 #11
0
        public IActionResult Bewerk(Analyse analyse, ExterneInkoopViewModel model)
        {// id is het id van de baat die moet bewerkt worden
            try
            {
                analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.ExterneInkoop);

                ExterneInkoop    baat = KostOfBaatExtensions.GetBy(analyse.ExterneInkopen, model.Id);
                DecimalConverter dc   = new DecimalConverter();
                if (ModelState.IsValid && baat != null)
                {
                    baat.Id           = model.Id;
                    baat.Type         = model.Type;
                    baat.Soort        = model.Soort;
                    baat.Beschrijving = model.Beschrijving;
                    baat.Bedrag       = dc.ConvertToDecimal(model.Bedrag);

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

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

            return(RedirectToAction("Index"));
        }
예제 #12
0
        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.BegeleidingsKost);
                BegeleidingsKost baat = KostOfBaatExtensions.GetBy(analyse.BegeleidingsKosten, id);
                if (baat != null)
                {
                    analyse.BegeleidingsKosten.Remove(baat);
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();
                }
            }
            catch (Exception e)
            {
                _exceptionLogRepository.Add(new ExceptionLog(e, "BegeleidingsKosten", "Verwijder"));
                _exceptionLogRepository.Save();
                TempData["error"] = Meldingen.VerwijderFoutmeldingKost;
            }

            return(RedirectToAction("Index"));
        }
예제 #13
0
        public IActionResult Bewerk(Analyse analyse, BegeleidingsKostViewModel model)
        {// id is het id van de baat die moet bewerkt worden
            try
            {
                analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.BegeleidingsKost);
                BegeleidingsKost kost = KostOfBaatExtensions.GetBy(analyse.BegeleidingsKosten, model.Id);
                DecimalConverter dc   = new DecimalConverter();
                if (ModelState.IsValid && kost != null)
                {
                    kost.Id    = model.Id;
                    kost.Type  = model.Type;
                    kost.Soort = model.Soort;
                    kost.Uren  = model.Uren;
                    kost.BrutoMaandloonBegeleider = dc.ConvertToDecimal(model.BrutoMaandloonBegeleider);

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

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

            return(RedirectToAction("Index"));
        }
예제 #14
0
        public IActionResult Verwijder(Analyse analyse, int id)
        {
            try
            {
                analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.UitzendkrachtBesparing);
                UitzendKrachtBesparing baat = KostOfBaatExtensions.GetBy(analyse.UitzendKrachtBesparingen, id);

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

            return(RedirectToAction("Index"));
        }
예제 #15
0
        public IActionResult Bewerk(Analyse analyse, int id)
        {
            try
            {
                analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.UitzendkrachtBesparing);
                UitzendKrachtBesparing baat = KostOfBaatExtensions.GetBy(analyse.UitzendKrachtBesparingen, id);

                UitzendKrachtBesparingViewModel model = new UitzendKrachtBesparingViewModel();
                DecimalConverter dc = new DecimalConverter();
                if (baat != null)
                {
                    model.Id           = id;
                    model.Type         = baat.Type;
                    model.Soort        = baat.Soort;
                    model.Beschrijving = baat.Beschrijving;
                    model.Bedrag       = dc.ConvertToString(baat.Bedrag);

                    return(PartialView("_Formulier", model));
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "UitzendKrachtBesparing", "Bewerk -- GET --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            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"));
        }
예제 #17
0
        public IDictionary <Soort, decimal> GeefTotalenBaten()
        {
            IDictionary <Soort, decimal> resultaat = new Dictionary <Soort, decimal>();
            decimal totaal = 0;

            if (Departement != null)
            {
                totaal = LoonkostExtensions.GeefTotaalBrutolonenPerJaarAlleLoonkosten(
                    Loonkosten,
                    Departement.Werkgever.AantalWerkuren,
                    Departement.Werkgever.PatronaleBijdrage);

                totaal -= LoonkostExtensions.GeefTotaalAlleLoonkosten(
                    Loonkosten,
                    Departement.Werkgever.AantalWerkuren,
                    Departement.Werkgever.PatronaleBijdrage);
            }
            resultaat.Add(Soort.LoonkostSubsidies, totaal);

            // Medewerkers zelfde niveau
            if (Departement != null)
            {
                totaal = MedewerkerNiveauBaatExtensions.GeefTotaal(
                    MedewerkersZelfdeNiveauBaten,
                    Departement.Werkgever.AantalWerkuren,
                    Departement.Werkgever.PatronaleBijdrage);
            }
            else
            {
                totaal = 0;
            }

            resultaat.Add(Soort.MedewerkersZelfdeNiveau, totaal);

            // Medewerkers hoger niveau
            if (Departement != null)
            {
                totaal = MedewerkerNiveauBaatExtensions.GeefTotaal(
                    MedewerkersHogerNiveauBaten,
                    Departement.Werkgever.AantalWerkuren,
                    Departement.Werkgever.PatronaleBijdrage);
            }
            else
            {
                totaal = 0;
            }

            resultaat.Add(Soort.MedewerkersHogerNiveau, totaal);

            // Uitzendkrachtbesparingen
            totaal = KostOfBaatExtensions.GeefTotaal(UitzendKrachtBesparingen);
            resultaat.Add(Soort.UitzendkrachtBesparing, totaal);

            // Extra omzet
            if (ExtraOmzet != null)
            {
                totaal = ExtraOmzet.Bedrag;
            }
            else
            {
                totaal = 0;
            }

            resultaat.Add(Soort.ExtraOmzet, totaal);

            // Extra productiviteit
            if (ExtraProductiviteit != null)
            {
                totaal = ExtraProductiviteit.Bedrag;
            }
            else
            {
                totaal = 0;
            }
            resultaat.Add(Soort.ExtraProductiviteit, totaal);

            // Overurenbesparing
            if (OverurenBesparing != null)
            {
                totaal = OverurenBesparing.Bedrag;
            }
            else
            {
                totaal = 0;
            }
            resultaat.Add(Soort.OverurenBesparing, totaal);

            // Externe inkopen
            totaal = KostOfBaatExtensions.GeefTotaal(ExterneInkopen);
            resultaat.Add(Soort.ExterneInkoop, totaal);

            // Subsidie
            if (Subsidie != null)
            {
                totaal = Subsidie.Bedrag;
            }
            else
            {
                totaal = 0;
            }
            resultaat.Add(Soort.Subsidie, totaal);

            // Logistieke besparing
            if (LogistiekeBesparing != null)
            {
                totaal = LogistiekeBesparing.LogistiekHandlingsKosten + LogistiekeBesparing.TransportKosten;
            }
            else
            {
                totaal = 0;
            }
            resultaat.Add(Soort.LogistiekeBesparing, totaal);

            // Extra besparingen
            totaal = KostOfBaatExtensions.GeefTotaal(ExtraBesparingen);
            resultaat.Add(Soort.ExtraBesparing, totaal);

            return(resultaat);
        }
 public void TestGeefTotaalThrowsException_MedewerkerNiveauBaat()
 {
     Assert.Throws <InvalidOperationException>(() => KostOfBaatExtensions.GeefTotaal(_dbContext.MedewerkerNiveauBaten));
 }
        public void TestGetBy_UitzendkrachtBesparingen()
        {
            UitzendKrachtBesparing baat = KostOfBaatExtensions.GetBy(_dbContext.UitzendKrachtBesparingen, 4);

            Assert.Equal(5400, baat.Bedrag);
        }
 public void TestGeefTotaalThrowsException_Loonkosten()
 {
     Assert.Throws <InvalidOperationException>(() => KostOfBaatExtensions.GeefTotaal(_dbContext.Loonkosten));
 }
        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);
        }