Example #1
0
        public List <SucursalEntidad> TraerSucursalesConStock(List <PedidoDetalleEntidad> unosPedidosDetalles)
        {
            List <StockSucursalEntidad> sucursalesPorProducto = new List <StockSucursalEntidad>();
            List <StockSucursalEntidad> sucursalesTodoPedido  = new List <StockSucursalEntidad>();
            List <SucursalEntidad>      sucursalesRetorno     = new List <SucursalEntidad>();

            sucursalesRetorno = FindAll();

            //Si la sucursal tiene todos los productos con sus cantidades indicadas en el pedido, se suma a la lista
            bool flag = false;

            foreach (PedidoDetalleEntidad unPedDet in unosPedidosDetalles)
            {
                sucursalesPorProducto = GestorSucursal.TraerSucursalesConStock(unPedDet.miProducto.IdProducto, unPedDet.Cantidad, Helpers.ConfigSection.Default.Site.Cuit);

                if (sucursalesPorProducto != null && sucursalesPorProducto.Count > 0)
                {
                    if (!flag)
                    {
                        sucursalesTodoPedido = sucursalesPorProducto.ToList();
                    }
                    else
                    {
                        sucursalesTodoPedido = sucursalesTodoPedido.Where(d => sucursalesPorProducto.Any(a => a.IdSucursal == d.IdSucursal)).ToList();
                    }
                }
                flag = true;
            }

            sucursalesRetorno = sucursalesRetorno.Where(d => sucursalesTodoPedido.Any(a => a.IdSucursal == d.IdSucursal)).ToList();

            //var direcciones = _direccionCore.FindAll();

            //sucursalesTodoPedido.ForEach(x => x.Direccion = direcciones.Where(d => d.IdDireccion == x.DireccionSucursal).FirstOrDefault());

            return(sucursalesRetorno);
        }