public static ClPasajero LoginIn(ClPasajero p)
        {
            ClPasajero pasajero = null;
            String sql = "SELECT * FROM \"pasajeros\" WHERE \"rut\" = :rut AND \"contrasena\" = :contrasena";

            DB.Instance.Conectar(Constantes.CONEXION_DUOC);

            DB.Instance.EjecutarQuery(sql);
            DB.Instance.setParameter("rut", p.Rut);
            DB.Instance.setParameter("contrasena", p.Contrasena);
            DataTable dt = DB.Instance.Leer(sql);
            DB.Instance.Cerrar();

            if (dt.Rows.Count > 0)
            {
                pasajero = new ClPasajero(p.Rut, p.Contrasena);
                pasajero.IdPasajero = int.Parse(dt.Rows[0]["id_pasajero"].ToString());
                pasajero.IdRol = int.Parse(dt.Rows[0]["id_rol"].ToString());
                pasajero.Nombre = dt.Rows[0]["nombre"].ToString();
                pasajero.ApellidoPa = dt.Rows[0]["apellido_pa"].ToString();
                pasajero.ApellidoMa = dt.Rows[0]["apellido_ma"].ToString();

                return pasajero;
            }
            return pasajero;
        }
 public static Boolean DeletePasajero(ClPasajero p)
 {
     String sql = String.Format("DELETE FROM \"pasajeros\" WHERE \"id_pasajero\" = '{0}' ",
                                 p.IdPasajero
                                 );
     DB.Instance.Ejecutar(sql);
     return true;
 }
 public ClReservar(ClPasajero usuario, List<ClHabitaciones> reservas,DateTime fechaIngreso, DateTime fechaSalida, long dias, long totalxnoche, long total)
 {
     this.Usuario = usuario;
     this.Reservas = reservas;
     this.FechaIngreso = fechaIngreso;
     this.FechaSalida = fechaSalida;
     this.Dias = dias;
     this.Totalxnoche = totalxnoche;
     this.Total = total;
 }
        public static DataTable getReservaByUser(ClPasajero p)
        {
            string sql_r = @"SELECT *
                            FROM ""reservas""
                            LEFT JOIN ""estado_reservas"" ON   ""reservas"".""id_reserva_estado"" = ""estado_reservas"".""id_reserva_estado""
                            WHERE ""id_pasajero"" = :id
                            ORDER BY ""id_reserva"" DESC ";

            DB.Instance.Conectar(Constantes.CONEXION_DUOC);
            DB.Instance.EjecutarQuery(sql_r);
            DB.Instance.setParameter("id", p.IdPasajero);
            DataTable dt = DB.Instance.Leer(sql_r);
            return dt;
        }
        public static int cancelarByUser(int id, ClPasajero p)
        {
            string sql_r = @"UPDATE ""reservas""
                                SET ""id_reserva_estado"" = 3
                                WHERE ""id_reserva"" = :id
                                AND ""id_pasajero"" = :idp
                             ";

            DB.Instance.Conectar(Constantes.CONEXION_DUOC);
            DB.Instance.EjecutarQuery(sql_r);
            DB.Instance.setParameter("id", id);
            DB.Instance.setParameter("idp", p.IdPasajero);
            return DB.Instance.Procesar();
        }
 protected void btnIngresar_Click(object sender, EventArgs e)
 {
     ClPasajero p = new ClPasajero(txtRut.Text.ToUpper(), txtContraseña.Text);
     ClPasajero pp = DAOPasajero.LoginIn(p);
     if (pp == null)
     {
         lblError.Text = "Combinación rut/contraseña incorrecto. ";
     }
     else
     {
         Session["login"] = pp;
         Response.Redirect("index.aspx");
     }
 }
 public static Boolean UpdatePasajero(ClPasajero p)
 {
     String sql = String.Format("UPDATE \"pasajeros\" SET \"rut\" = '{0}', \"nombre\" = '{1}', \"contrasena\" = '{2}', \"apellido_pa\" = '{3}', \"apellido_ma\" = '{4}', \"telefono\" = '{5}', \"email\" = '{6}', \"direccion\" = '{7}', \"fecha_nac\" = TO_DATE('{8}', 'dd/MM/YYYY') WHERE \"id_pasajero\" = '{9}'",
                                 p.Rut
                                 , p.Nombre
                                 , p.Contrasena
                                 , p.ApellidoMa
                                 , p.ApellidoPa
                                 , p.Telefono
                                 , p.Email
                                 , p.Direccion
                                 , p.Fecha_nac
                                 , p.IdPasajero);
     DB.Instance.Ejecutar(sql);
     return true;
 }
        public static List<DataTable> getDetalle(ClPasajero p)
        {
            List<DataTable> table = new List<DataTable>();
            DataTable dt = DAOReservar.getReservaByUser(p);
            DataTable habs = new DataTable();
            DataTable servs = new DataTable();

            table.Add(dt);
            for (int i = 0; i < dt.Rows.Count; i++) {
                habs.Merge(DAOReservar.getDetalleHabs(int.Parse(dt.Rows[i]["id_reserva"].ToString())));
                servs.Merge(DAOReservar.getDetalleServ(int.Parse(dt.Rows[i]["id_reserva"].ToString())));
            }
            table.Add(habs);
            table.Add(servs);

            return table;
        }
        public static Boolean InsertPasajero(ClPasajero p)
        {
            String sql=  @"INSERT INTO ""pasajeros""
                            (""rut"", ""nombre"", ""contrasena"", ""apellido_pa"", ""apellido_ma"", ""telefono"", ""email"", ""direccion"", ""fecha_nac"", ""id_rol"")
                            VALUES (:rut,:nombre,:contrasena,:apellido_pa,:apellido_ma,:telefono,:email,:direccion,TO_DATE(:fecha_nac, 'dd-MM-YYYY HH24:MI:SS'),:idrol)";

            DB.Instance.Conectar(Constantes.CONEXION_DUOC);
            DB.Instance.EjecutarQuery(sql);
            DB.Instance.setParameter("rut", p.Rut);
            DB.Instance.setParameter("nombre", p.Nombre);
            DB.Instance.setParameter("contrasena", p.Contrasena);
            DB.Instance.setParameter("apellido_pa", p.ApellidoPa);
            DB.Instance.setParameter("apellido_ma", p.ApellidoMa);
            DB.Instance.setParameter("telefono", p.Telefono);
            DB.Instance.setParameter("email", p.Email);
            DB.Instance.setParameter("direccion", p.Direccion);
            DB.Instance.setParameter("fecha_nac", p.Fecha_nac);
            DB.Instance.setParameter("idrol", p.IdRol);
            int r = DB.Instance.Procesar();
            DB.Instance.Cerrar();
            return r > 0;
        }
        public static int sqlInsertar(string fecha1, string fecha2, int total, int idhotel, int cant, List<string> habitaciones, List<string> servicios, ClPasajero p)
        {
            string sql_r = @"INSERT INTO ""reservas""
                                (""id_pasajero"",""id_reserva_estado"",""fecha_ingreso"",""fecha_salida"",""precio_total"")
                            VALUES
                                (:idpasajero,:idreserva,TO_DATE(:fecha1, 'dd/MM/YYYY'),TO_DATE(:fecha2, 'dd/MM/YYYY'),:total)
                             ";

            DB.Instance.Conectar(Constantes.CONEXION_DUOC);
            DB.Instance.EjecutarQuery(sql_r);
            DB.Instance.setParameter("idpasajero", p.IdPasajero);
            DB.Instance.setParameter("idreserva", 1);
            DB.Instance.setParameter("fecha1", fecha1);
            DB.Instance.setParameter("fecha2", fecha2);
            DB.Instance.setParameter("total", total);
            DB.Instance.Procesar();
            int id_reserva = DB.Instance.LastID("reservas_seq");

            string sql_hr = @"INSERT INTO ""habitaciones_reservas""
                            (""id_habitacion"",""id_reserva"")
                            VALUES
                            (:idh, :idr)";

            string sql_sr = @"INSERT INTO ""servicios_reservas""
                            (""id_servicio"",""id_reserva"")
                            VALUES
                            (:ids, :idr)";

            string sqlu_h = @"UPDATE ""habitaciones"" SET
                            ""id_habitacion_estado"" = :estado
                            WHERE
                            ""id_habitacion"" = :idha";

            for (int h = 0; h < habitaciones.Count; h++) {
                DB.Instance.EjecutarQuery(sql_hr);
                DB.Instance.setParameter("idh", habitaciones[h]);
                DB.Instance.setParameter("idr", id_reserva);
                DB.Instance.Procesar();

                DB.Instance.EjecutarQuery(sqlu_h);
                DB.Instance.setParameter("estado", 3);
                DB.Instance.setParameter("idha", habitaciones[h]);
                DB.Instance.Procesar();
            }

            for (int s = 0; s < servicios.Count; s++)
            {
                DB.Instance.EjecutarQuery(sql_sr);
                DB.Instance.setParameter("ids", servicios[s]);
                DB.Instance.setParameter("idr", id_reserva);
                DB.Instance.Procesar();
            }

            DB.Instance.Cerrar();
            return id_reserva;
        }