// POST api/<controller> public Caja saveOrUpdate(Caja c) { if (c.idCaja > 0) { db.Entry(c).State = EntityState.Modified; } else { c = this.db.Caja.Add(c); } this.save(); return c; }
public void RegistrarCompra(RegistrarComprar r) { Compra c = new Compra(); c.idCompra = 0; c.idProveedor = r.idProveedor; c.Total = r.Total; c.UsuarioAlta = 1; c.FechaAlta = DateTime.Today; c.Fecha = r.Fecha; c.NroFactura = r.NroFactura; c.idMedioPago = r.idMedioPago; c.Estado = "A"; c = this.db.Compra.Add(c); //this.save(); ///registrar los productos foreach(CompraDetalle1 cd in r.CompraDetalle) { Producto p = new Producto(); if (cd.idProducto > 0) { //por ahora hard Parametrizacion param = this.db.Parametrizacion.Where(param11 => param11.Descripcion == "PorcentajeMarcador").FirstOrDefault(); Parametrizacion param1 = this.db.Parametrizacion.Where(param12 => param12.Descripcion == "PorcentajeContado").FirstOrDefault(); Parametrizacion param2 = this.db.Parametrizacion.Where(param13 => param13.Descripcion == "PorcentajeGremio").FirstOrDefault(); if (param != null) { decimal porcentaje_lista = (decimal)param.Valor; decimal porcentaje_contado = (decimal)param1.Valor; decimal porcentaje_gremio = (decimal)param2.Valor; decimal PrecioLista = cd.PrecioUnitario * (1 + (porcentaje_lista/100)); decimal PrecioContado = PrecioLista - (PrecioLista * porcentaje_contado)/100; decimal PrecioGremio = cd.PrecioUnitario * (1 + (porcentaje_gremio/100)); p = this.db.Producto.Find(cd.idProducto); p.PrecioLista = PrecioLista; p.PrecioContado = PrecioContado; p.PrecioGremio = PrecioGremio; p.CodigoBarras = cd.CodigoBarras; db.Entry(p).State = EntityState.Modified; // this.save(); } Stock s = this.db.Stock.Where(s1 => s1.idProducto == cd.idProducto) .FirstOrDefault(); if (s != null) { s.Cantidad += cd.Cantidad; db.Entry(s).State = EntityState.Modified; // this.save(); } else { Stock s1 = new Stock(); s1.idProducto = cd.idProducto; s1.Cantidad = cd.Cantidad; s1.Estado = "A"; s1.FechaAlta = DateTime.Today; s1.UsuarioAlta = 1; s1.idStock = 0; db.Stock.Add(s1); // this.save(); } ProductoPrecio pp = this.db.ProductoPrecio.Where(pp1 => pp1.idProducto == cd.idProducto && pp1.idProveedor == r.idProveedor).FirstOrDefault(); if (pp != null) { pp.PrecioCosto = cd.PrecioUnitario; pp.FechaAlta = DateTime.Today; db.Entry(pp).State = EntityState.Modified; // this.save(); } else { ProductoPrecio pp1 = new ProductoPrecio(); pp1.idProducto = cd.idProducto; pp1.idProveedor = r.idProveedor; pp1.PrecioCosto = cd.PrecioUnitario; pp1.Estado = "A"; pp1.UsuarioAlta = 1; pp1.FechaAlta = DateTime.Today; db.ProductoPrecio.Add(pp1); // this.save(); } } else { p.idProducto = cd.idProducto; p.Nombre = cd.NombreProducto; p.CodigoBarras = cd.CodigoBarras; p.UsuarioAlta = 1; p.FechaAlta = DateTime.Today; p.Estado = "A"; //por ahora hard Parametrizacion param = new Parametrizacion(); param = this.db.Parametrizacion.Where(param11 => param11.Descripcion == "PorcentajeMarcador").FirstOrDefault(); Parametrizacion param1 = this.db.Parametrizacion.Where(param12 => param12.Descripcion == "PorcentajeContado").FirstOrDefault(); Parametrizacion param2 = this.db.Parametrizacion.Where(param13 => param13.Descripcion == "PorcentajeGremio").FirstOrDefault(); if (param != null) { decimal porcentaje_contado = (decimal)param1.Valor; decimal porcentaje_lista = (decimal)param.Valor; decimal porcentaje_gremio = (decimal)param2.Valor; decimal PrecioLista = cd.PrecioUnitario * (1 + (porcentaje_lista / 100)); decimal PrecioContado = PrecioLista - (PrecioLista * porcentaje_contado) / 100; decimal PrecioGremio = cd.PrecioUnitario * (1 + (porcentaje_gremio / 100)); p.PrecioLista = PrecioLista; p.PrecioContado = PrecioContado; p.PrecioGremio = PrecioGremio; } p = this.db.Producto.Add(p); //this.save(); Stock s = new Stock(); s.Cantidad = cd.Cantidad; s.idProducto = p.idProducto; s.FechaAlta = DateTime.Today; s.UsuarioAlta = 1; s.Estado = "A"; s = this.db.Stock.Add(s); //this.save(); ProductoPrecio pp = new ProductoPrecio(); pp.idProducto = p.idProducto; pp.idProveedor = r.idProveedor; pp.Estado = "A"; pp.FechaAlta = DateTime.Today; pp.UsuarioAlta = 1; pp.PrecioCosto = cd.PrecioUnitario; pp = this.db.ProductoPrecio.Add(pp); //this.save(); if (r.idGrupo > 0) { GrupoXProducto gxp = new GrupoXProducto(); gxp.idGrupo = r.idGrupo; gxp.idProducto = pp.idProducto; gxp.Estado = "A"; gxp.FechaAlta = DateTime.Today; gxp.UsuarioAlta = 1; this.db.GrupoXProducto.Add(gxp); // this.save(); } } CompraDetalle cp = new CompraDetalle(); cp.idCompraDetalle = 0; cp.idProducto = cd.idProducto == 0?p.idProducto:cd.idProducto; cp.idCompra = c.idCompra; cp.PrecioUnitario = cd.PrecioUnitario; cp.PrecioTotal = cd.PrecioTotal; cp.UsuarioAlta = 1; cp.FechaAlta = DateTime.Today; cp = this.db.CompraDetalle.Add(cp); //this.save(); } //Registrar Movimiento if (r.idMedioPago == 1) { Caja c3 = new Caja(); c3.idCaja = 0; c3.idConcepto = 2; //Compra c3.TipoMovimiento = "E"; c3.Monto = r.Total; c3.Descripcion = "Compra Correspondiente a Nro. Factura: " + r.NroFactura; c3.Estado = "A"; c3.UsuarioAlta = 1; c3.FechaAlta = DateTime.Today; c3 = this.db.Caja.Add(c3); //this.save(); } this.save(); }
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(); }
public void RegistrarPreventa(ConfirmarPreventa CP) { Caja C = new Caja(); C.idCaja = 0; C.idConcepto = CP.idConcepto; C.Monto = CP.Monto; C.TipoMovimiento = CP.TipoMovimiento == null ? "I":(string)CP.TipoMovimiento.ToString(); C.UsuarioAlta = 1; C.Descripcion = CP.Descripcion; C.FechaAlta = DateTime.Today; C.Estado = "A"; this.db.Caja.Add(C); this.save(); foreach (PreventasAPagar PAP in CP.PreVentaDetalle) { Venta _v = this.db.Venta.Where(v1 => v1.idVenta == PAP.idVenta).FirstOrDefault(); if (_v != null) { if ( _v.Total <= CP.Monto) { MedioPago mp = this.db.MedioPago.Where(mp1 => mp1.Descripcion == "Efectivo").FirstOrDefault(); if (mp != null) { _v.idMedioPago = mp.idMedioPago; db.Entry(_v).State = EntityState.Modified; this.save(); } CP.Monto = (decimal)CP.Monto - (decimal)_v.Total; } else { if (CP.Monto > 0) { _v.MontoPagado = CP.Monto; db.Entry(_v).State = EntityState.Modified; this.save(); } } } } }