예제 #1
0
        public async Task DesincronizarDatos(List <VM_PDV_VENTA> ventas)
        {
            using (var context = new OmniventContext())
            {
                var transaccion = await context.Database.BeginTransactionAsync();

                try
                {
                    foreach (var venta in ventas)
                    {
                        var dato = await context.PdvVenta.Where(v => v.VtaId == venta.VtaId).FirstOrDefaultAsync();

                        if (dato != null)
                        {
                            dato.VtaAccion = 0;
                            await context.SaveChangesAsync();
                        }
                        else
                        {
                            Console.WriteLine("Dato no encontrado");
                        }
                    }
                    await transaccion.CommitAsync();

                    Console.WriteLine("El campo Accion de la tabla PDV_VENTA se ha actualizado correctamente");
                }
                catch (Exception ex)
                {
                    await transaccion.RollbackAsync();

                    Console.WriteLine(ex.Message);
                }
            }
        }
예제 #2
0
        //Funcion para desincronizar datos
        private async Task DesincronizarDatos(List <VM_PDV_LISTA_PRECIO> listaPrecios)
        {
            using (var context = new OmniventContext())
            {
                var transaccion = await context.Database.BeginTransactionAsync();

                try
                {
                    foreach (var precios in listaPrecios)
                    {
                        var dato = await context.PdvListaPrecio.Where(precio => precio.LipId == precios.LipId).FirstOrDefaultAsync();

                        if (dato != null)
                        {
                            dato.LipAccion = 0;
                            await context.SaveChangesAsync();
                        }
                        else
                        {
                            Console.WriteLine("Dato no encontrado");
                        }
                    }

                    await transaccion.CommitAsync();

                    Console.WriteLine("El campo Accion de la tabla PDV_LISTA_PRECIO se ha actualizado correctamente");
                }
                catch (Exception ex)
                {
                    await transaccion.RollbackAsync();

                    Console.WriteLine(ex.Message);
                }
            }
        }
        //Funcion que retorna los productos de omniventDemo
        private async Task <List <VM_GLB_SUCURSAL> > ObtenerSucursales(int accion)
        {
            using (var context = new OmniventContext())
            {
                try
                {
                    var sucursales = await context.GlbSucursal.Select(
                        sucursal => new VM_GLB_SUCURSAL()
                    {
                        SucId     = sucursal.SucId,
                        SucNombre = sucursal.SucNombre,
                        SucAccion = Convert.ToInt32(sucursal.SucAccion)
                    }
                        ).Where(
                        sucursal => sucursal.SucAccion == accion
                        ).ToListAsync();

                    return(sucursales);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return(null);
                }
            }
        }
        private async Task DesincronizarDatos(List <VM_GLB_PRODUCTO> productos)
        {
            using (var context = new OmniventContext())
            {
                var transaccion = await context.Database.BeginTransactionAsync();

                try
                {
                    foreach (var producto in productos)
                    {
                        var dato = await context.GlbProducto.Where(p => p.ProId == producto.ProId).FirstOrDefaultAsync();

                        if (dato != null)
                        {
                            dato.ProAccion = 0;
                            await context.SaveChangesAsync();
                        }
                        else
                        {
                            Console.WriteLine("Dato no encontrado");
                        }
                    }

                    await transaccion.CommitAsync();

                    Console.WriteLine("El campo Accion de la tabla GLB_PRODUCTO se ha actualizado correctamente");
                }
                catch (Exception ex)
                {
                    await transaccion.RollbackAsync();

                    Console.WriteLine(ex);
                }
            }
        }
 //Funcion para obtener la lista de precios detalle
 public async Task <List <VM_PDV_LISTAP_DETALLE> > ObtenerListaPrecioDetalle(int accion)
 {
     using (var context = new OmniventContext())
     {
         try
         {
             return(await context.PdvListapDetalle.Select(
                        x => new VM_PDV_LISTAP_DETALLE()
             {
                 LipId = x.LipId,
                 ProId = x.ProId,
                 LipDetConIva = x.LpdPrecioConIva,
                 LipDetSinIva = x.LpdPrecioSinIva,
                 LpdAccion = x.LpdAccion
             }
                        ).
                    Where(
                        x => x.LpdAccion == accion
                        ).ToListAsync());
         }catch (Exception e)
         {
             Console.WriteLine(e.Message);
             return(null);
         }
     }
 }
예제 #6
0
        //Funcion que retorna los almacenes de omniventDemo
        private async Task <List <VM_PDV_ALMACEN> > ObtenerAlmacenes(int accion)
        {
            using (var context = new OmniventContext())
            {
                try
                {
                    var almacenes = await context.PdvAlmacen.Select(
                        almacen => new VM_PDV_ALMACEN()
                    {
                        AlmId          = almacen.AlmId,
                        AlmDescripcion = almacen.AlmDescripcion,
                        AlmEstatus     = almacen.AlmEstatus,
                        SucId          = almacen.SucId,
                        AlmAccion      = almacen.AlmAccion
                    }
                        ).Where(
                        almacen => almacen.AlmAccion == accion
                        ).ToListAsync();

                    return(almacenes);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return(null);
                }
            }
        }
        private async Task DesincronizarDatos(List <VM_PDV_FORMA_PAGO> formasPago)
        {
            using (var context = new OmniventContext())
            {
                var transaccion = await context.Database.BeginTransactionAsync();

                try
                {
                    foreach (var formaPago in formasPago)
                    {
                        var dato = await context.PdvFormaPago.Where(f => f.FopId == formaPago.FopId).FirstOrDefaultAsync();

                        if (dato != null)
                        {
                            dato.FopAccion = 0;
                            await context.SaveChangesAsync();
                        }
                        else
                        {
                            Console.WriteLine("Dato no encontrado");
                        }
                    }

                    await transaccion.CommitAsync();

                    Console.WriteLine("El campo Accion de la tabla PDV_FORMA_PAGO se ha actualizado correctamente");
                }
                catch (Exception ex)
                {
                    await transaccion.RollbackAsync();

                    Console.WriteLine(ex);
                }
            }
        }
        //Funcion que retorna los productos de omniventDemo
        private async Task <List <VM_PDV_FORMA_PAGO> > ObtenerFormasPago(int accion)
        {
            using (var context = new OmniventContext())
            {
                try
                {
                    var formasPago = await context.PdvFormaPago.Select(
                        formaPago => new VM_PDV_FORMA_PAGO()
                    {
                        FopId          = formaPago.FopId,
                        FopDescripcion = formaPago.FopDescripcion,
                        FopAccion      = formaPago.FopAccion
                    }
                        ).Where(
                        formaPago => formaPago.FopAccion == accion
                        ).ToListAsync();

                    return(formasPago);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return(null);
                }
            }
        }
        //Funcion que retorna los productos de omniventDemo
        private async Task <List <VM_PDV_VENTA_DETALLE> > ObtenerVentasDetalle(int accion)
        {
            using (var context = new OmniventContext())
            {
                try
                {
                    var ventasDetalle = await context.PdvVentaDetalle.Select(
                        detalle => new VM_PDV_VENTA_DETALLE()
                    {
                        VedId        = detalle.VedId,
                        VtaId        = detalle.VtaId,
                        ProId        = detalle.ProId,
                        VedPrecio    = detalle.VedPrecioConIva,
                        VedDescuento = (detalle.VedImporteDescuento != null) ? detalle.VedImporteDescuento : Convert.ToDecimal(0.0),
                        VedCantidad  = detalle.VedCantidad,
                        VedAccion    = detalle.VedAccion
                    }
                        ).Where(
                        detalle => detalle.VedAccion == accion
                        ).ToListAsync();

                    return(ventasDetalle);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return(null);
                }
            }
        }
예제 #10
0
        //Funcion que retorna los almacenes de omniventDemo
        private async Task <List <VM_PDV_ALMACEN_PRODUCTO> > ObtenerAlmacenProductos(int accion)
        {
            using (var context = new OmniventContext())
            {
                try
                {
                    var almacenProductos = await context.PdvAlmacenProducto.Select(
                        almacenProducto => new VM_PDV_ALMACEN_PRODUCTO()
                    {
                        AlmId          = almacenProducto.AlmId,
                        AlpStockActual = almacenProducto.AlpStockActual,
                        ProId          = almacenProducto.ProId,
                        AlpAccion      = almacenProducto.AlpAccion
                    }
                        ).Where(
                        almacenProducto => almacenProducto.AlpAccion == accion
                        ).ToListAsync();

                    return(almacenProductos);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return(null);
                }
            }
        }
예제 #11
0
        private async Task DesincronizarDatos(List <VM_PDV_ALMACEN> almacenes)
        {
            using (var context = new OmniventContext())
            {
                var transaccion = await context.Database.BeginTransactionAsync();

                try
                {
                    foreach (var almacen in almacenes)
                    {
                        var dato = await context.PdvAlmacen.Where(a => a.AlmId == almacen.AlmId).FirstOrDefaultAsync();

                        if (dato != null)
                        {
                            dato.AlmAccion = 0;
                            await context.SaveChangesAsync();
                        }
                        else
                        {
                            Console.WriteLine("Dato no encontrado");
                        }
                    }

                    await transaccion.CommitAsync();

                    Console.WriteLine("El campo Accion de la tabla PDV_ALMACEN se ha actualizado correctamente");
                }
                catch (Exception ex)
                {
                    await transaccion.RollbackAsync();

                    Console.WriteLine(ex);
                }
            }
        }
        private async Task DesincronizarDatos(List <VM_GLB_SUCURSAL> sucursales)
        {
            using (var context = new OmniventContext())
            {
                var transaccion = await context.Database.BeginTransactionAsync();

                try
                {
                    foreach (var sucursal in sucursales)
                    {
                        var dato = await context.GlbSucursal.Where(s => s.SucId == sucursal.SucId).FirstOrDefaultAsync();

                        if (dato != null)
                        {
                            dato.SucAccion = 0;
                            await context.SaveChangesAsync();
                        }
                        else
                        {
                            Console.WriteLine("Dato no encontrado");
                        }
                    }

                    await transaccion.CommitAsync();

                    Console.WriteLine("El campo Accion de la tabla GLB_SUCURSAL se ha actualizado correctamente");
                }
                catch (Exception ex)
                {
                    await transaccion.RollbackAsync();

                    Console.WriteLine(ex);
                }
            }
        }
        //Funcion que retorna los productos de omniventDemo
        private async Task <List <VM_GLB_PRODUCTO> > ObtenerProdutos(int accion)
        {
            using (var context = new OmniventContext())
            {
                try
                {
                    var productos = await context.GlbProducto.Join(
                        context.GlbFamilia,
                        producto => producto.FamId,
                        familia => familia.FamId,
                        (producto, familia) => new
                    {
                        Producto = producto,
                        Familia  = familia
                    }
                        ).Select(
                        producto => new VM_GLB_PRODUCTO()
                    {
                        ProId               = producto.Producto.ProId,
                        ProDescripcion      = producto.Producto.ProDescripcion,
                        ProCodigoBarras     = producto.Producto.ProCodigoBarras,
                        ProCostoGeneralIva  = producto.Producto.ProCostoGeneralIva,
                        ProPrecioGeneralIva = producto.Producto.ProPrecioGeneralIva,
                        ProIdentificacion   = producto.Producto.ProIdentificacion,
                        Familia             = producto.Familia.FamDescripcion,
                        SubFamilia          = producto.Producto.SubId.ToString(),
                        ProAccion           = producto.Producto.ProAccion
                    }
                        ).Where(
                        producto => producto.ProAccion == accion
                        ).ToListAsync();

                    var subfamilias = await context.GlbSubfamilia.ToListAsync();

                    productos.ForEach(producto =>
                    {
                        producto.SubFamilia = subfamilias.Find(
                            x => x.SubId == Convert.ToInt16(producto.SubFamilia)).SubDescripcion.ToString();
                    }
                                      );


                    return(productos);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return(null);
                }
            }
        }
        public async Task <List <LCL_PARAMETRO> > ObtenerParametrosAsync()
        {
            using (var context = new OmniventContext())
            {
                var parametros = await context.LclParametro.ToListAsync();

                if (parametros != null)
                {
                    return(parametros);
                }
                else
                {
                    return(null);
                }
            }
        }
        //Funcion para desincronizar datos
        public async Task DesincronizarDatos(List <VM_PDV_LISTAP_DETALLE> listaPreciosDetalle)
        {
            using (var context = new OmniventContext())
            {
                var transaccion = await context.Database.BeginTransactionAsync();

                try
                {
                    foreach (var preciosDetalle in listaPreciosDetalle)
                    {
                        var dato = await context.PdvListapDetalle.FromSqlRaw(
                            "select * from PDV_LISTAP_DETALLE where pro_id = " + preciosDetalle.ProId + " and lip_id = " + preciosDetalle.LipId
                            ).FirstOrDefaultAsync();

                        if (dato != null)
                        {
                            dato.LpdAccion = 0;
                            await context.SaveChangesAsync();
                        }
                        else
                        {
                            Console.WriteLine("Dato no encontrado");
                        }
                    }



                    await transaccion.CommitAsync();

                    Console.WriteLine("El campo Accion de la tabla PDV_LISTAP_DETALLE se ha actualizado correctamente");
                }
                catch (Exception ex)
                {
                    await transaccion.RollbackAsync();

                    Console.WriteLine(ex.Message);
                }
            }
        }
        private async Task DesincronizarDatos(List <VM_PDV_VENTA_DETALLE> ventasDetalle)
        {
            using (var context = new OmniventContext())
            {
                var transaccion = await context.Database.BeginTransactionAsync();

                try
                {
                    foreach (var detalle in ventasDetalle)
                    {
                        var dato = await context.PdvVentaDetalle.Where(
                            d => d.VtaId == detalle.VtaId && d.VedId == detalle.VedId
                            ).FirstOrDefaultAsync();

                        if (dato != null)
                        {
                            dato.VedAccion = 0;
                            await context.SaveChangesAsync();
                        }
                        else
                        {
                            Console.WriteLine("Dato no encontrado");
                        }
                    }

                    await transaccion.CommitAsync();

                    Console.WriteLine("El campo Accion de la tabla PDV_VENTA_DETALLE se ha actualizado correctamente");
                }
                catch (Exception ex)
                {
                    await transaccion.RollbackAsync();

                    Console.WriteLine(ex);
                }
            }
        }
예제 #17
0
 //Funcion para obtener la lista de precios
 private async Task <List <VM_PDV_LISTA_PRECIO> > ObtenerListaPrecio(int accion)
 {
     using (var context = new OmniventContext())
     {
         try
         {
             return(await context.PdvListaPrecio.Select(
                        x => new VM_PDV_LISTA_PRECIO()
             {
                 LipId = x.LipId,
                 LipNombre = x.LipNombre,
                 LipAccion = x.LipAccion
             }
                        ).
                    Where(
                        x => x.LipAccion == accion
                        ).ToListAsync());
         }catch (Exception e)
         {
             Console.WriteLine(e.Message);
             return(null);
         }
     }
 }
        //Funcion que retorna los productos de omniventDemo
        private async Task <List <VM_PDV_FLUJO_EFECTIVO> > ObtenerFlujosEfectivo(int accion)
        {
            using (var context = new OmniventContext())
            {
                try
                {
                    //Tabla Flujo efectivo con sucursal no nula
                    var flujoEfectivo = await context.PdvFlujoEfectivo.Join(
                        context.GlbSucursal,
                        flujoEfectivo => flujoEfectivo.SucId,
                        sucursal => sucursal.SucId,
                        (flujoEfectivo, sucursal) => new
                    {
                        flujoEfectivo = flujoEfectivo,
                        Sucursal      = sucursal
                    }
                        ).Join(
                        context.PdvCaja,
                        flujoEfectivoMix => flujoEfectivoMix.flujoEfectivo.CajId,
                        caja => caja.CajId,
                        (flujoEfectivoMix, caja) => new
                    {
                        flujoEfectivoMix = flujoEfectivoMix,
                        Caja             = caja
                    }
                        ).Select(
                        efectivo => new VM_PDV_FLUJO_EFECTIVO()
                    {
                        FleId            = efectivo.flujoEfectivoMix.flujoEfectivo.FleId,
                        FleFecha         = efectivo.flujoEfectivoMix.flujoEfectivo.FleFecha,
                        FleImporte       = efectivo.flujoEfectivoMix.flujoEfectivo.FleImporte,
                        FleTipo          = efectivo.flujoEfectivoMix.flujoEfectivo.FleTipo,
                        FleObservaciones = (efectivo.flujoEfectivoMix.flujoEfectivo.FleObservaciones != null) ? efectivo.flujoEfectivoMix.flujoEfectivo.FleObservaciones : "",
                        FleReferencia    = (efectivo.flujoEfectivoMix.flujoEfectivo.FleReferencia != null) ? efectivo.flujoEfectivoMix.flujoEfectivo.FleReferencia : "",
                        FopId            = efectivo.flujoEfectivoMix.flujoEfectivo.FopId,
                        FleDescripcion   = efectivo.Caja.CajDescripcion,
                        CacId            = (efectivo.flujoEfectivoMix.flujoEfectivo.CacId != null) ? efectivo.flujoEfectivoMix.flujoEfectivo.CacId : 0,
                        Sucursal         = (efectivo.flujoEfectivoMix.Sucursal.SucNombre != null) ? efectivo.flujoEfectivoMix.Sucursal.SucNombre : "",
                        FleAccion        = efectivo.flujoEfectivoMix.flujoEfectivo.FleAccion
                    }
                        ).Where(
                        efectivo => efectivo.FleAccion == accion &&
                        efectivo.Sucursal != null
                        ).ToListAsync();


                    //Tabla Flujo efectivo con sucursal nula
                    var flujoEfectivoSucursal = await context.PdvFlujoEfectivo.Join(
                        context.PdvCaja,
                        flujoEfectivo => flujoEfectivo.CajId,
                        caja => caja.CajId,
                        (flujoEfectivo, caja) => new
                    {
                        FlujoEfectivo = flujoEfectivo,
                        Caja          = caja
                    }
                        ).Select(
                        efectivo => new VM_PDV_FLUJO_EFECTIVO()
                    {
                        FleId            = efectivo.FlujoEfectivo.FleId,
                        FleFecha         = efectivo.FlujoEfectivo.FleFecha,
                        FleImporte       = efectivo.FlujoEfectivo.FleImporte,
                        FleTipo          = efectivo.FlujoEfectivo.FleTipo,
                        FleObservaciones = (efectivo.FlujoEfectivo.FleObservaciones != null) ? efectivo.FlujoEfectivo.FleObservaciones : "",
                        FleReferencia    = (efectivo.FlujoEfectivo.FleReferencia != null) ? efectivo.FlujoEfectivo.FleReferencia : "",
                        FopId            = efectivo.FlujoEfectivo.FopId,
                        FleDescripcion   = efectivo.Caja.CajDescripcion,
                        CacId            = (efectivo.FlujoEfectivo.CacId != null) ? efectivo.FlujoEfectivo.CacId : 0,
                        Sucursal         = efectivo.FlujoEfectivo.SucId.ToString(),
                        FleAccion        = efectivo.FlujoEfectivo.FleAccion
                    }
                        ).Where(
                        efectivo => efectivo.FleAccion == accion &&
                        efectivo.Sucursal == null
                        ).ToListAsync();

                    if (flujoEfectivoSucursal.Count > 0)
                    {
                        flujoEfectivo.AddRange(flujoEfectivoSucursal);
                    }

                    return(flujoEfectivo);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return(null);
                }
            }
        }
예제 #19
0
        //Funcion que retorna las ventas de la base de datos de Omnivent
        public async Task <List <VM_PDV_VENTA> > ObtenerVentas()
        {
            using (var context = new OmniventContext())
            {
                try
                {
                    //Obtenemos las ventas uniendo las tablas de vendedor, sucursal y precios
                    //Ya que necesitamos los nombres y no el ID de cada tabla
                    //Cuando ningún campo es nulo
                    var ventas = await context.PdvVenta.Join(
                        context.GlbSucursal,
                        venta => venta.SucId,
                        sucursal => sucursal.SucId,
                        (venta, sucursal) => new
                    {
                        Venta    = venta,
                        Sucursal = sucursal
                    }
                        ).Join(
                        context.PdvVendedor,
                        mixVenta => mixVenta.Venta.VndId,
                        vendedor => vendedor.VndId,
                        (mixVenta, vendedor) => new
                    {
                        MixVenta = mixVenta,
                        Vendedor = vendedor
                    }
                        ).Join(
                        context.PdvListaPrecio,
                        mixMixVenta => mixMixVenta.MixVenta.Venta.LipId,
                        lista => lista.LipId,
                        (mixMixVenta, lista) => new
                    {
                        MixMixVenta = mixMixVenta,
                        Lista       = lista
                    }).Select(x => new VM_PDV_VENTA()
                    {
                        VtaId         = x.MixMixVenta.MixVenta.Venta.VtaId,
                        VtaFolioVenta = x.MixMixVenta.MixVenta.Venta.VtaFolioVenta,
                        VtaFecha      = x.MixMixVenta.MixVenta.Venta.VtaFecha,
                        VtaTotal      = x.MixMixVenta.MixVenta.Venta.VtaTotal,
                        VtaEstatus    = x.MixMixVenta.MixVenta.Venta.VtaEstatus,
                        Sucursal      = x.MixMixVenta.MixVenta.Sucursal.SucNombre,
                        ListaPrecios  = x.Lista.LipNombre,
                        Vendedor      = x.MixMixVenta.Vendedor.VndNombre,
                        VtaAccion     = x.MixMixVenta.MixVenta.Venta.VtaAccion
                    }).Where(
                        venta => venta.VtaAccion == 1 && venta.Vendedor != null && venta.ListaPrecios != null)
                                 .ToListAsync();

                    //Tanto vendedor como lista de precios son nulos
                    var ventasSucursal = await context.PdvVenta.Join(
                        context.GlbSucursal,
                        venta => venta.SucId,
                        sucursal => sucursal.SucId,
                        (venta, sucursal) => new
                    {
                        Venta    = venta,
                        Sucursal = sucursal
                    }
                        ).Select(x => new VM_PDV_VENTA()
                    {
                        VtaId         = x.Venta.VtaId,
                        VtaFolioVenta = x.Venta.VtaFolioVenta,
                        VtaFecha      = x.Venta.VtaFecha,
                        VtaTotal      = x.Venta.VtaTotal,
                        VtaEstatus    = x.Venta.VtaEstatus,
                        Sucursal      = x.Sucursal.SucNombre,
                        ListaPrecios  = x.Venta.LipId.ToString(),
                        Vendedor      = x.Venta.VndId.ToString(),
                        VtaAccion     = x.Venta.VtaAccion
                    }).Where(
                        venta => venta.VtaAccion == 1 && venta.Vendedor == null && venta.ListaPrecios == null)
                                         .ToListAsync();

                    //Solamente lista de precios es nula
                    var ventasListaPrecios = await context.PdvVenta.Join(
                        context.GlbSucursal,
                        venta => venta.SucId,
                        sucursal => sucursal.SucId,
                        (venta, sucursal) => new
                    {
                        Venta    = venta,
                        Sucursal = sucursal
                    }
                        ).Join(
                        context.PdvVendedor,
                        venta => venta.Venta.VndId,
                        vendedor => vendedor.VndId,
                        (venta, vendedor) => new
                    {
                        Venta    = venta,
                        Vendedor = vendedor
                    }
                        ).Select(x => new VM_PDV_VENTA()
                    {
                        VtaId         = x.Venta.Venta.VtaId,
                        VtaFolioVenta = x.Venta.Venta.VtaFolioVenta,
                        VtaFecha      = x.Venta.Venta.VtaFecha,
                        VtaTotal      = x.Venta.Venta.VtaTotal,
                        VtaEstatus    = x.Venta.Venta.VtaEstatus,
                        Sucursal      = x.Venta.Sucursal.SucNombre,
                        ListaPrecios  = x.Venta.Venta.LipId.ToString(),
                        Vendedor      = x.Vendedor.VndNombre,
                        VtaAccion     = x.Venta.Venta.VtaAccion
                    }).Where(
                        venta => venta.VtaAccion == 1 && venta.Vendedor != null && venta.ListaPrecios == null)
                                             .ToListAsync();

                    //Solamente el vendedor es nulo
                    var ventasListaVendedor = await context.PdvVenta.Join(
                        context.GlbSucursal,
                        venta => venta.SucId,
                        sucursal => sucursal.SucId,
                        (venta, sucursal) => new
                    {
                        Venta    = venta,
                        Sucursal = sucursal
                    }
                        ).Join(
                        context.PdvListaPrecio,
                        venta => venta.Venta.LipId,
                        lista => lista.LipId,
                        (venta, lista) => new
                    {
                        Venta = venta,
                        Lista = lista
                    }).Select(x => new VM_PDV_VENTA()
                    {
                        VtaId         = x.Venta.Venta.VtaId,
                        VtaFolioVenta = x.Venta.Venta.VtaFolioVenta,
                        VtaFecha      = x.Venta.Venta.VtaFecha,
                        VtaTotal      = x.Venta.Venta.VtaTotal,
                        VtaEstatus    = x.Venta.Venta.VtaEstatus,
                        Sucursal      = x.Venta.Sucursal.SucNombre,
                        ListaPrecios  = x.Lista.LipNombre,
                        Vendedor      = x.Venta.Venta.VndId.ToString(),
                        VtaAccion     = x.Venta.Venta.VtaAccion
                    }).Where(
                        venta => venta.VtaAccion == 1 && venta.Vendedor == null && venta.ListaPrecios != null)
                                              .ToListAsync();

                    //Si hay ventas retornamos las ventas, caso contrario valor nulo
                    if (ventasSucursal.Count > 0)
                    {
                        ventas.AddRange(ventasSucursal);
                    }
                    if (ventasListaVendedor.Count > 0)
                    {
                        ventas.AddRange(ventasListaVendedor);
                    }
                    if (ventasListaPrecios.Count > 0)
                    {
                        ventas.AddRange(ventasListaPrecios);
                    }

                    return(ventas);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    //Si ocurrio un error retornamos valor nulo
                    return(null);
                }
            }
        }