public venta agregarDetalle(venta oVenta, int idProducto, decimal precio, int cantidad) { try { detalleVenta oDetalle = new detalleVenta(); srvProducto sProducto = new srvProducto(); using (BDSoftComputacionEntities bd = new BDSoftComputacionEntities()) { if (oVenta.detalleVenta.Where(x => x.idProducto == idProducto).Count() == 1) { oVenta.detalleVenta.Where(x => x.idProducto == idProducto).FirstOrDefault().cantidad = oVenta.detalleVenta.Where(x => x.idProducto == idProducto).FirstOrDefault().cantidad + cantidad; int cantidadExistente = oVenta.detalleVenta.Where(x => x.idProducto == idProducto).FirstOrDefault().cantidad; oVenta.detalleVenta.Where(x => x.idProducto == idProducto).FirstOrDefault().costoGrupal = Convert.ToDecimal(precio * cantidadExistente); } else { oDetalle.idProducto = idProducto; oDetalle.producto = sProducto.ObtenerProducto(idProducto); string nombre = oDetalle.producto.nombre; oDetalle.costoIndividual = Convert.ToDecimal(precio); oDetalle.costoGrupal = Convert.ToDecimal(precio * cantidad); oDetalle.cantidad = cantidad; oVenta.detalleVenta.Add(oDetalle); } return(oVenta); } } catch (Exception ex) { throw ex; } }
public venta guardarVenta(venta oVenta) { try { using (BDSoftComputacionEntities bd = new BDSoftComputacionEntities()) { srvProducto sProducto = new srvProducto(); srvUsuario sUsuario = new srvUsuario(); producto oProducto = new producto(); decimal totalCosto = 0; int totalCantidadProductos = 0; foreach (detalleVenta oDetalle in oVenta.detalleVenta) { totalCosto = totalCosto + oDetalle.costoGrupal; totalCantidadProductos = totalCantidadProductos + oDetalle.cantidad; oProducto = bd.producto.Where(x => x.idProducto == oDetalle.idProducto).FirstOrDefault(); oDetalle.precioCostoGrupal = oProducto.precioCosto * oDetalle.cantidad; oProducto.stockActual = oProducto.stockActual - oDetalle.cantidad; if (oProducto.stockActual == 0) { oProducto.idEstado = 3; } else { if (oProducto.stockActual <= oProducto.stockMinimo) { oProducto.idEstado = 2; } else { oProducto.idEstado = 1; } } oProducto.estado = bd.estado.Where(x => x.idEstado == oProducto.idEstado).FirstOrDefault(); bd.Entry(oProducto).State = System.Data.Entity.EntityState.Modified; oDetalle.producto = null; } oVenta.fechaEmision = System.DateTime.Now; oVenta.cantidadProductosTotal = totalCantidadProductos; oVenta.costoTotal = totalCosto; oVenta.cliente = null; bd.Entry(oVenta).State = System.Data.Entity.EntityState.Added; bd.SaveChanges(); return(oVenta); } } catch (Exception ex) { throw ex; } }