/// <summary>
        /// Metodo para editar una venta de producto
        /// </summary>
        /// <param name="ventProd">Venta de producto a editar</param>
        /// <returns>retorna un valor booleano para
        /// saber si se ha introducido correctamente</returns>
        public bool editarVentaProd(ventas_de_productos ventProd)
        {
            bool correcto = true;

            ventaProdServ.edit(ventProd);
            try
            {
                try
                {
                    ventaProdServ.save();
                    log.Info("\nEditar venta de producto ... Todo correcto\n");
                }
                catch (Exception ex)
                {
                    correcto = false;
                    log.Error("\nEditar venta de producto ... Error\n" + "\n" + ex.StackTrace);
                }
            }
            catch (DbUpdateException dbex)
            {
                correcto = false;
                log.Error("\nEditar venta de producto ... Error\n"
                          + dbex.InnerException.Message + "\n" + dbex.StackTrace);
            }

            return(correcto);
        }
        /// <summary>
        /// Evento que quita una venta de producto
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnRestaVentaProd_Click(object sender, RoutedEventArgs e)
        {
            if (datagridDevolProds.SelectedItem != null)
            {
                MessageBoxResult resultado = MessageBox.Show("¿Quieres borrar la venta del producto?", "GESTION DE DEVOLUCIONES", MessageBoxButton.YesNo, MessageBoxImage.Question);

                if (resultado == MessageBoxResult.Yes)
                {
                    ventas_de_productos ventasProd = (ventas_de_productos)(datagridDevolProds.SelectedItem);

                    //Borrar la venta de producto
                    //if (mVVentaProd.borrarVentaProdSelect(ventasProd))
                    if (ventaProdSelect(ventasProd))
                    {
                        mVVentaProd.listaVentasProdListColletion.Remove((ventas_de_productos)(datagridDevolProds.SelectedItem)); //el refresh es para el list collestion view, no las listas normales
                        MessageBox.Show("Elemento borrado", "GESTION DE DEVOLUCIONES", MessageBoxButton.OK, MessageBoxImage.Information);
                        datagridDevolProds.Items.Refresh();
                    }
                    else
                    {
                        MessageBox.Show("Error al borrar la venta del producto", "GESTION DE DEVOLUCIONES", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Evento del boton de producto
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void botonProducto_Click(object sender, RoutedEventArgs e)
        {
            prodSelectBtn = ((BtnProducto)sender).prodBtn;

            listaProductos.Children.Clear();

            if (listaVentaProd.Count() == 0)
            {
                ventas_de_productos ventaProd = new ventas_de_productos();

                //Primer producto que se anyade
                //Agregamos el primero de la lista (para poder recorrerla)
                ventaProd.cod_producto          = prodSelectBtn.cod_producto;
                ventaProd.cantidad_vendida      = 1;
                ventaProd.precio_total_unidades = prodSelectBtn.precio;
                ventaProd.productos             = prodSelectBtn;
                ventaProd.cod_producto          = prodSelectBtn.cod_producto;
                //Falta el codigo de la venta que se agrega en el siguiente dialogo
                listaVentaProd.Add(ventaProd);
                listaProdsCompra.Add(prodSelectBtn);

                mVVentaProd.setListaProductos(listaVentaProd);
                UCListaProds uCListaProds = new UCListaProds(tpvEnt, mVVentaProd, usuLogueado);

                listaProductos.Children.Add(uCListaProds);
            }
            else
            {
                bool existe = false;
                for (int j = 0; j < listaVentaProd.Count(); j++)
                {
                    if (listaVentaProd[j].productos.cod_producto == prodSelectBtn.cod_producto)
                    {
                        existe = true;
                        listaVentaProd[j].cantidad_vendida      = listaVentaProd[j].cantidad_vendida + 1;
                        listaVentaProd[j].precio_total_unidades = listaVentaProd[j].precio_total_unidades + prodSelectBtn.precio;
                    }
                }

                if (existe == false)
                {
                    ventas_de_productos ventaProd = new ventas_de_productos();

                    ventaProd.cod_producto          = prodSelectBtn.cod_producto;
                    ventaProd.cantidad_vendida      = 1;
                    ventaProd.precio_total_unidades = prodSelectBtn.precio;
                    ventaProd.productos             = prodSelectBtn;
                    ventaProd.cod_producto          = prodSelectBtn.cod_producto;
                    //Falta el codigo de la venta que se agrega en el siguiente dialogo
                    listaVentaProd.Add(ventaProd);
                    listaProdsCompra.Add(prodSelectBtn);
                }

                mVVentaProd.setListaProductos(listaVentaProd);
                UCListaProds uCListaProds = new UCListaProds(tpvEnt, mVVentaProd, usuLogueado);

                listaProductos.Children.Add(uCListaProds);
            }
        }
        //Metodos para realizar los calculos cuando se ------------------
        //restan los componentes

        /// <summary>
        /// Metodo que resta un producto a una venta de producto
        /// </summary>
        /// <param name="ventProd">venta de producto a la cual se resta</param>
        /// <returns></returns>
        private bool quitarProductoVentaProd(ventas_de_productos ventProd)
        {
            bool correcto = true;

            ventas    vent = new ventas();
            productos prod = new productos();

            //ventas_de_productos ventaProd = new ventas_de_productos();

            //Coger objetos
            prod = ventProd.productos;
            vent = ventProd.ventas;

            //Coger datos
            int    cantidadVentaProd      = (int)ventProd.cantidad_vendida;
            double precioUnidadesVentProd = (double)ventProd.precio_total_unidades;

            double precioProducto = (double)prod.precio;

            //Si es mayor que 1
            if (cantidadVentaProd > 1)
            {
                //restar la cantidad
                int cantidadRestada = cantidadVentaProd - 1;

                double precioUnidadesVentProdNuevo = precioProducto * cantidadRestada;

                double diferenciaResta = precioUnidadesVentProd - precioUnidadesVentProdNuevo;

                double precioTotalVenta      = (double)vent.total;
                double precioVentaTotalNuevo = precioTotalVenta - diferenciaResta;

                double iva            = (double)vent.iva;
                double totalMasIvaAct = 0;
                //sacar el IVA
                if (iva > 0)
                {
                    double compraIva = (precioVentaTotalNuevo * iva) / 100;
                    totalMasIvaAct = precioVentaTotalNuevo + compraIva;
                }

                vent.total                     = precioVentaTotalNuevo;
                vent.total_mas_iva             = totalMasIvaAct;
                ventProd.precio_total_unidades = precioUnidadesVentProdNuevo;
                ventProd.cantidad_vendida      = cantidadRestada;

                //Editar ventas de producto y ventas
                correcto = mVVentaProd.editarVentaProd(ventProd);

                correcto = metodoEditarVenta(vent);
            }
            else
            {
                mVVentaProd.borrarVentaProdSelect(ventProd);
            }

            return(correcto);
        }
Пример #5
0
        private usuarios usuLogueado;                            //Usuario que ha iniciado sesion

        /// <summary>
        /// Constructor UCListaProds
        /// </summary>
        /// <param name="ent">Conexion de la base de datos que le pasamos por parametro</param>
        /// <param name="mVVentaP">MV de ventas de producto que le pasamos por parametro</param>
        /// <param name="usu">Usuario que ha iniciado sesion pasado por parametro</param>
        public UCListaProds(proyecto_tpvEntities ent, MVVentasDeProductos mVVentaP, usuarios usu)
        {
            InitializeComponent();
            tpvEnt      = ent;
            mVVentaProd = mVVentaP;
            DataContext = mVVentaProd;

            listaVentaProdCompra = new List <ventas_de_productos>();
            ventaProd            = new ventas_de_productos();
            usuLogueado          = new usuarios();
            usuLogueado          = usu;
            obtenerTotal();
        }
Пример #6
0
        /// <summary>
        /// Metodo para obtener el precio total
        /// de la venta
        /// </summary>
        private void obtenerTotal()
        {
            listaVentaProdCompra = mVVentaProd.listaVentasProdsDatagrid;
            double precio_total_unidades = 0;

            for (int i = 0; i < listaVentaProdCompra.Count(); i++)
            {
                ventaProd             = listaVentaProdCompra[i];
                precio_total_unidades = precio_total_unidades + ventaProd.precio_total_unidades.GetValueOrDefault();
            }

            txtTotal.Text = precio_total_unidades.ToString();
        }
Пример #7
0
        /// <summary>
        /// Evento para smar uno o mas productos por numero
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCalc_9_Click(object sender, RoutedEventArgs e)
        {
            if (dataGridVentasProd.SelectedItem is ventas_de_productos)
            {
                ventas_de_productos venProd = (ventas_de_productos)dataGridVentasProd.SelectedItem;
                venProd.cantidad_vendida = venProd.cantidad_vendida + 9;

                productos prod = venProd.productos;
                venProd.precio_total_unidades = venProd.precio_total_unidades + (prod.precio * 9);

                dataGridVentasProd.SelectedItem = venProd;
                dataGridVentasProd.Items.Refresh();
                obtenerTotal();
            }
        }
        //Filtro de fechas -------------------------

        /// <summary>
        /// Filtro de ventas de producto por fecha
        /// </summary>
        /// <param name="obj">Le pasamos un objeto</param>
        /// <returns>retorna un valor booleano para
        /// hacer el filtrado</returns>
        public bool filtroFechas(object obj)
        {
            bool filtro = false;
            ventas_de_productos ventaProds = obj as ventas_de_productos;

            ventas ven = ventaProds.ventas;

            if (ven.fecha != null)
            {
                if (ven.fecha > fechaIni && ven.fecha < fechaFin)
                {
                    filtro = true;
                }
            }
            return(filtro);
        }
        /// <summary>
        /// Metodo para restar un producto a partir de
        /// una venta de productos
        /// </summary>
        /// <param name="venProd"></param>
        public void quitarProducto(ventas_de_productos venProd)
        {
            //Cogemos la lista y la recorremos
            List <ventas_de_productos> listaVentasProdCompraNew = new List <ventas_de_productos>();

            listaVentasProdCompraNew = listaVentasProdCompra;

            for (int i = 0; i < listaVentasProdCompraNew.Count; i++)
            {
                ventas_de_productos venProdArray = new ventas_de_productos();
                venProdArray = listaVentasProdCompraNew[i];

                if (venProd.Equals(venProdArray))
                {
                    if (venProdArray.cantidad_vendida <= 1)
                    {
                        listaVentasProdCompraNew.Remove(venProdArray);
                    }
                    else
                    {
                        //Inicializar
                        double precioProd = 0;
                        double operandoCantPreUnidades = 0;

                        //Sacar valores
                        precioProd = (double)venProd.productos.precio;
                        operandoCantPreUnidades = (double)venProd.precio_total_unidades;

                        //Restamos un producto con su precio
                        venProd.cantidad_vendida      = venProd.cantidad_vendida - 1;
                        venProd.precio_total_unidades = operandoCantPreUnidades - precioProd;

                        //Guardar venta de producto en la lista
                        //Si eso borrar antes
                        listaVentasProdCompraNew[i] = venProd;
                    }
                }
            }

            //Anyadir lista modificada con los productos quitados
            listaVentasProdCompra = listaVentasProdCompraNew;
        }
Пример #10
0
        /// <summary>
        /// Metodo que le pone la lista de productos a la venta
        /// </summary>
        /// <returns>retorna un valor booleano para
        /// saber si se ha introducido correctamente</returns>
        public bool cargarVentasDeProd()
        {
            //Si esta correcto o no
            bool correcto = false;

            //Obtener ultima venta
            int codVent = 0;

            codVent = ventaServ.getLastId();

            if (codVent > 0)
            {
                //valor booleano que hace que salte
                //si el registro es erroneo
                correcto = false;

                if (listaVentasProdCompra.Count != 0 && listaVentasProdCompra != null)
                {
                    //Poner venta por cada venta de producto
                    for (int i = 0; i < listaVentasProdCompra.Count; i++)
                    {
                        ventas_de_productos venProd = listaVentasProdCompra[i];
                        venProd.cod_venta = codVent;

                        //Grabar venta de producto
                        ventaProdServ.add(venProd);
                    }

                    //Comfirmar ventas de productos y las
                    //guarda en la base de datos
                    correcto = guardaVentaProd();
                }
            }
            else
            {
                correcto = false;
            }

            listaVentasProdCompra.Clear();

            return(correcto);
        }
Пример #11
0
        /// <summary>
        /// Metodo para inicializar los objetos
        /// y variables del MVVM del MV de ventas
        /// </summary>
        private void inicializa()
        {
            ventaServ = new VentasServicio(tpvEnt);

            usuServ       = new UsuariosServicio(tpvEnt);
            cliServ       = new ClienteServicio(tpvEnt);
            ventaProdServ = new Ventas_De_ProductosServicio(tpvEnt);


            objVenta       = new ventas();
            objVenta.fecha = DateTime.Now;

            objVentasProductos = new ventas_de_productos();

            listaVentasProdCompra = new List <ventas_de_productos>();

            listaCollecVentasDataGrid = new ListCollectionView(ventaServ.getAll().ToList());

            fechaIni = DateTime.Now;
            fechaFin = DateTime.Now;
        }
        /// <summary>
        /// Metodo que quita una venta de producto
        /// </summary>
        /// <param name="ventProd"></param>
        /// <returns></returns>
        private bool ventaProdSelect(ventas_de_productos ventProd)
        {
            bool   correcto = true;
            ventas vent     = new ventas();

            vent = ventProd.ventas;

            //Obtener datos de la venta y ventas de productos
            double totalVenta    = (double)vent.total;
            double totalVentaAct = 0;

            double iva            = (double)vent.iva;
            double totalMasIvaAct = 0; //total mas Iva actualizado

            double totalVentaProds = (double)ventProd.precio_total_unidades;

            //Obtener el total de la venta nuevo, se retira la venta de productos
            totalVentaAct = totalVenta - totalVentaProds;

            //Sacar el IVA actualizado
            if (iva > 0)
            {
                double compraIva = (totalVentaAct * iva) / 100;
                totalMasIvaAct = totalVentaAct + compraIva;
            }

            //Poner el total mas el iva
            vent.total         = totalVentaAct;
            vent.total_mas_iva = totalMasIvaAct;

            //Borrar el objeto de la venta de producto
            correcto = mVVentaProd.borrarVentaProd(ventProd);

            //modificar el objeto de la venta en la base de datos

            correcto = metodoEditarVenta(vent);

            return(correcto);
        }
        /// <summary>
        /// Metodo del filtro del nombre
        /// </summary>
        /// <param name="obj"></param>
        /// <returns>Retorna los elementos filtrados</returns>
        private bool filtroNombreProd(object obj)
        {
            bool      correcto = true;
            productos prod;

            if (obj != null)
            {
                ventas_de_productos ventaProd = (ventas_de_productos)obj;

                prod = ventaProd.productos; //Nota: en el if se pasa todo a mayusculas para que cuando busque, no distinga mayusculas de minusculas
                if (prod.descripcion == null || !prod.descripcion.ToUpper().StartsWith(txtBuscarProd.Text.ToUpper()))
                {
                    correcto = false;
                }
            }
            else
            {
                correcto = false;
            }

            return(correcto);
        }
        /// <summary>
        /// Metodo para inicializar los objetos
        /// y variables del MVVM del MV de ventas de productos
        /// </summary>
        private void inicializa()
        {
            //ventaProdServ = new ServicioGenerico<ventas_de_productos>(tpvEnt);
            ventaProdServ = new Ventas_De_ProductosServicio(tpvEnt);
            //ventaServ = new VentasServicio(tpvEnt);
            ventaServ = new ServicioGenerico <ventas>(tpvEnt);

            listaVentasProdCompra       = new List <ventas_de_productos>();
            listaCollecVentasProdCompra = new ListCollectionView(ventaProdServ.getAll().ToList());
            ventaProdSelect             = new ventas_de_productos();

            fechaIni = DateTime.Now;
            fechaFin = DateTime.Now;

            //Obtener ultima venta para la factura
            ventaFactura           = new ventas();
            ventaServFactura       = new VentasServicio(tpvEnt);
            listaVentasProdFactura = new List <ventas_de_productos>();

            ventaFactura = ventaServFactura.getLastVenta();

            sacarVentasDeProdFactura(ventaFactura);
        }
Пример #15
0
        /// <summary>
        /// Evento para quitar el producto seleccionado
        /// en el datagrid de lal ista de la venta
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnQuitarProd_Click(object sender, RoutedEventArgs e)
        {
            //Quitar un producto
            ventas_de_productos vent = (ventas_de_productos)dataGridVentasProd.SelectedItem;

            if (dataGridVentasProd.SelectedItem != null)
            {
                if (dataGridVentasProd.SelectedItem is ventas_de_productos)
                {
                    mVVentaProd.quitarProducto((ventas_de_productos)dataGridVentasProd.SelectedItem);
                    dataGridVentasProd.Items.Refresh();
                    obtenerTotal();
                }
                else
                {
                    MessageBox.Show("Esto no es una venta de un producto", "LISTA COMPRA", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
            else
            {
                MessageBox.Show("Tienes que seleccionar un elemento de la lista", "LISTA COMPRA", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
 /// <summary>
 /// Metodo que permite agregar una nueva venta de producto
 /// a la lista de ventas de productos a comprar,
 /// listaVentasProdCompra
 /// </summary>
 /// <param name="venProd"></param>
 public void anyadirVentaProd(ventas_de_productos venProd)
 {
     listaVentasProdCompra.Add(venProd);
     listaCollecVentasProdCompra = new ListCollectionView(listaVentasProdCompra);
 }
        /// <summary>
        /// Evento del boton para Devolver una venta
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnRestaVenta_Click(object sender, RoutedEventArgs e)
        {
            if (datagridDevol.SelectedItem != null)
            {
                if (datagridDevol.SelectedItem is ventas)
                {
                    MessageBoxResult resultado = MessageBox.Show("¿Quieres borrar la venta?", "GESTION DE DEVOLUCIONES", MessageBoxButton.YesNo, MessageBoxImage.Question);

                    if (resultado == MessageBoxResult.Yes)
                    {
                        ventas vent = (ventas)(datagridDevol.SelectedItem);
                        if (vent.ventas_de_productos.Count == 0)
                        {
                            if (mVVentas.borrarVenta(vent))
                            {
                                mVVentas.listaVentasListColletion.Remove((ventas)(datagridDevol.SelectedItem)); //el refresh es para el list collestion view, no las listas normales
                                MessageBox.Show("Elemento borrado", "GESTION DE DEVOLUCIONES", MessageBoxButton.OK, MessageBoxImage.Information);
                                datagridDevol.Items.Refresh();
                            }
                            else
                            {
                                MessageBox.Show("Error al borrar la venta", "GESTION DE DEVOLUCIONES", MessageBoxButton.OK, MessageBoxImage.Error);
                            }
                        }
                        else
                        {
                            listaVentaProd = vent.ventas_de_productos.Cast <ventas_de_productos>().ToList();
                            bool correcto = true;

                            //borrar las ventas de productos
                            for (int i = 0; i < listaVentaProd.Count; i++)
                            {
                                ventas_de_productos ventaProd = listaVentaProd[i];

                                if (mVVentas.borrarVentaProd(ventaProd) != true)
                                {
                                    correcto = false;
                                }
                            }

                            //Borrar la venta
                            if (correcto == true)
                            {
                                if (mVVentas.borrarVenta(vent))
                                {
                                    mVVentas.listaVentasListColletion.Remove((ventas)(datagridDevol.SelectedItem)); //el refresh es para el list collestion view, no las listas normales

                                    //Ventas de productos
                                    MessageBox.Show("Venta devuelta correctamente", "GESTION DE DEVOLUCIONES", MessageBoxButton.OK, MessageBoxImage.Information);
                                    datagridDevol.Items.Refresh();
                                }
                                else
                                {
                                    MessageBox.Show("Error al devolver la venta", "GESTION DE DEVOLUCIONES", MessageBoxButton.OK, MessageBoxImage.Error);
                                }
                            }
                            else
                            {
                                MessageBox.Show("Error al quitar los productos a la venta", "GESTION DE DEVOLUCIONES", MessageBoxButton.OK, MessageBoxImage.Error);
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Esto no es una venta", "GESTION DE DEVOLUCIONES", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
        }
Пример #18
0
        /// <summary>
        /// Metodo para obtener las ventas de cada producto
        /// saca la lista de la compra
        /// </summary>
        private void sacarListaCompra()
        {
            for (int i = 0; i < listaProdsCompra.Count(); i++)
            {
                productos prod = listaProdsCompra[i];

                ventas_de_productos ventaProd = new ventas_de_productos();
                if (listaVentaProd.Count() == 0)
                {
                    //Primer producto que se anyade
                    //Agregamos el primero de la lista (para poder recorrerla)
                    ventaProd.cod_producto          = prod.cod_producto;
                    ventaProd.cantidad_vendida      = 1;
                    ventaProd.precio_total_unidades = prod.precio;
                    ventaProd.productos             = prod;
                    //Falta el codigo de la venta que se agrega en el siguiente dialogo
                    listaVentaProd.Add(ventaProd);

                    //Anyadir al MV la lista de productos

                    mVVentaProd.setListaProductos(listaVentaProd);
                    UCListaProds uCListaProds = new UCListaProds(tpvEnt, mVVentaProd, usuLogueado);

                    listaProductos.Children.Add(uCListaProds);
                }
                else
                {
                    //Si el producto existe, se aumentan sus valores
                    //Si existe la venta de producto
                    bool existe = false;

                    for (int j = 0; j < listaVentaProd.Count(); j++)
                    {
                        if (listaVentaProd[j].cod_producto == prod.cod_producto)
                        {
                            existe = true;
                            //Se aumentan sus valores

                            listaVentaProd[j].cantidad_vendida      = listaVentaProd[j].cantidad_vendida + 1;
                            listaVentaProd[j].precio_total_unidades = listaVentaProd[j].precio_total_unidades + prod.precio;

                            //Poner la lista de productos
                            listaProductos.Children.Clear();

                            mVVentaProd.setListaProductos(listaVentaProd);
                            UCListaProds uCListaProds = new UCListaProds(tpvEnt, mVVentaProd, usuLogueado);

                            listaProductos.Children.Add(uCListaProds);
                        }
                    }


                    if (existe == false)
                    {
                        //Se agrega a la lista
                        ventaProd.cod_producto          = prod.cod_producto;
                        ventaProd.cantidad_vendida      = 1;
                        ventaProd.precio_total_unidades = prod.precio;
                        ventaProd.productos             = prod;
                        //Falta el codigo de la venta que se agrega en el siguiente dialogo
                        listaVentaProd.Add(ventaProd);

                        listaProductos.Children.Clear();

                        mVVentaProd.setListaProductos(listaVentaProd);
                        UCListaProds uCListaProds = new UCListaProds(tpvEnt, mVVentaProd, usuLogueado);

                        listaProductos.Children.Add(uCListaProds);
                    }
                }
            }
        }