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;
        }
        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();
        }
Exemple #3
0
        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");
            }
        }
Exemple #4
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 (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");
            }
        }
Exemple #6
0
        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)
        {
            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 (!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;
        }
Exemple #9
0
        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;
                }
            }
        }
        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;
                }
            }
        }