157 lines
5.9 KiB
Transact-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
|