示例#1
0
        // 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;
        }
示例#2
0
        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();
        }
示例#3
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();
        }
示例#4
0
        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();
                        }
                    }
                    
                }
            }

          
        }