//Botones:
        public void CargarProductos()
        {
            string referencia = TxtDoc;
            if (string.IsNullOrWhiteSpace(referencia))
            {
                _windowManager.ShowDialog(new AlertViewModel(_windowManager, "No se ha ingresado ningun Documento de Referencia"));
                return;
            }
            string mot = this.selectedMotivo;
            if (string.Compare(mot, "Orden de Despacho", true) == 0)
            {

                List<DetalleVenta> l = new DetalleVentaSQL().BuscarTodos();
                List<ProductoCant> lpcan = new List<ProductoCant>();
                for (int i = 0; i < l.Count; i++)
                    if (l[i].IdDetalleV == SelectedDespacho.Venta.IdVenta)
                    {
                        Producto p = new ProductoSQL().Buscar_por_CodigoProducto(l[i].IdProducto);
                        ProductoCant pcan = new ProductoCant();
                        pcan.IdProducto = p.IdProducto;
                        pcan.CodigoProd = p.CodigoProd;
                        pcan.Nombre = p.Nombre;
                        pcan.CanAtender = l.ElementAt(i).Cantidad.ToString();
                        lpcan.Add(pcan);
                    }

                LstProductos = new List<ProductoCant>(lpcan);

            }
            else
            {
                if (string.Compare(mot, "Abastecimiento", true) == 0)
                {

                    List<ProductoCant> psa = new List<ProductoCant>();
                    ProductoxSolicitudAbSQL pasql = new ProductoxSolicitudAbSQL();

                    psa = pasql.ListaProductos(SelectedSolicitud.idSolicitudAB.ToString());

                    List<ProductoCant> lpcan = new List<ProductoCant>();
                    for (int i = 0; i < psa.Count; i++)
                    {
                        ProductoCant pcan = new ProductoCant();
                        pcan.IdProducto = psa.ElementAt(i).IdProducto;
                        pcan.Can = psa.ElementAt(i).Can;
                        pcan.CodigoProd = psa.ElementAt(i).CodigoProd;
                        pcan.Nombre = psa.ElementAt(i).Nombre;
                        pcan.CanAtend = "0";
                        pcan.CanAtender = psa.ElementAt(i).CanAtend;
                        pcan.Ubicaciones = new List<Ubicacion>();
                        lpcan.Add(pcan);
                    }

                    LstProductos = new List<ProductoCant>(lpcan);

                }
            }

            NotifyOfPropertyChange(() => LstProductos);
            EstadoMot = false;
            Estado = false;
        }
        public void AgregarDetalle()
        {
            if (String.IsNullOrEmpty(TxtProducto))
            {
                MessageBox.Show("No ha ingresado ningún producto", "AVISO", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            DetalleVentaSQL dvsql = new DetalleVentaSQL();
            Producto p = dvsql.Buscar(TxtProducto,idTienda);
            if (p == null)
            {
                return;
            }
            Evaluador ev = new Evaluador();
            int nuevo = 1;
            int cant;

            List<DetalleVenta> aux = new List<DetalleVenta>();
            foreach (DetalleVenta item in LstVenta)
            {
                if (item.IdProducto == p.IdProducto)
                {
                    if (ev.esNumeroEntero(TxtCantidad) && ev.esPositivo(Convert.ToInt32(TxtCantidad))) item.Cantidad += Int32.Parse(TxtCantidad);
                    else
                    {
                        MessageBox.Show("Tiene que poner una cantidad");
                        return;
                    }
                    item.SubTotal = item.Cantidad * p.Precio;
                    //item.Descuento += CalculaDescuento(p.IdProducto, item.Cantidad);

                    desc = 0;// item.Descuento;
                    //TxtDescuentoTotal = desc.ToString();

                    total += Math.Round(Int32.Parse(TxtCantidad) * p.Precio, 2);
                    TxtTotal = total.ToString();

                    subt = Math.Round(total / (1 + IGV), 2);
                    TxtSubTotal = subt.ToString();

                    igv_total = Math.Round(subt * IGV, 2);
                    TxtIGVTotal = igv_total.ToString();

                    TxtPagaCon = txtPagaCon;

                    nuevo = 0;
                }
                aux.Add(item);
            }

            if (nuevo == 1)
            {
                DetalleVenta dv = new DetalleVenta();
                dv.IdProducto = p.IdProducto;
                dv.CodProducto = p.CodigoProd;
                dv.Descripcion = p.Nombre;
                dv.Unidad = p.UnidadMedida;

                dv.Precio = p.Precio;
                if (ev.esNumeroEntero(TxtCantidad)) cant = Int32.Parse(TxtCantidad);
                else
                {
                    MessageBox.Show("Tiene que poner una cantidad");
                    return;
                }

                dv.Descuento = CalculaDescuento(p.IdProducto,cant);
                dv.SubTotal = p.Precio * cant;
                dv.Cantidad = cant;
                aux.Add(dv);
                ActualizaCampos(dv,1);
            }
            LstVenta = aux;
            TxtCantidad = "";
        }
예제 #3
0
        public int AnularVentaTienda(Venta v)
        {
            int k = 0;

            db.cmd.CommandText = "UPDATE Venta SET estado=0 WHERE idVenta = @idVenta";
            db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta);

            try
            {
                if (tipo) db.conn.Open();
                k = db.cmd.ExecuteNonQuery();
                db.cmd.Parameters.Clear();
                if (tipo) db.conn.Close();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }

            if (k != 0)
            {
                //devolver el detalle de la venta a la tienda
                DetalleVentaSQL dvsql = new DetalleVentaSQL(db);
                List<DetalleVenta> detalle = dvsql.BuscarTodos(v.IdVenta);
                foreach (DetalleVenta dv in detalle)
                {
                    descontarDeSector(v, dv, 2);
                }
            }

            return k;
        }
예제 #4
0
        public int Agregar(Venta v)
        {
            int k = 0;

            db.cmd.CommandText = "INSERT INTO Venta(monto,descuento,IGV,ptosGanados,estado,idCliente,tipoVenta,fechaReg,tipoDocPago,idUsuario,codTarjeta)" +
                                  "OUTPUT INSERTED.idVenta VALUES (@monto,@descuento,@IGV,@ptsGanados,@estado,@idCliente,@tipoVenta,@fechaReg,@tipoDocPago,@idUsuario,@codTarjeta)";
            //db.cmd.Parameters.AddWithValue("@numDocPago", v.NumDocPago);
            db.cmd.Parameters.AddWithValue("@tipoDocPago", v.TipoDocPago);
            db.cmd.Parameters.AddWithValue("@monto", v.Monto);
            db.cmd.Parameters.AddWithValue("@descuento", v.Descuento);
            db.cmd.Parameters.AddWithValue("@IGV", v.Igv);
            db.cmd.Parameters.AddWithValue("@ptsGanados", v.PtosGanados);
            db.cmd.Parameters.AddWithValue("@fechaReg", v.FechaReg);
            db.cmd.Parameters.AddWithValue("@estado", v.Estado);
            db.cmd.Parameters.AddWithValue("@idUsuario", v.IdUsuario);
            db.cmd.Parameters.AddWithValue("@idCliente", v.IdCliente);
            db.cmd.Parameters.AddWithValue("@tipoVenta", v.TipoVenta);
            db.cmd.Parameters.AddWithValue("@codTarjeta", v.CodTarjeta);

            try
            {
                if (tipo) db.conn.Open();
                k = (int)db.cmd.ExecuteScalar();
                v.IdVenta = k;
                if (tipo) db.conn.Close();
                db.cmd.Parameters.Clear();

                //guardar el detalle de la venta
                DetalleVentaSQL dvm = new DetalleVentaSQL(db);
                foreach (DetalleVenta dv in v.LstDetalle)
                {
                    dvm.Agregar(v,dv);
                    descontarDeSector(v,dv);
                }

                foreach (VentaPago vp in v.LstPagos)
                {
                    AgregarPagoVenta(v, vp);
                }
                //agregar numDocPagoProducto
                v.NumDocPago = SacaNumDocPago(v,1);
                actualizaNumDocProductos(v);

                foreach (VentaPago vp in v.LstPagos)
                {
                    AgregarPagoVenta(v, vp);
                }

                if (v.LstDetalleServicio.Count() > 0)
                {
                    foreach (DetalleVentaServicio item in v.LstDetalleServicio)
                    {
                        dvm.AgregarServicios(v, item);
                    }
                    //agregar numDocPagoServicio
                    v.NumDocPagoServicio = SacaNumDocPago(v,2);
                    actualizaNumDocServicios(v);
                }

            }
            catch (SqlException e)
            {
                MessageBox.Show(e.StackTrace.ToString());
            }

            return k;
        }
        public void RefrescarOrden()
        {
            Usuario u = getUsuariofromID(Orden.Venta.IdUsuario);
            Cliente c = getClientefromID(Orden.Venta.IdCliente);
            Tienda a = new GuiaDeRemisionSQL().BuscarTIENfromID(u.IdTienda);
            Almacenes alm = new GuiaDeRemisionSQL().BuscarALMDEPfromIdTienda(u.IdTienda);

            tiendaOrigen = a.Nombre;
            TxtAlmacenOrigen = alm.Nombre;
            TxtDirPartida = a.Direccion;
            TxtDirLlegada = Orden.Direccion;
            TxtTienda = c.RazonSocial;

            List<DetalleVenta> l = new DetalleVentaSQL().BuscarTodos();
            List<GuiaRemxProducto> lAux = new List<GuiaRemxProducto>();
            int cantTotal = 0;

            for (int i = 0; i < l.Count; i++)
                if (l[i].IdDetalleV == Orden.Venta.IdVenta)
                {
                    GuiaRemxProducto gp = new GuiaRemxProducto();
                    Producto p = new ProductoSQL().Buscar_por_CodigoProducto(l[i].IdProducto);
                    gp.CodProd = p.CodigoProd;
                    gp.Nombre = p.Nombre;
                    gp.Cantidad = l[i].Cantidad;
                    cantTotal += l[i].Cantidad;
                    lAux.Add(gp);
                }

            LstProductos = new List<GuiaRemxProducto>(lAux);
            TxtCantidad = cantTotal;
        }