/*
declare @mesg nvarchar(max)
EXEC ZL_AutoCertificate_Build 22922,@mesg OUTPUT
SELECT @mesg
*/
/****** Object: StoredProcedure [dbo].[ZL_AutoCertificate_Build] Script Date: 09/28/2018 10:04:08 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ZL_AutoCertificate_Build]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[ZL_AutoCertificate_Build]
GO
/****** Object: StoredProcedure [dbo].[ZL_AutoCertificate_Build] Script Date: 09/28/2018 10:04:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[ZL_AutoCertificate_Build](
@ProduceTaskID INT,
@mesg nvarchar(MAX) OUTPUT
)
AS
BEGIN
SET @mesg=''
DECLARE @ZL_ConstructionName NVARCHAR(200)
DECLARE @ZL_CustomerName NVARCHAR(200)
DECLARE @CementGradeID INT
DECLARE @BeginTime DATETIME
DECLARE @SumCube DECIMAL(18,2)
BEGIN TRANSACTION
SELECT @ZL_ConstructionName=r.ZL_GongCheng,@ZL_CustomerName=r.ZL_WeituoDanWei,
@CementGradeID=(SELECT TOP 1 CementGradeID FROM Biz_Sell_CementGrade WHERE Name=r.ZL_QiangDu),
@BeginTime=r.ZL_YuanCaiQianFaRiQi ,@SumCube=r.ZL_FangLiang
FROM ZL_RenWu AS r
WHERE r.ProduceTaskID=@ProduceTaskID
BEGIN TRY
INSERT INTO dbo.Testing_Certificate ([No],ZL_ConstructionName, ZL_CustomerName,
ZL_RenWuID, CementGradeID, BeginTime, EndTime, SumCube, UserID,
UserName, Createtime)
VALUES((SELECT dbo.NO_Testing_CertificateNO()),@ZL_ConstructionName,@ZL_CustomerName,@ProduceTaskID,
@CementGradeID,@BeginTime,GETDATE(),@SumCube,52,'Admin',GETDATE())
DECLARE @CertificateID INT
SET @CertificateID=@@IDENTITY;
DECLARE @BriquetteEntrustItemID INT
DECLARE @BriquetteEntrustItemNo NVARCHAR(MAX)
DECLARE @ConcreteInspectionTypeID INT
DECLARE cur_cer CURSOR DYNAMIC FOR
SELECT BriquetteEntrustItemID,b.[No]+'-'+bi.TestPieceNO,b.ConcreteInspectionTypeID
FROM Biz_Tech_BriquetteEntrustItem bi
INNER JOIN Biz_Tech_BriquetteEntrust AS b ON b.BriquetteEntrustID = bi.BriquetteEntrustID
WHERE b.ProduceTaskID=@ProduceTaskID
OPEN cur_cer
FETCH NEXT FROM cur_cer INTO @BriquetteEntrustItemID,@BriquetteEntrustItemNo,@ConcreteInspectionTypeID
WHILE(@@FETCH_STATUS=0)
BEGIN
IF(@ConcreteInspectionTypeID=1)
BEGIN
DECLARE @ConcreteInspectionID_TKY INT
IF NOT EXISTS(SELECT 1 FROM Testing_ConcreteInspectionItem_TKY WHERE BriquetteEntrustItemID=@BriquetteEntrustItemID)
BEGIN
SET @mesg=@mesg+@BriquetteEntrustItemNo+','
END
ELSE
BEGIN
SELECT @ConcreteInspectionID_TKY=ConcreteInspectionID FROM Testing_ConcreteInspectionItem_TKY WHERE BriquetteEntrustItemID=@BriquetteEntrustItemID
INSERT INTO dbo.Testing_CertificateOfConcrete (CertificateID,ConcreteInspectionID) VALUES(@CertificateID,@ConcreteInspectionID_TKY)
END
END
IF(@ConcreteInspectionTypeID=2)
BEGIN
DECLARE @ConcreteInspectionID_TKS INT
IF NOT EXISTS(SELECT 1 FROM Testing_ConcreteInspectionItem_TKS WHERE BriquetteEntrustItemID=@BriquetteEntrustItemID)
BEGIN
SET @mesg=@mesg+@BriquetteEntrustItemNo+','
END
ELSE
BEGIN
SELECT @ConcreteInspectionID_TKS=ConcreteInspectionID FROM Testing_ConcreteInspectionItem_TKS WHERE BriquetteEntrustItemID=@BriquetteEntrustItemID
INSERT INTO dbo.Testing_CertificateOfConcrete (CertificateID,ConcreteInspectionID) VALUES(@CertificateID,@ConcreteInspectionID_TKS)
END
END
FETCH NEXT FROM cur_cer INTO @BriquetteEntrustItemID,@BriquetteEntrustItemNo,@ConcreteInspectionTypeID
END
CLOSE cur_cer
DEALLOCATE cur_cer
IF(@mesg<>'')
BEGIN
SET @mesg='检验委托没有做实验,编号:'+@mesg
ROLLBACK TRANSACTION
RETURN
END
END TRY
BEGIN CATCH
SET @mesg=ERROR_MESSAGE()
ROLLBACK TRANSACTION
RETURN
END CATCH
COMMIT TRANSACTION
END
GO