public static void ScheduleCalculate() { Globals.TaskList.Sort(TPC); DateTime StartMoment = new DateTime(); StartMoment = DateTime.Now; DateTime WeekDayStart = DateTime.Now, WeekDayEnd = DateTime.Now; bool checker; int y, m, d, h, n, s; foreach (TaskObject element in Globals.TaskList) { backpoint :; switch (StartMoment.DayOfWeek) { case DayOfWeek.Monday : WeekDayStart = Globals.MondayStartTime; WeekDayEnd = Globals.MondayEndTime; break; case DayOfWeek.Tuesday: WeekDayStart = Globals.TuesdayStartTime; WeekDayEnd = Globals.TuesdayEndTime; break; case DayOfWeek.Wednesday: WeekDayStart = Globals.WednesdayStartTime; WeekDayEnd = Globals.WednesdayEndTime; break; case DayOfWeek.Thursday: WeekDayStart = Globals.ThursdayStartTime; WeekDayEnd = Globals.ThursdayEndTime; break; case DayOfWeek.Friday: WeekDayStart = Globals.FridayStartTime; WeekDayEnd = Globals.FridayEndTime; break; case DayOfWeek.Saturday: WeekDayStart = Globals.SaturdayStartTime; WeekDayEnd = Globals.SaturdayEndTime; break; case DayOfWeek.Sunday: WeekDayStart = Globals.SundayStartTime; WeekDayEnd = Globals.SundayEndTime; break; } checker = true; checker = StartMoment.TimeOfDay < Globals.WakeUpTime.TimeOfDay; if (checker) { //StartMoment.AddHours(Globals.WakeUpTime.Hour - StartMoment.Hour); y = StartMoment.Year; m = StartMoment.Month; d = StartMoment.Day; h = Globals.WakeUpTime.Hour; n = 0; s = 0; StartMoment = new DateTime(y, m, d, h, n, s); } checker = StartMoment.AddHours(element.EstimatedTime).TimeOfDay > WeekDayStart.TimeOfDay && StartMoment.TimeOfDay < WeekDayEnd.TimeOfDay; if (checker) { //StartMoment.AddHours(-StartMoment.Hour + WeekDayEnd.Hour); y = StartMoment.Year; m = StartMoment.Month; d = StartMoment.Day; h = WeekDayEnd.Hour; n = 0; s = 0; StartMoment = new DateTime(y, m, d, h, n, s); } checker = StartMoment.AddHours(element.EstimatedTime).TimeOfDay < Globals.BedTime.TimeOfDay; if (checker) { element.StartDate = StartMoment; element.EndDate = element.StartDate.AddHours(element.EstimatedTime); y = element.EndDate.Year; m = element.EndDate.Month; d = element.EndDate.Day; h = element.EndDate.Hour + 1; n = element.EndDate.Minute; s = element.EndDate.Second; StartMoment = new DateTime(y, m, d, h, n, s); } else { //StartMoment.AddHours(Globals.WakeUpTime.Hour-StartMoment.Hour); //StartMoment.AddMinutes(-StartMoment.Minute); y = StartMoment.Year; m = StartMoment.Month; d = StartMoment.Day + 1; h = Globals.WakeUpTime.Hour; n = 0; s = 0; StartMoment = new DateTime(y, m, d, h, n, s); goto backpoint; } } }
private void PrijsBerekening() { double btwPercentage = 0.06; if (Arrengement == Arrengement.Wellness) { VastePrijs = (double)Limousine.WellnessPrijs; TotaalMetKortingExclusiefBtw = (double)Limousine.WellnessPrijs; } else if (Arrengement == Arrengement.Wedding) { //maximum aantal uren controle nog toevoegen. OverUurPrijs = Math.Round(Limousine.EersteUurPrijs * 0.65 / 5) * 5; AantalOverUur = AantalUur - 7; TotaalMetKortingExclusiefBtw = AantalOverUur * OverUurPrijs; //TotaalExclusiefBtw = WeddingExtraUrenPrijsBerekening(AantalUur, Limousine); VastePrijs = (double)Limousine.WeddingPrijs; TotaalMetKortingExclusiefBtw += VastePrijs; } else if (Arrengement == Arrengement.NightLife) { NachtUurPrijs = Math.Round(Limousine.EersteUurPrijs * 1.4 / 5) * 5; AantalNachtUur = AantalUur - 7; TotaalMetKortingExclusiefBtw = AantalNachtUur * NachtUurPrijs; VastePrijs = (double)Limousine.NightlifePrijs; TotaalMetKortingExclusiefBtw += VastePrijs; } else if (Arrengement == Arrengement.Business || Arrengement == Arrengement.Airport) { EersteUurPrijs = Limousine.EersteUurPrijs; AantalEersteUur = 1; TotaalMetKortingExclusiefBtw = EersteUurPrijs * AantalEersteUur; DateTime eindMoment = StartMoment.AddHours(AantalUur); //geen nachturen (BUITEN) if (StartMoment.Hour < 22 && StartMoment.Hour >= 7 && AantalUur < 22 - StartMoment.Hour) { AantalStandaardUur = AantalUur - 1; } //Enkel nachturen (BINNEN) else if (StartMoment.Hour >= 22 && (eindMoment.Hour < 7 || eindMoment.Day == StartMoment.Day)) { AantalNachtUur = AantalUur - 1; } //begint voor de nachturen else if (StartMoment.Hour < 22 && StartMoment.Hour >= 7) { //loopt niet door tot de volgende ochtend if (eindMoment.Hour < 7 || eindMoment.Day == StartMoment.Day) { AantalStandaardUur = 22 - StartMoment.Hour - 1; AantalNachtUur = AantalUur - 1 - AantalStandaardUur; } //loopt wel door tot de volgende ochtend else { //begint ervoor, loopt door tot na => maximaal aantal nachturen AantalNachtUur = 9; AantalStandaardUur = AantalUur - 1 - AantalNachtUur; } } //begint in de nachturen, en loopt door tot erna else { AantalStandaardUur = eindMoment.Hour - 7; AantalNachtUur = AantalUur - 1 - AantalStandaardUur; } StandaarUurPrijs = Math.Round((Limousine.EersteUurPrijs * 0.65) / 5) * 5; NachtUurPrijs = Math.Round((Limousine.EersteUurPrijs * 1.4) / 5) * 5; TotaalMetKortingExclusiefBtw += AantalStandaardUur * StandaarUurPrijs; TotaalMetKortingExclusiefBtw += AantalNachtUur * NachtUurPrijs; } else { throw new NotImplementedException("New Arrengement is not properly implemented."); } TotaalMetKortingExclusiefBtw = Math.Round((TotaalMetKortingExclusiefBtw * (1 - (AangerekendeKorting / 100))) * 100) / 100; BtwBedrag = Math.Round((TotaalMetKortingExclusiefBtw * btwPercentage) * 100) / 100; TotaalTeBetalen = (TotaalMetKortingExclusiefBtw + BtwBedrag); }