Beispiel #1
0
        public static void updateVentasSinRendir(Compra compra)
        {
            int idUser = compra.Vendedor;

            List<SqlParameter> listaParametros = new List<SqlParameter>();

            BDSQL.agregarParametro(listaParametros, "@idUser", idUser);

            string commandText = "UPDATE MERCADONEGRO.Usuarios SET Ventas_Sin_Rendir = Ventas_Sin_Rendir + 1 WHERE ID_USER = @idUser";

            BDSQL.ejecutarQuery(commandText, listaParametros, BDSQL.iniciarConexion());
            BDSQL.cerrarConexion();

            //verifico que haya llegado a las 10
            bool puedeComprarLaProxPorVentas = Usuario.verificarCantidadVentasSinRendir(compra.Vendedor);

            if (!puedeComprarLaProxPorVentas)
            {
                //inhabilita al usuario
                Usuario usuario = new Usuario();
                usuario.ID_User = compra.Vendedor;

                usuario.inhabilitarUsuario();

                //updatea todas sus publicaciones a Pausadas
                Publicacion.pausarPublicaciones(compra.Vendedor);
            }
        }
Beispiel #2
0
        public static void insertarCompra(Compra compra)
        {
            List<SqlParameter> ListaParametros = new List<SqlParameter>();
            ListaParametros.Add(new SqlParameter("@idVendedor", compra.Vendedor));
            ListaParametros.Add(new SqlParameter("@idComprador", compra.Comprador));
            ListaParametros.Add(new SqlParameter("@codPublicacion", compra.Cod_Publicacion));
            ListaParametros.Add(new SqlParameter("@tipoOperacion", compra.Tipo_Operacion));
            ListaParametros.Add(new SqlParameter("@montoCompra", compra.Monto_Compra));
            ListaParametros.Add(new SqlParameter("@operacionFacturada", compra.Operacion_Facturada));
            ListaParametros.Add(new SqlParameter("@fechaCompra", Interfaz.obtenerFecha()));

            BDSQL.ejecutarQuery("INSERT INTO MERCADONEGRO.Compras (ID_Vendedor, ID_Comprador, Cod_Publicacion, Cod_TipoOperacion, " +
                                "Fecha_Operacion, Monto_Compra, Operacion_Facturada) " +
                                "VALUES ( @idVendedor , @idComprador , @codPublicacion , @tipoOperacion , " +
                                "@fechaCompra, @montoCompra , @operacionFacturada )", ListaParametros, BDSQL.iniciarConexion());

            BDSQL.cerrarConexion();
        }
        //BOTON GUARDAR
        private void Guardar_button_Click(object sender, EventArgs e)
        {
            int cantRubrosSelecc = Rubro_checkedListBox.CheckedItems.Count;
            //Controlar que se completen todos los datos y asignar
            if (!Visibilidad_ComboBox.Text.Equals("") && !Descrip_TextBox.Text.Equals("") && !Stock_TextBox.Text.Equals("") && !FechaFin_DateTimePicker.Text.Equals("") && !Estado_ComboBox.Text.Equals("") && !TipoPubli_ComboBox.Text.Equals("") && !Precio_textBox.Text.Equals("") && (cantRubrosSelecc >= 1))
            {
                //Asigna los valores a la publicacion

                if(esNueva == true)
                {
                    codPubli = 0;
                }
                string visibilidad = Visibilidad_ComboBox.SelectedItem.ToString();
                int visibilidadIndex = Visibilidad_ComboBox.SelectedIndex;
                int idVendedor;
                if (esAdmin == true)
                {
                    idVendedor = dueñoPublicacion;
                }
                else
                {
                    idVendedor = usuario.ID_User;
                }
                string descripcion = Descrip_TextBox.Text;
                int stock = Convert.ToInt32(Stock_TextBox.Text);
                DateTime fechaFin = Convert.ToDateTime(FechaFin_DateTimePicker.Text);
                DateTime fechaInicio = Interfaz.obtenerFecha();
                string estado = Convert.ToString(Estado_ComboBox.SelectedItem);
                int estadoIndex = Estado_ComboBox.SelectedIndex;
                string tipoPubli = Convert.ToString(TipoPubli_ComboBox.SelectedItem);
                int tipoPubliIndex = TipoPubli_ComboBox.SelectedIndex;
                string rubro = Convert.ToString(Rubro_checkedListBox.SelectedItem);
                int rubroIndex = Rubro_checkedListBox.SelectedIndex;
                decimal precio = Convert.ToDecimal(Precio_textBox.Text);
                bool permisoPreg = PermitirPreguntas_Checkbox.Checked;

                List<Rubro> listaRubrosSeleccionados = filtrarRubrosSeleccionados();

                //Crear la publicacion con los parametros asignados
                Publicacion publi = new Publicacion(codPubli, visibilidad, idVendedor, descripcion, stock, fechaFin, fechaInicio, precio, estado, tipoPubli, permisoPreg, stock);

                //Nueva
                if ((esNueva == true))
                {
                    if (fechaFin > Interfaz.obtenerFecha())
                    {

                        //Nueva + (Stock<=0)
                        if (stock < 1)
                        {
                            MessageBox.Show("El Stock no puede ser menor a 1", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        else
                        {
                            //Nueva + Gratis + Publicada
                            if ((visibilidad == "Gratis") && (estadoIndex == 1))
                            {
                                //Obtiene la cantidad de publicaciones gratuitas del usuario
                                int idUser = Convert.ToInt32(usuario.ID_User);
                                int cantidadPubliGratuitas = Usuario.obtenerPublisGratuitas(idUser);

                                //Nueva + Gratis + Publicada + (CantGratis<3)
                                if (cantidadPubliGratuitas < 3)
                                {
                                    //Sumar 1 a Cant_Publi_Gratuitas
                                    usuario.sumarPubliGratuita();

                                    //Inserta publicacion en la tabla Publicaciones
                                    int publiExitosa = Publicaciones.agregarPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex);
                                    if (publiExitosa == -1)
                                    {
                                        MessageBox.Show("Falló al generar Publicacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    else
                                    {
                                        int nuevoCodPbli = Publicaciones.obtenerCodPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex);
                                        MessageBox.Show(string.Format("La publicación creada tendrá el Código {0}", nuevoCodPbli), "Codigo de Publicación", MessageBoxButtons.OK);
                                        Rubro.agregarRubroPublicacion(listaRubrosSeleccionados, nuevoCodPbli);
                                    }

                                }
                                //Nueva + Gratis + Publicada + (CantGratis>=3)
                                else
                                {
                                    MessageBox.Show("Ya posee 3 publicaciones gratuitas publicadas", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                }
                            }

                            //Nueva + No (Gratis + Publicada) + No (Subasta + Publicada)
                            else
                            {
                                //Inserta publicacion en la tabla Publicaciones
                                int publiExitosa = Publicaciones.agregarPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex);
                                if (publiExitosa == -1)
                                {
                                    MessageBox.Show("Falló al generar Publicacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                else
                                {
                                    int nuevoCodPbli = Publicaciones.obtenerCodPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex);
                                    MessageBox.Show(string.Format("La publicación creada tendrá el Código {0}", nuevoCodPbli), "Codigo de Publicación", MessageBoxButtons.OK);
                                    Rubro.agregarRubroPublicacion(listaRubrosSeleccionados, nuevoCodPbli);
                                }
                            }

                            this.Close();
                        }
                    }
                    else
                    {
                        MessageBox.Show("La fecha de vencimiento no puede ser menor a la actual", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }

                }

                //Modificar
                else
                {
                    //Modificar + StockBien
                    if (stockTraido > stock)
                    {
                        MessageBox.Show("No es posible decrementar el stock", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    else
                    {
                        // Modificar + StockBien + No(Publicada-->Borrador)
                        if ((esBorrador == false) && (estado == "Borrador"))
                        {
                            MessageBox.Show("No es posible pasar de Publicada a Borrador", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }

                        // Nueva + Subasta + Publicada + (NuevoEstado = Finalizada)
                        else if ((tipoPubli == "Subasta") && (esBorrador == false) && (estado == "Finalizada"))
                        {

                            //Incluir última Subasta en Operaciones
                            decimal montoOferta = Oferta.cargarOfertaMasAlta(codPubli);
                            int idGanador = Oferta.getIdGanador(codPubli, montoOferta);

                            if (idGanador == -1)
                            {
                                DialogResult dlg = MessageBox.Show("Nadie ofertó por esta subasta, ¿Desea cerrarla de todos modos?", "Atención!", MessageBoxButtons.YesNo);

                                if (dlg == DialogResult.No)
                                {
                                    return;
                                }
                                else
                                {
                                    //updateo el estado de la publicacion
                                    Publicaciones.updateEstado(publi.Cod_Publicacion, "Finalizada");

                                    MessageBox.Show("Subasta finalizada, no hubo ofertas.", "Atención!", MessageBoxButtons.OK);

                                    this.Close();
                                }
                            }
                            else
                            {
                                Compra compra = new Compra(idVendedor, idGanador, codPubli, 0, montoOferta, false);
                                //inserto la compra a operaciones y
                                Compra.insertarCompra(compra);

                                //updateo el campo ventas_sin_rendir al id_vendedor
                                Usuario.updateVentasSinRendir(compra);

                                //updateo el estado de la publicacion
                                Publicaciones.updateEstado(publi.Cod_Publicacion, "Finalizada");

                                MessageBox.Show("Subasta finalizada! Avisar al ganador.", "Succes!", MessageBoxButtons.OK);

                                this.Close();
                            }
                        }
                        else
                        {
                            // Modificar + StockBien + No(Publicada-->Borrador) + (Gratis + NoBorrador)
                            if (visibilidad == "Gratis" && estado == "Publicada")
                            {
                                //Obtiene la cantidad de publicaciones gratuitas del usuario
                                int idUser = Convert.ToInt32(usuario.ID_User);
                                int cantidadPubliGratuitas = Usuario.obtenerPublisGratuitas(idUser);
                                MessageBox.Show(string.Format("Tiene {0}", cantidadPubliGratuitas), "CantPubliGratuitas", MessageBoxButtons.OK);
                                if (cantidadPubliGratuitas < 3)
                                {
                                    //Si no tiene Cant_Publi_Gratuitas en numero limite, sumar 1 a Cant_Publi_Gratuitas
                                    usuario.sumarPubliGratuita();

                                    //Actualiza los rubros
                                    List<int> listaRubrosDePublicacion = Rubro.obtenerRubrosDePublicacion(publi.Cod_Publicacion);
                                    Rubro.eliminarRubroPublicacion(listaRubrosDePublicacion, publi.Cod_Publicacion);
                                    //Publicaciones.eliminarPublicacion(publi);
                                    Rubro.agregarRubroPublicacion(listaRubrosSeleccionados, codPubli);

                                    //Actualiza la publicacion en la tabla Publicaciones
                                    Publicaciones.actualizarPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex);

                                    this.Close();
                                }
                                else
                                {
                                    //Si tiene Cant_Publi_Gratuitas en numero limite, mostrar error
                                    MessageBox.Show("Ya posee 3 publicaciones gratuitas publicadas", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                }

                            }

                            // Modificar + StockBien + No(Publicada-->Borrador)
                            else
                            {
                                //Actualiza la publicacion en la tabla Publicaciones
                                Publicaciones.actualizarPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex);
                                Rubro.actualizarRubroPublicacion(listaRubrosSeleccionados, codPubli);
                                this.Close();
                            }
                        }
                    }
                }
            }

            //Caso que no haya completado todos los datos para generar la publi
            else
            {
                MessageBox.Show("Para continuar, ingrese todos los datos solicitados", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
        private void btnComprar_Click(object sender, EventArgs e)
        {
            if (!Usuario.habilitadoCompra(Interfaz.usuario.ID_User))
            {
                MessageBox.Show("Usted se encuentra actualmente inhabilitado para comprar.", "Importante", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            int stock = int.Parse(txtStockDisponible.Text);

            if (stock == 0)
            {
                MessageBox.Show("No hay mas stock disponibles!", "ATENCIÓN", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            if (publi.Tipo_Publicacion == "Compra Inmediata")
            {
                DialogResult res = MessageBox.Show("¿Esta seguro que desea realizar la compra?", "Importante", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);

                if (res == DialogResult.Yes)
                {
                    stock = stock - 1;
                    txtStockDisponible.Text = Convert.ToString(stock);

                    Compra compra = new Compra(publi.ID_Vendedor, Interfaz.usuario.ID_User, publi.Cod_Publicacion, 0 , publi.Precio, false);
                    //inserto la compra a operaciones y updateo el campo ventas_sin_rendir al id_vendedor
                    Compra.insertarCompra(compra);
                    Usuario.updateVentasSinRendir(compra);
                    //Visibilidad.insertBonificacion(publi.ID_Vendedor, publi.Cod_Visibilidad);

                    bool puedeComprarLaProxPorCalific = Calificacion.verificarCantidadCalificaciones(Interfaz.usuarioActual().ID_User);

                    if (!puedeComprarLaProxPorCalific)
                    {
                        //TODO: deshabilitar funcioanlidad compra
                        MessageBox.Show("Usted ha llegado a 5 compras (inmediata o subasta ganada) sin calificar, " +
                        "no podrá seguir comprando hasta que no se ponga al día.", "Importante", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                        Usuario.updateHabilitadoCompra(Interfaz.usuarioActual().ID_User, false);
                    }

                    if (publi.ID_Vendedor == 0)
                    {
                        MessageBox.Show("Publicacion creada por el Administrador General, no puede ver sus datos.", "Atención", MessageBoxButtons.OK);
                        return;
                    }

                    DatosVendedor datosVendedorForm = new DatosVendedor(publi.ID_Vendedor);
                    datosVendedorForm.ShowDialog();
                }
            }
            else if (publi.Tipo_Publicacion == "Subasta")
            {
                OfertaDlg ofertaDlg = new OfertaDlg(publi);
                ofertaDlg.ShowDialog();

                actualizarOfertaDetallePublicacion();
            }
        }