示例#1
0
 public void VoegLocatieToe(Locatie locatie)
 {
     if (Locaties.Contains(locatie))
     {
         throw new ArgumentException("Locatie behoort reeds tot dit land");
     }
     Locaties.Add(locatie);
     locatie.Land = this;
 }
示例#2
0
        public void LocatieVerwijderen(Locatie locatie)
        {
            if (!Locaties.Contains(locatie))
            {
                return;
            }

            Locaties.Remove(locatie);
            RondeLocatie.Verwijderen(this, locatie);
        }
示例#3
0
        public void LocatieToevoegen(Locatie locatie)
        {
            if (Locaties.Contains(locatie))
            {
                return;
            }

            Locaties.Add(locatie);
            RondeLocatie.Toevoegen(this, locatie);
        }
示例#4
0
        public NieuweReservatiePage()
        {
            InitializeComponent();

            rm = new ReservatieManager(new UnitOfWork(new ReservatieContext()));

            comboBoxVoertuig.ItemsSource    = rm.getVoertuigen();
            comboBoxArrangement.ItemsSource = Arrangement.GetValues(typeof(Arrangement));
            comboBoxOphaalLoc.ItemsSource   = Locaties.GetValues(typeof(Locaties));
            comboBoxAfzetLoc.ItemsSource    = Locaties.GetValues(typeof(Locaties));

            comboBoxOphaalLoc.SelectedIndex = 0;
            comboBoxAfzetLoc.SelectedIndex  = 0;
        }
示例#5
0
 public Reservatie(int reservatieId, Klant klant, DateTime datum, Locaties ophaalLocatie, Locaties afzetLocatie, Voertuig gereserveerdeVoertuig, Arrangement arrangement, int aantalUren, decimal subtotaal, decimal aangerekendeKortingen, decimal totaalExclusiefBtw, decimal btwBedrag, decimal teBetalenBedrag)
 {
     ReservatieId          = reservatieId;
     Klant                 = klant;
     Datum                 = datum;
     OphaalLocatie         = ophaalLocatie;
     AfzetLocatie          = afzetLocatie;
     GereserveerdeVoertuig = gereserveerdeVoertuig;
     Arrangement           = arrangement;
     AantalUren            = aantalUren;
     Subtotaal             = subtotaal;
     AangerekendeKortingen = aangerekendeKortingen;
     TotaalExclusiefBtw    = totaalExclusiefBtw;
     BtwBedrag             = btwBedrag;
     TeBetalenBedrag       = teBetalenBedrag;
 }
示例#6
0
 public Reservatie(/*int reservatieId, */ Klant K, DateTime datum, Locaties ophaalLocatie, Locaties afzetLocatie, Voertuig gereserveerdeVoertuig, Arrangement arrangement, int aantalUren, decimal subtotaal, decimal aangerekendeKortingen, decimal totaalExclusiefBtw, decimal btwBedrag, decimal teBetalenBedrag)
 {
     /*ReservatieId = reservatieId;*/
     klant                 = K;
     Datum                 = datum;
     OphaalLocatie         = ophaalLocatie;
     AfzetLocatie          = afzetLocatie;
     GereserveerdeVoertuig = gereserveerdeVoertuig;
     Arrangement           = arrangement;
     AantalUren            = aantalUren;
     AutoBinnenGebracht    = datum.AddHours(aantalUren);
     Subtotaal             = subtotaal;
     AangerekendeKortingen = aangerekendeKortingen;
     TotaalExclusiefBtw    = totaalExclusiefBtw;
     BtwBedrag             = btwBedrag;
     TeBetalenBedrag       = teBetalenBedrag;
 }
示例#7
0
 public Locatie GeefLocatie(string naamLocatie)
 {
     return(Locaties.First(l => l.Naam == naamLocatie));
 }
示例#8
0
 public ICollection <Locatie> GeefLocatiesAlfabetisch()
 {
     return(Locaties.OrderBy(locatie => locatie.Naam).ToList());
 }
        public void CreateNewReservation(int reservatieID, Klant klant, DateTime datum, Locaties ophaalLocatie, Locaties afzetLocatie, Voertuig gereseveerdeVoortuig, Arrangement arrangement, int aantalUren)
        {
            decimal subtotaal             = 0;
            decimal aangerekendeKortingen = 0;
            decimal totaalExclusiefBtw    = 0;
            decimal btwBedrag             = 0;
            decimal teBetalenBedrag       = 0;

            //calculate subtotal price
            if (arrangement == Arrangement.NightLife)
            {
                subtotaal = gereseveerdeVoortuig.NightLife;
            }
            else if (arrangement == Arrangement.Wellness)
            {
                subtotaal = gereseveerdeVoortuig.Wellness;
            }
            else if (arrangement == Arrangement.Wedding)
            {
                subtotaal = gereseveerdeVoortuig.Wedding;
            }
            else
            {
                subtotaal  = gereseveerdeVoortuig.EersteUur;
                subtotaal += Math.Round(((gereseveerdeVoortuig.EersteUur * aantalUren - 1) / 100) * 65);
            }

            //add discount to subtotal and btw
            aangerekendeKortingen = GetDiscount(klant.Type);
            totaalExclusiefBtw    = ((subtotaal / 100) * aangerekendeKortingen) - subtotaal;

            btwBedrag = (totaalExclusiefBtw / 100) * 6;

            teBetalenBedrag = totaalExclusiefBtw + btwBedrag;

            Reservatie r = new Reservatie(reservatieID, klant, datum, ophaalLocatie, afzetLocatie, gereseveerdeVoortuig, arrangement, aantalUren, subtotaal, aangerekendeKortingen, totaalExclusiefBtw, btwBedrag, teBetalenBedrag);

            Reservaties.Add(r);
        }
示例#10
0
        public Reservatie CalculatePriceForPreview(Klant klant, DateTime datum, Locaties ophaalLocatie, Locaties afzetLocatie, Voertuig gereseveerdeVoortuig, Arrangement arrangement, int aantalUren)
        {
            decimal subtotaal             = 0;
            decimal aangerekendeKortingen = 0;
            decimal totaalExclusiefBtw    = 0;
            decimal btwBedrag             = 0;
            decimal teBetalenBedrag       = 0;

            //calculate subtotal price
            if (arrangement == Arrangement.NightLife)
            {
                subtotaal = gereseveerdeVoortuig.NightLife;
                if (aantalUren > 7)
                {
                    int aantalOveruren = 7 - aantalUren;
                    subtotaal += aantalOveruren * (gereseveerdeVoortuig.EersteUur * 1.4m);
                }
            }
            else if (arrangement == Arrangement.Wellness)
            {
                subtotaal = gereseveerdeVoortuig.Wellness;
                if (datum.Hour == 12 && aantalUren == 10)// 1 nachtuur mogelijk
                {
                    subtotaal += gereseveerdeVoortuig.EersteUur * 1.4m;
                }
            }
            else if (arrangement == Arrangement.Wedding)
            {
                subtotaal = gereseveerdeVoortuig.Wedding;
                int einduur = datum.Hour + aantalUren;

                if (einduur >= 22 && aantalUren > 7)
                {
                    int nachturen = einduur - 21;
                    subtotaal += nachturen * (gereseveerdeVoortuig.EersteUur * 0.65m);
                }
            }
            else
            {
                subtotaal = gereseveerdeVoortuig.EersteUur;
                int aantalNachturen = 0;
                if (datum.Hour + aantalUren >= 22)
                {
                    aantalNachturen = (datum.Hour + aantalUren) - 21;
                    if (aantalNachturen > 9)
                    {
                        aantalNachturen = 9;
                    }

                    subtotaal += aantalNachturen * gereseveerdeVoortuig.EersteUur * 1.4m;
                }
                aantalNachturen += 1;

                subtotaal += Math.Round((gereseveerdeVoortuig.EersteUur * (aantalUren - aantalNachturen)) * 0.65m);
            }

            //add discount to subtotal and btw
            aangerekendeKortingen = GetDiscount(klant.Type, klant.Naam, datum);
            totaalExclusiefBtw    = subtotaal - ((subtotaal / 100) * aangerekendeKortingen);

            btwBedrag = totaalExclusiefBtw * 0.06m;

            teBetalenBedrag = totaalExclusiefBtw + btwBedrag;

            Reservatie r = new Reservatie(klant, datum, ophaalLocatie, afzetLocatie, gereseveerdeVoortuig, arrangement, aantalUren, subtotaal, aangerekendeKortingen, totaalExclusiefBtw, btwBedrag, teBetalenBedrag);

            return(r);
        }
示例#11
0
        private void btnPlaatsReservatie_Click(object sender, RoutedEventArgs e)
        {
            //check if everyting is correctly filled in:
            string errorMessage = "Please Fill in the next items: \n\n";

            if (datePicker.SelectedDate.HasValue == false)
            {
                errorMessage += "DateTime\n";
            }
            if (datePicker.SelectedDate.Value < DateTime.Now)
            {
                errorMessage += "Date cannot be in the past!\n";
            }
            if (txtBoxklantId.Text == "")
            {
                errorMessage += "Klant Id\n";
            }
            if (comboBoxArrangement.SelectedItem == null)
            {
                errorMessage += "Arrangement\n";
            }
            if (timeStart.Text == null)
            {
                errorMessage += "Start uur\n";
            }
            if (totaaluur.Text == null)
            {
                errorMessage += "Totaal uur\n";
            }
            if (comboBoxVoertuig.SelectedItem == null)
            {
                errorMessage += "Voertuig\n";
            }

            if (errorMessage.Length > 35)//35 = the length of the original errormessage.
            {
                MessageBox.Show(errorMessage, "Oh ohh you forgot some information", MessageBoxButton.OK);
            }
            else
            {
                //converts input to data

                Klant       klant        = rm.getKlantByID(int.Parse(txtBoxklantId.Text));
                DateTime    datum        = (DateTime)datePicker.SelectedDate;
                DateTime    completeDate = datum.AddHours((double)timeStart.Value);
                Locaties    ophaalLoc    = (Locaties)comboBoxOphaalLoc.SelectedIndex;
                Locaties    afzetLoc     = (Locaties)comboBoxAfzetLoc.SelectedIndex;
                Voertuig    voertuig     = rm.ZoekVoertuigById(int.Parse(comboBoxVoertuig.SelectedItem.ToString().Split(",")[1]));
                Arrangement arrangement  = (Arrangement)comboBoxArrangement.SelectedIndex;
                int         aantaluren   = (int)totaaluur.Value;

                //calculate price
                Reservatie r = rm.CalculatePriceForPreview(klant, completeDate, ophaalLoc, afzetLoc, voertuig, arrangement, aantaluren);

                //validation for correct price
                string message = $"{r.Arrangement}\n\n{r.Datum}\n{r.GereserveerdeVoertuig.Naam}\nExcl Btw:{r.TotaalExclusiefBtw}\nInc Btw:{r.TeBetalenBedrag}\n{r.klant.Naam}\n";
                if (MessageBox.Show(message, "Price Confirmation", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    rm.CreateNewReservation(r);
                    MessageBox.Show("Reservatie Succesvol toegevoegd!", "Succes", MessageBoxButton.OK);
                }
            }
        }