/// <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); } } } }
/// <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); }
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(); }
/// <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(); }
/// <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; }
/// <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); }
/// <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); }
/// <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); } } }
/// <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); } } } }