﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="47cb08a9-20b3-48b6-ad9a-3823574b3b10" codekey="LearningStatusPerCompany" categoryCodekey="UserStats" name="Lernstati nach Firma" description="Auflisten der Benutzerstati pro Baustein zu der Vorselektion">
      <MetaData created="2013-09-09T14:51:18" createdBy="Administrator VIWIS (Administrator)" createdBy_user_id="2" modified="2013-09-12T15:24:50" modifiedBy="Administrator VIWIS" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="ad9c5817-4c49-454f-8986-2389c9153cb5" mandatorName="GRIPS" isStandard="False" isUsedByMenu="False" />
      <Parameters>
        <Parameter id="b16c61ea-1b4d-46e5-a418-46a8c6dfec11" isRequired="True" name="Firma" contextName="Firma" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles>
        <Role id="30" />
        <Role id="80" />
        <Role id="90" />
      </Roles>
      <command>
        --DECLARE @current_mandator_id UNIQUEIDENTIFIER
        --DECLARE @company_ad NVARCHAR(256)

        DECLARE @userItems TABLE
        (
        user_id INT,
        item_id UNIQUEIDENTIFIER,
        itemType_id INT,
        status INT
        )

        DECLARE @resultTable TABLE(
        firstname NVARCHAR(128),
        lastname NVARCHAR(128),
        username NVARCHAR(64),
        email NVARCHAR(64),
        company NVARCHAR(256),
        --item_id UNIQUEIDENTIFIER,
        itemName NVARCHAR(255),
        itemType NVARCHAR(255),
        status NVARCHAR(255),
        passed NVARCHAR(64)
        )


        INSERT INTO @userItems
        SELECT DISTINCT
        intUserCn AS user_id,
        tblItems.id AS item_id,
        tblItems.itemType_id AS itemType_id,
        0
        FROM v_Users
        INNER  JOIN tblUsersTargetGroups ON v_Users.intUserCn = tblUsersTargetGroups.UserCn
        INNER JOIN tblEduOffersTargetGroups ON tblEduOffersTargetGroups.targetGroup_id = tblUsersTargetGroups.targetGroup_id
        INNER JOIN tblEduOffersModules ON tblEduOffersModules.eduOffer_id = tblEduOffersTargetGroups.eduOffer_id
        INNER JOIN tblEduOffers ON tblEduOffers.id = tblEduOffersModules.eduOffer_id
        INNER JOIN tblModuleItems ON tblModuleItems.module_id = tblEduOffersModules.module_id
        INNER JOIN tblItems ON tblItems.id = tblModuleItems.item_id
        WHERE v_Users.mandator_id =  @current_mandator_id
        AND tblItems.mandator_id = @current_mandator_id
        AND tblEduOffers.mandator_id = @current_mandator_id
        AND tblItems.itemType_id IN (0,1,6,8)
        AND (@company_ad IS NULL OR v_Users.companyAD = @company_ad)

        UPDATE @userItems
        SET status = tblStatusUserItemHistory.status
        FROM @userItems AS updateTable
        INNER JOIN tblStatusUserItemHistory
        ON tblStatusUserItemHistory.user_id = updateTable.user_id
        AND tblStatusUserItemHistory.item_id = updateTable.item_id
        WHERE tblStatusUserItemHistory.endDate IS NULL OR tblStatusUserItemHistory.endDate = tblStatusUserItemHistory.startDate

        UPDATE
        updateTable
        SET
        status =
        ISNULL((
        SELECT
        MAX(tblStatusUserItemHistory.status)
        FROM
        tblStatusUserItemHistory
        INNER JOIN
        tblTrainings
        ON tblTrainings.id = tblStatusUserItemHistory.item_id
        WHERE
        tblStatusUserItemHistory.user_id = updateTable.user_id AND tblTrainings.trainingTitle_id = updateTable.item_id
        GROUP BY
        tblStatusUserItemHistory.user_id, tblTrainings.trainingTitle_id
        ),0)
        FROM @userItems AS updateTable
        WHERE
        updateTable.itemType_id = 8

        INSERT INTO @resultTable
        SELECT Vorname,
        Nachname,
        descUserCn AS Benutzername,
        email,
        companyAD,
        tblItems.title,
        CASE tblItems.itemType_id WHEN 1 THEN 'WBT'
        WHEN 0 THEN 'TEST'
        WHEN 8 THEN 'Seminar'
        WHEN 6 THEN 'Dokument'
        END, --tblItems.itemType_id,
        CASE updateUsers.status WHEN 0 THEN
        CASE WHEN tblItems.itemType_id = 8 THEN
        'nicht teilgenommen'
        ELSE
        'nicht bearbeitet'
        END
        WHEN 1 THEN 'in Bearbeitung'
        WHEN 2 THEN
        CASE WHEN tblItems.itemType_id = 8 THEN
        'Teilnahme bestätigt'
        ELSE
        'bearbeitet'
        END
        WHEN 3 THEN 'bearbeitet'
        ELSE '-' END, --.status,
        CASE tblItems.itemType_id WHEN 0 THEN
        CASE updateUsers.status WHEN 2 THEN 'bestanden'
        WHEN 3 THEN 'nicht bestanden'
        ELSE '-'
        END
        ELSE '-'
        END --passed
        FROM v_Users
        INNER JOIN @userItems AS updateUsers ON updateUsers.user_id = v_Users.intUserCn
        INNER JOIN tblItems ON tblItems.id = item_id
        INNER JOIN tblUsersContacts on tblUsersContacts.user_id = v_Users.intUserCn AND contactType_id = 1

        SELECT firstname AS Vorname,
        lastname AS Nachname,
        username AS Benutzername,
        email AS 'E-Mail',
        company AS Organisation,
        itemName AS Baustein,
        itemType AS Typ,
        status AS Status,
        passed AS 'bestanden / nicht bestanden'
        FROM 	@resultTable
        ORDER BY company, lastname, firstname</command>
    </Report>
  </Reports>
  <Parameters>
    <Parameter id="b16c61ea-1b4d-46e5-a418-46a8c6dfec11" isSystem="False" name="Firma" reportParameterType_id="f15e7c62-45ed-4cb4-9bad-d0f24799c3e9" queryParameterName="@company_ad" />
  </Parameters>
  <ParameterTypes>
    <ParameterType id="f15e7c62-45ed-4cb4-9bad-d0f24799c3e9" isSystem="True" name="Auswahlliste Strings" datatype="StringDDL" dataValueField="" dataTextField="">
      <query>select distinct companyAD as value,companyAD as text from v_Users where mandator_id = @current_mandator_id and companyAD is not null</query>
    </ParameterType>
  </ParameterTypes>
</ReportsExport>