private void Guardar_Click(object sender, EventArgs e)
        {
            if (Nombre.Text == "" || ListaFuncionalidades.CheckedItems.Count == 0) {
                MessageBox.Show("Faltan datos");
                return;
            }

            String nombreRol = NombreRol.Text;

            ParamSet ps = new ParamSet("GESTION_DE_PATOS.AltaRol");
            ps.AddParameter("@nombre",nombreRol);
            SqlParameter retval = ps.execSP();

            switch (retval.Value.ToString()) {
                case "1" : MessageBox.Show("El rol ya existe");
                    return;
            }

            ps.NombreSP("GESTION_DE_PATOS.AsignarFuncionalidadAlRol");

            foreach (String item in ListaFuncionalidades.CheckedItems)
            {
                ps.AddParameter("@id",Int32.Parse(item.ToString().Substring(0,item.IndexOf(":"))));
                ps.AddParameter("@rol",nombreRol);
                ps.execSP();
            }
            MessageBox.Show("Alta correcta");
            this.Hide();
            return;
        }
Exemplo n.º 2
0
        private void confirmarLogin_Click(object sender, EventArgs e)
        {
            DBManager manager = (DBManager)AppContext.getObject(typeof(DBManager));
            try
            {

                if (usuario.Text == "" || password.Text == "")
                {
                    MessageBox.Show("Faltan datos");
                    return;
                }

                ParamSet ps = new ParamSet("GESTION_DE_PATOS.Loguearse");
                ps.AddParameter("@user", usuario.Text);
                ps.AddParameter("@pass", password.Text);

                SqlParameter retval = ps.execSP();

                switch (retval.Value.ToString())
                {
                    case "0":
                        SqlCommand consulta = new SqlCommand("SELECT rol FROM GESTION_DE_PATOS.Usuarios WHERE username=@username AND passwd=GESTION_DE_PATOS.SHA256(@passwd)");
                        consulta.Parameters.AddWithValue("username", usuario.Text);
                        consulta.Parameters.AddWithValue("passwd", password.Text);
                        SQLResponse r = manager.executeQuery(consulta);
                        Session s = new Session();
                        s.username = usuario.Text;
                        s.rol = (String)r.result.Rows[0][0];
                        AppContext.setObject(typeof(Session), s);
                        this.Hide();
                        break;
                    case "1": MessageBox.Show("La contraseña no es válida");
                        break;
                    case "2": MessageBox.Show("Se ha inhabilitado al usuario por intentos fallidos");
                        break;
                    case "3": MessageBox.Show("Usuario incorrecto");
                        break;
                    case "4":
                        if (MessageBox.Show("Usted se encuentra inhabilitado, ¿Desea darse de baja?", "Login",MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            ps.NombreSP("GESTION_DE_PATOS.EliminarUsuario");
                            ps.AddParameter("@user", usuario.Text);
                            ps.execSP();
                            MessageBox.Show("Usted ha sido dado de baja");
                            Dispose();
                        }
                        break;
                    case "5": MessageBox.Show("Usuario incorrecto");
                        break;
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("No se pudo conectar a la base de datos.");
                Console.Write(ex);
            }
        }
        private void Guardar_Click(object sender, EventArgs e)
        {
            if (this.Estado.Text == "1: Habilitado") {
                if (this.ListaFuncionalidades.CheckedItems.Count == 0) {
                    MessageBox.Show("Seleccione al menos una funcionalidad");
                    return;
                }
            }
            ParamSet builder = new ParamSet("GESTION_DE_PATOS.EliminarFuncionalidadesDeRol");
            builder.AddParameter("nombre_rol", this.nombre);
            builder.executeNoReturn();

            builder.NombreSP("GESTION_DE_PATOS.AsignarFuncionalidadAlRol");
            foreach (String item in ListaFuncionalidades.CheckedItems)
            {
                builder.AddParameter("@id", Int32.Parse(item.ToString().Substring(0, item.IndexOf(":"))));
                builder.AddParameter("@rol", this.nombre);
                builder.execSP();
            }

            SqlCommand query;

            String estado = this.Estado.SelectedItem.ToString();

            builder = new ParamSet("GESTION_DE_PATOS.EstablecerEstadoDelRol");
            builder.AddParameter("nombre_rol", this.nombre);
            builder.AddParameter("estado", estado.Substring(0, estado.IndexOf(':')));
            builder.executeNoReturn();

            //("estado", estado.Substring(0, estado.IndexOf(':')))

            if (this.nombre != this.NombreRol.Text)
            {
                query = new SqlCommand("UPDATE GESTION_DE_PATOS.Roles SET nombre=@nombre WHERE nombre=@nombre_original");
                query.Parameters.AddWithValue("nombre", this.NombreRol.Text);
                query.Parameters.AddWithValue("nombre_original", this.nombre);
                manager.executeQuery(query);
            }
            MessageBox.Show("Rol actualizado");

            Main.actualizar();
            this.Hide();
        }
        private void Guardar_Click(object sender, EventArgs e)
        {
            Object elRol = this.Rol.SelectedItem;
            if (elRol == null) {
                MessageBox.Show("Seleccione un rol", "Registro de usuario");
                return;
            }

            ParamSet ps = new ParamSet();
            SqlParameter ret;

            switch (elRol.ToString()) {

                case "Cliente":
                    try
                    {
                        if (!String.Equals(PasswordCliente.Text, ConfirmarPassword.Text))
                        {
                            MessageBox.Show("Los campos passwords no coinciden", "Registro Usuario");
                            return;
                        }

                        if (UsernameCliente.Text == "" || PasswordCliente.Text == "" ||
                            ConfirmarPassword.Text == "" ||
                            NombreCliente.Text == "" || ApellidoCliente.Text == "" ||
                            MailCliente.Text == "" || TelefonoCliente.Text == "" ||
                            FchNacimientoCliente.Text == "" || DNICliente.Text == "" ||
                            DireccionC.Text == "" || ListaZonas.CheckedItems.Count == 0 ||
                            CodigoPostalC.Text == "" ||
                            ciudadCliente.SelectedItem.ToString() == "")
                        {

                            MessageBox.Show("Faltan datos");
                            return;
                        }
                    }
                    catch (NullReferenceException)
                    {
                        MessageBox.Show("Hay campos vacíos", "Registro de Usuario");
                    }

                    ps.NombreSP("GESTION_DE_PATOS.RegistroCliente");
                    ps.AddParameter("@user", UsernameCliente.Text);
                    ps.AddParameter("@pass", PasswordCliente.Text);
                    ps.AddParameter("@nombre", NombreCliente.Text);
                    ps.AddParameter("@apellido", ApellidoCliente.Text);
                    ps.AddParameter("@mail", MailCliente.Text);
                    ps.AddParameter("@tel", Int64.Parse(TelefonoCliente.Text));
                    ps.AddParameter("@fecha", FchNacimientoCliente.Text);
                    ps.AddParameter("@dni", Int64.Parse(DNICliente.Text));
                    ps.AddParameter("@direccion", DireccionC.Text);
                    ps.AddParameter("@ciudad", ciudadCliente.SelectedItem.ToString());
                    ps.AddParameter("@cp", Int64.Parse(CodigoPostalC.Text));

                    try {

                        ret = ps.execSP();
                        switch (ret.Value.ToString()) {
                            case "0":
                                ps.NombreSP("GESTION_DE_PATOS.RegistrarLocalidades");
                                foreach (Object localidad in this.ListaZonas.CheckedItems) {
                                    ps.AddParameter("@localidad", localidad.ToString());
                                    ps.AddParameter("@user", UsernameCliente.Text);
                                    ps.executeNoReturn();
                                }

                                MessageBox.Show("Registro realizado con éxito","Registro de usuario",MessageBoxButtons.OK);
                                this.Hide();
                                return;

                            case "1":
                                MessageBox.Show("El usuario ya existe","Registro de usuario");
                                return;

                            case "2":
                                MessageBox.Show("Los datos ingresados corresponden a un usuario existente", "Registro de usuario");
                                return;

                            }
                    }

                    catch(SqlException){
                        MessageBox.Show("Ingrese un valor correcto para el teléfono, el dni, el código postal o la fecha de nacimiento", "Registro de usuario");
                        return;
                    }
                    catch (OverflowException)
                    {
                        MessageBox.Show("Ha ingresado un codigo postal demasiado grande, ingrese otro", "Alta proveedor", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

                    return;

                case "Proveedor":

                    try
                    {

                        if (!String.Equals(PassP.Text, ConfirmarPass.Text))
                        {
                            MessageBox.Show("Los campos passwords no coinciden", "Registro Usuario");
                            return;
                        }

                        if (UsernameP.Text == "" || PassP.Text == "" ||
                            ConfirmarPass.Text == "" ||
                            RazonSocial.Text == "" || CUIT.Text == "" ||
                            MailP.Text == "" || TelefonoP.Text == "" ||
                            Direccion.Text == "" || NombreContacto.Text == "" ||
                            ciudadP.SelectedItem.ToString() == "" ||
                            CodigoPostalP.Text == "" ||
                            RubroP.SelectedItem.ToString() == "")
                        {

                            MessageBox.Show("Faltan datos", "Registro de usuario");
                            return;
                        }
                    }
                    catch (NullReferenceException)
                    {
                        MessageBox.Show("Hay campos vacíos", "Registro de Usuario");
                    }

                    try{
                        ps.NombreSP("GESTION_DE_PATOS.RegistrarProveedor");
                        ps.AddParameter("@user", UsernameP.Text);
                        ps.AddParameter("@pass", PassP.Text);
                        ps.AddParameter("@rs", RazonSocial.Text);
                        ps.AddParameter("@cuit", CUIT.Text);
                        ps.AddParameter("@mail", MailP.Text);
                        ps.AddParameter("@telefono", Int64.Parse(TelefonoP.Text));
                        ps.AddParameter("@direccion", Direccion.Text);
                        ps.AddParameter("@ciudad", ciudadP.SelectedItem.ToString());
                        ps.AddParameter("@rubro", RubroP.SelectedItem.ToString());
                        ps.AddParameter("@contacto", NombreContacto.Text);
                        ps.AddParameter("@cp", Int64.Parse(CodigoPostalP.Text));

                        ret = ps.execSP();
                        switch (ret.Value.ToString())
                        {
                            case "0":
                                MessageBox.Show("Registro realizado con éxito", "Registro de usuario",MessageBoxButtons.OK);
                                this.Hide();
                                return;

                            case "1":
                                MessageBox.Show("El usuario ya existe", "Registro de usuario");
                                return;

                            case "2":
                                MessageBox.Show("Los datos ingresados corresponden a un usuario existente", "Registro de usuario");
                                return;

                          }

                        return;

                    }
                     catch(FormatException){
                        MessageBox.Show("Ingrese un valor correcto para el teléfono o el código postal");
                     }
                    catch (OverflowException)
                    {
                        MessageBox.Show("Ha ingresado un codigo postal demasiado grande, ingrese otro", "Alta proveedor", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

                return;

            }
        }
        private void Guardar_Click(object sender, EventArgs e)
        {
            if (UsernameCliente.Text == "" || NombreCliente.Text == "" || ApellidoCliente.Text == "" || TelefonoCliente.Text == "" || DNICliente.Text == "")
            {
                MessageBox.Show("Hay campos obligatorios que están vacíos", "Modificar cliente");
                return;
            }

            try
            {
                ParamSet ps = new ParamSet("GESTION_DE_PATOS.ModificarCliente");

                ps.AddParameter("@user", UsernameCliente.Text);
                ps.AddParameter("@nombre", NombreCliente.Text);
                ps.AddParameter("@apellido", ApellidoCliente.Text);
                ps.AddParameter("@mail", MailCliente.Text);
                ps.AddParameter("@tel", TelefonoCliente.Text);
                ps.AddParameter("@fecha", DateTime.Parse(FchNacimientoCliente.Text));
                ps.AddParameter("@dni", DNICliente.Text);
                ps.AddParameter("@direccion", DireccionC.Text);
                ps.AddParameter("@codigo_postal", CodigoPostal.Text);
                ps.AddParameter("@ciudad", ciudadCliente.SelectedItem.ToString());
                ps.AddParameter("@estado", Estado.SelectedItem.ToString());

                SqlParameter retval = ps.execSP();

                switch (retval.Value.ToString())
                {
                    case "0":
                        ps.NombreSP("GESTION_DE_PATOS.EliminarLocalidades");
                        ps.AddParameter("@user", UsernameCliente.Text);
                        ps.executeNoReturn();

                        ps.NombreSP("GESTION_DE_PATOS.RegistrarLocalidades");
                        foreach (Object localidad in this.ListaZonas.CheckedItems)
                        {
                            ps.AddParameter("@localidad", localidad.ToString());
                            ps.AddParameter("@user", UsernameCliente.Text);
                            ps.executeNoReturn();
                        }

                        MessageBox.Show("Registro modificado con éxito", "Modificar cliente");
                        this.listado.actualizar_datagridview();
                        this.Hide();
                        break;
                    case "1": MessageBox.Show("El cliente no existe", "Modificar cliente", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        break;
                    case "2": MessageBox.Show("Los datos ingresados corresponden a un usuario ya registrado", "Modificar cliente", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        break;
                }
            }
            catch (SqlException) {
                MessageBox.Show("Ingrese valores correctos para el dni, teléfono, código postal y fecha de nacimiento");
                return;
            }
            catch (OverflowException)
            {
                MessageBox.Show("Ha ingresado un codigo postal demasiado grande, ingrese otro", "Alta proveedor", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Hay campos vacíos", "Modificación cliente");
            }
        }
        private void Guardar_Click(object sender, EventArgs e)
        {
            if (!String.Equals(PassP.Text, ConfirmarPassword.Text))
            {
                MessageBox.Show("Los campos passwords no coinciden", "Alta Proveedor");
                return;
            }

            if ((UsernameP.Text == "" && UsernameP.Enabled == true) || PassP.Text == "" ||
                       RazonSocial.Text == "" || CUIT.Text == "" ||
                       MailP.Text == "" || TelefonoP.Text == "" ||
                       Direccion.Text == "" || NombreContacto.Text == "" ||
                       ciudadP.SelectedItem == null ||
                       CodigoPostalP.Text == "" ||
                       RubroP.SelectedItem  == null || ConfirmarPassword.Text == "")
            {

                MessageBox.Show("Faltan datos");
                return;
            }

            ParamSet ps = new ParamSet("GESTION_DE_PATOS.AltaProveedor");
            ps.AddParameter("@user", UsernameP.Text);

            if (UsernameP.Enabled == true)
            {
                ps.AddParameter("@pass", PassP.Text);
            }
            else
            {
                ps.NombreSP("GESTION_DE_PATOS.CambiarRolProveedor");
            }

            try
            {
                ps.AddParameter("@cuit", CUIT.Text);
                ps.AddParameter("@razon_social", RazonSocial.Text);
                ps.AddParameter("@mail", MailP.Text);
                ps.AddParameter("@telefono", Int64.Parse(TelefonoP.Text));
                ps.AddParameter("@direccion", Direccion.Text);
                ps.AddParameter("@codigo_postal", Int64.Parse(CodigoPostalP.Text));
                ps.AddParameter("@ciudad", ciudadP.SelectedItem.ToString());
                ps.AddParameter("@rubro", RubroP.SelectedItem.ToString());
                ps.AddParameter("@nombre_contacto", NombreContacto.Text);

                SqlParameter ret = ps.execSP();
                switch (ret.Value.ToString())
                {
                    case "0":
                        MessageBox.Show("Registro realizado con éxito", "Alta proveedor");

                        if (this.listado != null)
                            this.listado.actualizar_datagridview();

                        this.Hide();
                        return;

                    case "2":
                        MessageBox.Show("Los datos ingresados corresponden a un usuario existente", "Alta proveedor");
                        return;

                    case "1":
                        MessageBox.Show("El usuario ya existe", "Alta proveedor");
                        return;

                }

                return;

            }
            catch (FormatException)
            {
                MessageBox.Show("Ingrese un valor correcto para el teléfono o el código postal", "Alta proveedor");
            }
            catch (OverflowException)
            {
                MessageBox.Show("Ha ingresado un codigo postal demasiado grande, ingrese otro", "Alta proveedor", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Hay campos vacíos", "Alta proveedor");
            }

            return;
        }
        private void Guardar_Click(object sender, EventArgs e)
        {
            try
            {
                if (!String.Equals(PasswordCliente.Text, ConfirmarPassword.Text))
                {
                    MessageBox.Show("Los campos passwords no coinciden", "Alta Cliente");
                    return;
                }

                if ((UsernameCliente.Text == "" && UsernameCliente.Enabled == true) || PasswordCliente.Text == "" ||
                       NombreCliente.Text == "" || ApellidoCliente.Text == "" ||
                       MailCliente.Text == "" || TelefonoCliente.Text == "" ||
                       FchNacimientoCliente.Text == "" || DNICliente.Text == "" ||
                       DireccionC.Text == "" || ListaZonas.CheckedItems.Count == 0 ||
                       CodigoPostal.Text == "" || ConfirmarPassword.Text == "" ||
                       ciudadCliente.SelectedItem.ToString() == "")
                {

                    MessageBox.Show("Faltan datos", "Alta cliente");
                    return;
                }
                ParamSet ps = new ParamSet("GESTION_DE_PATOS.AltaCliente");

                ps.AddParameter("@user", UsernameCliente.Text);
                if (UsernameCliente.Enabled == true)
                {
                    ps.AddParameter("@pass", PasswordCliente.Text);
                }
                else
                {
                    ps.NombreSP("GESTION_DE_PATOS.CambiarRolCliente");
                }

                ps.AddParameter("@nombre", NombreCliente.Text);
                ps.AddParameter("@apellido", ApellidoCliente.Text);
                ps.AddParameter("@dni", Int64.Parse(DNICliente.Text));
                ps.AddParameter("@fecha", DateTime.Parse(FchNacimientoCliente.Text));
                ps.AddParameter("@mail", MailCliente.Text);
                ps.AddParameter("@tel", Int64.Parse(TelefonoCliente.Text));
                ps.AddParameter("@direccion", DireccionC.Text);
                ps.AddParameter("@cp", Int64.Parse(CodigoPostal.Text));
                ps.AddParameter("@ciudad", ciudadCliente.SelectedItem.ToString());
                SqlParameter retval = ps.execSP();

                switch (retval.Value.ToString())
                {
                    case "0":
                        ps.NombreSP("GESTION_DE_PATOS.RegistrarLocalidades");
                        foreach (Object localidad in this.ListaZonas.CheckedItems)
                        {
                            ps.AddParameter("@localidad", localidad.ToString());
                            ps.AddParameter("@user", UsernameCliente.Text);
                            ps.executeNoReturn();
                        }

                        MessageBox.Show("Registro realizado con éxito", "Alta cliente");

                        if (this.listado != null)
                            this.listado.actualizar_datagridview();

                        this.Hide();
                        return;

                    case "1": MessageBox.Show("El cliente ya existe", "Alta cliente", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        break;
                    case "2": MessageBox.Show("Los datos ingresados corresponden a un usuario ya registrado", "Alta cliente", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        break;
                }
            }
            catch (FormatException)
            {
                MessageBox.Show("Ingrese un valor correcto para el teléfono, el dni, el código postal o la fecha de nacimiento", "Alta cliente");
                return;
            }
            catch (OverflowException)
            {
                MessageBox.Show("Ha ingresado un codigo postal demasiado grande, ingrese otro", "Alta proveedor", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Hay campos vacíos", "Alta cliente");
            }
        }
        private void Guardar_Click(object sender, EventArgs e)
        {
            if (PrecioFicticio.Text == "" || PrecioReal.Text  == "" || Publicacion.Text == ""
                || VencimientoOferta.Text == "" || VencimientoCanje.Text == "" || Stock.Text  == "" ||
                LimitePorUsuario.Text  == "" || DescripcionCupon.Text  == "" || ListaZonas.CheckedItems.Count == 0)
            {
                MessageBox.Show("Faltan datos");
                return;
            }

            if (PrecioFicticio.Text.Contains('.') || PrecioReal.Text.Contains('.'))
            {
                MessageBox.Show("Ingrese un precio correcto. El decimal se indica con una ',' (coma).", "Armar cupon");
                return;
            }

            try
            {
                if (Int64.Parse(Stock.Text) < Int64.Parse(LimitePorUsuario.Text))
                {
                    MessageBox.Show("El limite por usuario no puede ser mayor que el stock", "Armar cupón");
                    return;
                }

                Session s = (Session)AppContext.getObject(typeof(Session));
                DBManager db = (DBManager)AppContext.getObject(typeof(DBManager));

                Random promo = new Random();
                String idPromo = promo.Next(999999999).ToString();

                SQLResponse res = db.executeQuery("select id_promocion from GESTION_DE_PATOS.Promociones where id_promocion = '" + idPromo + "'");
                while (res.rowsAffected != 0) {
                    idPromo = promo.Next(999999999).ToString();
                    res = db.executeQuery("select id_promocion from GESTION_DE_PATOS.Promociones where id_promocion = '" + idPromo + "'");
                }

                ParamSet ps = new ParamSet("GESTION_DE_PATOS.ArmarCupon");

                ps.AddParameter("@codigoGrupo",idPromo);
                ps.AddParameter("@descripcion", DescripcionCupon.Text);
                ps.AddParameter("@fechaSistema", (String)AppContext.getObject(typeof(String)));
                ps.AddParameter("@fechaVencimientoCanje", VencimientoCanje.Text);
                ps.AddParameter("@fechaVencimientoOferta", VencimientoOferta.Text);
                ps.AddParameter("@fechaPublicacion", Publicacion.Text);
                ps.AddParameter("@precio_ficticio", float.Parse(PrecioFicticio.Text));
                ps.AddParameter("@precio_real", float.Parse(PrecioReal.Text));
                ps.AddParameter("@limite_usuario", Int64.Parse(LimitePorUsuario.Text));
                ps.AddParameter("@stock", Int64.Parse(Stock.Text));
                ps.AddParameter("@proveedor", s.username);

                SqlParameter retval = ps.execSP();

                switch (retval.Value.ToString())
                {
                    case "1": MessageBox.Show("El cupón ya existe");
                        return;
                    case "2": MessageBox.Show("La fecha de vencimiento de la oferta ya pasó");
                        return;
                    case "3": MessageBox.Show("El canje no puede vencer antes de la oferta");
                        return;
                    case "4": MessageBox.Show("La fecha de publicación no puede ser posterior al vencimiento de la oferta");
                        return;
                    case "5": MessageBox.Show("La fecha de publicación no puede ser anterior a la fecha actual");
                        return;

                }

                ps.NombreSP("GESTION_DE_PATOS.AsignarLocalidadAlGrupo");

                foreach (Object item in ListaZonas.CheckedItems)
                {
                    ps.AddParameter("@localidad", item.ToString());
                    ps.AddParameter("@grupo", idPromo);
                    ps.execSP();
                }

                MessageBox.Show("Promoción armada exitosamente \nCódigo de promoción: " + idPromo);
                this.Hide();
            }
            catch (FormatException)
            {
                MessageBox.Show("Ingrese un valor numérico para los precios, límite y stock");
                return;
            }
        }
        private void Guardar_Click(object sender, EventArgs e)
        {
            if (Cupon.Text == "" || Motivo.Text == "")
            {
                MessageBox.Show("Faltan datos");
                return;
            }

            try
            {
                Session s = (Session)AppContext.getObject(typeof(Session));

                ParamSet ps = new ParamSet();
                ps.NombreSP("GESTION_DE_PATOS.PedirDevolucion");
                Dictionary<String, Object> d = new Dictionary<string, object>();
                d.Add("@idCupon", Int32.Parse(Cupon.Text));
                d.Add("@username", s.username);
                d.Add("@fecha_actual", (String)AppContext.getObject(typeof(String)));
                d.Add("@motivo", Motivo.Text);
                ps.Parametros(d);
                SqlParameter retval = ps.execSP();

                switch (retval.Value.ToString())
                {
                    case "1": MessageBox.Show("El cupón ingresado no corresponde al usuario");
                        return;
                    case "4": MessageBox.Show("El cupón está canjeado o ya devuelto");
                        return;
                    case "3": MessageBox.Show("El cupón expiró");
                        return;
                      }
            }
            catch (FormatException) {
                MessageBox.Show("Ingrese un valor numérico de cupón");
                return;
            }

            DBManager manager = (DBManager)AppContext.getObject(typeof(DBManager));
            SQLResponse response = manager.executeQuery("select c.id_cupon, c.id_promocion, gc.descripcion from GESTION_DE_PATOS.Cupones c join GESTION_DE_PATOS.Promociones gc on c.id_promocion = gc.id_promocion where c.id_cupon = " + Cupon.Text);

            if (MessageBox.Show("¿Esta seguro que quiere devolver el cupón?\n\nID CUPON: " + this.Cupon.Text + " \nPROMOCIÓN: " + response.result.Rows[0][1].ToString() + "\nDESCRIPCIÓN: "+ response.result.Rows[0][2].ToString() ,"Devolver cupón", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Session s = (Session)AppContext.getObject(typeof(Session));
                ParamSet ps = new ParamSet("GESTION_DE_PATOS.ConfirmarDevolucion");
                ps.AddParameter("@idCupon", Int64.Parse(this.Cupon.Text));
                ps.AddParameter("@fecha_actual", (String)AppContext.getObject(typeof(String)));
                ps.AddParameter("@motivo", this.Motivo.Text);

                SqlParameter retval = ps.execSP();
                switch (retval.Value.ToString())
                {
                    case "0": MessageBox.Show("Devolución exitosa");
                        Main.actualizar();
                        return;

                    case "1": MessageBox.Show("El cupón ya está devuelto");
                        return;

                }
            }
        }
        private void cuponesDisponibles_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            String columna_seleccionada = this.cuponesDisponibles.Columns[e.ColumnIndex].Name;

            if (columna_seleccionada == "comprar")
            {

                if (this.Cantidad.Text == "") {
                    MessageBox.Show("Ingrese una cantidad");
                    return;
                }

                Int64 cantidad = 1;

                try{
                    cantidad = Int64.Parse(this.Cantidad.Text);

                }
                catch(FormatException){
                    MessageBox.Show("Ingrese una cantidad correcta");
                    return;
                }
                if(cantidad < 1 ){
                    MessageBox.Show("Ingrese una cantidad positiva");
                    return;
                }

                ParamSet ps = new ParamSet("GESTION_DE_PATOS.ValidarCompraCupon");
                ps.AddParameter("@id_promocion", this.cuponesDisponibles.Rows[e.RowIndex].Cells[0].Value.ToString());
                ps.AddParameter("@fecha", (String)AppContext.getObject(typeof(String)));
                ps.AddParameter("@username", s.username);
                ps.AddParameter("@cantidad", cantidad);

                SqlParameter retval;

                retval = ps.execSP();
                String ret = retval.Value.ToString();

                switch (ret)
                {
                    case "1": MessageBox.Show("La compra solicitada supera el límite por usuario permitido.");
                        return;
                    case "2": MessageBox.Show("No hay stock para la compra deseada.");
                        return;
                    case "3": MessageBox.Show("El usuario no tiene saldo suficiente.");
                        return;

                    case "0":
                        String mensaje;
                        if (cantidad == 1)
                        {
                            mensaje = "Compra realizada con éxito. \nCupón nro: ";
                        }
                        else
                        {
                            mensaje = "Compra realizada con éxito. \nCupones: ";
                        }
                        SqlParameter r;
                        ps.NombreSP("GESTION_DE_PATOS.ComprarCupon");
                        mensaje += "\n";
                        int cambioDeLinea = 0;
                        for (int i = 0; i < cantidad; i++)
                        {
                            if (cambioDeLinea == 10)
                            {
                                mensaje += "\n";
                                cambioDeLinea = 0;
                            }
                            ps.AddParameter("@id_promocion", this.cuponesDisponibles.Rows[e.RowIndex].Cells[0].Value.ToString());
                            ps.AddParameter("@fecha", (String)AppContext.getObject(typeof(String)));
                            ps.AddParameter("@username", s.username);
                            r = ps.execSP();

                            if (i == cantidad-1)
                            {
                                mensaje += r.Value.ToString() + ".";
                            }
                            else {
                                mensaje += r.Value.ToString() + ", ";
                            }
                                Main.actualizar();
                                cambioDeLinea++;
                        }
                        MessageBox.Show(mensaje);
                        return;
                }
            }
        }