Files
JY1.0/sql/自制件入库_入库单按钮_测试库.sql

82 lines
2.7 KiB
Transact-SQL

-- 物料入库组件自制件入库模块添加入库单按钮配套测试库脚本
-- 修改人:Ld 修改时间:2026-07-14 09:05:57;
ALTER PROCEDURE [dbo].[仓储管理_入库单_查询]
@类型_check bit = 0,
@类型 nvarchar(50) = null
AS
BEGIN
SET NOCOUNT ON;
-- 修改人:Ld 修改时间:2026-07-14 09:05:57; 返回订单和类型字段,并支持采购/自制件入库单筛选
SELECT
入库单.入库单流水号,
入库单.入库单号,
入库单.采购合同流水号,
入库单.采购合同号,
供应商.供应商名称,
供应商.供应商流水号,
入库单.到货数,
入库单.是否入库,
入库单.入库时间,
入库单.订单流水号,
入库单.订单号,
入库单.类型
FROM dbo.仓储管理_入库单 AS 入库单
LEFT JOIN dbo.采购管理_供应商 AS 供应商
ON 入库单.供应商流水号 = 供应商.供应商流水号
WHERE
ISNULL(@类型_check, 0) = 0
OR (
@类型 = N'自制'
AND ISNULL(入库单.类型, N'') = N'自制'
)
OR (
@类型 = N'采购'
AND ISNULL(入库单.类型, N'') <> N'自制'
);
END
GO
IF OBJECT_ID(N'dbo.trg_库存管理_自制件_入库记录_回写入库单', N'TR') IS NOT NULL
DROP TRIGGER dbo.trg_库存管理_自制件_入库记录_回写入库单;
GO
CREATE TRIGGER dbo.trg_库存管理_自制件_入库记录_回写入库单
ON dbo.库存管理_自制件_入库记录
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
-- 修改人:Ld 修改时间:2026-07-14 09:05:57; 自制件完成入库后按订单回写最近一张待入库单状态
;WITH 候选入库单 AS (
SELECT
入库单.入库单流水号,
ROW_NUMBER() OVER (
PARTITION BY 新记录.入库记录流水号
ORDER BY
CASE WHEN CONVERT(float, ISNULL(入库单.到货数, 0)) = CONVERT(float, ISNULL(新记录.实际到货数量, 0)) THEN 0 ELSE 1 END,
入库单.入库单流水号
) AS 排序号
FROM inserted AS 新记录
INNER JOIN dbo.车间生产管理_零件工艺计划_视图 AS 工艺计划
ON 新记录.工艺计划流水号 = 工艺计划.工艺计划流水号
INNER JOIN dbo.仓储管理_入库单 AS 入库单
ON 入库单.订单流水号 = CONVERT(nvarchar(100), 工艺计划.订单流水号)
AND ISNULL(入库单.类型, N'') = N'自制'
AND ISNULL(入库单.是否入库, 0) = 0
)
UPDATE 入库单
SET
入库单.是否入库 = 1,
入库单.入库时间 = GETDATE()
FROM dbo.仓储管理_入库单 AS 入库单
INNER JOIN 候选入库单 AS 候选
ON 入库单.入库单流水号 = 候选.入库单流水号
WHERE 候选.排序号 = 1;
END
GO
-- 修改人:Ld 修改时间:2026-07-14 09:05:57;