// POST api/VentaDetalleService
        public VentaDetalle saveOrUpdate(VentaDetalle v)
        {
            if (v.idVentaDetalle > 0)
            {
                db.Entry(v).State = EntityState.Modified;
            }
            else
            {
                v = this.db.VentaDetalle.Add(v);
            }
            this.save();

            return v;
        }
示例#2
0
        public void RegistrarVenta (RegistrarVenta RV)
        {
            Venta v = new Venta();
            v.idVenta = RV.idVenta;
            v.idVendedor = RV.idVendedor;
            v.idCliente = RV.idCliente;
            v.Fecha = RV.fecha;
            v.Total = RV.total;
            v.Estado = "A";
            RV.estado = 'A';
            v.FechaAlta = DateTime.Today;
            v.UsuarioAlta = 1;
            v.idMedioPago = RV.idMedioPago;
            v.idSucursal = RV.idSucursal;
            v.NroTicket = RV.NroTicket;
            v.idTarjeta = RV.idTarjeta;
            v.TotalPromocion = RV.totalpromocion;
            v = this.db.Venta.Add(v);
            RV.idVenta = v.idVenta;
          //  this.save();
            foreach (VentaDetalle1 VD in RV.VentaDetalle )
            {
                VentaDetalle v_vd = new VentaDetalle();
                v_vd.idVenta = v.idVenta;
                v_vd.idVentaDetalle = VD.idVentaDetalle;
                v_vd.idProducto = VD.idProducto;
                v_vd.PrecioUnitario = VD.PrecioUnitario;
                v_vd.PrecioFinal = VD.PrecioFinal;
                v_vd.Cantidad = VD.Cantidad;
                v_vd.FechaAlta = DateTime.Today;
                v_vd.Estado = "A";
                v_vd.UsuarioAlta = 1;
                v_vd = this.db.VentaDetalle.Add(v_vd);
                VD.idVentaDetalle = v_vd.idVentaDetalle;   
 
                
                
                //Descontar el Stock
                Stock s = this.db.Stock.Where(s1 => s1.idProducto == VD.idProducto).FirstOrDefault();
                if (s != null)
                {
                    s.Cantidad = s.Cantidad - VD.Cantidad;
                    db.Entry(s).State = EntityState.Modified;
                    
                }
            }
            foreach (VentaPromoDetalle VP in RV.VentaPromoDetalle)
            {
                VentaPromoDetalle v_vpd = new VentaPromoDetalle();
                v_vpd.IdVenta = v.idVenta;
                v_vpd.idPromocion = VP.idPromocion;
                v_vpd.idPromoDetalle = VP.idPromoDetalle;
                v_vpd.Cantidad = VP.Cantidad;
                v_vpd.PrecioUnitario = VP.PrecioUnitario;
                v_vpd.PrecioTotal = VP.PrecioTotal;
                v_vpd.Estado = "A";
                v_vpd.UsuarioAlta = 1;
                v_vpd.FechaAlta = DateTime.Today;
                v_vpd = this.db.VentaPromoDetalle.Add(v_vpd);
                VP.idPromoDetalle = v_vpd.idPromoDetalle;
                
            }
            //Impactar la caja dependiendo del medio de pago (1 - Efectivo)
            if (RV.idMedioPago == 1)
            {
                Caja c = new Caja();
                c.idCaja = 0;
                c.idConcepto = this.db.Concepto.Where(c1 => c1.Descripcion == "Venta").FirstOrDefault().IdConcepto;
                c.Descripcion = "Venta Correspondiente a la Venta nro: " + RV.NroTicket;
                c.TipoMovimiento = "I";
                c.Monto = RV.total;
                c.Estado = "A";
                c.FechaAlta = DateTime.Today;
                c.UsuarioAlta = 1;
                c = this.db.Caja.Add(c);

                
            }
            this.save();
        }