public static List <ProductoInfo> ObtenerProductosProveedor(int proveedorId)
        {
            var listaProductos = new List <ProductoInfo>();

            var contratoPL = new ContratoPL();

            try
            {
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                if (seguridad != null)
                {
                    List <ContratoInfo> listaContratos = contratoPL.ObtenerContratosPorProveedorId(proveedorId,
                                                                                                   seguridad.Usuario.Organizacion.OrganizacionID);

                    if (listaContratos != null)
                    {
                        listaContratos =
                            listaContratos.Where(
                                registro => registro.Producto.Familia.FamiliaID == (int)FamiliasEnum.MateriaPrimas)
                            .ToList();

                        if (listaContratos.Count > 0)
                        {
                            var productoPl = new ProductoPL();
                            var listaProductosInvalidos = productoPl.ObtenerProductosValidosForraje();

                            listaContratos = (from contrato in listaContratos
                                              where
                                              !(from productos in listaProductosInvalidos select productos.ProductoId).ToList()
                                              .Contains(contrato.Producto.ProductoId)
                                              select contrato).ToList();

                            if (listaContratos.Count > 0)
                            {
                                if (listaContratos.Select(contrato => contrato.Producto).Any())
                                {
                                    listaProductos.AddRange(listaContratos.Select(contrato => contrato.Producto));
                                }
                                else
                                {
                                    listaProductos = null;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(listaProductos);
        }
        public static List <EntradaProductoInfo> ObtenerEntradaProductosPendiente(int folio)
        {
            List <EntradaProductoInfo> listaEntradaProductoPendiente = null;

            try
            {
                var entradaProductoPl = new EntradaProductoPL();
                var seguridad         = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                if (seguridad != null)
                {
                    int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                    var entrada        = new EntradaProductoInfo {
                        Organizacion = new OrganizacionInfo {
                            OrganizacionID = organizacionId
                        }, Estatus = new EstatusInfo {
                            EstatusId = (int)Estatus.PendienteAutorizar
                        }
                    };
                    listaEntradaProductoPendiente =
                        entradaProductoPl.ObtenerEntradaProductosTodosPorEstatusIdAyudaForraje(entrada, folio);

                    if (folio > 0 && listaEntradaProductoPendiente != null)
                    {
                        //Filtra todos los folios que contengan el numero de folio capturado
                        listaEntradaProductoPendiente =
                            listaEntradaProductoPendiente.Where(
                                registro =>
                                registro.Folio.ToString(CultureInfo.InvariantCulture)
                                .Contains(folio.ToString(CultureInfo.InvariantCulture))).ToList();
                    }

                    if (listaEntradaProductoPendiente != null)
                    {
                        var productoPl = new ProductoPL();
                        var listaProductosInvalidos = productoPl.ObtenerProductosValidosForraje();

                        listaEntradaProductoPendiente = (from contrato in listaEntradaProductoPendiente
                                                         where
                                                         !(from productos in listaProductosInvalidos select productos.ProductoId).ToList()
                                                         .Contains(contrato.Producto.ProductoId)
                                                         select contrato).ToList();
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(listaEntradaProductoPendiente);
        }
        public static List <ContratoInfo> ObtenerProveedorContratos(int proveedorId, int productoId)
        {
            List <ContratoInfo> listaContratos = null;

            var contratoPL = new ContratoPL();

            try
            {
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                if (seguridad != null)
                {
                    listaContratos = contratoPL.ObtenerContratosPorProveedorId(proveedorId, seguridad.Usuario.Organizacion.OrganizacionID);
                    if (listaContratos != null)
                    {
                        var productoPl = new ProductoPL();
                        var listaProductosInvalidos = productoPl.ObtenerProductosValidosForraje();

                        listaContratos = (from contrato in listaContratos
                                          where !(from productos in listaProductosInvalidos select productos.ProductoId).ToList().Contains(contrato.Producto.ProductoId)
                                          select contrato).ToList();

                        if (listaContratos.Count > 0)
                        {
                            listaContratos =
                                listaContratos.Where(
                                    registro =>
                                    registro.Producto.ProductoId == productoId).ToList();
                            //Tipos de contrato Normal,Terceros, Transito
                            listaContratos =
                                listaContratos.Where(
                                    registro =>
                                    registro.TipoContrato.TipoContratoId == (int)TipoContratoEnum.BodegaNormal ||
                                    registro.TipoContrato.TipoContratoId == (int)TipoContratoEnum.BodegaTercero ||
                                    registro.TipoContrato.TipoContratoId == (int)TipoContratoEnum.EnTransito).ToList();
                        }
                        else
                        {
                            listaContratos = null;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(listaContratos);
        }