148 lines
4.3 KiB
Transact-SQL
148 lines
4.3 KiB
Transact-SQL
/*****************************************************************************
|
|
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
|
Copyright 2026 - Volian Enterprises, Inc. All rights reserved.
|
|
*****************************************************************************/
|
|
|
|
-- =============================================
|
|
-- Author: Matthew Schill
|
|
-- Create date: 03/20/2026
|
|
-- Description: Script to consolidate Cover Pages for Barakah
|
|
-- by Converting multi-unit procedures with Cover Pages
|
|
-- to use 1 Library Document Cover Page
|
|
-- =============================================
|
|
|
|
select Contents.ContentID
|
|
, Contenttext = Contents.Text
|
|
, Items.ItemID
|
|
, tblDocuments.DocID
|
|
, ParentContentID
|
|
, ParentItemID
|
|
, LibTitle = ISNULL(LibTitle,'')
|
|
, numLibCP
|
|
, numCP
|
|
,BaseFlag = 0
|
|
INTO #tmpUpdate
|
|
from Contents
|
|
inner join Entries on Contents.ContentID = Entries.ContentID
|
|
inner join tblDocuments on tblDocuments.DocID = Entries.DocID
|
|
inner join Items on Items.ContentID = Contents.ContentID
|
|
outer apply
|
|
(select ParentContentID=ContentID, ParentItemID = PItm.ItemID
|
|
FROM dbo.vefn_ParentItems(Items.ItemID) PItm
|
|
where PItm.ItemID <> Items.ItemID
|
|
) parent
|
|
outer apply
|
|
(select numLibCP = Count(*)
|
|
FROM dbo.vefn_ChildItems(ParentItemID) PItm
|
|
INNER JOIN Contents on Contents.ContentID = PItm.ContentID
|
|
INNER JOIN Entries on Contents.ContentID = Entries.ContentID
|
|
INNER JOIN tblDocuments on tblDocuments.DocID = Entries.DocID
|
|
where PItm.ItemID <> ParentItemID
|
|
AND Contents.text like 'Cover Page%' and ISNULL(tblDocuments.LibTitle,'') <> ''
|
|
) childWithLibTitle
|
|
outer apply
|
|
(select numCP = Count(*)
|
|
FROM dbo.vefn_ChildItems(ParentItemID) PItm
|
|
INNER JOIN Contents on Contents.ContentID = PItm.ContentID
|
|
where PItm.ItemID <> ParentItemID
|
|
AND Contents.text like 'Cover Page%'
|
|
) child
|
|
where Contents.text like 'Cover Page%'
|
|
order by ParentContentID asc, CASE WHEN ISNULL(LibTitle,'') <> '' THEN 1 ELSE 2 END asc, Contents.Text asc
|
|
|
|
UPDATE #tmpUpdate SET BaseFlag = 1 where LibTitle <> '' and numLibCP = 1
|
|
|
|
UPDATE #tmpUpdate SET BaseFlag = CASE WHEN tU.LibTitle <> '' THEN 1 ELSE 2 END FROM #tmpUpdate tU
|
|
where BaseFlag = 0 AND tU.ContentID IN
|
|
(
|
|
Select ContentID FROM
|
|
(SELECT sub.ContentID,
|
|
row_number() OVER(PARTITION BY sub.ParentContentID ORDER BY CASE WHEN ISNULL(sub.LibTitle,'') <> '' THEN 1 ELSE 2 END asc, sub.Contenttext asc) as pos
|
|
FROM #tmpUpdate sub
|
|
) x
|
|
WHERE x.pos = 1
|
|
)
|
|
|
|
declare @Cont TABLE
|
|
(
|
|
ContentID int,
|
|
ItemID int,
|
|
xConfig xml
|
|
)
|
|
insert into @Cont
|
|
SELECT tU.ContentID, ItemID, xConfig = CAST(tblContents.config AS xml) FROM
|
|
tblContents
|
|
INNER JOIN
|
|
#tmpUpdate tU ON tU.ContentID = tblContents.ContentID
|
|
where tU.BaseFlag > 0
|
|
|
|
Update @Cont Set xConfig.modify('delete //MasterSlave') From @Cont;
|
|
|
|
Update tblContents SET Text = 'Cover Page', Config = CAST(xConfig AS varchar(max)),
|
|
DTS = GETDATE(), UserID = 'CPVolian2026'
|
|
FROM
|
|
@Cont CNT INNER JOIN
|
|
tblContents ON CNT.ContentID = tblContents.ContentID;
|
|
|
|
--Update items PreviousIds
|
|
UPDATE tblItems Set PreviousID = IdToSwapTO.ItemID
|
|
FROM
|
|
tblItems
|
|
INNER JOIN
|
|
#tmpUpdate tU ON tblItems.PreviousID = tU.ItemID AND tU.BaseFlag = 0
|
|
INNER JOIN #tmpUpdate IdToSwapTO ON IdToSwapTO.ParentContentID = tU.ParentContentID AND IdToSwapTO.BaseFlag IN (1,2)
|
|
|
|
UPDATE tblItems Set DeleteStatus = 1, DTS = GETDATE(), UserID = 'CPVolian2026'
|
|
FROM
|
|
#tmpUpdate tU INNER JOIN
|
|
tblItems ON tU.ContentID = tblItems.ContentID
|
|
WHERE tU.BaseFlag = 0;
|
|
|
|
UPDATE tblContents Set DeleteStatus = 1, DTS = GETDATE(), UserID = 'CPVolian2026'
|
|
FROM
|
|
#tmpUpdate tU INNER JOIN
|
|
tblContents ON tU.ContentID = tblContents.ContentID
|
|
WHERE tU.BaseFlag = 0;
|
|
|
|
DELETE FROM
|
|
tblEntries
|
|
FROM
|
|
tblEntries
|
|
INNER JOIN
|
|
#tmpUpdate tU ON tU.ContentID = tblEntries.ContentID
|
|
WHERE tU.BaseFlag in (0,2);
|
|
|
|
INSERT INTO [dbo].[tblEntries]
|
|
([ContentID]
|
|
,[DocID]
|
|
,[DTS]
|
|
,[UserID]
|
|
,[DeleteStatus])
|
|
SELECT
|
|
DISTINCT tU.ContentID,
|
|
766, -- docid 766 "Cover Page 1"
|
|
GETDATE(),
|
|
'CPVolian2026',
|
|
0
|
|
FROM
|
|
#tmpUpdate tU
|
|
INNER JOIN
|
|
@Cont CNT ON tU.ContentID = CNT.ContentID
|
|
WHERE tU.BaseFlag = 2;
|
|
|
|
drop table #tmpUpdate;
|
|
|
|
IF (@@Error = 0) SELECT '[Barakah Cover Page Consolidation] Succeeded'
|
|
ELSE SELECT '[Barakah Cover Page Consolidation] Error'
|
|
go
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|