﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="940ac3d4-194f-411d-b286-caede93380fb" codekey="IDD_Heilen" categoryCodekey="CreditPoints" name="IDD-Heilen" description="Report liefert eine Liste an Usern , die zu einem Stichtag (gewählter Zeitraum) &lt; 15h Bildungszeit gesammelt haben. ">
      <MetaData created="2020-05-25T22:58:59" createdBy="HUKeLearning, Administrator (Administrator)" createdBy_user_id="243" modified="2020-05-27T15:35:29" modifiedBy="HUKeLearning, Administrator (Administrator)" modifiedBy_user_id="243" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="f7a65c38-6ce4-41c9-aaf7-c6111449f0f0" mandatorName="HUKeLearning" isStandard="False" isUsedByMenu="False" />
      <Parameters>
        <Parameter id="d8e4595f-8bdd-4a54-9298-8f378450e6a0" isRequired="True" allowMultiSelect="False" name="Zeitraum" contextName="Datum von bis" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="7a721121-2d2e-4a3d-b9e6-c6aa238e7ab2" isRequired="False" allowMultiSelect="False" name="Auswahl (ja/nein)" contextName="Heiler" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="5ca819cc-8300-42e7-9800-87be253ef59d" isRequired="False" allowMultiSelect="False" name="MKN (ja/nein)" contextName="MKN (ja/nein)" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="779f1693-3f4b-4d25-8810-e8f0761491d3" isRequired="False" allowMultiSelect="False" name="Sachkunde (ja/nein)" contextName="Sachkunde (ja/nein)" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles>
        <Role id="90" />
      </Roles>
      <command>
		  --DECLARE @current_mandator_id UNIQUEIDENTIFIER = 'F7A65C38-6CE4-41C9-AAF7-C6111449F0F0'
		  --@current_user_id
		  --DECLARE @dateRange_start DATETIME
		  --DECLARE @dateRange_end DATETIME
		  --DECLARE @selection_yesno INT
		  --DECLARE @selection_mkn INT
		  --DECLARE @selection_sachkunde INT
		  SET @dateRange_start = DATEADD(DAY, DATEDIFF(DAY, 0, @dateRange_start),0)
		  SET @dateRange_end = DATEADD(DAY, DATEDIFF(DAY, 0, @dateRange_end),0)

		  DECLARE @maxEducationTime INT
		  SET @maxEducationTime = 15*60
		  -- we have to set the date information to the beginning of the DAY

		  CREATE TABLE #userList
		  (
		  user_id INT,
		  descUserCn NVARCHAR(200),
		  firstName NVARCHAR(200),
		  lastName NVARCHAR(200),
		  educationTime INT
		  )
		  CREATE TABLE #ouManagers
		  (
		  orgUnit_id UNIQUEIDENTIFIER,
		  managers NVARCHAR(MAX)
		  )
		  CREATE TABLE #usersOUManager
		  (
		  user_id INT,
		  orgUnit_id UNIQUEIDENTIFIER, -- if the user itself is a manager get the parent OU in this table
		  )
		  CREATE TABLE #customProperties
		  (
		  user_id INT,
		  huk_id NVARCHAR(200) NULL,
		  sachkunde NVARCHAR(200) NULL, -- Sachkunde customAttribute07
		  mindestkenntnis NVARCHAR(200) NULL, -- MKN customAttribute15
		  vermittlung DATETIME NULL, -- vermittlung customAttribute17
		  heiler INT NULL, --Heiler customAttribute18
		  )

		  -- getting the relevant user for the IDD-Heiler
		  INSERT INTO #userList
		  SELECT
		  intUserCn,
		  descUserCn,
		  Vorname,
		  Nachname,
		  ISNULL(educationTime,0)
		  FROM v_Users
		  INNER JOIN tblUserCustomAttributes AS uca ON uca.user_id = v_Users.intUserCn
		  LEFT JOIN
		  (
		  SELECT uis.user_id, ISNULL(SUM(uis.educationTime),0) AS educationTime FROM tblUserItemScores AS uis
		  WHERE uis.endDate BETWEEN @dateRange_start AND @dateRange_end
		  GROUP BY uis.user_id
		  ) AS educationTime ON educationTime.user_id = v_Users.intUserCn
		  WHERE uca.customAttribute2 IN
		  (
		  'KDB Leiter',
		  'HUK Vertrauensfrau',
		  'HUK Vertrauensmann',
		  'KDB Leiterin'
		  )
		  AND ISNULL(educationTime.educationTime,0) &lt; @maxEducationTime

		  --getting managers for the OrgUnits
		  INSERT INTO #ouManagers
		  SELECT tblUsersOrganisationUnits.organisationunit_id,
		  STUFF(
		  (SELECT ',' + v_Users.Nachname + ', ' + v_Users.Vorname
		  FROM v_Users
		  WHERE v_Users.intUserCn = tblUsersOrganisationUnits.user_id
		  FOR XML PATH (''))
		  , 1, 1, '')
		  FROM v_Users
		  JOIN tblUsersOrganisationUnits ON tblUsersOrganisationUnits.user_id = v_Users.intUserCn
		  WHERE v_Users.mandator_id = @current_mandator_id
		  AND tblUsersOrganisationUnits.position = 1
		  ORDER BY Nachname, Vorname

		  -- we have multiple OUs for a User
		  -- getting all those managers for those users
		  INSERT INTO #usersOUManager
		  SELECT
		  uou.user_id,
		  CASE WHEN uou.position = 1 THEN
		  (SELECT TOP 1 ou.parent_id FROM tblOrganisationUnits AS ou
		  WHERE ou.id = uou.organisationUnit_id)
		  ELSE
		  uou.organisationUnit_id
		  END AS orgUnit_id
		  FROM tblUsersOrganisationUnits AS uou

		  INSERT INTO #customProperties
		  SELECT
		  ul.user_id,
		  uca.customAttribute1,
		  uca.customAttribute7,
		  uca.customAttribute15,
		  uca.customAttribute17,
		  uca.customAttribute18
		  FROM #userList AS ul
		  LEFT JOIN tblUserCustomAttributes AS uca ON ul.user_id = uca.user_id

		  SELECT
		  cp.huk_id AS 'HUKiD',
		  ul.lastName AS 'Name',
		  ul.firstName  AS 'Vorname',
		  ISNULL(om.managers, '') AS 'Führungskraft',
		  CASE WHEN cp.sachkunde IS NULL THEN 'Nein' ELSE 'Ja' END AS 'Sachkunde',
		  CASE WHEN ISNULL(cp.mindestkenntnis,'nein') = 'nein' THEN 'Nein' ELSE 'Ja' END AS 'MKN',
		  cp.vermittlung 'Vermittlung',
		  CASE WHEN ISNULL(cp.heiler,0) = 0 THEN 'Nein' ELSE 'Ja' END AS 'Heiler',
		  CAST(ul.educationTime/60 AS NVARCHAR(2)) + ':' + RIGHT('00' + CAST(ul.educationTime - (ul.educationTime/60 * 60) AS NVARCHAR(2)),2)  AS 'BZ' -- h:mm
		  FROM #userList AS ul
		  LEFT JOIN #customProperties AS cp ON cp.user_id = ul.user_id
		  LEFT JOIN #usersOUManager AS uom ON uom.user_id = ul.user_id
		  LEFT JOIN #ouManagers AS om ON om.orgUnit_id = uom.orgUnit_id
		  WHERE
		  (
		  @selection_yesno IS NULL OR @selection_yesno = ISNULL(cp.heiler,0)
		  )
		  AND
		  (
		  @selection_mkn IS NULL OR
		  (
		  LOWER(ISNULL(cp.mindestkenntnis,'nein')) = CASE WHEN ISNULL(@selection_mkn,0) = 0 THEN 'nein' ELSE 'ja' END
		  )
		  )
		  AND
		  (
		  @selection_sachkunde IS NULL OR @selection_sachkunde = CASE WHEN cp.sachkunde IS NULL THEN 0 ELSE 1 END
		  )
		  ORDER BY ul.descUserCn

		  DROP TABLE #customProperties
		  DROP TABLE #ouManagers
		  DROP TABLE #userList
		  DROP TABLE #usersOUManager

		  --Führungskraft 	Name, Vorname der FKs der OE des Users	Sind mehrere FK einer OE definiert, dann werden diese komma-separiert hintereinander ausgegeben.
		  --Ist der User FK einer OE, dann wird hier die FK(s) der nächst höheren OE ausgegeben.</command>
    </Report>
  </Reports>
  <Parameters>
    <Parameter id="d8e4595f-8bdd-4a54-9298-8f378450e6a0" isSystem="True" name="Zeitraum" reportParameterType_id="abff13be-91c3-4ee1-93a3-7292f8e013ba" queryParameterName="@dateRange" />
    <Parameter id="7a721121-2d2e-4a3d-b9e6-c6aa238e7ab2" isSystem="True" name="Auswahl (ja/nein)" reportParameterType_id="411ec93b-ab23-41ba-91d6-e7dc0235b5af" queryParameterName="@selection_yesno" />
    <Parameter id="5ca819cc-8300-42e7-9800-87be253ef59d" mandator_id="f7a65c38-6ce4-41c9-aaf7-c6111449f0f0" isSystem="False" name="MKN (ja/nein)" reportParameterType_id="6b5d91cc-0a7a-43a8-9bf4-ee309add0c96" queryParameterName="@selection_mkn" />
    <Parameter id="779f1693-3f4b-4d25-8810-e8f0761491d3" mandator_id="f7a65c38-6ce4-41c9-aaf7-c6111449f0f0" isSystem="False" name="Sachkunde (ja/nein)" reportParameterType_id="e235155d-b91a-4544-a2ac-d8bb10da11a5" queryParameterName="@selection_sachkunde" />
  </Parameters>
  <ParameterTypes>
    <ParameterType id="abff13be-91c3-4ee1-93a3-7292f8e013ba" isSystem="True" name="DateRange" datatype="DateRange" dataValueField="" dataTextField="" />
    <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="6b5d91cc-0a7a-43a8-9bf4-ee309add0c96" mandator_id="f7a65c38-6ce4-41c9-aaf7-c6111449f0f0" isSystem="False" name="MKN (ja/nein)" 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="e235155d-b91a-4544-a2ac-d8bb10da11a5" mandator_id="f7a65c38-6ce4-41c9-aaf7-c6111449f0f0" isSystem="False" name="Sachkunde (ja/nein)" datatype="StringDDL" dataValueField="Value" dataTextField="Text">
      <query>SELECT 0 AS Value, 'Nein' AS Text UNION SELECT 1 AS Value, 'Ja' AS Text </query>
    </ParameterType>
  </ParameterTypes>
</ReportsExport>