mesa-fab-approval/Programmability/Stored Procedures/MRBInsertSPNMRBHoldFlagReport.sql
Mike Phares ab800974b7 Programmability objects from database
Removed commented code
Added fn_GetExpiredTECNByOriginator
2024-12-12 12:15:46 -07:00

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