﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="514c959d-5679-4201-9dbb-debb720fef26" codekey="ItemVersionOverview" categoryCodekey="Testing" name="Item Versioning Overview" description="displays the versions of the items representing items which can be assigned to modules or modules/eduoffers themselves">
      <MetaData created="2013-10-25T10:49:18" createdBy="Administrator VIWIS (Administrator)" createdBy_user_id="3" modified="2014-12-15T13:50:03" modifiedBy="Gabi Wappler" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="cf85efc9-150b-4eee-8c20-929a112b658c" isStandard="False" isUsedByMenu="False" />
      <Parameters>
        <Parameter id="93ea204b-dc5e-4c5e-a2fb-5bddfba00150" isRequired="True"  name="BausteinTyp" contextName="BausteinTyp" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="17e1339a-f602-4ddb-a763-50b517d774de" isRequired="True"  name="Wahrheitswert" contextName="Externer Baustein" defaultValue="0" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="24d85b3a-ea7b-4262-b2f6-32e62f3efe07" isRequired="False"  name="AuswahlItems per Typ" contextName="AuswahlItems per Typ" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles />
      <command>--DEBUG Variables
--declare @item_id uniqueidentifier = '4DACE784-4AD6-4689-944F-A5D3B1F7475B' -- '83997A3F-F561-4275-AF85-C5017DDDCD63' -- NULL -- 
--declare @itemType NVARCHAR(256) = 'Theme' --'Document' --'Training' --'Module' --'Test'  -- -- 
--declare @boolean bit = 0
--declare @current_mandator_id uniqueidentifier = 'CF85EFC9-150B-4EEE-8C20-929A112B658C'
--DEBUG Variables

DECLARE @itemTypeVersion NVARCHAR(256)
DECLARE @whereClause NVARCHAR(512)
DECLARE @itemType_id INT
DECLARE @table NVARCHAR(200)
DECLARE @versionTable NVARCHAR(200)
DECLARE @dynQuery NVARCHAR(MAX)

SELECT @itemType_id = tblItemTypes.id, 
       @table = 'tbl' + CASE codekey
                            WHEN 'Test' THEN 'TasTests'
                            ELSE codekey + 's'
                        END, 
       @versionTable = 'tbl' + CASE codekey
                                   WHEN 'Test' THEN 'TasTest'
                                   ELSE codekey
                               END + 'Versions',
       @itemTypeVersion = codekey + 'Version'
  FROM tblItemTypes
 WHERE codekey = @itemType

IF @item_id IS NULL
    BEGIN
        SET @whereClause = ' where tblVersionMap.id in (select id from ' + @table + ')'
    END
ELSE
    BEGIN
        SET @whereClause = ' where tblVersionMap.id = ''' + CAST(@item_id AS NVARCHAR(40)) + ''''
    END

IF @boolean = 1
    BEGIN
        SET @table = 'tblExternalItems'
        SET @versionTable = 'tblExternalItemVersions'
        IF @item_id IS NULL
            SET @whereClause = 'where 1 = 1  '
        ELSE
            SET @whereClause = 'where id = ''' + CAST(@item_id AS NVARCHAR(40)) + ''''
    END

SELECT @dynQuery = 'select mainVersion, ' + @versionTable + '.*, tblItemVersions.* FROM (select id, mainVersion, max(case when tableName = ''' + @versionTable
+ ''' then subVersion end) as ' + @itemTypeVersion + ', max(case when tableName = ''tblItemVersions'' then subVersion end) as itemVersion FROM tblVersionMap '
+ @whereClause + ' group by id, mainVersion) AS versions join tblItemVersions on versions.itemVersion = tblItemVersions.version and tblItemVersions.id = versions.id join ' 
+ @versionTable + ' on versions.' + @itemTypeVersion + ' = ' + @versionTable + '.version AND ' + @versionTable + '.id = versions.id'

--select @dynQuery

IF EXISTS(SELECT * FROM sys.tables WHERE name = @table)
AND EXISTS(SELECT *
             FROM sys.tables
            WHERE name = @versionTable)
    BEGIN EXEC (@dynQuery)
    END
ELSE
    BEGIN
        SELECT 'The selected ItemType is not versioned yet (' + @itemType + ') !!!' AS 'NOT VERSIONED'
    END
</command>
    </Report>
  </Reports>
  <Parameters>
    <Parameter id="93ea204b-dc5e-4c5e-a2fb-5bddfba00150" mandator_id="cf85efc9-150b-4eee-8c20-929a112b658c" isSystem="False" name="BausteinTyp" reportParameterType_id="cf9a5701-3e0a-4d05-94f5-c9351e09b7ff" queryParameterName="@itemType" />
    <Parameter id="17e1339a-f602-4ddb-a763-50b517d774de" mandator_id="cf85efc9-150b-4eee-8c20-929a112b658c" isSystem="False" name="Wahrheitswert" reportParameterType_id="411ec93b-ab23-41ba-91d6-e7dc0235b5af" queryParameterName="@boolean" />
    <Parameter id="24d85b3a-ea7b-4262-b2f6-32e62f3efe07" isSystem="False" name="AuswahlItems per Typ" reportParameterType_id="17ff1e13-3694-470a-b49a-39365569a442" queryParameterName="@item_id" />
  </Parameters>
  <ParameterTypes>
    <ParameterType id="cf9a5701-3e0a-4d05-94f5-c9351e09b7ff" isSystem="True" name="ItemType (all)" datatype="StringDDL" dataValueField="value" dataTextField="text">
      <query>SELECT codekey value, codekey text FROM tblItemTypes</query>
    </ParameterType>
    <ParameterType id="411ec93b-ab23-41ba-91d6-e7dc0235b5af" isSystem="True" name="Boolean" datatype="StringDDL" dataValueField="Value" dataTextField="Text">
      <query>
        SELECT 0 AS Value, 'Nein' AS Text
        UNION
        SELECT 1 AS Value, 'Ja' AS Text
      </query>
    </ParameterType>
    <ParameterType id="17ff1e13-3694-470a-b49a-39365569a442" isSystem="False" name="AuswahlItems (Typ)" datatype="GuidDDL" dataValueField="ItemID" dataTextField="title">
      <query>if @boolean = 1
begin
select tblItems.title, tblExternalItems.id as itemId 
from tblExternalItems 
inner join tblItems on tblItems.id = tblExternalItems.id 
where  tblItems.mandator_id = @current_mandator_id 
order by title
end 
else
begin
select title, tblItems.id as itemId 
from tblItems 
inner join tblItemTypes on tblItemTypes.id = tblItems.itemType_id 
where tblItemTypes.codekey = @itemType and tblItems.mandator_id = @current_mandator_id 
order by title
end</query>
      <Parameters>
        <Parameter id="93ea204b-dc5e-4c5e-a2fb-5bddfba00150" isRequired="False"  name="BausteinTyp" contextName="BausteinTyp" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="17e1339a-f602-4ddb-a763-50b517d774de" isRequired="False"  name="Wahrheitswert" contextName="Wahrheitswert" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
    </ParameterType>
  </ParameterTypes>
</ReportsExport>