// Abre una conexion a base de datos y devuelve una lista // de Autos del tipo que se pasa como parámetro: 4x4, sedan, economico private List <AutoViewModel> ListaAutosPorTipo(string tipo) { List <AutoViewModel> lstAutos = null; using (Car2GoDBEntities db = new Car2GoDBEntities()) { lstAutos = (from d in db.Auto where d.tipo == tipo && d.estado == "disponible" select new AutoViewModel { IdAuto = d.id_auto, Placa = d.placa, Marca = d.marca, Modelo = d.modelo, Transmision = d.transmision, Combustible = d.combustible, Color = d.color, Anio = (DateTime)d.anio, Rack = d.rack, Tipo = d.tipo, Lugar = d.lugar, Estado = d.estado } ).ToList(); } return(lstAutos); }
// OBTENER REGISTROS public ActionResult Index() { List <ListAutoViewModel> lst; using (Car2GoDBEntities db = new Car2GoDBEntities()) { lst = (from d in db.Auto select new ListAutoViewModel { IdAuto = d.id_auto, Placa = d.placa, Marca = d.marca, Modelo = d.modelo, Transmision = d.transmision, Combustible = d.combustible, Color = d.color, Anio = (DateTime)d.anio, Rack = d.rack, Tipo = d.tipo, ImagenRuta = d.imagen_ruta, Lugar = d.lugar, Estado = d.estado }).ToList(); } return(View(lst)); }
// OBTENER REGISTROS ++++++++++++++++++++ public ActionResult Index() { List <ListUsuarioViewModel> lst; using (Car2GoDBEntities db = new Car2GoDBEntities()) { lst = (from d in db.Usuario select new ListUsuarioViewModel { IdUsuario = d.id_usuario, Password = d.password, DocIdTipo = d.doc_id_tipo, DocIdNum = d.doc_id_num, Nombre = d.nombre, Apellido1 = d.apellido1, Apellido2 = d.apellido2, Email = d.email, LicenciaTipo = d.licencia_tipo, LicenciaNum = d.licencia_num, Nacionalidad = d.nacionalidad, PaisResidencia = d.pais_residencia, Direccion = d.direccion, IdRol = d.id_rol }).ToList(); } return(View(lst)); }
public ActionResult EliminarAuto(int id) { using (Car2GoDBEntities db = new Car2GoDBEntities()) { var oAuto = db.Auto.Find(id); db.Auto.Remove(oAuto); db.SaveChanges(); } return(Redirect("~/InventarioAutos/")); }
private void RegistrarUsuarioReservaEnDB(Car2GoDBEntities db, int IdReservaNueva) { oUsuario = (Usuario)Session["User"]; int IdUsuario = oUsuario.id_usuario; var oUsuarioReserva = new UsuarioReserva { id_reserva = IdReservaNueva, id_usuario = IdUsuario }; db.UsuarioReserva.Add(oUsuarioReserva); db.SaveChanges(); }
public ActionResult AgregarAuto(AutoViewModel model) { try { //Si todas las validaciones fueron correctas if (ModelState.IsValid) { string nombreArchivo = Path.GetFileNameWithoutExtension(model.ImageFile.FileName); string extension = Path.GetExtension(model.ImageFile.FileName); //nombreArchivo = nombreArchivo + "_" + DateTime.Now.ToString("yymmssfff") + extension; nombreArchivo = model.Placa + "_" + model.Marca + "_" + model.Modelo + "_" + model.Color + "_" + DateTime.Now.ToString("yyyy-MM-dd") + extension; model.ImagenRuta = "~/Assets/images/inventario/" + nombreArchivo; nombreArchivo = Path.Combine(Server.MapPath("~/Assets/images/inventario/"), nombreArchivo); model.ImageFile.SaveAs(nombreArchivo); using (Car2GoDBEntities db = new Car2GoDBEntities()) { var oAuto = new Auto { placa = model.Placa, marca = model.Marca, modelo = model.Modelo, transmision = model.Transmision, combustible = model.Combustible, color = model.Color, anio = model.Anio, rack = Convert.ToByte(model.Rack), tipo = model.Tipo, imagen_ruta = model.ImagenRuta, lugar = model.Lugar, estado = model.Estado }; db.Auto.Add(oAuto); db.SaveChanges(); } ModelState.Clear(); return(Redirect("~/InventarioAutos/")); } return(View(model)); } catch (Exception ex) { throw new Exception(ex.Message); } }
//Recibe el id de la reserva, usando el metodo EnviarCorreo envia confirmacion a cliente a su correo registrado public JsonResult ConfirmacionReserva(int id) { oUsuario = (Usuario)Session["User"]; string emailBody = "<h3>Confirmación de Reserva</h3>"; emailBody += "<p>Estimado(a)," + oUsuario.nombre + " " + oUsuario.apellido1 + "</p>"; emailBody += "<p>Se ha registrado su reserva con los siguientes datos generales: </p>"; emailBody += "<hr> "; using (Car2GoDBEntities db = new Car2GoDBEntities()) { Reserva reserva = new Reserva(); reserva = db.Reserva.Find(id); emailBody += "<h4>Datos Generales</h4> "; emailBody += "<p>IdReserva: " + reserva.id_reserva + "</p>"; emailBody += "<p>Fecha y hora de reserva: " + reserva.fecha_hora_reserva + "</p>"; emailBody += "<p>IdAuto: " + reserva.id_auto + "</p> <br/><hr/>"; //Retiro emailBody += "<h4>Retiro</h4> "; emailBody += "<p>Lugar de Retiro: " + reserva.lugar_retiro + "</p>"; emailBody += "<p>Fecha de Retiro: " + reserva.fecha_retiro.ToShortDateString() + "</p>"; emailBody += "<p>Hora de Retiro: " + reserva.hora_retiro.ToShortTimeString() + "</p> <hr/>"; //Devolucion emailBody += "<h4>Devolución</h4> "; emailBody += "<p>Lugar de Devolución: " + reserva.lugar_devolucion + "</p>"; emailBody += "<p>Fecha de Devolución: " + reserva.fecha_devolucion.ToShortDateString() + "<p>"; emailBody += "<p>Hora de Devolución: " + reserva.hora_devolucion.ToShortTimeString() + "</p> <hr/>"; //Dias y cargos emailBody += "<h4>Cantidad de Días y Cargos </h4> "; emailBody += "<p>Cantidad de Dias: " + reserva.cantidad_dias + "</p>"; emailBody += "<p>Cargos por servicios: " + reserva.cargos_servicios + "</p>"; emailBody += "<p>Cargos por accesorios: " + reserva.cargos_accesorios + "</p><br/><hr/>"; emailBody += "<p><strong>SubTotal: </strong>" + reserva.cargos_subtotal + "</p>"; emailBody += "<p>El monto a reembolsar por deposito es: " + reserva.monto_reembolso + "</p> "; } emailBody += "<p> Muchas gracias. </p> <p><strong> Car2Go Costa Rica </strong> </p>"; bool result = false; result = EnviarCorreo(oUsuario.email, "Car2Go >> Confirmacion de Reserva #" + id, emailBody); return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult ModificarAuto(AutoViewModel model) { try { if (ModelState.IsValid) { string nombreArchivo = Path.GetFileNameWithoutExtension(model.ImageFile.FileName); string extension = Path.GetExtension(model.ImageFile.FileName); //nombreArchivo = nombreArchivo + "_" + DateTime.Now.ToString("yymmssfff") + extension; nombreArchivo = model.Placa + "_" + model.Marca + "_" + model.Modelo + "_" + model.Color + "_" + DateTime.Now.ToString("yyyy-MM-dd") + extension; model.ImagenRuta = "~/Assets/images/inventario/" + nombreArchivo; nombreArchivo = Path.Combine(Server.MapPath("~/Assets/images/inventario/"), nombreArchivo); model.ImageFile.SaveAs(nombreArchivo); using (Car2GoDBEntities db = new Car2GoDBEntities()) { var oAuto = db.Auto.Find(model.IdAuto); oAuto.placa = model.Placa; oAuto.marca = model.Marca; oAuto.modelo = model.Modelo; oAuto.transmision = model.Transmision; oAuto.combustible = model.Combustible; oAuto.color = model.Color; oAuto.anio = model.Anio; oAuto.rack = Convert.ToByte(model.Rack); oAuto.imagen_ruta = model.ImagenRuta; oAuto.lugar = model.Lugar; oAuto.estado = model.Estado; oAuto.id_auto = model.IdAuto; db.Entry(oAuto).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } return(Redirect("~/InventarioAutos/")); } return(View(model)); } catch (Exception ex) { throw new Exception(ex.Message); } }
public ActionResult RegistrarCliente(UsuarioViewModel model) { try { //Si todas las validaciones fueron correctas if (ModelState.IsValid) { using (Car2GoDBEntities db = new Car2GoDBEntities()) { var oUsuario = new Usuario { password = model.Password, doc_id_tipo = model.DocIdTipo, doc_id_num = model.DocIdNum, nombre = model.Nombre, apellido1 = model.Apellido1, apellido2 = model.Apellido2, email = model.Email, licencia_tipo = model.LicenciaTipo, licencia_num = model.LicenciaNum, nacionalidad = model.Nacionalidad, pais_residencia = model.PaisResidencia, direccion = model.Direccion, id_rol = 2 }; db.Usuario.Add(oUsuario); db.SaveChanges(); } ViewBag.Usuario = model.Nombre + " " + model.Apellido1; return(Redirect("~/Usuario/RegistroExitoso")); } return(View(model)); } catch (Exception ex) { throw new Exception(ex.Message); } }
public static List <ReservaServicioViewModel> ServiciosDisponibles() { List <ReservaServicioViewModel> lstSrv = new List <ReservaServicioViewModel>(); using (var db = new Car2GoDBEntities()) { foreach (Servicio srv in db.Servicio) { ReservaServicioViewModel rsvm = new ReservaServicioViewModel(); rsvm.IdServicio = srv.id_servicio; rsvm.ServicioNombre = srv.nombre; rsvm.ServicioDescripcion = srv.descripcion; rsvm.Cantidad = 0; rsvm.CantidadDias = 1; rsvm.PrecioPorDia = srv.precio; rsvm.Cargo = rsvm.Cantidad * rsvm.CantidadDias * rsvm.PrecioPorDia; lstSrv.Add(rsvm); } } return(lstSrv); }
public static List <ReservaAccesorioViewModel> AccesoriosDisponibles() { List <ReservaAccesorioViewModel> lstAcc = new List <ReservaAccesorioViewModel>(); using (var db = new Car2GoDBEntities()) { foreach (Accesorio acc in db.Accesorio) { ReservaAccesorioViewModel ravm = new ReservaAccesorioViewModel(); ravm.IdAccesorio = acc.id_accesorio; ravm.AccesorioNombre = acc.nombre; ravm.AccesorioDescripcion = acc.descripcion; ravm.Cantidad = 0; ravm.CantidadDias = 1; ravm.PrecioPorDia = (int)acc.precio; ravm.Cargo = ravm.Cantidad * ravm.CantidadDias * ravm.PrecioPorDia; lstAcc.Add(ravm); } } return(lstAcc); }
private void AgregarReservaAccesoriosEnDB(Car2GoDBEntities db, ReservaViewModel model, int IdReservaNueva) { /* Si la insercion de la nueva reserva es correcta, la variable * IdReservaNueva sera mayor a cero, y ademas la lista de accesorios sera mayor a cero * entonces inserto la lista de acc en la tabla * [dbo.ReservaAccesorio] utilizando el procedimiento almacenado * [SP_InsertarReservaServicios] el cual usa internamente el tipo personalizado * [DatosReservaServicios] que recibe una lista de parametros en formato tabla. * */ if (model.Accesorios.Count > 0 && IdReservaNueva > 0) { var dtAccesorios = new DataTable(); dtAccesorios.Columns.Add("id_reserva", typeof(int)); dtAccesorios.Columns.Add("id_accesorio", typeof(int)); dtAccesorios.Columns.Add("cantidad", typeof(Byte)); dtAccesorios.Columns.Add("cantidad_dias", typeof(int)); dtAccesorios.Columns.Add("precio_por_dia", typeof(decimal)); dtAccesorios.Columns.Add("cargo", typeof(decimal)); foreach (ReservaAccesorio ra in model.Accesorios) { /* Nótese como el primer parametro es la varible IdReservaNueva * que fue regresada en la operacion de insercion de reserva */ dtAccesorios.Rows.Add( IdReservaNueva, ra.id_accesorio, ra.cantidad, ra.cantidad_dias, ra.precio_por_dia, ra.cargo); } var parametros_accesorios = new SqlParameter("@lst_accesorios", SqlDbType.Structured); parametros_accesorios.Value = dtAccesorios; parametros_accesorios.TypeName = "dbo.DatosReservaAccesorios"; db.Database.ExecuteSqlCommand("exec SP_InsertarReservaAccesorios @lst_accesorios", parametros_accesorios); } }
public ActionResult Detalles(int id) { AutoViewModel model = new AutoViewModel(); using (Car2GoDBEntities db = new Car2GoDBEntities()) { var oAuto = db.Auto.Find(id); model.Placa = oAuto.placa; model.Marca = oAuto.marca; model.Modelo = oAuto.modelo; model.Transmision = oAuto.transmision; model.Combustible = oAuto.combustible; model.Color = oAuto.color; model.Anio = Convert.ToDateTime(oAuto.anio); model.Rack = oAuto.rack; model.Tipo = oAuto.tipo; model.ImagenRuta = oAuto.imagen_ruta; model.Lugar = oAuto.lugar; model.Estado = oAuto.estado; model.IdAuto = oAuto.id_auto; } return(View(model)); }
public ActionResult AgregarReserva(ReservaViewModel model) { Util u = new Util(); try { //Si todas las validaciones fueron correctas if (ModelState.IsValid) { using (Car2GoDBEntities db = new Car2GoDBEntities()) { /** Inserto la reserva en la DB usando el SP_InsertarReserva * El cual regresa el id_reserva que se acaba de insertar se * guarda en el int IdReservaNueva y se usara para actualizar las * tablas de ReservaServicio, ReservaAccesorio, UsuarioReserva */ int IdReservaNueva = (int)db.SP_InsertarReserva( DateTime.Now, model.IdAuto, model.LugarRetiro, model.FechaRetiro, model.HoraRetiro, model.LugarDevolucion, model.FechaDevolucion, model.HoraDevolucion, u.DiasEntreFechas(model.FechaRetiro, model.FechaDevolucion), model.CargosServicios, model.CargosAccesorios, model.CargosSubtotal, model.Descuento, model.CargosAtraso, model.CargosDesperfecto, model.CargosTotal, model.MontoReembolso, model.Estado ).SingleOrDefault(); db.SaveChanges(); //Agregamos lista de servicios AgregarReservaServiciosEnDB(db, model, IdReservaNueva); //Agregamos lista de accesorios, si los hay... AgregarReservaAccesoriosEnDB(db, model, IdReservaNueva); //Registrar Reserva en UsuarioReserva RegistrarUsuarioReservaEnDB(db, IdReservaNueva); } //Si todas las inserciones fueron correctas regresamos al index de reservas (historial) return(Redirect("~/Reservas/")); } return(View(model)); } catch (Exception ex) { throw new Exception(ex.Message);; } }
public ActionResult Index() { oUsuario = (Usuario)Session["User"]; //ViewBag.CurrentUser = oUsuario.nombre; // Lista historial de reservas de un cliente List <ListReservaViewModel> lst; using (Car2GoDBEntities db = new Car2GoDBEntities()) { //inner join devuelve todas las reservas del Usuario Logueado lst = (from reserva in db.Reserva join usuario_reserva in db.UsuarioReserva on reserva.id_reserva equals usuario_reserva.id_reserva where usuario_reserva.id_usuario == oUsuario.id_usuario select new ListReservaViewModel { //Datos de Cliente Nombre = oUsuario.nombre, Apellido1 = oUsuario.apellido1, Apellido2 = oUsuario.apellido2, Email = oUsuario.email, //Datos de Reservas IdReserva = reserva.id_reserva, FechaHoraReserva = reserva.fecha_hora_reserva, IdAuto = reserva.id_auto, LugarRetiro = reserva.lugar_retiro, FechaRetiro = reserva.fecha_retiro, HoraRetiro = reserva.hora_retiro, LugarDevolucion = reserva.lugar_devolucion, FechaDevolucion = reserva.fecha_devolucion, HoraDevolucion = reserva.hora_devolucion, CantidadDias = reserva.cantidad_dias, CargosServicios = reserva.cargos_servicios, CargosAccesorios = reserva.cargos_accesorios, CargosSubtotal = reserva.cargos_subtotal, Descuento = reserva.descuento, CargosAtraso = reserva.cargos_atraso, CargosDesperfecto = reserva.cargos_deperfecto, CargosTotal = reserva.cargos_total, MontoReembolso = reserva.monto_reembolso, Estado = reserva.estado, //Detalle de servicios de la reserva Servicios = (from servicio in db.ReservaServicio where servicio.id_reserva == reserva.id_reserva select new ReservaServicioViewModel { Cantidad = servicio.cantidad, ServicioNombre = servicio.Servicio.nombre, ServicioDescripcion = servicio.Servicio.descripcion, CantidadDias = servicio.cantidad_dias, PrecioPorDia = servicio.precio_por_dia, Cargo = servicio.cargo }).ToList(), //Detalle de accesorios de la reserva Accesorios = (from accesorio in db.ReservaAccesorio where accesorio.id_reserva == reserva.id_reserva select new ReservaAccesorioViewModel { Cantidad = accesorio.cantidad, AccesorioNombre = accesorio.Accesorio.nombre, AccesorioDescripcion = accesorio.Accesorio.descripcion, CantidadDias = accesorio.cantidad_dias, PrecioPorDia = accesorio.precio_por_dia, Cargo = accesorio.cargo }).ToList() }).ToList(); } return(View(lst)); }