Fix bug in vesp_ListUnlinkedItems (getting item when only 1 proc in working draft) & added vesp_PurgeEnhancedDocVersionsAndChildren
Allow insert of HLS before/after Enhanced: User interface for removing links of an enhanced document Enhanced: CSLA interface to unlinking docversion & contents (returns contentlist of affected items) Enhanced: Unlink DocVersion
This commit is contained in:
parent
6822406b9e
commit
0596efdd04
@ -12385,6 +12385,13 @@ BEGIN
|
|||||||
JOIN ITEMS EII ON VIS.EItemID = EII.ItemID -- Get Enhanced Parent Content ID
|
JOIN ITEMS EII ON VIS.EItemID = EII.ItemID -- Get Enhanced Parent Content ID
|
||||||
JOIN PARTS EPP ON EPP.ContentID = EII.ContentID and SPP.FromType = epp.FromType -- Get first Child
|
JOIN PARTS EPP ON EPP.ContentID = EII.ContentID and SPP.FromType = epp.FromType -- Get first Child
|
||||||
END
|
END
|
||||||
|
if @EItemID is null
|
||||||
|
BEGIN
|
||||||
|
select @EItemID = DV2.ItemID from (select *,cast(config as xml) xconfig from DocVersions
|
||||||
|
where ItemID in(select itemID from vefn_AllSiblingItems(@ItemID))) SDV -- Source DocVersion
|
||||||
|
cross apply (select * from vefn_GetEnhancedDocVersions(SDV.VersionID) where @EnhType = Type) EDV -- Enhanced DocVersion
|
||||||
|
Join DocVersions DV2 ON DV2.VersionID = EDV.VersionID -- First Procedure
|
||||||
|
END
|
||||||
Select ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged],
|
Select ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged],
|
||||||
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[II].[ItemID]) [AnnotationCount],
|
(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[II].[ItemID]) [AnnotationCount],
|
||||||
(SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[II].[ItemID]) [DocVersionCount],
|
(SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[II].[ItemID]) [DocVersionCount],
|
||||||
@ -12555,6 +12562,97 @@ IF (@@Error = 0) PRINT 'StoredProcedure [vesp_GetNonEnhancedDocVersions] Succeed
|
|||||||
ELSE PRINT 'StoredProcedure [vesp_GetNonEnhancedDocVersions] Error on Creation'
|
ELSE PRINT 'StoredProcedure [vesp_GetNonEnhancedDocVersions] Error on Creation'
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_PurgeEnhancedDocVersionsAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
|
||||||
|
DROP PROCEDURE [vesp_PurgeEnhancedDocVersionsAndChildren];
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
vesp_PurgeEnhancedDocVersionsAndChildren 8 -- Background
|
||||||
|
vesp_PurgeEnhancedDocVersionsAndChildren 9 -- Deviation
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||||
|
Copyright 2016 - Volian Enterprises, Inc. All rights reserved.
|
||||||
|
*****************************************************************************/
|
||||||
|
CREATE PROCEDURE [dbo].[vesp_PurgeEnhancedDocVersionsAndChildren](@EnhanceID int) -- @EnhanceID -- Enhanced VersionID
|
||||||
|
WITH EXECUTE AS OWNER
|
||||||
|
AS
|
||||||
|
BEGIN TRY -- Try Block
|
||||||
|
BEGIN TRANSACTION
|
||||||
|
declare @SourceID int -- Source VersionID
|
||||||
|
select @SourceID = xEnhanced.value('@VersionID','int') from (select *, cast(config as xml) xconfig from DocVersions) DV
|
||||||
|
cross apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced)
|
||||||
|
where VersionID = @EnhanceID
|
||||||
|
DECLARE @EnhType int
|
||||||
|
select @EnhType = xEnhanced.value('@Type','int')
|
||||||
|
from (select *, cast(config as xml) xConfig from DocVersions where VersionID = @SourceID) DV
|
||||||
|
cross apply xconfig.nodes('//Enhanced[@VersionID=sql:variable("@EnhanceID")]') tEnhanced(xEnhanced)
|
||||||
|
-- Fix DocVersion Records
|
||||||
|
declare @Enh TABLE
|
||||||
|
(
|
||||||
|
ID int,
|
||||||
|
xConfig xml
|
||||||
|
)
|
||||||
|
insert into @Enh
|
||||||
|
select DV.VersionID,DV.xConfig
|
||||||
|
from (select *, cast(config as xml) xConfig from DocVersions where VersionID in(@SourceID,@EnhanceID)) DV
|
||||||
|
Update @Enh Set xConfig.modify('delete //Enhanced[@Type=sql:variable("@EnhType")]') From @Enh
|
||||||
|
Update @Enh Set xConfig.modify('delete //Enhanced[@Type="0"]') From @Enh
|
||||||
|
declare @Enh1 TABLE
|
||||||
|
(
|
||||||
|
ID int,
|
||||||
|
xConfig xml
|
||||||
|
)
|
||||||
|
insert into @Enh1 -- Links to Enhanced from Source
|
||||||
|
select CC.ContentID, xConfig from (select *, cast(config as xml) xConfig from Contents) CC
|
||||||
|
JOIN VEFN_GetVersionItems(cast(@SourceID as varchar(25))) VI ON VI.ContentID = CC.ContentID
|
||||||
|
cross apply VEFN_GetNewEnhancedData(VI.itemid,@EnhType) VEN
|
||||||
|
Update @Enh1 Set xConfig.modify('delete //Enhanced[@Type=sql:variable("@EnhType")]') From @Enh1
|
||||||
|
|
||||||
|
declare @Enh2 TABLE
|
||||||
|
(
|
||||||
|
ID int,
|
||||||
|
xConfig xml
|
||||||
|
)
|
||||||
|
insert into @Enh2 -- Links to Enhanced from Source
|
||||||
|
select CC.ContentID, xConfig from (select *, cast(config as xml) xConfig from Contents) CC
|
||||||
|
JOIN VEFN_GetVersionItems(cast(@EnhanceID as varchar(25))) VI ON VI.ContentID = CC.ContentID
|
||||||
|
cross apply VEFN_GetNewEnhancedData(VI.itemid,0) VEN
|
||||||
|
set @EnhType=0
|
||||||
|
Update @Enh2 Set xConfig.modify('delete //Enhanced[@Type=sql:variable("@EnhType")]') From @Enh2
|
||||||
|
|
||||||
|
Update DV Set Config = cast(xConfig as varchar(max)) From DocVersions DV -- Remove Links from DocVersions
|
||||||
|
Join @Enh EE ON EE.ID = DV.VersionID
|
||||||
|
Update CC Set Config = cast(xconfig as varchar(max)) From Contents CC -- Remove Links from Source
|
||||||
|
Join @Enh1 EE ON EE.ID = CC.ContentID
|
||||||
|
Update CC Set Config = cast(xconfig as varchar(max)) From Contents CC -- Remove Links from Enhanced
|
||||||
|
Join @Enh2 EE ON EE.ID = CC.ContentID
|
||||||
|
|
||||||
|
SELECT [ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[LastChanged],
|
||||||
|
(SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount],
|
||||||
|
(SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount],
|
||||||
|
(SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount],
|
||||||
|
(SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount],
|
||||||
|
(SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount],
|
||||||
|
(SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount],
|
||||||
|
(SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount],
|
||||||
|
(SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount],
|
||||||
|
(SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount]
|
||||||
|
FROM [Contents] where ContentID in (Select ID From @Enh1 UNION Select ID From @Enh2)
|
||||||
|
|
||||||
|
IF( @@TRANCOUNT > 0 ) COMMIT
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH -- Catch Block
|
||||||
|
IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
|
||||||
|
ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback
|
||||||
|
EXEC vlnErrorHandler
|
||||||
|
END CATCH
|
||||||
|
GO
|
||||||
|
-- Display the status of Proc creation
|
||||||
|
IF (@@Error = 0) PRINT 'StoredProcedure [vesp_PurgeEnhancedDocVersionsAndChildren] Succeeded'
|
||||||
|
ELSE PRINT 'StoredProcedure [vesp_PurgeEnhancedDocVersionsAndChildren] Error on Creation'
|
||||||
|
go
|
||||||
|
|
||||||
PRINT 'Enhanced Document Synchronization code.'
|
PRINT 'Enhanced Document Synchronization code.'
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
@ -12582,7 +12680,7 @@ BEGIN TRY -- Try Block
|
|||||||
set nocount on
|
set nocount on
|
||||||
DECLARE @RevDate varchar(255)
|
DECLARE @RevDate varchar(255)
|
||||||
DECLARE @RevDescription varchar(255)
|
DECLARE @RevDescription varchar(255)
|
||||||
set @RevDate = '5/9/2016 8:00 AM'
|
set @RevDate = '5/11/2016 9:00 AM'
|
||||||
set @RevDescription = 'Added Enhanced Documents'
|
set @RevDescription = 'Added Enhanced Documents'
|
||||||
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
||||||
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
||||||
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -513,6 +513,26 @@ namespace VEPROMS
|
|||||||
cbxEnhVersions.SelectedIndex = 0;
|
cbxEnhVersions.SelectedIndex = 0;
|
||||||
cbxEnhVersions.Enabled = false;
|
cbxEnhVersions.Enabled = false;
|
||||||
btnNewEnh.Visible = false;
|
btnNewEnh.Visible = false;
|
||||||
|
|
||||||
|
// when in an enhanced doc version, make visible the button that allows user to unlink, need to get its 'title'
|
||||||
|
// from the source.
|
||||||
|
DocVersionInfo srcDVInfo = DocVersionInfo.Get(_DocVersionConfig.MyEnhancedDocuments[0].VersionID);
|
||||||
|
DocVersionConfig srcDVConfig = srcDVInfo.MyConfig as DocVersionConfig;
|
||||||
|
DVEnhancedDocuments dveds = srcDVConfig.MyEnhancedDocuments;
|
||||||
|
string ename = null;
|
||||||
|
foreach (DVEnhancedDocument dved in dveds)
|
||||||
|
{
|
||||||
|
if (dved.VersionID == _DocVersionConfig.MyDocVersion.VersionID)
|
||||||
|
{
|
||||||
|
ename = dved.Name;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ename != null)
|
||||||
|
{
|
||||||
|
btnUnlinkDocVersion.Visible = true;
|
||||||
|
btnUnlinkDocVersion.Text = string.Format("Remove All {0} Links", ename);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (hasEnhancedPO)
|
else if (hasEnhancedPO)
|
||||||
{
|
{
|
||||||
@ -520,6 +540,7 @@ namespace VEPROMS
|
|||||||
_Enhanced = new List<EnhancedMiniConfig>();
|
_Enhanced = new List<EnhancedMiniConfig>();
|
||||||
lbEnhanced.Visible = true;
|
lbEnhanced.Visible = true;
|
||||||
lblEnhSet.Visible = true;
|
lblEnhSet.Visible = true;
|
||||||
|
btnUnlinkDocVersion.Visible = false; // no unlink button when on a Source Document
|
||||||
foreach (DVEnhancedDocument dved in _DocVersionConfig.MyEnhancedDocuments)
|
foreach (DVEnhancedDocument dved in _DocVersionConfig.MyEnhancedDocuments)
|
||||||
{
|
{
|
||||||
DocVersionInfo dvi = DocVersionInfo.Get(dved.VersionID);
|
DocVersionInfo dvi = DocVersionInfo.Get(dved.VersionID);
|
||||||
@ -1401,6 +1422,19 @@ namespace VEPROMS
|
|||||||
btnNewEnh.Enabled = false; // for now, only do 1 at a time.
|
btnNewEnh.Enabled = false; // for now, only do 1 at a time.
|
||||||
_Initializing = false;
|
_Initializing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void btnUnlinkDocVersion_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (MessageBox.Show(this, "Are you sure you want to Unlink? Your documents will no longer link to Enhanced.", "Unlink", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
this.Cursor = Cursors.WaitCursor;
|
||||||
|
_DocVersionConfig.MyDocVersion.MyDocVersionInfo.DoUnlinkEnhancedDocVersion();
|
||||||
|
ProcessButtonClick(tiGeneral, btnGeneral);
|
||||||
|
tiEnhanced.Visible = false;
|
||||||
|
btnEnhanced.Visible = false;
|
||||||
|
this.Cursor = Cursors.Default;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
[XmlRoot("Enhanced")]
|
[XmlRoot("Enhanced")]
|
||||||
public class EnhancedMiniConfig
|
public class EnhancedMiniConfig
|
||||||
|
@ -1192,6 +1192,66 @@ namespace VEPROMS.CSLA.Library
|
|||||||
throw new DbCslaException("Error on ContentInfoList.DoEnhancedUnlink", ex);
|
throw new DbCslaException("Error on ContentInfoList.DoEnhancedUnlink", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//////
|
||||||
|
[Serializable()]
|
||||||
|
private class EnhancedDocVersionUnlinkCriteria
|
||||||
|
{
|
||||||
|
public EnhancedDocVersionUnlinkCriteria(int? enhancedDocVersionID)
|
||||||
|
{
|
||||||
|
_EnhancedDocVersionID = enhancedDocVersionID;
|
||||||
|
}
|
||||||
|
private int? _EnhancedDocVersionID;
|
||||||
|
public int? EnhancedDocVersionID
|
||||||
|
{
|
||||||
|
get { return _EnhancedDocVersionID; }
|
||||||
|
set { _EnhancedDocVersionID = value; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void DataPortal_Fetch(EnhancedDocVersionUnlinkCriteria criteria)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
|
{
|
||||||
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
|
{
|
||||||
|
cm.CommandType = CommandType.StoredProcedure;
|
||||||
|
cm.CommandText = "vesp_PurgeEnhancedDocVersionsAndChildren";
|
||||||
|
cm.Parameters.AddWithValue("@EnhanceID", criteria.EnhancedDocVersionID); // note query has 'EnhanceID'
|
||||||
|
cm.CommandTimeout = Database.DefaultTimeout;
|
||||||
|
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||||
|
{
|
||||||
|
IsReadOnly = false;
|
||||||
|
while (dr.Read())
|
||||||
|
{
|
||||||
|
ContentInfo contentInfo = new ContentInfo(dr);
|
||||||
|
this.Add(contentInfo);
|
||||||
|
}
|
||||||
|
IsReadOnly = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Database.LogException("EnhancedDocVersionUnlinkCriteria.DataPortal_Fetch", ex);
|
||||||
|
throw new DbCslaException("EnhancedDocVersionUnlinkCriteria.DataPortal_Fetch", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static ContentInfoList DoEnhancedDocVersionUnlink(int enhancedDocVersionID)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ContentInfoList tmp = DataPortal.Fetch<ContentInfoList>(new EnhancedDocVersionUnlinkCriteria(enhancedDocVersionID));
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw new DbCslaException("Error on ContentInfoList.DoEnhancedDocVersionUnlink", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion Enhanced_Unlink
|
#endregion Enhanced_Unlink
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -246,7 +246,46 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
public string SearchPath { get { return ""; } }
|
public string SearchPath { get { return ""; } }
|
||||||
#endregion
|
#endregion
|
||||||
|
#region UnlinkEnhancedDocVersion
|
||||||
|
// Unlink (clear) enhanced from source for this docversion. Refresh all related cache items.
|
||||||
|
public void DoUnlinkEnhancedDocVersion()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// get source docversion id for refresh - used later (check for null, just in case):
|
||||||
|
int sdvid = DocVersionConfig != null && DocVersionConfig.MyEnhancedDocuments.Count > 0 ? DocVersionConfig.MyEnhancedDocuments[0].VersionID : -1;
|
||||||
|
using (ContentInfoList cil = ContentInfoList.DoEnhancedDocVersionUnlink(this.VersionID))
|
||||||
|
{
|
||||||
|
foreach (ContentInfo ci in cil)
|
||||||
|
{
|
||||||
|
using (Content c = ci.Get())
|
||||||
|
{
|
||||||
|
// first refresh configs because the ContentInfo.Refresh causes events to occur that refresh screen
|
||||||
|
// and if configs aren't done first, the screen refresh, if based on config data, will not be correct.
|
||||||
|
foreach (ItemInfo ii in ci.ContentItems) ii.RefreshConfig();
|
||||||
|
ContentInfo.Refresh(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Refresh for this docversion
|
||||||
|
Refresh(DocVersion.Get(this.VersionID));
|
||||||
|
DocVersionConfigRefresh();
|
||||||
|
// Refresh the source document's cache
|
||||||
|
if (sdvid > -1)
|
||||||
|
{
|
||||||
|
using (DocVersion dv = DocVersion.Get(sdvid))
|
||||||
|
{
|
||||||
|
Refresh(dv);
|
||||||
|
dv.MyDocVersionInfo.DocVersionConfigRefresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw new DbCslaException("Error on DocVersionInfo:DoUnlinkEnhancedDocVersion", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion UnlinkEnhanced
|
||||||
#region DocVersion Config
|
#region DocVersion Config
|
||||||
[NonSerialized]
|
[NonSerialized]
|
||||||
private DocVersionConfig _DocVersionConfig;
|
private DocVersionConfig _DocVersionConfig;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user