//voir si la reservation est possible public bool verifierResa(DateTime dateDeDebut, int nbconvive, Formule formuleChoisie, Cuisine C) { DateTime dateDeFin = dateDeDebut + formuleChoisie.DureePresenceClient; //pour l'instant on regarde si il y a une table dispo pour cette horaire int i = 0; int heureDebut = dateDeDebut.Hour; int min = dateDeDebut.Minute; int mois = dateDeDebut.Month; int jour = dateDeDebut.Day; int nbMaxPlaceTable=rechercheNombrePlaceMax(); if (nbconvive<=nbMaxPlaceTable) //on regarde si les convives rentrent sur une seule table { while (i < tables.Count) //on parcoure la liste des tables { if (tables[i].NbPlaceMax >= nbconvive) //on regarde si la table peut accueillir toute les personnes { int k = 0; while (k < tables[i].PlanningResa.Count)//parcoure la liste des occupations { int comparaisonDebut = DateTime.Compare(dateDeDebut, tables[i].PlanningResa[k].DateDebutOccupee); int comparaisonFin = DateTime.Compare(dateDeFin, tables[i].PlanningResa[k].DateFinOccupee); //l'heure de la résa n'est pas comprise dans le temps pendant lequel la table est occup if ((comparaisonDebut < 0 && comparaisonFin < 0) || (comparaisonDebut > 0 && comparaisonFin > 0))//la date n'est pas la même { bool cuisiniersDispo; Console.WriteLine("Reservation possible sur la table " + i); cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { tables[i].newOccupationTableXml(dateDeDebut, formuleChoisie, i); validerResa(tables[i], dateDeDebut, nbconvive, formuleChoisie); return true; } } else { if ((comparaisonDebut < 0 && comparaisonFin > 0) || (comparaisonDebut > 0 && comparaisonFin < 0)) { bool cuisiniersDispo; Console.WriteLine("Reservation possible sur la table " + i); cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { tables[i].newOccupationTableXml(dateDeDebut, formuleChoisie, i); validerResa(tables[i], dateDeDebut, nbconvive, formuleChoisie); return true; } } else { Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return false; } } k++; } } i++; } } else // le nombre de convive ne rentre pas sur une seule table --> jumelage { if (nbconvive<nbMaxPlaceTable+4) { Console.WriteLine("La fonction jumelage n'est pas aboutie. Le nombre de convives maximum accepté est "+nbMaxPlaceTable); Console.WriteLine("Recommencez en tapant sur ENTREE."); //jumelage(dateDeDebut, nbconvive, formuleChoisie, C); return false; } else { Console.WriteLine(@"La reservation n'est pas possible. Le restaurant n'accepte pas autant de personnes sur une même table. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return false; } } Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return false; }
public bool jumelage(DateTime dateDeDebut, int nbconvive, Formule formuleChoisie, Cuisine C) { DateTime dateDeFin = dateDeDebut + formuleChoisie.DureePresenceClient; int i = 0; while (i < tables.Count) //on parcoure la liste des tables { int k = 0; if (tables[i].Jumelable == true) //on verifie si la premiere table est jumelable { while (k < tables[k].PlanningResa.Count) //on verifie qu'elle est dispo { int comparaisonDebut1 = DateTime.Compare(dateDeDebut, tables[i].PlanningResa[k].DateDebutOccupee); int comparaisonFin1 = DateTime.Compare(dateDeFin, tables[i].PlanningResa[k].DateFinOccupee); //l'heure de la résa n'est pas comprise dans le temps pendant lequel la table est occup int j = i + 1; if ((comparaisonDebut1 < 0 && comparaisonFin1 < 0) || (comparaisonDebut1 > 0 && comparaisonFin1 > 0)) //la date n'est pas la même { while (j < tables.Count) //on parcourt une deuxieme fois la liste pour trouver une deuxieme table jumelable et dispo { if (tables[j].Jumelable == true) //on verifie si la deuxième table est jumelable { int l = 0; while (l < tables[l].PlanningResa.Count) //on verifie qu'elle est dispo { int comparaisonDebut2 = DateTime.Compare(dateDeDebut, tables[j].PlanningResa[l].DateDebutOccupee); int comparaisonFin2 = DateTime.Compare(dateDeFin, tables[j].PlanningResa[l].DateFinOccupee); if ((comparaisonDebut2 < 0 && comparaisonFin2 < 0) || (comparaisonDebut2 > 0 && comparaisonFin2 > 0)) //la date n'est pas la même { //ON JUMELE LES TABLES TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]); bool cuisiniersDispo; cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie); return(true); } } else { if ((comparaisonDebut2 < 0 && comparaisonFin2 > 0) || (comparaisonDebut2 > 0 && comparaisonFin2 < 0)) //la date est la même mais l'horraire n'est pas simultané { //ON JUMELE LES TABLES TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]); bool cuisiniersDispo; cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie); return(true); } } else { Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return(false); } } l++; } } j++; } } else { if ((comparaisonDebut1 < 0 && comparaisonFin1 > 0) || (comparaisonDebut1 > 0 && comparaisonFin1 < 0)) //la date est la même mais les horaires ne se mélangent pas { if (tables[j].Jumelable == true) //on verifie si la deuxième table est jumelable { int m = 0; while (m < tables[m].PlanningResa.Count) //on verifie qu'elle est dispo { int comparaisonDebut2 = DateTime.Compare(dateDeDebut, tables[j].PlanningResa[m].DateDebutOccupee); int comparaisonFin2 = DateTime.Compare(dateDeFin, tables[j].PlanningResa[m].DateFinOccupee); if ((comparaisonDebut2 < 0 && comparaisonFin2 < 0) || (comparaisonDebut2 > 0 && comparaisonFin2 > 0)) //la date n'est pas la même { //ON JUMELE LES TABLES TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]); bool cuisiniersDispo; cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie); return(true); } } else { if ((comparaisonDebut2 < 0 && comparaisonFin2 > 0) || (comparaisonDebut2 > 0 && comparaisonFin2 < 0)) //la date est la même mais l'horraire n'est pas simultané { //ON JUMELE LES TABLES TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]); bool cuisiniersDispo; cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie); return(true); } } else { Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return(false); } } k++; } } } } } k++; } i++; } Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return(false); }
public bool jumelage(DateTime dateDeDebut, int nbconvive, Formule formuleChoisie, Cuisine C) { DateTime dateDeFin = dateDeDebut + formuleChoisie.DureePresenceClient; int i = 0; while (i < tables.Count) //on parcoure la liste des tables { int k = 0; if (tables[i].Jumelable == true)//on verifie si la premiere table est jumelable { while (k < tables[k].PlanningResa.Count) //on verifie qu'elle est dispo { int comparaisonDebut1 = DateTime.Compare(dateDeDebut, tables[i].PlanningResa[k].DateDebutOccupee); int comparaisonFin1 = DateTime.Compare(dateDeFin, tables[i].PlanningResa[k].DateFinOccupee); //l'heure de la résa n'est pas comprise dans le temps pendant lequel la table est occup int j = i + 1; if ((comparaisonDebut1 < 0 && comparaisonFin1 < 0) || (comparaisonDebut1 > 0 && comparaisonFin1 > 0))//la date n'est pas la même { while (j < tables.Count) //on parcourt une deuxieme fois la liste pour trouver une deuxieme table jumelable et dispo { if (tables[j].Jumelable == true)//on verifie si la deuxième table est jumelable { int l = 0; while (l < tables[l].PlanningResa.Count) //on verifie qu'elle est dispo { int comparaisonDebut2 = DateTime.Compare(dateDeDebut, tables[j].PlanningResa[l].DateDebutOccupee); int comparaisonFin2 = DateTime.Compare(dateDeFin, tables[j].PlanningResa[l].DateFinOccupee); if ((comparaisonDebut2 < 0 && comparaisonFin2 < 0) || (comparaisonDebut2 > 0 && comparaisonFin2 > 0)) //la date n'est pas la même { //ON JUMELE LES TABLES TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]); bool cuisiniersDispo; cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie); return true; } } else { if ((comparaisonDebut2 < 0 && comparaisonFin2 > 0) || (comparaisonDebut2 > 0 && comparaisonFin2 < 0)) //la date est la même mais l'horraire n'est pas simultané { //ON JUMELE LES TABLES TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]); bool cuisiniersDispo; cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie); return true; } } else { Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return false; } } l++; } } j++; } } else { if ((comparaisonDebut1 < 0 && comparaisonFin1 > 0) || (comparaisonDebut1 > 0 && comparaisonFin1 < 0)) //la date est la même mais les horaires ne se mélangent pas { if (tables[j].Jumelable == true)//on verifie si la deuxième table est jumelable { int m = 0; while (m < tables[m].PlanningResa.Count) //on verifie qu'elle est dispo { int comparaisonDebut2 = DateTime.Compare(dateDeDebut, tables[j].PlanningResa[m].DateDebutOccupee); int comparaisonFin2 = DateTime.Compare(dateDeFin, tables[j].PlanningResa[m].DateFinOccupee); if ((comparaisonDebut2 < 0 && comparaisonFin2 < 0) || (comparaisonDebut2 > 0 && comparaisonFin2 > 0)) //la date n'est pas la même { //ON JUMELE LES TABLES TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]); bool cuisiniersDispo; cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie); return true; } } else { if ((comparaisonDebut2 < 0 && comparaisonFin2 > 0) || (comparaisonDebut2 > 0 && comparaisonFin2 < 0)) //la date est la même mais l'horraire n'est pas simultané { //ON JUMELE LES TABLES TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]); bool cuisiniersDispo; cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie); return true; } } else { Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return false; } } k++; } } } } } k++; } i++; } Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return false; }
//voir si la reservation est possible public bool verifierResa(DateTime dateDeDebut, int nbconvive, Formule formuleChoisie, Cuisine C) { DateTime dateDeFin = dateDeDebut + formuleChoisie.DureePresenceClient; //pour l'instant on regarde si il y a une table dispo pour cette horaire int i = 0; int heureDebut = dateDeDebut.Hour; int min = dateDeDebut.Minute; int mois = dateDeDebut.Month; int jour = dateDeDebut.Day; int nbMaxPlaceTable = rechercheNombrePlaceMax(); if (nbconvive <= nbMaxPlaceTable) //on regarde si les convives rentrent sur une seule table { while (i < tables.Count) //on parcoure la liste des tables { if (tables[i].NbPlaceMax >= nbconvive) //on regarde si la table peut accueillir toute les personnes { int k = 0; while (k < tables[i].PlanningResa.Count)//parcoure la liste des occupations { int comparaisonDebut = DateTime.Compare(dateDeDebut, tables[i].PlanningResa[k].DateDebutOccupee); int comparaisonFin = DateTime.Compare(dateDeFin, tables[i].PlanningResa[k].DateFinOccupee); //l'heure de la résa n'est pas comprise dans le temps pendant lequel la table est occup if ((comparaisonDebut < 0 && comparaisonFin < 0) || (comparaisonDebut > 0 && comparaisonFin > 0))//la date n'est pas la même { bool cuisiniersDispo; Console.WriteLine("Reservation possible sur la table " + i); cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { tables[i].newOccupationTableXml(dateDeDebut, formuleChoisie, i); validerResa(tables[i], dateDeDebut, nbconvive, formuleChoisie); return(true); } } else { if ((comparaisonDebut < 0 && comparaisonFin > 0) || (comparaisonDebut > 0 && comparaisonFin < 0)) { bool cuisiniersDispo; Console.WriteLine("Reservation possible sur la table " + i); cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie); if (cuisiniersDispo == true) { tables[i].newOccupationTableXml(dateDeDebut, formuleChoisie, i); validerResa(tables[i], dateDeDebut, nbconvive, formuleChoisie); return(true); } } else { Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return(false); } } k++; } } i++; } } else // le nombre de convive ne rentre pas sur une seule table --> jumelage { if (nbconvive < nbMaxPlaceTable + 4) { Console.WriteLine("La fonction jumelage n'est pas aboutie. Le nombre de convives maximum accepté est " + nbMaxPlaceTable); Console.WriteLine("Recommencez en tapant sur ENTREE."); //jumelage(dateDeDebut, nbconvive, formuleChoisie, C); return(false); } else { Console.WriteLine(@"La reservation n'est pas possible. Le restaurant n'accepte pas autant de personnes sur une même table. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return(false); } } Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE."); Console.ReadLine(); return(false); }