예제 #1
0
        private static void ModifyExRoom()
        {
            Console.Clear();
            Console.WriteLine("---> Modificar Sala de exhibiciones\n");
            Console.WriteLine("\n 1 - Sala Estándar");
            Console.WriteLine("\n 2 - Sala Premium");
            Console.WriteLine("\n 3 - Sala VIP");
            Console.Write("\n Ingrese la sala que quiere modificar: ");
            do
            {
                validateOption();
                if (option < 1 || option > 3)
                {
                    Console.Write("\nDebe ingresar una opcion correcta: ");
                }
            } while (option != 1 && option != 2 && option != 3);
            Rooms room = null;

            switch (option)
            {
            case 1:
                room = Program.stdRoom;
                Console.Clear();
                Console.WriteLine("---> Modificar Sala Estándar\n");
                break;

            case 2:
                room = Program.premRoom;
                Console.Clear();
                Console.WriteLine("---> Modificar Sala Premium\n");
                break;

            case 3:
                room = Program.vipRoom;
                Console.Clear();
                Console.WriteLine("---> Modificar Sala VIP\n");
                break;
            }
            Console.WriteLine("\nA ---> Modificar Precio");
            Console.WriteLine("\nB ---> Limpiar Sala");
            Console.Write("\nElija opcion deseada: ");
            string opt = Console.ReadLine();

            while (opt != "A" && opt != "B" && opt != "a" && opt != "b")
            {
                Console.Write("\nElija una opción correcta: ");
                opt = Console.ReadLine();
            }
            if (opt == "A" || opt == "a")
            {
                Console.Write("\n\nIngresa el nuevo precio de la sala: $");
                double newPrice = 0;
                do
                {
                    while (!Double.TryParse(Console.ReadLine(), out newPrice))
                    {
                        Console.Write("\nPrecio incorrecto, ingrese un nuevo precio: $");
                    }
                    if (newPrice < 0)
                    {
                        Console.Write("\nPrecio incorrecto, ingrese un nuevo precio: $");
                    }
                } while (newPrice < 0);
                room.Price = newPrice;
                Console.WriteLine("\nPrecio actualizado exitosamente!");
            }
            else
            {
                Console.WriteLine("\n\n¿Está seguro de que quiere borrar todos los tickets de la sala?");
                Console.WriteLine(" Ingrese Y para sí o cualquier otra cosa para No");
                string opt2 = "";
                opt2 = Console.ReadLine();
                if (opt2 == "Y" || opt2 == "y")
                {
                    room.ClearRoom();
                    Console.WriteLine("\nSala limpiada exitosamente!");
                }
                else
                {
                    Console.WriteLine("\nOperación abortada");
                }
            }
        }
예제 #2
0
            public static void Option3()
            {
                Console.Clear();
                Console.WriteLine("-----> Comprar Boletos <-----\n");
                Console.Write("\nIngrese el ID de la pelicula a comprar: ");
                Movie movie = ExistMovie(Console.ReadLine());

                if (movie != null)
                {
                    double subtotal = 0;
                    double total;
                    Console.WriteLine("Pelicula Elegida");
                    Console.WriteLine("---------------------------------");
                    Console.WriteLine("ID Pelicula: {0}", movie.ID);
                    Console.WriteLine("Titulo de la Pelicula: {0}", movie.Title);
                    Console.WriteLine("Duración de la película: {0}", movie.Duration);
                    Console.WriteLine("Tipo de la película: {0}", movie.Type);
                    Console.WriteLine("---------------------------------");
                    Console.WriteLine("\nSucursales: ");
                    if (BranchData.officeBranches.Count == 0)
                    {
                        Console.WriteLine("No existen sucursales disponibles en este momento.");
                        return;
                    }
                    foreach (Branch office in BranchData.officeBranches)
                    {
                        Console.WriteLine("--------------------------------");
                        Console.WriteLine("ID de la sucursal: {0}", office.ID);
                        Console.WriteLine("Nombre de la sucursal: {0}", office.Name);
                        Console.WriteLine("--------------------------------");
                    }
                    Branch selectOffice = null;
                    Console.Write("Ingrese el ID de la sucursal: ");
BranchAgain:
                    string bID = Console.ReadLine();
                    foreach (Branch office in BranchData.officeBranches)
                    {
                        if (office.ID == bID)
                        {
                            selectOffice = office;
                            break;
                        }
                    }
                    if (selectOffice == null)
                    {
                        Console.WriteLine("Sucursal no encontrada. Ingrese nuevamente el ID: ");
                        goto BranchAgain;
                    }
                    Console.WriteLine("\nSalas de exhibición:");
                    Console.WriteLine(" 1 - Estándar\n");
                    Console.WriteLine(" 2 - Premium\n");
                    Console.WriteLine(" 3 - VIP\n");
                    Console.WriteLine(" 4 - Autocine\n");
                    Console.Write("\nIngrese una opcion deseada: ");
                    do
                    {
                        validateOption();
                        if (option < 1 || option > 4)
                        {
                            Console.WriteLine("Ingrese una opcion correcta: ");
                        }
                    } while (option < 1 || option > 4);
                    Console.Write("\nIngrese la cantidad de boletos a comprar: ");
                    int numOfTickets;
                    do
                    {
                        while (!Int32.TryParse(Console.ReadLine(), out numOfTickets))
                        {
                            Console.Write("\nIngrese una cantidad válida: ");
                        }
                        if (numOfTickets <= 0)
                        {
                            Console.Write("\nDebe ingresar una cantidad mayor a 0: ");
                        }
                    } while (numOfTickets <= 0);
                    bool  space = true;
                    Rooms room  = null;
                    switch (option)
                    {
                    case 1:
                        room = Program.stdRoom;
                        break;

                    case 2:
                        room = Program.premRoom;
                        break;

                    case 3:
                        room = Program.vipRoom;
                        break;

                    case 4:
                        room = Program.driveIn;
                        break;
                    }
                    if (option != 4)
                    {
                        space = room.ValidateSpaces(numOfTickets);
                    }
                    else
                    {
                        space = true;
                    }
                    if (space)
                    {
                        MovieTicket ticket = new MovieTicket();
                        ticket.ID = string.Format("T{0,0:D4}", Billboard.ticketIdentity);
                        Billboard.ticketIdentity++;
                        ticket.MovieName    = movie.Title;
                        ticket.TheatherName = "KODI-MAX";
                        ticket.Room         = room;
                        subtotal            = room.Price * numOfTickets;
                        ticket.Date         = DateTime.Now;
                        ticket.branch       = selectOffice;
                        Random rdn            = new Random();
                        int    countEmployees = 0;
                        foreach (User user in UserRepository.Users)
                        {
                            if (Convert.ToChar(user.UserID.Substring(0, 1)) == 'E')
                            {
                                countEmployees++;
                            }
                        }
                        if (countEmployees == 0)
                        {
                            ticket.EmployeeID   = "V0000";
                            ticket.EmployeeName = "Empleado Virtual";
                        }
                        else
                        {
                            int random        = rdn.Next(1, countEmployees + 1);
                            int countToSelect = 0;
                            foreach (User user in UserRepository.Users)
                            {
                                if (Convert.ToChar(user.UserID.Substring(0, 1)) == 'E')
                                {
                                    countToSelect++;
                                    if (countToSelect == random)
                                    {
                                        ticket.EmployeeID   = user.UserID;
                                        ticket.EmployeeName = user.Name;
                                        break;
                                    }
                                }
                            }
                        }
                        for (int i = 0; i < numOfTickets; i++)
                        {
                            room.AddTicket(ticket);
                        }
                        double tax        = Math.Round(subtotal * 0.3533, 2);
                        double optPayment = 0;
                        total = Math.Round(subtotal + tax, 2);
                        Console.WriteLine("\n\n>Impresión del ticket<");
                        Console.WriteLine("------------------------------------------------------------------");
                        Console.WriteLine("Nombre del cine: {0}", ticket.TheatherName);
                        Console.WriteLine("Nombre del empleado que lo atendió: {0}", ticket.EmployeeName);
                        Console.WriteLine("ID del empleado que lo atendió: {0}", ticket.EmployeeID);
                        Console.WriteLine("Fecha y hora de compra: {0}", ticket.Date);
                        Console.WriteLine("Nombre de la pelicula: {0}", ticket.MovieName);
                        Console.WriteLine("Nombre de la sucursal: {0}", ticket.branch.Name);
                        if (option == 4)
                        {
                            Console.WriteLine("Modalidad: Autocine");
                            Console.WriteLine("Precio de parqueo: $1.50");
                            optPayment = 1.50;
                        }
                        else
                        {
                            Console.WriteLine("Modalidad: Sala normal");
                            Console.WriteLine("Sala: {0}", ticket.Room.Name);
                            Console.WriteLine("Asientos: {0}", room.PrintSeats(ticket));
                        }
                        Console.WriteLine("Subtotal: ${0}", Math.Round(subtotal, 2) + optPayment);
                        Console.WriteLine("Impuesto aplicado (35.33%): ${0}", tax);
                        Console.WriteLine("Total: ${0}", total);
                        Console.WriteLine("------------------------------------------------------------------");
Again:
                        Console.Write("\n\nIngrese el efectivo: $");
                        double payment;
                        do
                        {
                            while (!Double.TryParse(Console.ReadLine(), out payment))
                            {
                                Console.Write("Ingrese una cantidad válida: $");
                            }
                            if (payment < 0)
                            {
                                Console.Write("Ingrese una cantidad válida: $");
                            }
                        } while (payment < 0);

                        if (payment == total)
                        {
                            Console.WriteLine("Cobro exacto, gracias por comprar en KODIMAX.");
                        }
                        else if (payment > total)
                        {
                            Console.WriteLine("Su cambio es ${0}, gracias por comprar en KODIMAX", Math.Round(payment - total, 2));
                        }
                        else
                        {
                            Console.WriteLine("Pago insuficiente");
                            goto Again;
                        }
                    }
                    else
                    {
                        Console.WriteLine("\nNo hay espacio suficiente en la sala para efectuar su compra.");
                    }
                }
                else
                {
                    Console.WriteLine("El ID de pelicula ingresado no existe");
                }
            }