public void TestMethodIngresarVenta()
        {
            var gestorDAO = new GestorDAOSql();
            var ventaDAO = new VentaDAOSql(gestorDAO);

            var empleado = new Empleado();
            empleado.ID = 2;

            var pasajero = new Pasajero();
            pasajero.ID = 3;

            var bus = new Bus();
            bus.ID = 3;

            var conductor = new Conductor();
            conductor.ID = 2;

            var ruta = new Ruta();
            ruta.ID = 1;

            var itinerario = new Itinerario("19/11/2015", "23:30:00", 20, bus, conductor, ruta);
            itinerario.ID = 22;

            var venta = new Venta("23", "1234324", "S99930", itinerario, empleado, pasajero, 30.5m);

            Assert.AreEqual(true, ventaDAO.Ingresar(venta));
        }
        public bool Ingresar(Itinerario itinerario)
        {
            SqlCommand comando = null;
            string procedimientoAlmacenado = "sp_InsertarItinerario";

            try
            {
                comando = gestorDAO.ObtenerComandoSP(procedimientoAlmacenado);
                comando.Parameters.AddWithValue("@prmFechaSalida", Convert.ToDateTime(itinerario.FechaSalida));
                comando.Parameters.AddWithValue("@prmHoraSalida", itinerario.HoraSalida);
                comando.Parameters.AddWithValue("@prmPrecio", itinerario.Precio);
                comando.Parameters.AddWithValue("@prmidConductor", itinerario.Conductor.ID);
                comando.Parameters.AddWithValue("@prmidBus", itinerario.Bus.ID);
                comando.Parameters.AddWithValue("@prmidRuta", itinerario.Ruta.ID);
                comando.Parameters.AddWithValue("@prmEstado", itinerario.Estado);

                if (comando.ExecuteNonQuery() > 0)
                    return true;
            }
            catch (SqlException e)
            {
                throw e;
            }
            finally { comando.Connection.Close(); }

            return false;
        }
        public bool ValidarItinerario(Itinerario itinerario)
        {
            foreach (Itinerario i in Itinerarios)
            {
                string fechaSalida = Convert.ToDateTime(i.FechaSalida).ToString("M/dd/yyyy");

                if (itinerario.Bus.Placa.Equals(i.Bus.Placa)
                       && itinerario.FechaSalida.Equals(fechaSalida))
                    return false;
            }

            return true;
        }
 public Venta(string Asiento, string NumeroBoleto, string CodigoSerie, Itinerario Itinerario, Empleado Empleado, Pasajero Pasajero)
 {
     this.ID = 0;
     this.FechaCompra = DateTime.Now.ToShortDateString();
     this.Asiento = Asiento;
     this.NumeroBoleto = NumeroBoleto;
     this.CodigoSerie = CodigoSerie;
     this.Itinerario = Itinerario;
     this.Empleado = Empleado;
     this.Pasajero = Pasajero;
     this.Precio = Itinerario.Precio;
     Estado = true;
 }
        public bool Ingresar(Itinerario itinerario)
        {
            var gestorDAO = new FabricaDAOSql().CrearGestorDAO();
            var itinerarioDAO = new FabricaDAOSql().CrearItinerarioDAO(gestorDAO);
            var conductor = new Conductor();
            conductor.Itinerarios = itinerarioDAO.Listar();

            itinerarioDAO.Ingresar(itinerario);
            return true;
               /* if (conductor.ValidarItinerario(itinerario))
            {
            }*/

            //return false;
        }
        public ActionResult NuevoItinerario(FormCollection frm)
        {
            MantenedorConductorServicio objconductorid = new MantenedorConductorServicio();
            MantenedorTipoServicioServicio objtipoid = new MantenedorTipoServicioServicio();
            MantenedorRutaServicio objrutaid = new MantenedorRutaServicio();
            MantenedorBusServicio objBus = new MantenedorBusServicio();

            Itinerario itinerario = new Itinerario();

            itinerario.FechaSalida = frm["FechaSalida"];
            itinerario.HoraSalida = frm["horaSalida"];
            itinerario.Precio = Convert.ToDecimal(frm["Precio"]);

            var objcond = Convert.ToInt16(Request.Form["listarconductor"]);
            itinerario.Conductor = objconductorid.BuscarID(objcond);

            var objserv = Convert.ToInt16(Request.Form["listarservicio"]);

            Bus bus = null;
            List<Bus> listabuses = objBus.Listar();

            foreach(Bus b in listabuses)
            {
                if (b.TipoServicio.ID == objtipoid.BuscarID(objserv).ID)
                    bus = b;
            }

            itinerario.Bus = bus;

            var objdest = Convert.ToInt16(Request.Form["listardestinos"]);
            itinerario.Ruta = objrutaid.BuscarID(objserv);

            itinerario.Estado = Convert.ToBoolean(frm["Estado"]);

            Boolean inserto = objItinerarioServicio.Ingresar(itinerario);

            if (inserto)
            {
                return RedirectToAction("GestionarItinerario", "Itinerario", new { mensaje = "Se registró correctamente." });
            }
            else
            {
                return RedirectToAction("GestionarItinerario", "Itinerario", new { error = "No se pudo insertar." });
            }
        }
        public void TestMethodIngresarItinerario()
        {
            var gestorDAO = new GestorDAOSql();
            var itinerarioDAO = new ItinerarioDAOSql(gestorDAO);

            var bus = new Bus();
            bus.ID = 2;

            var conductor = new Conductor();
            conductor.ID = 1;

            var ruta = new Ruta();
            ruta.ID = 3;

            var itinerario = new Itinerario("13/11/2015", "21:30:00", 20, bus, conductor, ruta);

            Assert.AreEqual(true, itinerarioDAO.Ingresar(itinerario));
        }
        public void TestMethodIngresarItinerario()
        {
            var gestorDAO = new GestorDAOSql();
            var itinerarioDAO = new FabricaDAOSql().CrearItinerarioDAO(gestorDAO);

            var bus = new Bus();
            bus.ID = 1;
            bus.Placa = "PER-0793";

            var conductor = new Conductor();
            conductor.ID = 1;

            var ruta = new Ruta();
            ruta.ID = 3;

            var itinerario = new Itinerario("9/11/2015", "21:30:00", 20, bus, conductor, ruta);

            var itinerarioServicio = new IngresarItinerarioServicio();

            Assert.AreEqual(false, itinerarioServicio.Ingresar(itinerario));
        }
        public void TestMethodValidarItinerario()
        {
            var conductor = new Conductor();

            var bus = new Bus();
            bus.ID = 1;
            bus.Placa = "PER-0793";

            var gestorDAOSql = new GestorDAOSql();
            var itinerarioDAOSql = new ItinerarioDAOSql(gestorDAOSql);

            conductor.ID = 1;

            var ruta = new Ruta();
            ruta.ID = 3;

            var itinerario = new Itinerario("9/11/2015", "21:30:00", 20, bus, conductor, ruta);

            conductor.Itinerarios = itinerarioDAOSql.Listar();

            Assert.AreEqual(false, conductor.ValidarItinerario(itinerario));
        }
        public Itinerario Buscar(int id)
        {
            string procedimientoAlmacenado = "sp_BuscarItinerarioxID";
            SqlCommand comando = null;
            Itinerario itinerario = null;

            try
            {
                comando = gestorDAO.ObtenerComandoSP(procedimientoAlmacenado);

                comando.Parameters.AddWithValue("@prmId", id);

                gestorDAO.AbrirConexion();

                SqlDataReader dataReader = comando.ExecuteReader();

                if (dataReader.Read())
                {
                    var conductor = new Conductor(dataReader.GetString(17), dataReader.GetString(18), dataReader.GetString(19), dataReader.GetString(20), dataReader.GetDateTime(21).ToString(), dataReader.GetString(22));
                    var tipoServicio = new TipoServicio(dataReader.GetString(30), dataReader.GetString(31));
                    var origen = new Ciudad(dataReader.GetString(34));
                    var destino = new Ciudad(dataReader.GetString(37));
                    var ruta = new Ruta(origen, destino, Convert.ToInt16(dataReader["TimepoEstimado"]));
                    var bus = new Bus(Convert.ToInt16(dataReader["Pisos"]), dataReader.GetString(11), dataReader.GetString(12), dataReader.GetString(13), tipoServicio);
                    itinerario = new Itinerario(dataReader["FechaSalida"].ToString(), dataReader["HoraSalida"].ToString(), Convert.ToDecimal(dataReader["Precio"]), bus, conductor, ruta);

                    itinerario.ID = Convert.ToInt16(dataReader["idItinerario"]);

                }
            }
            catch (SqlException e)
            {
                throw e;
            }
            finally { gestorDAO.CerrarConexion(); }

            return itinerario;
        }
        public List<Venta> MostrarVenta()
        {
            SqlCommand comando = null;
            string procedimientoAlmacenado = "sp_MostrarPasaje";
            var mostrarVenta = new List<Venta>();
            try
            {
                comando = gestorDAO.ObtenerComandoSP(procedimientoAlmacenado);

                var dataReader = comando.ExecuteReader();

                while (dataReader.Read())
                {
                    var pasajero = new Pasajero();
                    pasajero.Nombres = dataReader[14].ToString();
                    pasajero.ApellidoPaterno = dataReader[15].ToString();
                    pasajero.ApellidoMaterno = dataReader[16].ToString();

                    Ciudad origen = new Ciudad();
                    origen.Nombre = dataReader[34].ToString();

                    Ciudad destino = new Ciudad();
                    destino.Nombre = dataReader[37].ToString();

                    Ruta ruta = new Ruta();
                    ruta.Origen = origen;
                    ruta.Destino = destino;

                    Itinerario itinerario = new Itinerario();
                    itinerario.HoraSalida = dataReader[22].ToString();
                    itinerario.Ruta = ruta;

                    Venta venta = new Venta();

                    venta.FechaCompra = dataReader[1].ToString();
                    venta.Asiento = dataReader[2].ToString();
                    venta.NumeroBoleto = dataReader[3].ToString();
                    venta.CodigoSerie = dataReader[4].ToString();
                    venta.Pasajero = pasajero;
                    venta.Itinerario = itinerario;

                    venta.CantidadTotal = Convert.ToDecimal(dataReader["PrecioTotal"]);

                    mostrarVenta.Add(venta);
                }
            }
            catch (SqlException e)
            {

                throw e;
            }

            return mostrarVenta;
        }
        public List<Itinerario> Listar()
        {
            SqlCommand comando = null;
            string procedimientoAlmacenado = "sp_ListarItinerario";
            var listaItinerarios = new List<Itinerario>();

            try
            {
                comando = gestorDAO.ObtenerComandoSP(procedimientoAlmacenado);

                var dataReader = comando.ExecuteReader();

                while (dataReader.Read())
                {
                    var conductor = new Conductor(dataReader.GetString(17), dataReader.GetString(18), dataReader.GetString(19), dataReader.GetString(20), dataReader.GetDateTime(21).ToString(), dataReader.GetString(22));
                    var tipoServicio = new TipoServicio(dataReader.GetString(30), dataReader.GetString(31));
                    var origen = new Ciudad(dataReader.GetString(34));
                    var destino = new Ciudad(dataReader.GetString(37));
                    var ruta = new Ruta(origen, destino, Convert.ToInt16(dataReader["TimepoEstimado"]));
                    var bus = new Bus(Convert.ToInt16( dataReader["Pisos"]), dataReader.GetString(11), dataReader.GetString(12), dataReader.GetString(13), tipoServicio);
                    var itinerario = new Itinerario(dataReader["FechaSalida"].ToString(), dataReader["HoraSalida"].ToString(), Convert.ToDecimal(dataReader["Precio"]), bus, conductor, ruta);

                    itinerario.ID = Convert.ToInt16(dataReader["idItinerario"]);
                    listaItinerarios.Add(itinerario);
                }
            }
            catch (SqlException e)
            {

                throw e;
            }

            return listaItinerarios;
        }
 public bool Modificar(Itinerario itinerario)
 {
     throw new NotImplementedException();
 }