113 lines
2.6 KiB
Transact-SQL
113 lines
2.6 KiB
Transact-SQL
USE [FabApprovalSystem]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[_8DUpdateAuditFinding] Script Date: 11/21/2024 11:29:04 AM ******/
|
|
SET
|
|
ANSI_NULLS ON
|
|
GO
|
|
SET
|
|
QUOTED_IDENTIFIER ON
|
|
GO
|
|
-- =============================================
|
|
-- Author: <Author,,Name>
|
|
-- Create date: <Create Date,,>
|
|
-- Description: <Description,,>
|
|
-- =============================================
|
|
CREATE PROCEDURE [dbo].[_8DUpdateAuditFinding] -- Add the parameters for the stored procedure here
|
|
@AuditFindingsID INT,
|
|
@Findings VARCHAR(1000),
|
|
@ViolatedClause VARCHAR(500),
|
|
@FindingType VARCHAR(10),
|
|
@FindingCategories VARCHAR(200),
|
|
@CANo INT,
|
|
@Title VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
|
|
-- interfering with SELECT statements.
|
|
SET
|
|
NOCOUNT ON;
|
|
|
|
-- 11/26/2018 TR move update before audit score calculation to fix the calculation
|
|
UPDATE
|
|
_8DAuditFinding
|
|
SET
|
|
Findings = @Findings,
|
|
ViolatedClause = @ViolatedClause,
|
|
FindingType = @FindingType,
|
|
CANo = @CANo,
|
|
Title = @Title
|
|
WHERE
|
|
ID = @AuditFindingsID DECLARE @AuditNo INT DECLARE @NoOfMajorNonConformities INT DECLARE @NoOfMinorNonConformities INT DECLARE @AuditScore INT
|
|
SELECT
|
|
@AuditNo = AuditNo
|
|
FROM
|
|
_8DAuditFinding
|
|
WHERE
|
|
ID = @AuditFindingsID
|
|
SET
|
|
@NoOfMajorNonConformities = (
|
|
SELECT
|
|
COUNT(*)
|
|
FROM
|
|
_8DAuditFinding
|
|
WHERE
|
|
FindingType = 'Major'
|
|
AND AuditNo = @AuditNo
|
|
)
|
|
SET
|
|
@NoOfMinorNonConformities = (
|
|
SELECT
|
|
COUNT(*)
|
|
FROM
|
|
_8DAuditFinding
|
|
WHERE
|
|
FindingType = 'Minor'
|
|
AND AuditNo = @AuditNo
|
|
) -- IF Audit Type is either VDA or External the do not auto calculate the Audit Score
|
|
IF (
|
|
SELECT
|
|
COUNT(*)
|
|
FROM
|
|
_8DAuditTypeByAudit
|
|
WHERE
|
|
(
|
|
AuditTypeID = 4
|
|
OR AuditTypeID = 8
|
|
)
|
|
AND AuditNo = @AuditNo
|
|
) = 0 BEGIN
|
|
SET
|
|
@AuditScore = 100 - (
|
|
(@NoOfMajorNonConformities * 10) + (@NoOfMinorNonConformities)
|
|
)
|
|
UPDATE
|
|
_8DAudit
|
|
SET
|
|
AuditScore = @AuditScore
|
|
WHERE
|
|
AuditNo = @AuditNo
|
|
END -- calculate Audit Score
|
|
DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000)
|
|
SET
|
|
@SEPERATOR = ',' CREATE TABLE #tempTab (AuditFindingCategory int not null)
|
|
WHILE PATINDEX('%' + @SEPERATOR + '%', @FindingCategories) <> 0 BEGIN
|
|
SELECT
|
|
@SP = PATINDEX('%' + @SEPERATOR + '%', @FindingCategories)
|
|
SELECT
|
|
@VALUE = LEFT(@FindingCategories, @SP - 1)
|
|
SELECT
|
|
@FindingCategories = STUFF(@FindingCategories, 1, @SP, '')
|
|
INSERT INTO
|
|
#tempTab (AuditFindingCategory) VALUES (@VALUE)
|
|
END
|
|
DELETE FROM
|
|
_8DAuditFindingCategoryByAuditFinding
|
|
WHERE
|
|
AuditFindingID = @AuditFindingsID
|
|
INSERT INTO
|
|
_8DAuditFindingCategoryByAuditFinding
|
|
SELECT
|
|
@AuditFindingsID,
|
|
AuditFindingCategory
|
|
FROM
|
|
#tempTab
|
|
DROP TABLE #tempTab
|
|
END
|
|
GO |