﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="39dd8f40-495f-46ef-a6f6-56c866b91717" codekey="BARMENIA_ItemStatusPerModule" categoryCodekey="UserStats" name="Auwertung Modulnutzung" description="Zeigt die erzielten Lernstände für alle Bausteine in dem gewählten Modul an.">
      <MetaData created="2020-07-23T14:57:42" createdBy="BARMENIA, Administrator (Administrator)" createdBy_user_id="5" modified="2020-10-09T16:38:07" modifiedBy="BARMENIA, Administrator (Administrator)" modifiedBy_user_id="5" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="510a6f44-8c3c-414e-8c1f-c320062f89dd" mandatorName="BARMENIA" isStandard="False" isUsedByMenu="False" />
      <Parameters>
        <Parameter id="22d867d1-0fa2-483a-92be-17d91508ea87" isRequired="True" allowMultiSelect="True" name="Modul" contextName="Modul" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="a5485539-67e0-4912-8255-8081a54efb3c" isRequired="False" allowMultiSelect="False" name="Zielgruppe" contextName="Zielgruppe" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="d8e4595f-8bdd-4a54-9298-8f378450e6a0" isRequired="False" allowMultiSelect="False" name="Zeitraum" contextName="Zeitraum" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles>
        <Role id="90" />
      </Roles>
      <command>
        -- Items für Module finden
        --DECLARE @dateRange_start DATETIME = '2019-01-01'
        --DECLARE @dateRange_end DATETIME = '2020-06-19'
        --DECLARE @module_id uniqueidentifier = 'F3A5E0CA-6C5E-40BB-AF56-0013B4D48481'
        --DECLARE @targetGroup_id INT

        -- Nicht auskommentieren!
        DECLARE @startDate DATETIME = ISNULL(@dateRange_start, '2015-01-01')
        DECLARE @endDate DATETIME = ISNULL(@dateRange_end, GETDATE())

        -- Der Ergebnistable
        CREATE TABLE #resultTable(
        Benutzerkennung NVARCHAR(200),
        Nachname NVARCHAR(200),
        Vorname NVARCHAR(200),
        Eintrittsdatum NVARCHAR(200),
        Zielgruppenname NVARCHAR(200),
        Modulname NVARCHAR(200),
        Bausteinname NVARCHAR(200),
        Bausteintyp NVARCHAR(200),
        Datum DATETIME,
        Status NVARCHAR(20)
        )

        -- Der Cursor
        DECLARE ModuleItemCursor CURSOR FAST_FORWARD FOR
        SELECT
        u.descUserCn,
        u.Nachname,
        u.Vorname,
        uc.customAttribute3,
        (SELECT title FROM tblItems WHERE id = mi.item_id) AS "Bausteinname",
        (SELECT itemType_id FROM tblItems WHERE id = mi.item_id) AS "Bausteintyp",
        mi.module_id,
        stats.startDate AS Datum,
        ISNULL(percentage,stats.status) AS Status
        FROM tblModuleItems mi
        -- Finde Alle User die das Item haben
        INNER JOIN v_UsersChainAssignedModuleItems uai ON uai.itemId = mi.item_id and mi.module_id IN (SELECT * FROM  @module_id)
        -- Finde das beste ergebniss für den Zeitraum für das Item und den User
        Outer APPLY(
        SELECT TOP(1) *
        FROM tblStatusUserItemHistory suih
        WHERE suih.item_id = mi.item_id
        AND suih.user_id = uai.userId
        AND suih.startDate &gt;= @startDate
        AND suih.startDate &lt;= @endDate
        ORDER BY suih.percentage DESC
        ) stats
        INNER JOIN v_Users u ON u.intUserCn = uai.userId
        INNER JOIN tblUserCustomAttributes uc ON uc.user_id = u.intUserCn
        AND (@targetGroup_id IS NULL OR (EXISTS(SELECT * FROM tblUsersTargetGroups utg WHERE utg.UserCn = u.intUserCn AND utg.targetGroup_id = @targetGroup_id)))

        DECLARE @DescUserCn NVARCHAR(12)
        DECLARE @Nachname NVARCHAR(200)
        DECLARE @Vorname NVARCHAR(200)
        DECLARE @Eintrittsdatum Date
        DECLARE @Bausteinname NVARCHAR(200)
        DECLARE @Bausteintyp INT
        DECLARE @ModuleId UNIQUEIDENTIFIER
        DECLARE @Datum DATETIME
        DECLARE @Status INT

        -- Die Schleife
        OPEN ModuleItemCursor
        FETCH NEXT FROM ModuleItemCursor INTO @DescUserCn,@Nachname,@Vorname,@Eintrittsdatum,@Bausteinname, @Bausteintyp, @ModuleId, @Datum,@Status
        WHILE @@FETCH_STATUS = 0
        BEGIN
        INSERT INTO #resultTable VALUES(
        @DescUserCn,
        @Nachname,
        @Vorname,
        ISNULL(CAST(@Eintrittsdatum AS NVARCHAR),'-'),
        ISNULL((SELECT title FROM tblTargetGroups WHERE id = @targetGroup_id),'-'),
        (SELECT COALESCE(title, titleForLearners) FROM tblItems i WHERE i.id = @ModuleId),
        @Bausteinname,
        (SELECT codeKey FROM tblItemTypes WHERE id = @Bausteintyp),
        @Datum,
        @Status
        )
        FETCH NEXT FROM ModuleItemCursor INTO @DescUserCn,@Nachname,@Vorname,@Eintrittsdatum,@Bausteinname, @Bausteintyp,@ModuleId,@Datum,@Status
        END
        CLOSE ModuleItemCursor
        DEALLOCATE ModuleItemCursor

        SELECT * FROM #resultTable
        ORDER BY Nachname,Vorname, Modulname, Bausteinname


        DROP TABLE #resultTable
      </command>
    </Report>
  </Reports>
  <Parameters>
    <Parameter id="22d867d1-0fa2-483a-92be-17d91508ea87" isSystem="True" name="Modul" reportParameterType_id="b141d3d7-0284-490f-8497-0345ae800ede" queryParameterName="@module_id" />
    <Parameter id="a5485539-67e0-4912-8255-8081a54efb3c" isSystem="True" name="Zielgruppe" reportParameterType_id="9ae252e1-18b4-4b71-982c-e27b2d3a5287" queryParameterName="@targetGroup_id" />
    <Parameter id="d8e4595f-8bdd-4a54-9298-8f378450e6a0" isSystem="True" name="Zeitraum" reportParameterType_id="abff13be-91c3-4ee1-93a3-7292f8e013ba" queryParameterName="@dateRange" />
  </Parameters>
  <ParameterTypes>
    <ParameterType id="b141d3d7-0284-490f-8497-0345ae800ede" isSystem="True" name="Module" datatype="Module" dataValueField="" dataTextField="" />
    <ParameterType id="9ae252e1-18b4-4b71-982c-e27b2d3a5287" isSystem="True" name="TargetGroup" datatype="TargetGroup" dataValueField="" dataTextField="" />
    <ParameterType id="abff13be-91c3-4ee1-93a3-7292f8e013ba" isSystem="True" name="DateRange" datatype="DateRange" dataValueField="" dataTextField="" />
  </ParameterTypes>
</ReportsExport>