public void Modificar(ProductoVendido pv) { AccesoDB conexion = null; try { conexion = new AccesoDB(); conexion.SetearConsulta("UPDATE PRODUCTOS_X_VENTA SET IDPRODUCTO = @idproducto, PRECIOPU = @preciopu, CANTIDAD = @cantidad WHERE IDPXV = @id"); conexion.Comando.Parameters.Clear(); conexion.Comando.Parameters.AddWithValue("@idproducto", pv.Producto.IdProducto); conexion.Comando.Parameters.AddWithValue("@cantidad", pv.Cantidad); conexion.Comando.Parameters.AddWithValue("@id", pv.IdPxv); conexion.Comando.Parameters.AddWithValue("@preciopu", pv.PrecioU); conexion.AbrirConexion(); conexion.EjecutarAccion(); } catch (Exception ex) { throw ex; } finally { if (conexion.CheckearConexion() == true) { conexion.CerrarConexion(); } } }
private void BtnEliminar_Click(object sender, EventArgs e) { if (dgvVenta.SelectedCells.Count > 0) { ProductoVendidoNegocio neg = new ProductoVendidoNegocio(); ProductoVendido l = (ProductoVendido)dgvVenta.CurrentRow.DataBoundItem; try { using (var popup = new Confirmacion(@"eliminar """ + l.ToString() + @"""")) { var R = popup.ShowDialog(); if (R == DialogResult.OK) { bool conf = popup.R; if (l != null && conf == true) { neg.EliminarFisico(l.IdPxv); BindProductos.Remove(l); LlenarTabla(); } } } } catch (Exception ex) { Mensaje m = new Mensaje(ex.ToString()); m.ShowDialog(); } } else { Mensaje m = new Mensaje("Ningun item seleccionado."); m.ShowDialog(); } }
public long Agregar(ProductoVendido nuevo) { try { long insertedID; string query = "INSERT INTO PRODUCTOS_X_VENTA(IDVENTA,IDPRODUCTO,PRECIOPU,CANTIDAD,ACTIVO) VALUES (@idventa,@idproducto,@preciopu,@cantidad,1); SELECT SCOPE_IDENTITY();"; using (var dbconn = new SqlConnection(@"data source=.\SQLEXPRESS; initial catalog= MENAIER_DB; integrated security=sspi")) using (var dbcm = new SqlCommand(query, dbconn)) { dbcm.Parameters.Clear(); dbcm.Parameters.AddWithValue("@idventa", nuevo.IdVenta); dbcm.Parameters.AddWithValue("@idproducto", nuevo.Producto.IdProducto); dbcm.Parameters.AddWithValue("@cantidad", nuevo.Cantidad); dbcm.Parameters.AddWithValue("@preciopu", nuevo.PrecioU); dbconn.Open(); insertedID = Convert.ToInt64(dbcm.ExecuteScalar().ToString()); } return(insertedID); } catch (Exception ex) { throw ex; } }
//($"C:\\Ventas{Archivo}.txt") //Create=Crear,Agregar,Insertar public bool Crear(ProductoVendido ProductoVendido) { _ProductoVendido.Add(ProductoVendido); bool resultado = ActualizarArchivo(); _ProductoVendido = LeerProductoVendido(); return(resultado); }
public List <ProductoVendido> Listar(int IdVenta, int activo) { ProductoVendido aux; List <ProductoVendido> lstProductosVendidos = new List <ProductoVendido>(); AccesoDB conexion = null; try { conexion = new AccesoDB(); conexion.SetearConsulta("SELECT PXV.IDPXV, PXV.IDPRODUCTO, PXV.CANTIDAD, P.DESCRIPCION, M.DESCRIPCION, TP.DESCRIPCION, P.STOCKMIN, P.IDMARCA, P.IDTIPOPRODUCTO, PXV.PRECIOPU FROM PRODUCTOS_X_VENTA AS PXV " + "INNER JOIN PRODUCTOS AS P ON PXV.IDPRODUCTO = P.IDPRODUCTO " + "INNER JOIN MARCAS AS M ON P.IDMARCA = M.IDMARCA " + "INNER JOIN TIPOSPRODUCTO AS TP ON P.IDTIPOPRODUCTO = TP.IDTIPOPRODUCTO " + "WHERE PXV.IDVENTA = @idventa AND PXV.ACTIVO = @activo"); conexion.Comando.Parameters.Clear(); conexion.Comando.Parameters.AddWithValue("@idventa", IdVenta); conexion.Comando.Parameters.AddWithValue("@activo", activo); conexion.AbrirConexion(); conexion.EjecutarConsulta(); while (conexion.Lector.Read()) { aux = new ProductoVendido { IdPxv = (long)conexion.Lector[0], Producto = new Producto(), Cantidad = (int)conexion.Lector[2] }; aux.Producto.Marca = new Marca(); aux.Producto.TipoProducto = new TipoProducto(); aux.Producto.IdProducto = (int)conexion.Lector[1]; aux.Producto.Descripcion = (string)conexion.Lector[3]; aux.Producto.Marca.Descripcion = (string)conexion.Lector[4]; aux.Producto.Marca.IdMarca = (int)conexion.Lector[7]; aux.Producto.StockMin = (int)conexion.Lector[6]; aux.Producto.TipoProducto.Descripcion = (string)conexion.Lector[5]; aux.Producto.TipoProducto.IdTipoProducto = (int)conexion.Lector[8]; aux.PrecioU = (float)Convert.ToDouble(conexion.Lector[9]); aux.PrecioT = (aux.PrecioU * aux.Cantidad); lstProductosVendidos.Add(aux); } return(lstProductosVendidos); } catch (Exception ex) { throw ex; } finally { if (conexion.CheckearConexion() == true) { conexion.CerrarConexion(); } } }
private void ActualizarTotal() { float total = 0; for (int i = 0; i < dgvVenta.RowCount; i++) { ProductoVendido pv = (ProductoVendido)dgvVenta.Rows[i].DataBoundItem; total += pv.PrecioT; } TxtTotal.Text = total.ToString(); }
private void btnAgregar_Click(object sender, RoutedEventArgs e) { try { if (string.IsNullOrEmpty(cmbProducto.Text) || string.IsNullOrEmpty(txbCantidad.Text)) { MessageBox.Show("Faltan datos", "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } ProductoVendido _pv = new ProductoVendido(); _pv.CantidaDeProductos = int.Parse(txbCantidad.Text); _pv.Nombre = cmbProducto.Text; float _total = 0; foreach (var item in pAlmacen_repo.LeerProductoAlmacenado()) { if (item.Nombre == cmbProducto.Text) { float precio = item.PrecioVenta; _pv.PrecioVenta = precio; } } _pv.TotalAPagar = CalcularTotalPorProducto(_pv.PrecioVenta, _pv.CantidaDeProductos); if (pVendido_repo.Crear(_pv)) { ActualizarTabla(); } else { MessageBox.Show("Error al registrar venta del producto", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } //List<ProductoVendido> pv = pVendido_repo.LeerProductoVendido(); foreach (var item in pVendido_repo.LeerProductoVendido()) { if (item.Nombre == cmbProducto.Text) { txbTotal.Text = Convert.ToString(TotalPorVenta(_pv.TotalAPagar)); } } _total = float.Parse(txbTotal.Text); txbIva.Text = Convert.ToString(GenerarIVA(_total)); } catch (Exception) { MessageBox.Show($"No se ha podido guardar a {cmbProducto.Text}", "Atención", MessageBoxButton.OK, MessageBoxImage.Exclamation); } }
private void BtnAgregar_Click(object sender, EventArgs e) { try { ProductoVendidoNegocio negPV = new ProductoVendidoNegocio(); ProductoVendido pv = new ProductoVendido { Producto = (Producto)BoxProducto.SelectedItem, Cantidad = Convert.ToInt32(TxtCantidad.Text) }; foreach (ProductoVendido PV in v.LstProductosVendidos) { if (PV.Producto.IdProducto == pv.Producto.IdProducto) { pv.Cantidad += PV.Cantidad; if (negPV.ControlarStock(pv)) { v.LstProductosVendidos.Remove(PV); } break; } } if (negPV.ControlarStock(pv)) { pv.PrecioU = (float)Math.Round(negPV.CalcularPrecio(pv.Producto.IdProducto), 3); pv.PrecioT = (float)Math.Round(pv.PrecioU * pv.Cantidad, 3); v.LstProductosVendidos.Add(pv); BindProductos.ResetBindings(); BoxProducto.SelectedIndex = -1; TxtCantidad.Text = ""; ProductoVal[0] = false; ProductoVal[1] = false; } else { Mensaje m = new Mensaje("No hay stock suficiente."); m.ShowDialog(); } } catch (Exception ex) { Mensaje m = new Mensaje(ex.ToString()); m.ShowDialog(); } }
//Delete=Eliminar public bool Eliminar(ProductoVendido original) { ProductoVendido temp = new ProductoVendido(); foreach (var item in _ProductoVendido) { if ((item.Nombre == original.Nombre && item.TotalAPagar == original.TotalAPagar)) { temp = item; break; } } _ProductoVendido.Remove(temp); bool resultado = ActualizarArchivo(); _ProductoVendido = LeerProductoVendido(); return(resultado); }
//Read=Leer public List <ProductoVendido> LeerProductosVendidos() { string contenido = archivo.Leer(); string[] lineas = contenido.Split('\n'); List <ProductoVendido> resultado = new List <ProductoVendido>(); for (int i = 0; i < lineas.Length - 1; i++) { if (lineas[i].Length > 3) { ProductoVendido pv = new ProductoVendido(); pv.Nombre = lineas[i]; resultado.Add(pv); } } _ListTicket = resultado; return(resultado); }
public bool ControlarStock(ProductoVendido pv) { bool stocked = false; int stockTotal = 0; AccesoDB conexion = null; try { conexion = new AccesoDB(); conexion.SetearConsulta("SELECT L.IDLOTE, L.UNIDADESE FROM LOTES AS L " + "INNER JOIN COMPRAS AS C ON C.IDCOMPRA = L.IDCOMPRA " + "WHERE L.IDPRODUCTO = @idproducto AND L.ACTIVO = 1 " + "ORDER BY C.FECHACOMPRA DESC"); conexion.Comando.Parameters.Clear(); conexion.Comando.Parameters.AddWithValue("@idproducto", pv.Producto.IdProducto); conexion.AbrirConexion(); conexion.EjecutarConsulta(); while (conexion.Lector.Read()) { stockTotal += (int)conexion.Lector[1]; } if (stockTotal >= pv.Cantidad) { stocked = true; } return(stocked); } catch (Exception ex) { throw ex; } finally { if (conexion.CheckearConexion() == true) { conexion.CerrarConexion(); } } }
//Update=Actualizar public bool Actualizar(ProductoVendido original, ProductoVendido modificado) { ProductoVendido temp = new ProductoVendido(); foreach (var item in _ProductoVendido) { if (item.Nombre == original.Nombre) { temp = item; break; } } temp.CantidaDeProductos = modificado.CantidaDeProductos; temp.Nombre = modificado.Nombre; temp.PrecioVenta = modificado.PrecioVenta; temp.TotalAPagar = modificado.TotalAPagar; bool resultado = ActualizarArchivo(); _ProductoVendido = LeerProductoVendido(); return(resultado); }
//Read=Leer public List <ProductoVendido> LeerProductoVendido() { string contenido = _pVendido.Leer(); List <ProductoVendido> resultado = new List <ProductoVendido>(); string[] lineas = contenido.Split('\n'); for (int i = 0; i < lineas.Length; i++) { if (lineas[i].Length > 3) { ProductoVendido _pv = new ProductoVendido(); string[] datos = lineas[i].Split('|'); _pv.CantidaDeProductos = int.Parse(datos[0]); _pv.Nombre = datos[1]; _pv.PrecioVenta = float.Parse(datos[2]); _pv.TotalAPagar = float.Parse(datos[3]); resultado.Add(_pv); } } _ProductoVendido = resultado; return(resultado); }
public void DescontarStock(ProductoVendido pv) { Lote lote; int stockTotal = 0, cantidad; LoteNegocio negL = new LoteNegocio(); List <Lote> lstLotes = new List <Lote>(); AccesoDB conexion = null; try { conexion = new AccesoDB(); conexion.SetearConsulta("SELECT L.IDLOTE, L.UNIDADESE FROM LOTES AS L " + "INNER JOIN COMPRAS AS C ON C.IDCOMPRA = L.IDCOMPRA " + "WHERE L.IDPRODUCTO = @idproducto AND L.ACTIVO = 1 " + "ORDER BY C.FECHACOMPRA DESC"); conexion.Comando.Parameters.Clear(); conexion.Comando.Parameters.AddWithValue("@idproducto", pv.Producto.IdProducto); conexion.AbrirConexion(); conexion.EjecutarConsulta(); while (conexion.Lector.Read()) { lote = new Lote { IdLote = (long)conexion.Lector[0], UnidadesE = (int)conexion.Lector[1] }; stockTotal += lote.UnidadesE; lstLotes.Add(lote); } if (stockTotal >= pv.Cantidad) { int cantV = pv.Cantidad, i = 0; while (cantV > 0) { if (cantV <= lstLotes[i].UnidadesE) { cantidad = cantV; lstLotes[i].UnidadesE -= cantV; cantV = 0; } else { cantidad = lstLotes[i].UnidadesE; cantV -= lstLotes[i].UnidadesE; lstLotes[i].UnidadesE = 0; } ActualizarStock(lstLotes[i]); negL.ActualizarStock(pv.Producto.IdProducto); RegistrarMovimiento(pv.IdPxv, lstLotes[i].IdLote, cantidad); i++; } } return; } catch (Exception ex) { throw ex; } finally { if (conexion.CheckearConexion() == true) { conexion.CerrarConexion(); } } }