233 lines
4.6 KiB
Transact-SQL
233 lines
4.6 KiB
Transact-SQL
USE [FabApprovalSystem]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[MRBInsertSPNMRBHoldFlagReport] Script Date: 11/21/2024 11:29:05 AM ******/
|
|
SET
|
|
ANSI_NULLS ON
|
|
GO
|
|
SET
|
|
QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE PROCEDURE [dbo].[MRBInsertSPNMRBHoldFlagReport] @MRBNumber INT,
|
|
@MRBHoldFlagReportAttrTable dbo.udtMRBHoldFlagReportTable READONLY AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
|
|
-- interfering with SELECT statements.
|
|
SET
|
|
NOCOUNT ON;
|
|
|
|
DECLARE @ErrorMessage NVARCHAR(4000);
|
|
|
|
DECLARE @ErrorSeverity INT;
|
|
|
|
DECLARE @ErrorState INT;
|
|
|
|
-- Insert statements for procedure here
|
|
BEGIN TRY BEGIN TRAN
|
|
INSERT INTO
|
|
MRBHoldFlagReportHistory (
|
|
MRBNumber,
|
|
LotNo,
|
|
TransactionType,
|
|
PartNo,
|
|
CurrentLocation,
|
|
CurrentOperation,
|
|
StartQty,
|
|
CurrentQty,
|
|
LotStatus,
|
|
OperStatus,
|
|
Successful,
|
|
Comment,
|
|
PriorMRB_DispoType,
|
|
PriorMRBHoldLocation,
|
|
PriorMRBHoldOperation,
|
|
CurrentMRB_DispoType,
|
|
CurrentMRBHoldLocation,
|
|
CurrentMRBHoldOperation,
|
|
TransactionDatetime --,HistoryInsertDateTimeStamp
|
|
)
|
|
SELECT
|
|
MRBNumber,
|
|
LotNo,
|
|
TransactionType,
|
|
PartNo,
|
|
CurrentLocation,
|
|
CurrentOperation,
|
|
StartQty,
|
|
CurrentQty,
|
|
LotStatus,
|
|
OperStatus,
|
|
Successful,
|
|
Comment,
|
|
PriorMRB_DispoType,
|
|
PriorMRBHoldLocation,
|
|
PriorMRBHoldOperation,
|
|
CurrentMRB_DispoType,
|
|
CurrentMRBHoldLocation,
|
|
CurrentMRBHoldOperation,
|
|
TransactionDatetime --,GETDATE()
|
|
FROM
|
|
@MRBHoldFlagReportAttrTable IF NOT EXISTS (
|
|
SELECT
|
|
1
|
|
FROM
|
|
MRBHoldFlagReport
|
|
WHERE
|
|
MRBNumber = @MRBNumber
|
|
) BEGIN
|
|
INSERT INTO
|
|
MRBHoldFlagReport (
|
|
MRBNumber,
|
|
LotNo,
|
|
TransactionType,
|
|
PartNo,
|
|
CurrentLocation,
|
|
CurrentOperation,
|
|
StartQty,
|
|
CurrentQty,
|
|
LotStatus,
|
|
OperStatus,
|
|
Successful,
|
|
Comment,
|
|
PriorMRB_DispoType,
|
|
PriorMRBHoldLocation,
|
|
PriorMRBHoldOperation,
|
|
CurrentMRB_DispoType,
|
|
CurrentMRBHoldLocation,
|
|
CurrentMRBHoldOperation,
|
|
TransactionDatetime
|
|
)
|
|
SELECT
|
|
MRBNumber,
|
|
LotNo,
|
|
TransactionType,
|
|
PartNo,
|
|
CurrentLocation,
|
|
CurrentOperation,
|
|
StartQty,
|
|
CurrentQty,
|
|
LotStatus,
|
|
OperStatus,
|
|
Successful,
|
|
Comment,
|
|
PriorMRB_DispoType,
|
|
PriorMRBHoldLocation,
|
|
PriorMRBHoldOperation,
|
|
CurrentMRB_DispoType,
|
|
CurrentMRBHoldLocation,
|
|
CurrentMRBHoldOperation,
|
|
TransactionDatetime
|
|
FROM
|
|
@MRBHoldFlagReportAttrTable
|
|
END
|
|
ELSE BEGIN -- TODO record into the history table before updating
|
|
-- update the data columns which need to be recorded in the Data Columns that has "Prior" in the name of the field
|
|
UPDATE
|
|
MRBHoldFlagReport
|
|
SET
|
|
PriorMRB_DispoType = CurrentMRB_DispoType,
|
|
PriorMRBHoldLocation = CurrentMRBHoldLocation,
|
|
PriorMRBHoldOperation = CurrentMRBHoldOperation
|
|
WHERE
|
|
MRBNumber = @MRBNumber
|
|
UPDATE
|
|
M
|
|
SET
|
|
CurrentMRB_DispoType = '',
|
|
CurrentMRBHoldLocation = '',
|
|
CurrentMRBHoldOperation = ''
|
|
FROM
|
|
MRBHoldFlagReport M
|
|
INNER JOIN @MRBHoldFlagReportAttrTable T ON M.MRBNumber = T.MRBNumber
|
|
AND M.LotNo = T.LotNo
|
|
UPDATE
|
|
M
|
|
SET
|
|
M.TransactionType = T.TransactionType,
|
|
M.PartNo = T.PartNo,
|
|
M.CurrentLocation = T.CurrentLocation,
|
|
M.CurrentOperation = T.CurrentOperation,
|
|
M.StartQty = T.StartQty,
|
|
M.CurrentQty = T.CurrentQty,
|
|
M.LotStatus = T.LotStatus,
|
|
M.OperStatus = T.OperStatus,
|
|
M.Successful = T.Successful,
|
|
M.Comment = T.Comment,
|
|
M.CurrentMRB_DispoType = T.CurrentMRB_DispoType,
|
|
M.CurrentMRBHoldLocation = T.CurrentMRBHoldLocation,
|
|
M.CurrentMRBHoldOperation = T.CurrentMRBHoldOperation,
|
|
M.TransactionDatetime = T.TransactionDatetime
|
|
FROM
|
|
MRBHoldFlagReport M
|
|
INNER JOIN @MRBHoldFlagReportAttrTable T ON M.MRBNumber = T.MRBNumber
|
|
AND M.LotNo = T.LotNo -- NEW Lots that were added to this MRB in the new Report (Child Split Lots)
|
|
INSERT INTO
|
|
MRBHoldFlagReport (
|
|
MRBNumber,
|
|
LotNo,
|
|
TransactionType,
|
|
PartNo,
|
|
CurrentLocation,
|
|
CurrentOperation,
|
|
StartQty,
|
|
CurrentQty,
|
|
LotStatus,
|
|
OperStatus,
|
|
Successful,
|
|
Comment,
|
|
PriorMRB_DispoType,
|
|
PriorMRBHoldLocation,
|
|
PriorMRBHoldOperation,
|
|
CurrentMRB_DispoType,
|
|
CurrentMRBHoldLocation,
|
|
CurrentMRBHoldOperation,
|
|
TransactionDatetime
|
|
)
|
|
SELECT
|
|
MRBNumber,
|
|
LotNo,
|
|
TransactionType,
|
|
PartNo,
|
|
CurrentLocation,
|
|
CurrentOperation,
|
|
StartQty,
|
|
CurrentQty,
|
|
LotStatus,
|
|
OperStatus,
|
|
Successful,
|
|
Comment,
|
|
PriorMRB_DispoType,
|
|
PriorMRBHoldLocation,
|
|
PriorMRBHoldOperation,
|
|
CurrentMRB_DispoType,
|
|
CurrentMRBHoldLocation,
|
|
CurrentMRBHoldOperation,
|
|
TransactionDatetime
|
|
FROM
|
|
@MRBHoldFlagReportAttrTable T
|
|
WHERE
|
|
NOT EXISTS (
|
|
SELECT
|
|
1,
|
|
2
|
|
FROM
|
|
MRBHoldFlagReport M
|
|
WHERE
|
|
M.MRBNumber = T.MRBNumber
|
|
AND M.LotNo = T.LotNo
|
|
)
|
|
END COMMIT TRAN
|
|
END TRY BEGIN CATCH ROLLBACK
|
|
SELECT
|
|
@ErrorMessage = ERROR_MESSAGE() + CONVERT(VARCHAR(10), @MRBNumber),
|
|
@ErrorSeverity = ERROR_SEVERITY(),
|
|
@ErrorState = ERROR_STATE();
|
|
|
|
RAISERROR (
|
|
@ErrorMessage,
|
|
-- Message text.
|
|
@ErrorSeverity,
|
|
-- Severity.
|
|
@ErrorState -- State.
|
|
);
|
|
|
|
END CATCH
|
|
END
|
|
GO |