diff --git a/PROMS/DataLoader/PROMStoAPPR.sql b/PROMS/DataLoader/PROMStoAPPR.sql index 38ec3689..acebeeee 100644 --- a/PROMS/DataLoader/PROMStoAPPR.sql +++ b/PROMS/DataLoader/PROMStoAPPR.sql @@ -2123,142 +2123,76 @@ select [dbo].[vefn_CheckAllXML](1) CREATE function [dbo].[vefn_CheckAllXML](@DocVersionID int) returns xml begin +--temp table for max checkid + declare @tChecks table (CheckID int) + insert into @tChecks + select max(cc.checkid) checkid from checks cc inner join stages ss on cc.stageid = ss.stageid + inner join revisions rr on cc.revisionid = rr.revisionid where ss.isapproved = 1 group by rr.itemid +--temp table for sibling itemid + declare @tItems table (ItemID int) + insert into @tItems + select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0) +--temp table for multi valued roids + declare @mvROIDS table (ROID varchar(max)) + insert into @mvROIDS + select roid from (select distinct r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue + from checks cc cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1)) t1 group by roid having count(*) > 1 +--temp table for multi valued transitionids + declare @mvTransitions table (TransitionID int) + insert into @mvTransitions + select transitionid from (select distinct r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue + from checks cc cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1)) t1 group by transitionid having count(*) > 1 +--temp table for multi valued docids + declare @mvLibDocs table (DocID int) + insert into @mvLibDocs + select docid from (select distinct r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate + from checks cc cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1)) t1 group by docid having count(*) > 1 +--temp table for roids + declare @tROIDS table (ItemID int,ROID varchar(max),ROValue varchar(max),CheckID int) + insert into @tROIDS + select rr.itemid,r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue, cc.checkid + from checks cc inner join revisions rr on cc.revisionid = rr.revisionid + cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1) +--temp table for transitions + declare @tTransitions table (ItemID int,TransitionID int,TransitionValue varchar(max),CheckID int) + insert into @tTransitions + select rr.itemid,r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue,cc.checkid + from checks cc inner join revisions rr on cc.revisionid = rr.revisionid + cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1) +--temp table for libdocs + declare @tLibDocs table (ItemID int, DocID int, DocDate datetime,CheckID int) + insert into @tLibDocs + select rr.itemid,r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate,cc.checkid + from checks cc inner join revisions rr on cc.revisionid = rr.revisionid + cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1) + +--get all inconsitencies accross set declare @ChkXML xml set @ChkXML = ( select (--ro inconsistencies accross set - select ItemID,ROID,ROValue from - ( - select rr.itemid,r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue - from checks cc - inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1) - where cc.checkid in - --latest checkid with approved stage for each itemid - ( - select max(cc.checkid) checkid - from checks cc - inner join stages ss on cc.stageid = ss.stageid - inner join revisions rr on cc.revisionid = rr.revisionid - where ss.isapproved = 1 - group by rr.itemid - ) - and rr.itemid in (select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0)) - ) ROCheck - where roid in - ( - --get roids that has more than 1 rovalue from distinct roid and rovalue from checks for latest checkid with approved stage for each itemid - select roid from - ( - --distinct roid and rovalue from checks for latest checkid with approved stage for each itemid - select distinct r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue - from checks cc - cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1) - where cc.checkid in - --latest checkid with approved stage for each itemid - ( - select max(cc.checkid) checkid - from checks cc - inner join stages ss on cc.stageid = ss.stageid - inner join revisions rr on cc.revisionid = rr.revisionid - where ss.isapproved = 1 - group by rr.itemid - ) - ) t1 - group by roid having count(*) > 1 - ) - order by itemid + select ROCheck.ItemID,ROCheck.ROID,ROCheck.ROValue from @tROIDS ROCheck + inner join @tChecks tc on ROCheck.checkid = tc.checkid + inner join @tItems ti on ROCheck.itemid = ti.itemid + inner join @mvROIDS mv on ROCheck.roid = mv.roid + order by ROCheck.itemid for xml auto,root('ROChecks'),type ), ---jcb (--transition inconsistencies accross set - select ItemID,TransitionID,TransitionValue from - ( - select rr.itemid,r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue - from checks cc - inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1) - where cc.checkid in - --latest checkid with approved stage for each itemid - ( - select max(cc.checkid) checkid - from checks cc - inner join stages ss on cc.stageid = ss.stageid - inner join revisions rr on cc.revisionid = rr.revisionid - where ss.isapproved = 1 - group by rr.itemid - ) - and rr.itemid in (select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0)) - ) TransitionCheck - where transitionid in - ( - --get transitionids that has more than 1 transitionvalue from distinct transitionid and transitionvalue from checks for latest checkid with approved stage for each itemid - select transitionid from - ( - --distinct docid and docdate from checks for latest checkid with approved stage for each itemid - select distinct r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue - from checks cc - cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1) - where cc.checkid in - --latest checkid with approved stage for each itemid - ( - select max(cc.checkid) checkid - from checks cc - inner join stages ss on cc.stageid = ss.stageid - inner join revisions rr on cc.revisionid = rr.revisionid - where ss.isapproved = 1 - group by rr.itemid - ) - ) t1 - group by transitionid having count(*) > 1 - ) - order by itemid + select TransitionCheck.ItemID,TransitionCheck.TransitionID,TransitionCheck.TransitionValue from @tTransitions TransitionCheck + inner join @tChecks tc on TransitionCheck.checkid = tc.checkid + inner join @tItems ti on TransitionCheck.itemid = ti.itemid + inner join @mvTransitions mv on TransitionCheck.TransitionID = mv.TransitionID + order by TransitionCheck.itemid for xml auto,root('TransitionChecks'),type ), ---end jcb (--libdoc inconsistencies accross set - select ItemID,DocID,DocDate from - ( - select rr.itemid,r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate - from checks cc - inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1) - where cc.checkid in - --latest checkid with approved stage for each itemid - ( - select max(cc.checkid) checkid - from checks cc - inner join stages ss on cc.stageid = ss.stageid - inner join revisions rr on cc.revisionid = rr.revisionid - where ss.isapproved = 1 - group by rr.itemid - ) - and rr.itemid in (select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0)) - ) LibDocCheck - where docid in - ( - --get docids that has more than 1 docdate from distinct docid and docdate from checks for latest checkid with approved stage for each itemid - select docid from - ( - --distinct docid and docdate from checks for latest checkid with approved stage for each itemid - select distinct r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate - from checks cc - cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1) - where cc.checkid in - --latest checkid with approved stage for each itemid - ( - select max(cc.checkid) checkid - from checks cc - inner join stages ss on cc.stageid = ss.stageid - inner join revisions rr on cc.revisionid = rr.revisionid - where ss.isapproved = 1 - group by rr.itemid - ) - ) t1 - group by docid having count(*) > 1 - ) - order by itemid + select LibDocCheck.ItemID,LibDocCheck.DocID,LibDocCheck.DocDate from @tLibDocs LibDocCheck + inner join @tChecks tc on LibDocCheck.checkid = tc.checkid + inner join @tItems ti on LibDocCheck.itemid = ti.itemid + inner join @mvLibDocs mv on LibDocCheck.docid = mv.docid + order by LibDocCheck.itemid for xml auto,root('LibDocChecks'),type ) for xml path(''),ROOT ('ConsistencyChecks'),type diff --git a/PROMS/DataLoader/Sections.cs b/PROMS/DataLoader/Sections.cs index 53b7db36..00a16ef8 100644 --- a/PROMS/DataLoader/Sections.cs +++ b/PROMS/DataLoader/Sections.cs @@ -408,6 +408,7 @@ namespace DataLoader DateTime dts = GetDTS(dr["Date"].ToString(), dr["Time"].ToString()); ConfigInfo ci = new ConfigInfo(null); + ci.AddItem("History", "RecID", rid); ci.AddItem("Section", "OldType", stype); diff --git a/PROMS/DataLoader/Steps.cs b/PROMS/DataLoader/Steps.cs index c656e19b..9964d7cb 100644 --- a/PROMS/DataLoader/Steps.cs +++ b/PROMS/DataLoader/Steps.cs @@ -27,6 +27,7 @@ namespace DataLoader frmMain.UpdateLabels(0, 0, 1); ConfigInfo ci = new ConfigInfo(null); + ci.AddItem("History", "RecID", Recid); string stptext = null; if (userid == null || userid == "") userid = "Migration"; int tok = -1;