Files
JY1.0/sql/移除物料标准库位维护.sql

157 lines
5.9 KiB
Transact-SQL

USE [ERPTOOL_JY_20250826Back]
GO
/*
目的:
1. 物料新增/编辑不再维护默认库位。
2. 新增物料不再写入 0 库存的“物料与货位对照表”记录。
3. 保留 @货位流水号 参数,兼容未同步发布的旧前端调用。
*/
ALTER PROCEDURE [dbo].[物料管理_增加]
@材料流水号 int = null,
@货位流水号 int = null,
@单位流水号 int = null,
@类型 int = null,
@物料名称 nvarchar(50) = null,
@图号 nvarchar(50) = null,
@物料编码 nvarchar(50) = null,
@物料库流水号 int = null
AS
BEGIN
SET NOCOUNT ON;
DECLARE @物料流水号 int;
IF @材料流水号 = 0
SET @材料流水号 = 3;
INSERT INTO 库存管理_物料主文件_基本
(名称, 代号, 单位流水号, 材料流水号, 类型, 物料编码, 物料库流水号)
VALUES
(@物料名称, @图号, @单位流水号, @材料流水号, @类型, @物料编码, @物料库流水号);
SET @物料流水号 = IDENT_CURRENT(N'库存管理_物料主文件_基本');
INSERT INTO 库存管理_外购件累计库存(物料流水号, 累计库存)
VALUES(@物料流水号, 0);
END
GO
ALTER PROCEDURE [dbo].[物料管理_增加新]
@材料流水号 int = null,
@货位流水号 int = null,
@单位流水号 int = null,
@类型 int = null,
@物料名称 nvarchar(50) = null,
@图号 nvarchar(50) = null,
@物料说明 nvarchar(MAX) = null,
@物料库流水号 int = null,
@人员编号 int = null
AS
BEGIN
SET NOCOUNT ON;
DECLARE @物料流水号 int,
@物料编码2 nvarchar(50) = null;
IF @材料流水号 = 0
SET @材料流水号 = 3;
IF @类型 = 1
BEGIN
SELECT @物料编码2 = 'LJ' + RIGHT(CAST(POWER(10, 8) AS varchar) + (SUBSTRING((SELECT 物料编码 FROM 库存管理_物料主文件_基本 WHERE 物料流水号 = (SELECT MAX(物料流水号) FROM 库存管理_物料主文件_基本)), 3, 8) + 1), 8);
INSERT INTO 库存管理_物料主文件_基本
(名称, 代号, 单位流水号, 材料流水号, 类型, 物料编码, 物料库流水号, 修改人, 修改日期, 物料说明)
VALUES
(@物料名称, @图号, @单位流水号, @材料流水号, @类型, @物料编码2, @物料库流水号, @人员编号, GETDATE(), @物料说明);
SET @物料流水号 = IDENT_CURRENT(N'库存管理_物料主文件_基本');
INSERT INTO 库存管理_外购件累计库存(物料流水号, 累计库存)
VALUES(@物料流水号, 0);
END
IF @类型 = 2
BEGIN
SELECT @物料编码2 = 'LJ' + RIGHT(CAST(POWER(10, 8) AS varchar) + (SUBSTRING((SELECT 物料编码 FROM 库存管理_物料主文件_基本 WHERE 物料流水号 = (SELECT MAX(物料流水号) FROM 库存管理_物料主文件_基本)), 3, 8) + 1), 8);
INSERT INTO 库存管理_物料主文件_基本
(名称, 代号, 单位流水号, 材料流水号, 类型, 物料编码, 物料库流水号, 修改人, 修改日期, 物料说明)
VALUES
(@物料名称, @图号, @单位流水号, @材料流水号, @类型, @物料编码2, @物料库流水号, @人员编号, GETDATE(), @物料说明);
SET @物料流水号 = IDENT_CURRENT(N'库存管理_物料主文件_基本');
INSERT INTO 库存管理_外购件累计库存(物料流水号, 累计库存)
VALUES(@物料流水号, 0);
SELECT @物料编码2 = 'MP' + RIGHT(CAST(POWER(10, 8) AS varchar) + (SUBSTRING((SELECT 物料编码 FROM 库存管理_物料主文件_基本 WHERE 物料流水号 = (SELECT MAX(物料流水号) FROM 库存管理_物料主文件_基本)), 3, 8) + 1), 8);
INSERT INTO 库存管理_物料主文件_基本
(名称, 代号, 单位流水号, 材料流水号, 类型, 物料编码, 物料库流水号, 修改人, 修改日期, 物料说明)
VALUES
(@物料名称 + 'MP', @图号 + 'MP', @单位流水号, @材料流水号, 1, @物料编码2, @物料库流水号, @人员编号, GETDATE(), @物料说明);
SET @物料流水号 = IDENT_CURRENT(N'库存管理_物料主文件_基本');
INSERT INTO 库存管理_外购件累计库存(物料流水号, 累计库存)
VALUES(@物料流水号, 0);
END
END
GO
ALTER PROCEDURE [dbo].[物料管理_编辑]
@材料流水号 int = null,
@货位流水号 int = null,
@单位流水号 int = null,
@类型 int = null,
@物料名称 nvarchar(50) = null,
@图号 nvarchar(50) = null,
@物料流水号 int = null,
@操作者 int = null,
@物料编码 nvarchar(50) = null,
@物料说明 nvarchar(MAX) = null,
@物料库流水号 int = null,
@最高库存 int = null,
@安全库存 int = null,
@最低库存 int = null
AS
BEGIN
SET NOCOUNT ON;
UPDATE 库存管理_物料主文件_基本
SET 名称 = @物料名称,
代号 = @图号,
单位流水号 = @单位流水号,
材料流水号 = @材料流水号,
类型 = @类型,
修改人 = @操作者,
修改日期 = GETDATE(),
物料编码 = @物料编码,
物料说明 = @物料说明,
物料库流水号 = @物料库流水号
WHERE 物料流水号 = @物料流水号;
UPDATE dbo.PDM_零件明细表_基本件
SET 材料流水号 = @材料流水号
WHERE 物料流水号 = @物料流水号;
UPDATE dbo.PDM_零件明细表_标准件和外购件
SET 材料流水号 = @材料流水号
WHERE 物料流水号 = @物料流水号;
IF (SELECT COUNT(*) FROM PDM_零件明细表_基本件 WHERE 物料流水号 = @物料流水号) > 0
BEGIN
IF (SELECT COUNT(*) FROM 车间生产管理工艺_零件工艺计划 WHERE 基本件流水号 IN (SELECT 基本件流水号 FROM PDM_零件明细表_基本件 WHERE 物料流水号 = @物料流水号) AND 考核状态 < 4) > 0
BEGIN
UPDATE 车间生产管理工艺_零件工艺计划
SET 零件图号 = @图号
WHERE 基本件流水号 IN (SELECT 基本件流水号 FROM PDM_零件明细表_基本件 WHERE 物料流水号 = @物料流水号)
AND 考核状态 < 4;
END
END
END
GO