private void cargarTiposDoc()
 {
     BD bd = new BD();
     string query = "SELECT * FROM FUGAZZETA.TiposDoc";
     SqlDataReader dr = bd.lee(query);
     while (dr.Read())
     {
         CbTipoDoc.Items.Add(new ABM_de_Cliente.TipoDoc(dr[0].ToString(), dr[1].ToString()));
     }
     bd.cerrar();
 }
 public Cliente(string unId, string nombreApellido)
 {
     string apn = "";
     BD bd = new BD();
     bd.obtenerConexion();
     SqlDataReader r2d2 = bd.lee("SELECT Apellido,Nombre FROM FUGAZZETA.Clientes WHERE Id_Cliente = " + unId);
     while (r2d2.Read())
         apn = r2d2["Apellido"].ToString() + ", " + r2d2["Nombre"].ToString();
     r2d2.Close();
     bd.cerrar();
     asigna(unId, apn);
 }
 public Consumible(string unID, string name)
 {
     asigna(unID, name);
     BD bd = new BD();
     bd.obtenerConexion();
     SqlDataReader dr = bd.lee("SELECT Precio FROM FUGAZZETA.Consumibles where Id_Consumible = " + id);
     while (dr.Read())
     {
         precio = Convert.ToDouble(dr[0].ToString());
     }
     dr.Close();
     bd.cerrar();
 }
 private void GenerarReserva_Load(object sender, EventArgs e)
 {
     if (menuP.usuarioActual != "guest")
     {
         ElegirHotel.Enabled = false;
         idHotelActual = menuP.hotelActual;
         TxtHotel.Text = idHotelActual.ToString();
         BD db = new BD();
         db.obtenerConexion();
         completaRegimenes(db);
         db.cerrar();
     }
 }
 private void CheckOut_Load(object sender, EventArgs e)
 {
     cargarGrilla(GridConsumibles, todos);
     GridCarrito.DataSource = carrito.tabla;
     BD bd2 = new BD();
     bd2.obtenerConexion();
     loadBancos();
     loadTarjetas();
     SqlDataReader dr = bd2.lee("SELECT Id_TipoPago FROM FUGAZZETA.TiposPago WHERE Descripcion = 'Efectivo'");
     while (dr.Read()) OpEfectivo.Tag = dr[0].ToString();
     dr.Close();
     bd2.cerrar();
 }
 private void CmdIngresar_Click(object sender, EventArgs e)
 {
     if (TxtUser.Text == "guest") Guest_Click(sender, e);
     else
     {
         BD bd = new BD();
         bd.obtenerConexion();
         string comando = "SELECT Username,Contraseña FROM FUGAZZETA.[UsuariosHabilitados] WHERE Username='******'";
         SqlDataReader tabla = bd.lee(comando);
         try
         {
             if (tabla.HasRows)
             {
                 tabla.Read();
                 string pass = tabla[1].ToString();
                 if (Hashing.SHA256Encrypt(TxtPass.Text) == pass)
                 {
                     userActual = TxtUser.Text;
                     LblError.Text = "";
                     bd.ejecutar("EXEC FUGAZZETA.LoginCorrecto '" + TxtUser.Text + "'");
                     tabla.Close();
                     LoginOK login = new LoginOK(this, menu);
                     login.StartPosition = FormStartPosition.CenterScreen;
                     if (login.ShowDialog() == DialogResult.OK)
                         IrAMenuPrincipal(userActual);
                 }
                 else
                 {
                     try
                     {
                         bd.ejecutar("EXEC FUGAZZETA.LoginIncorrecto '" + TxtUser.Text + "'");
                         throw new Exception("Contraseña incorrecta");
                     }
                     catch (SqlException ex)
                     {
                         throw (ex as Exception);
                     }
                 }
                 tabla.Close();
             }
             else throw new Exception("Usuario no encontrado o inhabilitado por el administrador.");
         }
         catch (Exception ex)
         {
             LblError.Visible = true;
             LblError.Text = ex.Message;
         }
         bd.cerrar();
         tabla.Close();
     }
 }
 public BuscarCliente(ITraeBusqueda owner, char funcion)
 {
     InitializeComponent();
     BD bd = new BD();
     bd.obtenerConexion();
     dondeVuelve = owner;
     setearGrid(GridClientes);
     crearBuscador(dondeVuelve, "*", "Clientes");
     SqlDataReader reader = bd.lee("SELECT * FROM FUGAZZETA.TiposDoc");
     while (reader.Read())
         ComboDoc.Items.Add(new TipoDoc(reader[0].ToString(), reader[1].ToString()));
     reader.Close();
     bd.cerrar();
     fx = funcion;
 }
 private void VerDatos_Click(object sender, EventArgs e)
 {
     try
     {
         BD bd = new BD();
         bd.obtenerConexion();
         validarCompletarReserva(bd);
         completarDatos(bd);
         bd.cerrar();
     }
     catch (Exception ex)
     {
         MessageBox.Show("No se pueden ver los datos. " + ex.Message,this.Text, MessageBoxButtons.OK,MessageBoxIcon.Error);
     }
 }
 private void Cambiar_Click(object sender, EventArgs e)
 {
     try
     {
         if (TxtPass1.Text != TxtPass2.Text) throw new Exception("Las contraseñas no coinciden.");
         if (TxtPass1.Text == "") throw new Exception("No ha colocado ninguna contraseña.");
         BD bd = new BD();
         bd.obtenerConexion();
         string nuevoPass = Hashing.SHA256Encrypt(TxtPass1.Text);
         bd.ejecutar("UPDATE FUGAZZETA.Usuarios SET Contraseña = '" + nuevoPass + "' WHERE Username = '******'");
         bd.cerrar();
         this.Close();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private void LoginOK_Load(object sender, EventArgs e)
        {
            CbHoteles.Items.Clear();
            string query = "SELECT UHR.Id_Hotel,UHR.Id_Rol FROM FUGAZZETA.Roles R, FUGAZZETA.[Usuarios x Hoteles x Rol] UHR WHERE R.Id_Rol=UHR.Id_Rol AND R.Estado=1 AND UHR.Username = '******'";
            BD bd = new BD();
            bd.obtenerConexion();
            SqlDataReader dr = bd.lee(query);
            while (dr.Read()) CbHoteles.Items.Add(new HotelxRol(dr[0].ToString(), dr[1].ToString()));
            dr.Close();
            bd.cerrar();

            if (CbHoteles.Items.Count == 1){
                loguear(CbHoteles.Items[0]);
                this.DialogResult = DialogResult.OK;
            }
            if (CbHoteles.Items.Count == 0){
                MessageBox.Show("No está habilitado en ningun hotel.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.DialogResult = DialogResult.Retry; ;
            }
        }
 private void loadBancos()
 {
     BD bd2 = new BD();
     bd2.obtenerConexion();
     CbBanco.Items.Clear();
     try
     {
         string comando = "SELECT * FROM FUGAZZETA.Bancos";
         SqlDataReader respuesta = bd2.lee(comando);
         while (respuesta.Read())
         {
             CbBanco.Items.Add(new Banco(Int16.Parse(respuesta[0].ToString()),respuesta[1].ToString()));
         }
         respuesta.Close();
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error al completar: " + ex.Message);
     }
     bd2.cerrar();
 }
        void ITraeBusqueda.agregar(string id, string descripcion)
        {
            BD db = new BD();
            db.obtenerConexion();
            SqlDataReader reader;
            string query;
            switch (nBuscador)
            {
                case 1:
                    bool estaHabilitado = true;
                    query = "SELECT * FROM FUGAZZETA.Clientes WHERE Id_Cliente = " + id;
                    reader = db.lee(query);
                    while (reader.Read())
                    {
                        // Valida al usuario primero. Si no está habilitado, cierra todo.
                        estaHabilitado = Convert.ToBoolean(reader["Habilitado"].ToString());
                        if (!estaHabilitado)
                        {
                            reader.Close();
                            MessageBox.Show("El cliente no está habilitado por la cadena para realizar la reserva. Consulte con Recepción o Administración para regularizar la situación.");
                            this.Close();
                            break;
                        }
                        //Si está validado, completa los datos.
                        SqlDataReader r2d2;
                        idClienteActual = Int32.Parse(id);
                        TxtNombre.Text = reader[1].ToString() + " " + reader[2].ToString();

                        r2d2 = db.lee("SELECT Descripcion FROM FUGAZZETA.TiposDoc WHERE Id_TipoDoc = " + reader[3].ToString());
                        while (r2d2.Read())
                            TxtDoc.Text = r2d2[0].ToString() + " " + reader[4].ToString();
                        //r2d2.Close();
                        r2d2 = db.lee("SELECT Nombre FROM FUGAZZETA.Paises WHERE Id_Pais =" + reader["Nacionalidad"].ToString());
                        while (r2d2.Read())
                            TxtPais.Text = r2d2[0].ToString();
                        r2d2.Close();
                        
                        TxtNac.Text = reader[5].ToString().Substring(0, 10);
                        TxtMail.Text = reader[6].ToString();
                        TxtTelefono.Text = reader[7].ToString();
                        TxtDomicilio.Text = reader[8].ToString() + " " + reader[9].ToString() + " " + reader[10].ToString() + " " + reader[11].ToString();
                        TxtCiudad.Text = reader[12].ToString();
                    }
                    reader.Close();
                    break;
                case 2:
                    ComboRegimen.Items.Clear();
                    idHotelActual = Int32.Parse(id);
                    string texto = "";
                    if (descripcion.Length == 0) texto = id;
                    else texto = descripcion;
                    TxtHotel.Text = texto;
                    completaRegimenes(db);
                    break;
                case 3:
                                       
                    break;
                case 4:
                    ComboRegimen.Text = descripcion;
                    break;
            }
            db.cerrar();
        }
 private void valida(string tabla,string campo, int id, string mensajeException)
 {
     bool estaHabilitado = true;
     DateTime fechaFin=DesdePick.Value;
     BD bd = new BD();
     bd.obtenerConexion();
     string query = "SELECT Habilitado FROM FUGAZZETA." + tabla + " where " + campo + " = " + id;
     SqlDataReader dr = bd.lee(query);
     while (dr.Read())
     {
         estaHabilitado = Convert.ToBoolean(dr[0].ToString());
     }
     dr.Close();
     if (!estaHabilitado)
     {
         query = "SELECT top 1 Fecha_Fin FROM FUGAZZETA.HistorialBajasHotel where Id_Hotel="+id+" order by Fecha_Inicio";
         dr = bd.lee(query);
         while (dr.Read())
         {
             fechaFin = Convert.ToDateTime(dr[0].ToString());
         }
         if (DesdePick.Value<fechaFin) throw new Exception(mensajeException);
     }
     bd.cerrar();
 }
        public void agregar(string id, string descripcion)
        {
            switch (nBuscador)
            {
                case 1:
                    ListRegimenes.Items.Clear();
                    BD bd = new BD();
                    bd.obtenerConexion();
                    int elId = Convert.ToInt32(id);
                    string query = "SELECT * FROM FUGAZZETA.Hoteles WHERE Id_Hotel = " + elId;
                    SqlDataReader dr = bd.lee(query);

                    while (dr.Read())
                    {
                        TxtId.Text = dr["Id_Hotel"].ToString();
                        TxtNombre.Text = dr["Nombre"].ToString();
                        TxtMail.Text = dr["Mail"].ToString();
                        TxtTelefono.Text = dr["Telefono"].ToString();
                        TxtCalle.Text = dr["Calle"].ToString();
                        TxtNumero.Text = dr["Nro_Calle"].ToString();
                        TxtCiudad.Text = dr["Ciudad"].ToString();
                        TxtRecarga.Text = dr["Recarga"].ToString();
                        ComboCE.Text = dr["CantEstrella"].ToString();

                        string elItem = "";
                        for (int i = 0; i < ComboPais.Items.Count; i++)
                        {

                            if ((ComboPais.Items[i] as Pais).id.ToString() == dr["Pais"].ToString())
                            {
                                elItem = ComboPais.Items[i].ToString();
                            }
                        }
                        ComboPais.Text = elItem;

                        string fecha = dr["Fec_creacion"].ToString();
                        if (fecha != "") { FechaPick.Value = convertirFecha(fecha); }

                        habilitado = Convert.ToBoolean(dr["Habilitado"].ToString());
                    }
                    dr.Close();
                    completarDatosDeEstado();

                    query = "SELECT H.Id_Hotel,H.Id_Regimen, R.Descripcion FROM FUGAZZETA.[Regimenes x Hotel] H, FUGAZZETA.Regimenes R where H.Id_Regimen = R.Id_Regimen AND Id_Hotel = " + TxtId.Text;
                    dr = bd.lee(query);
                    while (dr.Read())
                    {
                        ListRegimenes.Items.Add(new Regimen(dr[1].ToString(), dr[2].ToString()));
                    }
                    bd.cerrar();
                    break;
                case 2:
                    bool sePuede = true;
                    for (int i = 0; i < ListRegimenes.Items.Count && sePuede; i++)
                      sePuede = !((ListRegimenes.Items[i] as Regimen).id.ToString() == id);
                    if (sePuede)
                        ListRegimenes.Items.Add(new Regimen(id, descripcion));
                    else MessageBox.Show("Ya existe ese régimen.");
                    break;
            }

        }
 private bool esDuplicado(string id)
 {
     bool duplica=false;
     BD bd = new BD();
     bd.obtenerConexion();
     string query = "SELECT * FROM FUGAZZETA.ClientesDuplicados where Id_Cliente="+id;
     SqlDataReader dr = bd.lee(query);
     while (dr.Read())
         duplica = dr.HasRows;
     dr.Close();
     bd.cerrar();
     return duplica;
 }
        private void cargar()
        {
            if (funcion == 'M')
            {
                BD bd = new BD();
                bd.obtenerConexion();
                int elId = Convert.ToInt32(tuId);
                string query = "SELECT * FROM FUGAZZETA.Habitaciones WHERE Num_Habitacion = " + elId + " and Id_Hotel = " + tuHotel;
                SqlDataReader dr = bd.lee(query);

                while (dr.Read())
                {
                    TxtNro.Text = dr["Num_Habitacion"].ToString();
                    TxtPiso.Text = dr["Piso"].ToString();
                    TxtDesc.Text = dr["Comodidades"].ToString();
                    
                    string frente = dr["Frente"].ToString();
                    if (frente == "S") { Exterior.Checked = true; }
                    if (frente == "N") { Interior.Checked = true; }

                    string elItem = "";
                    for (int i = 0; i < CmbTipo.Items.Count; i++)
                    {

                        if ((CmbTipo.Items[i] as TipoHabitacion).id.ToString() == dr["Id_TipoHab"].ToString())
                        {
                            elItem = CmbTipo.Items[i].ToString();
                        }
                    }
                    CmbTipo.Text = elItem;

                    ChkHabilitada.Checked = Convert.ToBoolean(dr["Habilitado"].ToString());
                }
                dr.Close();
                                               
                bd.cerrar();
            }
        }
 private void actualizarCliente()
 {
     BD bd = new BD();
     bd.obtenerConexion();
     Pais elPais = ComboNac.Items[ComboNac.SelectedIndex] as Pais;
     TipoDoc elTipoDoc = TipoDoc.Items[TipoDoc.SelectedIndex] as TipoDoc;
     string comando =
         "UPDATE FUGAZZETA.Clientes SET Nombre = '" + TxtNombre.Text +
         "', Apellido = '" + TxtApellido.Text +
         "', Nro_Doc = '" + TxtNroDoc.Text +
         "', Fecha_Nac = '" + FechaPick.Value.ToShortDateString() +
         "', Mail = '" + TxtMail.Text +
         "', Telefono = '" + TxtTelefono.Text +
         "', Dom_Calle = '" + TxtCalle.Text +
         "', Nro_Calle = '" + TxtNroDirec.Text +
         "', Piso = '" + TxtPiso.Text +
         "', Depto = '" + TxtDpto.Text +
         "', Localidad = '" + TxtLocalidad.Text +
         "', Nacionalidad = '" + elPais.id +
         "', Id_TipoDoc = '" + elTipoDoc.id +
         "', Habilitado = '" + Convert.ToSByte(chkHabilitado.Checked) +
         "' WHERE Id_Cliente = '" + Id.Text + "'";
     bd.ejecutar(comando);
     
     MessageBox.Show("Actualización realizada con éxito");
     bd.cerrar();
 }
 private void Guest_Click(object sender, EventArgs e)
 {
     BD bd = new BD();
     bd.obtenerConexion();
     string comando = "SELECT Estado FROM FUGAZZETA.Roles WHERE Nombre='Guest'";
     SqlDataReader estado = bd.lee(comando);
     while (estado.Read())
     {
         if (Convert.ToInt32(estado[0]) == 1)
         {
             IrAMenuPrincipal("guest");
             menu.hotelActual = 1;
             menu.rolActual = "Guest";
         }
         else MessageBox.Show("No es posible entrar como guest. Rol Inhabilitado.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     estado.Close();
     bd.cerrar();
     
     
 }
 private void registrarConsumibles(int nf)
 {
     BD db = new BD();
     db.obtenerConexion();
     for (int i = 0; i < carrito.CantidadConsumibles(); i++)
     {
         int idCon = carrito.getID(GridCarrito.Rows[i].Cells[1].Value.ToString());
         int cantidad = Int16.Parse(GridCarrito.Rows[i].Cells[2].Value.ToString());
         double monto = carrito.getPrecio(GridCarrito.Rows[i].Cells[1].Value.ToString());
         string query = "INSERT INTO FUGAZZETA.Items_Consumible values (" + nf + ", " + idCon + ", " + cantidad + ", "+ monto + ")";
         db.ejecutar(query);
     }
     db.cerrar();
 }
        public void cargar(string id, string descripcion)
        {
            
            if (funcion=='M'){
                ListFunciones.Items.Clear();
                BD bd = new BD();
                bd.obtenerConexion();
                int elId = Convert.ToInt32(id);
                string query = "SELECT * FROM FUGAZZETA.Roles WHERE Id_Rol = " + elId;
                SqlDataReader dr = bd.lee(query);

                while (dr.Read())
                {
                    Id_Rol.Text = dr["Id_Rol"].ToString();
                    TxtRol.Text = dr["Nombre"].ToString();
                    CheckActivo.Checked = Convert.ToBoolean(dr["Estado"].ToString());
                }
                dr.Close();


                query = "SELECT FR.Id_Rol,FR.Id_Funcionalidad, F.Descripcion FROM FUGAZZETA.[Funcionalidades x Roles] FR, FUGAZZETA.Funcionalidades F where FR.Id_Funcionalidad = F.Id_Funcionalidad AND FR.Id_Rol = " + elId;
                dr = bd.lee(query);
                while (dr.Read())
                {
                    ListFunciones.Items.Add(new Funcionalidad(dr[1].ToString(), dr[2].ToString()));
                }
                bd.cerrar();
            }
        }
        private void RealizarEgreso_Click(object sender, EventArgs e)
        {
            BD bd2 = new BD();
            bd2.obtenerConexion();
            try
            {
                validarAbono();
                int nroFactura = 0;
                SqlDataReader dr = bd2.lee("EXEC FUGAZZETA.GenerarFactura " + idHotel + ", '" + Program.hoy().ToShortDateString() + "', " + LblTotal.Text + ", " + idCliente + ", " + TxtEstadia.Text);
                while (dr.Read()) nroFactura = Int32.Parse(dr[0].ToString());
                dr.Close();
                bd2.ejecutar("EXEC FUGAZZETA.RealizarEgreso " + idEstadia + ", '" + Program.ahora().ToString() + "', '" + parent.usuarioActual + "'");
                
                //Items Hospedaje
                string query = "INSERT INTO FUGAZZETA.Items_Hospedaje values (" + nroFactura + ", 1, " + cantDiasEstadia + ", " + LblSubEstadia.Text + ")";
                bd2.ejecutar(query);
                query = "INSERT INTO FUGAZZETA.Items_Hospedaje values (" + nroFactura + ", 0, " + (cantDiasReserva - cantDiasEstadia).ToString() + ", 0)";
                bd2.ejecutar(query);
                
                foreach (DataGridViewRow row in GridHabitacion.Rows)
                {
                    query = "INSERT INTO FUGAZZETA.HistorialHabitaciones values(" + row.Cells[0].Value.ToString() + ", " + row.Cells[1].Value.ToString() + ", '" + fechaInicio.ToShortDateString() + "', " + cantDiasEstadia + ")";
                    bd2.ejecutar(query);
                }

                
                //Items Consumible
                registrarConsumibles(nroFactura);

                //Abono
                registrarAbono(nroFactura);

                MessageBox.Show("Egreso realizado con éxito.");
                this.Close();
            }
            catch (Exception ex)
            {
                bd2.cerrar();
                MessageBox.Show("Error: No se pudo realizar el egreso. " + ex.Message,this.Text,MessageBoxButtons.OK,MessageBoxIcon.Error);
            }

        }
 private void cargarHabitaciones()
 {
     BD bd2 = new BD();
     bd2.obtenerConexion();
     string query = "EXEC FUGAZZETA.VerHabitacionesDeEstadia " + idEstadia + ", '" + Program.hoy().ToShortDateString() + "'";
     GridHabitacion.DataSource = bd2.ejecutar(query);
     bd2.cerrar();
     
 }
 private void generarLaReserva()
 {
     BD bd = new BD();
     bd.obtenerConexion();
     int idRegimen = (ComboRegimen.SelectedItem as ABM_de_Regimen.Regimen).id;
     string usuario = menuP.usuarioActual;
     string query = "EXEC FUGAZZETA.GenerarReserva " + idClienteActual + ", " + idHotelActual + ", '" + Program.ahora().ToString() + "', '" + DesdePick.Value.ToShortDateString() + "', '" + HastaPick.Value.ToShortDateString() + "', " + idRegimen + ", '" + usuario + "'";
     SqlDataReader reader = bd.lee(query);
     while (reader.Read())
     {
         idReservaGenerada = Int32.Parse(reader[0].ToString());
     }
     reader.Close();
     
     for (int i=0; i < ListHabitaciones.Items.Count; i++)
     {
         string numHabitacion = (ListHabitaciones.Items[i] as ABM_de_Habitacion.Habitacion).numero.ToString();
         query = "INSERT INTO FUGAZZETA.[Habitaciones x Reservas] values (" + idReservaGenerada + ", " + idHotelActual + ", " + numHabitacion + ")";
         bd.ejecutar(query);
     }
     bd.cerrar();
 }
        private void cargar(string id)
        {
            BD bd = new BD();
            bd.obtenerConexion();
            int elId = Convert.ToInt32(id);
            string query = "SELECT * FROM FUGAZZETA.Clientes WHERE Id_Cliente = " + elId;
            SqlDataReader dr = bd.lee(query);

            while (dr.Read())
            {
                Id.Text = dr["Id_Cliente"].ToString();
                TxtNombre.Text = dr["Nombre"].ToString();
                TxtApellido.Text = dr["Apellido"].ToString();
                TxtNroDoc.Text = dr["Nro_Doc"].ToString();
                TxtMail.Text = dr["Mail"].ToString();
                TxtTelefono.Text = dr["Telefono"].ToString();
                TxtCalle.Text = dr["Dom_Calle"].ToString();
                TxtNroDirec.Text = dr["Nro_Calle"].ToString();
                TxtPiso.Text = dr["Piso"].ToString();
                TxtDpto.Text = dr["Depto"].ToString();
                TxtLocalidad.Text = dr["Localidad"].ToString();
                chkHabilitado.Checked = Convert.ToBoolean(dr["Habilitado"].ToString());

                string fecha = dr["Fecha_Nac"].ToString();
                FechaPick.Value = convertirFecha(fecha);
                               
                string elItem = "";
                for (int i = 0; i < ComboNac.Items.Count; i++)
                {

                    if ((ComboNac.Items[i] as Pais).id.ToString() == dr["Nacionalidad"].ToString())
                    {
                        elItem = ComboNac.Items[i].ToString();
                    }
                }
                ComboNac.Text = elItem;

                elItem = "";
                for (int i = 0; i < TipoDoc.Items.Count; i++)
                {

                    if ((TipoDoc.Items[i] as TipoDoc).id.ToString() == dr["Id_TipoDoc"].ToString())
                    {
                        elItem = TipoDoc.Items[i].ToString();
                    }
                }
                TipoDoc.Text = elItem;
            }
            dr.Close();

            

            /* query = "SELECT FR.Id_Rol,FR.Id_Funcionalidad, F.Descripcion FROM FUGAZZETA.[Funcionalidades x Roles] FR, FUGAZZETA.Funcionalidades F where FR.Id_Funcionalidad = F.Id_Funcionalidad AND FR.Id_Rol = " + elId;
             dr = bd.lee(query);
             while (dr.Read())
             {
                 ListFunciones.Items.Add(new Funcionalidad(dr[1].ToString(), dr[2].ToString()));
             }*/
            bd.cerrar();
        }
        private void actualizarHabitacion()
        {
            BD bd = new BD();
            bd.obtenerConexion();

            string habitacionRepetida = "select * from FUGAZZETA.Habitaciones H where Num_Habitacion=" + TxtNro.Text+" and Id_Hotel="+tuHotel.ToString()+" and Num_Habitacion<>"+tuId;
            SqlDataReader dr = bd.lee(habitacionRepetida);
            while (dr.Read())
            {
                if ((dr.HasRows)) throw new Exception("Ese número de habitación ya existe en el hotel.");
            }
            dr.Close();

            char frente ='N';
            if (Exterior.Checked == true) { frente = 'S'; }
            if (Interior.Checked == true) { frente = 'N'; }
            string comando =
                "UPDATE FUGAZZETA.Habitaciones SET Id_Hotel="+tuHotel.ToString()+
                ", Num_Habitacion =" + TxtNro.Text +
                ", Piso = " + TxtPiso.Text +
                ", Comodidades = '" + TxtDesc.Text +
                "', Frente = '" + frente +
                "', Habilitado = " + Convert.ToSByte(ChkHabilitada.Checked) +
                " WHERE Num_Habitacion = " + tuId+" and Id_Hotel="+tuHotel.ToString();
            bd.ejecutar(comando);
            
            

            bd.cerrar();
            MessageBox.Show("Actualización realizada con éxito");
           
        }
 private void CargarTipoDocNacPaises()
 {
     BD bd = new BD();
     bd.obtenerConexion();
     string query = "SELECT * FROM FUGAZZETA.Paises ORDER BY Nombre";
     SqlDataReader dr = bd.lee(query);
     while (dr.Read())
     {
         Pais pais = new Pais(dr[0].ToString(), dr[1].ToString());
         ComboPais.Items.Add(pais);
         ComboNac.Items.Add(pais);
     }
     dr.Close();
     query = "SELECT * FROM FUGAZZETA.TiposDoc";
     dr = bd.lee(query);
     while (dr.Read()) TipoDoc.Items.Add(new TipoDoc(dr[0].ToString(), dr[1].ToString()));
     bd.cerrar();
 }
        private void Guardar_Click(object sender, EventArgs e)
        {
            try {
               
                ValidarTxt(TxtNro, "Número");
                ValidarTxt(TxtPiso, "Piso");
                if (!Interior.Checked && !Exterior.Checked)
                    throw new Exception("No seleccionó la ubicación.");
                if (CmbTipo.SelectedIndex == -1)
                    throw new Exception("No seleccionó el tipo de habitación.");
                
            if (funcion == 'M')
            {
                DialogResult confirma = MessageBox.Show("Son todos los datos correctos?", "Confirmar actualización de habitacion", MessageBoxButtons.YesNo);

                if (confirma == DialogResult.Yes)
                {
                    actualizarHabitacion();
                }
            }
            else{
            DialogResult confirma = MessageBox.Show("Son todos los datos correctos? Recuerde que el Tipo de Habitación es definitivo", this.Text, MessageBoxButtons.YesNo);

            if (confirma == DialogResult.Yes)
            {
                BD bd = new BD();
                bd.obtenerConexion();
               
                string habitacionRepetida = "select * from FUGAZZETA.Habitaciones H where Num_Habitacion=" + TxtNro.Text+" and Id_Hotel="+tuHotel.ToString();
                SqlDataReader dr = bd.lee(habitacionRepetida);
                while (dr.Read())
                {
                    if ((dr.HasRows)) throw new Exception("Ese número de habitación ya existe en el hotel.");
                }
                dr.Close();

                    char frente='N';
                    if (Exterior.Checked) frente = 'S';
                    if (Interior.Checked) frente = 'N';

                    TipoHabitacion elTipo = CmbTipo.Items[CmbTipo.SelectedIndex] as TipoHabitacion;
                    
                    string query = 
                        "INSERT INTO FUGAZZETA.Habitaciones values ("
                        +tuHotel+","
                        +TxtNro.Text+","
                        +TxtPiso.Text+",'"
                        +frente+"',"
                        +elTipo.id+",'"
                        +TxtDesc.Text+"',"
                        +Convert.ToSByte(ChkHabilitada.Checked) + ")"
                        ;
                    bd.ejecutar(query);
                    bd.cerrar();
                    MessageBox.Show("Habitacion agregada con éxito");
                    this.Close();
                }
                 }
            }
            catch (Exception ex)
                {
                    bd.cerrar();
                    MessageBox.Show("Error: No se pudo ingresar la habitación. " + ex.Message);
                }
        }
        private void CmdGuardar_Click(object sender, EventArgs e)
        {
            if (funcion=='M'){
                    BD bd = new BD();
                    bd.obtenerConexion();
                    try
                        {
                        validarDocumento(bd);
                        validarMail(bd);
                        bd.cerrar();
                        DialogResult modif = MessageBox.Show("Son todos los datos correctos?", "Confirmar actualización de cliente", MessageBoxButtons.YesNo);
                        if (modif == DialogResult.Yes)
                            {
                                actualizarCliente();
                            }
                    }

                    catch (Exception ex)
                    {
                        bd.cerrar();
                        MessageBox.Show("Error: No se pudo actualizar al cliente. " + ex.Message);
                    }

                
            }
            else{
            DialogResult confirma = MessageBox.Show("Son todos los datos correctos?", this.Text, MessageBoxButtons.YesNo);

            if (confirma == DialogResult.Yes)
            {
                BD bd = new BD();
                bd.obtenerConexion();
                try
                {                    
                    ValidarTxt(TxtNombre, "Nombre");
                    ValidarTxt(TxtApellido, "Apellido");
                    ValidarTxt(TxtNroDoc, "Número de Documento");
                    ValidarTxt(TxtTelefono, "Teléfono");
                    ValidarTxt(TxtCalle, "Calle");
                    ValidarTxt(TxtNroDirec, "Número Calle");
                    validarDocumento(bd);
                    validarMail(bd);
                    string tipoDoc = setTipoDoc(TipoDoc);
                    string idNac = setPais(ComboNac);
                    string idPais = setPais(ComboPais);
                    string query = "INSERT INTO FUGAZZETA.Clientes values (" + ifNull(TxtNombre) + ", " + ifNull(TxtApellido) + @", 
                " + tipoDoc + ", " + ifNull(TxtNroDoc) + ", '" + FechaPick.Value.ToShortDateString() + "', " + ifNull(TxtMail) + @",
                " + ifNull(TxtTelefono) + ", " + ifNull(TxtCalle) + ", " + ifNull(TxtNroDirec) + ", " + ifNull(TxtPiso) + @",
                " + ifNull(TxtDpto) + ", " + ifNull(TxtLocalidad) + ", " + idPais + ", " + idNac + ","+ Convert.ToSByte(chkHabilitado.Checked)+")";
                    bd.ejecutar(query);
                    bd.cerrar();
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
                catch (Exception ex)
                {
                    bd.cerrar();
                    MessageBox.Show("Error: No se pudo ingresar el cliente. " + ex.Message);
                }
            }
        }
        }
 private void loadTarjetas()
 {
     BD bd2 = new BD();
     bd2.obtenerConexion();
     CbTipoPago.Items.Clear();
     try
     {
         string comando = "SELECT * FROM FUGAZZETA.TiposPago WHERE Descripcion != 'Efectivo'";
         SqlDataReader respuesta = bd2.lee(comando);
         while (respuesta.Read())
         {
             CbTipoPago.Items.Add(new TipoPago(respuesta[0].ToString(), respuesta[1].ToString()));
         }
         respuesta.Close();
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error al completar: " + ex.Message);
     }
     bd2.cerrar();
 }
        private void agregarHotel()
        {
            BD bd = new BD();
            bd.obtenerConexion();
            try
            {
                string idPais = setPais(ComboPais);
                string query = "INSERT INTO FUGAZZETA.Hoteles values ("
                    + ifNull(TxtNombre) + ", "
                    + ifNull(TxtMail) + ","
                    + TxtTelefono.Text + ","
                    + ifNull(TxtCalle) + ","
                    + TxtNumero.Text + ","
                    + ifNull(TxtCiudad) + ","
                    + idPais + ","
                    + ComboCE.Text + ",'"
                    + FechaPick.Value.ToShortDateString() + "',"
                    + TxtRecarga.Text + ",1)";

                bd.ejecutar(query);


                int idHotel=0;
                query = "SELECT MAX(Id_Hotel) FROM FUGAZZETA.Hoteles";
                SqlDataReader dr = bd.lee(query);
                while (dr.Read())
                {
                    idHotel = Convert.ToInt32(dr[0]);
                }
                
                query = "INSERT INTO FUGAZZETA.[Usuarios x Hoteles x Rol] values('" + adm + "'," + idHotel + ",2,0)";
                bd.ejecutar(query);

                foreach (Object reg in ListRegimenes.Items)
                    bd.ejecutar("INSERT INTO FUGAZZETA.[Regimenes x Hotel] values (" + idHotel + ", " + (reg as Regimen).id + ")");

                bd.cerrar();
                MessageBox.Show("Hotel agregado con éxito.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                this.Close();
            }
            catch (Exception ex)
            {
                bd.cerrar();
                MessageBox.Show("Error: No se pudo ingresar el Hotel. " + ex.Message);
            }
        }