/*
库房管理库位找物料隔离查询脚本（测试库 ERPTOOL_JY_20250826Back）
修改人:Ld 修改时间:2026-07-31 10:03:26;
说明：新增独立查询过程供库房管理新页面“库位找物料”使用，不修改原仓储管理物料库位查询过程。
*/

SET NOCOUNT ON;
GO

IF OBJECT_ID(N'dbo.库房管理_库位找物料_查询数据', N'P') IS NOT NULL
    DROP PROCEDURE dbo.库房管理_库位找物料_查询数据;
GO

CREATE PROCEDURE dbo.库房管理_库位找物料_查询数据
    @库位 NVARCHAR(50) = NULL,
    @库位_check BIT = 0
AS
BEGIN
    SET NOCOUNT ON;

    SELECT
        m.名称,
        m.代号,
        m.物料编码,
        h.货位名称,
        m.物料流水号,
        h.货位流水号,
        k.库房名称,
        q.库区名称,
        d.货位存量 AS 库存数量,
        CASE WHEN ISNULL(d.货位存量, 0) > 0 THEN N'有库存' ELSE N'' END AS 库存状态
    FROM dbo.库存管理_物料主文件_基本 m
    LEFT JOIN dbo.库存管理_货位主文件 h ON m.货位流水号 = h.货位流水号
    LEFT JOIN dbo.库房管理_库房主文件 k ON h.库房流水号 = k.库房流水号
    LEFT JOIN dbo.库房管理_库区主文件 q ON h.库区流水号 = q.库区流水号
    LEFT JOIN dbo.库存管理_物料与货位对照表 d ON m.物料流水号 = d.物料流水号 AND h.货位流水号 = d.货位流水号
    WHERE (@库位_check = 0 OR h.货位名称 LIKE N'%' + ISNULL(@库位, N'') + N'%')
    ORDER BY h.货位名称, m.物料编码;
END
GO
