コード例 #1
0
ファイル: ReservasController.cs プロジェクト: roy-marquez/C2G
        // 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);
        }
コード例 #2
0
        // 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));
        }
コード例 #3
0
ファイル: UsuarioController.cs プロジェクト: roy-marquez/C2G
        // 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));
        }
コード例 #4
0
 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/"));
 }
コード例 #5
0
ファイル: ReservasController.cs プロジェクト: roy-marquez/C2G
        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();
        }
コード例 #6
0
        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);
            }
        }
コード例 #7
0
ファイル: ReservasController.cs プロジェクト: roy-marquez/C2G
        //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));
        }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
ファイル: UsuarioController.cs プロジェクト: roy-marquez/C2G
        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);
            }
        }
コード例 #10
0
ファイル: ReservasController.cs プロジェクト: roy-marquez/C2G
        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);
        }
コード例 #11
0
ファイル: ReservasController.cs プロジェクト: roy-marquez/C2G
        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);
        }
コード例 #12
0
ファイル: ReservasController.cs プロジェクト: roy-marquez/C2G
        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);
            }
        }
コード例 #13
0
        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));
        }
コード例 #14
0
ファイル: ReservasController.cs プロジェクト: roy-marquez/C2G
        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);;
            }
        }
コード例 #15
0
ファイル: ReservasController.cs プロジェクト: roy-marquez/C2G
        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));
        }