Exemplo n.º 1
0
 public Reservation trouveReservation(ServiceParJour Service, string NomClient, out int rangResa)
 {
     for (int i = 0; i < Service.reservations.Count; i++)
     {
         if (Service.reservations[i].nomClient == NomClient)
         {
             rangResa = i;
             return(Service.reservations[i]);
         }
     }
     Console.WriteLine("Ce client n'a pas réservé ce jour là ou est mal enregistré !");
     rangResa = -1;
     return(null);
 }
Exemplo n.º 2
0
 public Reservation(Restaurant Restaurant, ServiceParJour ServiceParJour, string NomClient,
                    string NumTelephone, DateTime JourResa, DateTime HoraireDebutResa, DateTime HoraireFinResa,
                    int NbConvives, Formule FormuleRetenue, List <Table> TableAffectee)
 {
     restaurant       = Restaurant;
     service          = ServiceParJour;
     nomClient        = NomClient;
     numTelephone     = NumTelephone;
     jourResa         = JourResa;
     horaireDebutResa = HoraireDebutResa;
     horaireFinResa   = HoraireFinResa;
     nbConvives       = NbConvives;
     formuleRetenue   = FormuleRetenue;
     tableAffectee    = TableAffectee;
 }
Exemplo n.º 3
0
        public void annulReservation()
        {
            Console.WriteLine("Quel est la date de cette réservation ?");
            DateTime Date = DateTime.Parse(Console.ReadLine());

            Console.WriteLine("Quel est le nom du client ?");
            string nom = Console.ReadLine();

            Console.WriteLine("Quel est le prénom du client ?");
            nom += " " + Console.ReadLine();
            ServiceParJour Service = trouveService(Date);
            int            rang;
            Reservation    Reservation = trouveReservation(Service, nom, out rang);

            if (Reservation == null)
            {
                Console.WriteLine("0 : Retourner au menu de gestion des réservations ?");
                Console.WriteLine("1 : Recommencer la modification de réservation ?");
                int frappe;
                do
                {
                    Console.WriteLine("Entrez le numéro de la requête souhaitée s'il vous plait.");
                    frappe = Program.gestErreurEntier();
                }while (frappe < 0 && frappe > 1);
                switch (frappe)
                {
                case 0:
                    Program.GererReservation(this);
                    break;

                case 1:
                    modifReservation();
                    break;
                }
            }
            else
            {
                Service.reservations.RemoveAt(rang);
                Console.WriteLine("Réservation annulée !");
            }
        }
Exemplo n.º 4
0
        // Demande des informations nécessaires à la création d'une nouvelle réservation.
        public void ajoutReservation()
        {
            Reservation a;

            Console.WriteLine("Nom du Client ?");
            string NomClient = Console.ReadLine();

            Console.WriteLine("Prénom du Client ?");
            NomClient += " " + Console.ReadLine();
            Console.WriteLine("Date de Réservation (yyyy,mm,dd) ?");
            DateTime JourResa = DateTime.Parse(Console.ReadLine());

            Console.WriteLine("Heure de réservation (hh,mm,ss) ?");
            DateTime       HDR     = DateTime.Parse(Console.ReadLine());
            ServiceParJour Service = trouveService(JourResa);

            Console.WriteLine("Nombre de convives ?");
            int NbConvives = Program.gestErreurEntier();

            // Récupération des différentes formules du restaurant
            Console.WriteLine("Quelle Formule (entrez le numéro) ?");
            for (int i = 0; i < listeFormules.Count; i++)
            {
                Console.WriteLine("" + i + " : " + listeFormules[i]);
            }
            int frappe;

            do
            {
                Console.WriteLine("Entrez le numéro de la formule souhaitée s'il vous plait.");
                frappe = Program.gestErreurEntier();
            }while (frappe < 0 && frappe > (listeFormules.Count - 1));
            Formule      FormRet       = listeFormules[frappe];
            DateTime     HFR           = HDR + FormRet.dureeConsommation;
            List <Table> TableAffectee = new List <Table>();
            string       NumTel;

            // Si la réservation concerne une commande à emporter, pas besoin de table.
            if (FormRet.surPlace == false)
            {
                NumTel = Console.ReadLine();
                a      = new Reservation(this, Service, NomClient, NumTel, JourResa, HDR, HFR, NbConvives, FormRet, TableAffectee);
            }
            else
            {
                // Tente de trouver une table adéquate en jumelant ou non, sinon refus de la réservation.
                try
                {
                    TableAffectee = Service.reservations[0].trouveTables(this, NbConvives, Service, HDR, HFR);
                }
                catch
                {
                    // Reconduction quand la réservation est refusée.
                    Console.WriteLine("La réservation est impossible, aucune table disponible pour ce nombre de convives !");
                    Console.WriteLine("0 : Annulez ?");
                    Console.WriteLine("1 : Autre réservation ?");
                    string frappe2;
                    do
                    {
                        Console.WriteLine("Entrez le numéro de la requête souhaitée s'il vous plait.");
                        frappe2 = Console.ReadLine();
                    }while (frappe2 != "0" && frappe2 != "1");
                    int choix = int.Parse(frappe2);
                    switch (choix)
                    {
                    case 0:
                        Program.GererReservation(this);
                        break;

                    case 1:
                        ajoutReservation();
                        break;
                    }
                }
            }
            Console.WriteLine("Numéro de téléphone ?");
            NumTel = Console.ReadLine();
            // Si tout est bon, création de la réservation
            a = new Reservation(this, Service, NomClient, NumTel, JourResa, HDR, HFR, NbConvives, FormRet, TableAffectee);
        }
Exemplo n.º 5
0
        public void modifReservation()
        {
            Console.WriteLine("Quel est la date de cette réservation ?");
            DateTime Date = DateTime.Parse(Console.ReadLine());

            Console.WriteLine("Quel est le nom du client ?");
            string nom = Console.ReadLine();

            Console.WriteLine("Quel est le prénom du client ?");
            nom += " " + Console.ReadLine();
            ServiceParJour Service = trouveService(Date);
            int            rang;
            Reservation    Reservation = trouveReservation(Service, nom, out rang);

            if (Reservation == null)
            {
                Console.WriteLine("0 : Retourner au menu de gestion des réservations ?");
                Console.WriteLine("1 : Recommencer la modification de réservation ?");
                int frappe;
                do
                {
                    Console.WriteLine("Entrez le numéro de la requête souhaitée s'il vous plait.");
                    frappe = Program.gestErreurEntier();
                }while (frappe < 0 && frappe > 1);
                switch (frappe)
                {
                case 0:
                    Program.GererReservation(this);
                    break;

                case 1:
                    modifReservation();
                    break;
                }
            }
            else
            {
                Service.reservations.RemoveAt(rang);
                Console.WriteLine("Début de la modification :");
                ajoutReservation();

                /*Console.WriteLine("+----------------------------------------------------------------------------+");
                 * Console.WriteLine("|                              QUE MODIFIER ?                                |");
                 * Console.WriteLine("+-----------+----------------------------------------------------------------+");
                 * Console.WriteLine("|  TAPEZ 1  | Le jour ?                                                      |");
                 * Console.WriteLine("+-----------+----------------------------------------------------------------+");
                 * Console.WriteLine("|  TAPEZ 2  | L'horaire ?                                                    |");
                 * Console.WriteLine("+-----------+----------------------------------------------------------------+");
                 * Console.WriteLine("|  TAPEZ 3  | La formule ?                                                   |");
                 * Console.WriteLine("+-----------+----------------------------------------------------------------+");
                 * Console.WriteLine("|  TAPEZ 4  | Le nombre de convives ?                                        |");
                 * Console.WriteLine("+-----------+----------------------------------------------------------------+");
                 * Console.WriteLine("|  Tapez 0  | Retourner au menu de gestion des réservations                  |");
                 * Console.WriteLine("+-----------+----------------------------------------------------------------+");
                 *
                 * int frappe;
                 * do
                 * {
                 *  Console.WriteLine("Entrez le numéro de la requête souhaitée s'il vous plait.");
                 *  frappe = Program.gestErreurEntier(int.Parse(Console.ReadLine()));
                 * }
                 * while (frappe < 0 && frappe > 6);
                 * switch(frappe)
                 * {
                 *  case 0:
                 *      Program.GererReservation(this);
                 *      break;
                 *  case 1:
                 *      Console.WriteLine("Quel jour ");
                 *      break;
                 *  case 2:
                 *      break;
                 *  case 3:
                 *      break;
                 *  case 4:
                 *      break;
                 * }*/
            }
        }
Exemplo n.º 6
0
        } // A finir

        public List <Table> trouveTables(Restaurant R, int NbC, ServiceParJour S, DateTime HDR, DateTime HFR)
        {
            List <Table> res = new List <Table>();                   // Tables qui seront affectées
            List <Table> tablesBonNombrePlaces = new List <Table>(); // Tables qui ont le bon nombre de places

            // Rempli la liste des tables au bon nombre de place.
            for (int i = 0; i < R.listeTables.Count; i++)
            {
                if (NbC == R.listeTables[i].nbMaxPlaces)
                {
                    tablesBonNombrePlaces.Add(R.listeTables[i]);
                }
            }

            // Retire les tables qui sont déjà prise pour le service dans le tableau

            for (int j = 0; j < S.reservations.Count; j++)
            {
                for (int i = 0; i < tablesBonNombrePlaces.Count; i++)
                {
                    if (tablesBonNombrePlaces[i].numeroTable == chercheNumTable(S.reservations[j].tableAffectee, NbC))
                    {
                        if ((S.reservations[j].horaireDebutResa <HDR && S.reservations[j].horaireFinResa> HDR) ||
                            (S.reservations[j].horaireDebutResa <HFR && S.reservations[j].horaireFinResa> HFR) ||
                            (S.reservations[j].horaireDebutResa > HDR && S.reservations[j].horaireFinResa < HFR))
                        {
                            tablesBonNombrePlaces.RemoveAt(i);
                        }
                    }
                }
            }
            // Affecte la première table de la liste des tables disponibles au bon nombre
            if (tablesBonNombrePlaces.Count != 0)
            {
                res.Add(tablesBonNombrePlaces[0]);
                return(res);
            }

            // Si pas de tables dispo au bon nombre
            // Tables de capacité inférieur et que l'on peut jumeler

            List <Table> tablesNombreInf = new List <Table>();

            for (int i = 0; i < R.listeTables.Count; i++)
            {
                if (NbC > R.listeTables[i].nbMaxPlaces && R.listeTables[i].jumelable == true)
                {
                    tablesNombreInf.Add(R.listeTables[i]);
                }
            }
            for (int j = 0; j < S.reservations.Count; j++)
            {
                for (int i = 0; i < tablesNombreInf.Count; i++)
                {
                    if (tablesNombreInf[i].numeroTable == chercheNumTable(S.reservations[j].tableAffectee, NbC))
                    {
                        if ((S.reservations[j].horaireDebutResa <HDR && S.reservations[j].horaireFinResa> HDR) ||
                            (S.reservations[j].horaireDebutResa <HFR && S.reservations[j].horaireFinResa> HFR) ||
                            (S.reservations[j].horaireDebutResa > HDR && S.reservations[j].horaireFinResa < HFR))
                        {
                            tablesNombreInf.RemoveAt(i);
                        }

                        /*else
                         * {
                         *  res.Add(tablesNombreInf[i]);
                         *  if (comptePlaces(res) >= NbC)
                         *  {
                         *      return res;
                         *  }
                         * }*/
                    }
                }
            }
            while (comptePlaces(res) < NbC && tablesNombreInf.Count != 0)
            {
                res.Add(tablesBonNombrePlaces[0]);
                tablesNombreInf.RemoveAt(0);
            }
            if (comptePlaces(res) >= NbC)
            {
                return(res);
            }
            res.Clear();

            // Si pas de jumelage possible, on peut prendre des tables plus grandes

            List <Table> tablesNombreSup = new List <Table>();

            for (int i = 0; i < R.listeTables.Count; i++)
            {
                if (NbC < R.listeTables[i].nbMaxPlaces)
                {
                    tablesNombreSup.Add(R.listeTables[i]);
                }
            }
            if (tablesNombreSup.Count == 0)
            {
                return(res);
            }
            int   a = tablesNombreSup[0].nbMaxPlaces;
            Table b = tablesNombreSup[0];

            for (int i = 1; i < tablesNombreSup.Count; i++)
            {
                if (tablesNombreSup[i].nbMaxPlaces < a)
                {
                    a = tablesNombreSup[0].nbMaxPlaces;
                    b = tablesNombreSup[i];
                }
            }
            res.Add(b);
            return(res);
        }