﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="f69ce654-ab3b-4c5b-ba17-be19e3c206a5" codekey="Handelshof_AuswertungSeminare" categoryCodekey="Trainings" name="Auswertung Seminare" description="Stellt alle Seminartermine für User mit dem Status “Teilnahme bestätigt” dar.">
      <MetaData created="2019-07-02T10:43:35" createdBy="Rolle Administrator (Administrator)" createdBy_user_id="12" modified="2019-07-02T11:19:58" modifiedBy="Rolle Administrator" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="IncludeMandators" mandator_id="96ba2868-8baf-4e69-b1fb-d2cc6d6832e8" mandatorName="handelshofakademie" isStandard="False" isUsedByMenu="False" />
      <Parameters>
        <Parameter id="74fc2209-57cf-4c12-8795-61ef97b9cf4f" isRequired="False" allowMultiSelect="True" name="Target Groups available for Current User" contextName="Zielgruppe" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="6ae269c9-c842-4fd6-96c7-0a6125828996" isRequired="False" allowMultiSelect="True" name="Bereich" contextName="Abteilung" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles>
        <Role id="80" />
        <Role id="90" />
      </Roles>
      <command>-- Test Data -------------------------------------------------------------
--DECLARE @current_mandator_id UNIQUEIDENTIFIER;
--DECLARE @current_user_id INT;
--DECLARE @availableTargetGroupIds dbo.typeIntList;
--DECLARE @division dbo.typeStringList;

--SET @current_mandator_id = '96BA2868-8BAF-4E69-B1FB-D2CC6D6832E8';
--SET @current_user_id = 12;
--INSERT INTO @availableTargetGroupIds VALUES (14), (12)
--INSERT INTO @division VALUES ('Abteilung')
-- End Test Data ---------------------------------------------------------

DECLARE @hasTargetGroups BIT = 0;

IF EXISTS(SELECT * FROM @availableTargetGroupIds)
BEGIN
    SET @hasTargetGroups  = 1;
END

DECLARE @hasDivisions BIT = 0;

IF EXISTS(SELECT * FROM @division)
BEGIN
    SET @hasDivisions  = 1;
END


SELECT
    CASE u.blocked
        WHEN 0
            THEN 'Ja'
        ELSE
            'Nein'
    END          AS 'Nutzer gesperrt? Ja / nein',
    u.Nachname   AS 'Name',
    u.Vorname,
    u.descUserCn AS 'Kennung',
    u.division   AS 'Abteilung',
    u.office     AS 'Dienststelle',
    'Teilnahme bestätigt' AS 'Status',
    FORMAT(uts.actionTime, 'dd.MM.yyyy') AS 'Status vom',
    CONCAT
    (
        ti.title,
        ' (',
        FORMAT(t.startDate, 'dd.MM.yyyy'),
        ' - ',
        FORMAT(t.endDate, 'dd.MM.yyyy'), ')'
    )           AS 'Seminartermin'
FROM
    tableUsers u
    INNER JOIN tblUserTrainingActions uts
        ON  uts.[user_id] = u.intUserCn
    INNER JOIN tblTrainings t
        ON  t.id = uts.training_id
    INNER JOIN tblItems ti
        ON  ti.id = t.id
WHERE
    u.mandator_id = @current_mandator_id
    AND uts.actionclass_id = 80 -- S90_PARTICIPATED /  S85_PARTICIPATED_NO_POLLS
    AND
    (
        @hasTargetGroups = 0
        OR 
        EXISTS
        (
            SELECT
                *
            FROM
                tblUsersTargetGroups utg
                INNER JOIN @availableTargetGroupIds tgi
                    ON utg.targetGroup_id = tgi.value
            WHERE
                utg.UserCn = u.intUserCn
        )
    )
    AND
    (
        @hasDivisions = 0
        OR
        EXISTS
        (
            SELECT
                *
            FROM
                @division
            WHERE
                value = u.division
        )
    )
ORDER BY
    u.Nachname;</command>
    </Report>
  </Reports>
  <Parameters>
    <Parameter id="74fc2209-57cf-4c12-8795-61ef97b9cf4f" isSystem="True" name="Target Groups available for Current User" reportParameterType_id="37683520-d150-4e2c-8343-1aa8eabfdb67" queryParameterName="@availableTargetGroupIds" />
    <Parameter id="6ae269c9-c842-4fd6-96c7-0a6125828996" isSystem="False" name="Bereich" reportParameterType_id="e7333e57-684c-4b48-93fe-fd396d5f3559" queryParameterName="@division" />
  </Parameters>
  <ParameterTypes>
    <ParameterType id="37683520-d150-4e2c-8343-1aa8eabfdb67" isSystem="True" name="Target Groups available for Current User" datatype="IntegerDDL" dataValueField="id" dataTextField="title">
      <query>SELECT
    id, 
    title
FROM
    tblTargetGroups
WHERE
    mandator_id = @current_mandator_id
    AND
    (
        -- User is Platform Admin or Org Unit Manager
        EXISTS
        ( 
            SELECT
                *
            FROM
                v_Users
            WHERE
                intUserCn = @current_user_id
                AND
                (
                    securityId = 100
                    OR EXISTS(SELECT * FROM tblUsersOrganisationUnits WHERE user_id = @current_user_id AND position &gt; 0)
                )
        )
        OR
        -- User is Target Group Manager for the TG
        EXISTS
        ( 
            SELECT
                *
            FROM
                tblTargetGroupManagers
            WHERE
                tblTargetGroupManagers.user_id = @current_user_id
                AND tblTargetGroupManagers.targetGroup_id = tblTargetGroups.id
        )
        OR
        -- User is authorised for all target groups, or all OUs
        EXISTS
        (
            SELECT
                *
            FROM
                tblRolesFunctions
                JOIN tblRoles
                    ON  tblRoles.id = tblRolesFunctions.role_id
                JOIN tblFunctions
                    ON  tblFunctions.id = tblRolesFunctions.function_id
                    AND
                    (
                        tblFunctions.shortcut = 'FcnIsAuthorizedForAllTGs'
                        OR
                        tblFunctions.shortcut = 'FcnIsAuthorizedForAllOrgUnits'
                    )
                INNER JOIN v_Users
                    ON v_Users.SecurityID = tblRoles.id
            WHERE
                tblRolesFunctions.mandator_id = @current_mandator_id
                AND v_Users.intUserCn = @current_user_id
        )
    )
    AND defaultforlibrary = 0
ORDER BY
    title;</query>
    </ParameterType>
    <ParameterType id="e7333e57-684c-4b48-93fe-fd396d5f3559" isSystem="False" name="Bereich" datatype="StringDDL" dataValueField="division" dataTextField="division">
      <query>
        SELECT DISTINCT division
        FROM v_Users
        WHERE v_Users.mandator_id = @current_mandator_id AND division IS NOT NULL AND division != ''
        ORDER BY division
      </query>
    </ParameterType>
  </ParameterTypes>
</ReportsExport>