예제 #1
0
        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;
            }
        }
예제 #2
0
 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;
     }
 }