<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="c63e92b3-4d97-4603-94ed-790f18ed5838" codekey="UebersichtGesamt" categoryCodekey="Trainings" name="Gesamtübersicht Seminarstatus" description="Lister aller aktiven und nicht gesperrten VM + KDB über die Weiterbildungsaktivitäten (Seminare) des aktuellen Kalenderjahres">
      <MetaData created="2025-01-13T10:21:15" createdBy="zz_Ködelpeter, Marcus (AP4605)" createdBy_user_id="30663" modified="2025-03-24T15:06:38" modifiedBy="zz_Ködelpeter, Marcus (AP4605)" modifiedBy_user_id="30663" />
      <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" />
      <Roles>
        <Role id="20" />
        <Role id="30" />
        <Role id="55" />
        <Role id="80" />
        <Role id="90" />
      </Roles>
      <command>-- default parameter
DECLARE @mandator_id UNIQUEIDENTIFIER = @current_mandator_id
-- DECLARE @mandator_id UNIQUEIDENTIFIER = 'F7A65C38-6CE4-41C9-AAF7-C6111449F0F0'

-- injected parameter
-- DECLARE @currentYear NVARCHAR(4) = @processYear
DECLARE @currentYear NVARCHAR(4) = '2025'
-- DECLARE @region NVARCHAR(255) = 'Süd'

DECLARE @fromDate DATE = @currentYear + '-01-01'
DECLARE @toDate   DATE = @currentYear + '-12-31'

-- individual parameters

SELECT 
u.Nachname AS 'Name'
, u.Vorname AS 'Vorname'
, u.office AS 'GS'
, u.division AS 'Gebiet'
, CASE
	WHEN RIGHT(u.office, 2) IN ('01', '02', '04', '06', '09', '16', '38') THEN 'Süd'
	WHEN RIGHT(u.office, 2) IN ('03', '19', '43', '44', '45', '46', '47', '55') THEN 'Mitte'
	WHEN RIGHT(u.office, 2) IN ('10', '12', '13', '25', '29', '40', '41') THEN 'Nord'
	WHEN RIGHT(u.office, 2) IN ('08', '11', '14', '17', '18', '21', '36', '37') THEN 'Südwest'
	WHEN RIGHT(u.office, 2) IN ('20', '26', '27', '28', '30', '31', '34', '35') THEN 'West'
	ELSE 'Unbekannt'
END AS "Region"
, tt.titleForLearners AS 'Seminartitle'
, t.startDate AS 'Beginn'
, t.enddate AS 'Ende'
, CASE
	-- prefer tblUserTrainingStatus when available
	WHEN uts.actionclass_id = 10 THEN 'wartend'																-- Auf Warteliste -> wartend
	WHEN uts.actionclass_id = 20 THEN 'gebucht'																-- Gebucht
	WHEN uts.actionclass_id IN (30, 60) THEN 'eingeladen'											-- Einladung / Einladung bestätigt -> eingeladen
	WHEN uts.actionclass_id IN (70, 80) THEN 'teilgenommen'										-- Anwesenheit/Teilnahme bestätigt -> teilgenommen
	WHEN uts.actionclass_id = 40 THEN 'abgesagt'															-- Storniert -> abgesagt
	-- fallback to existing tblStatusUserItemHistory.status if no tblUserTrainingStatus record
  WHEN suih.status = 3 THEN 'abgesagt'
  WHEN suih.status = 2 THEN 'teilgenommen'
  WHEN suih.status = 1 THEN 'eingeladen'
	WHEN suih.status = 0 THEN 'gebucht'
	ELSE 'unbekannt'
  END AS 'Status'
FROM tblStatusUserItemHistory AS suih
JOIN tblUserTrainingStatus AS uts ON uts.user_id = suih."user_id" AND uts.training_id = suih.item_id
JOIN tblItems AS i ON i.id = suih.item_id AND i.itemType_id = 2
JOIN tblTrainings AS t ON t.id = i.id
JOIN tblItems AS tt ON tt.id = t.trainingTitle_id AND tt.itemType_id = 8 AND tt.tag LIKE 'WB%'
JOIN tableUsers AS u ON u.intUserCn = suih."user_id"
JOIN tblUserCustomAttributes AS uca ON uca."user_id" = u.intUserCn
JOIN tblOrganisationUnits AS ou ON ou.id = t.organizer AND ou.title LIKE '%VK%'
WHERE u.blocked = 0
AND u.userStatus &lt; 2
AND uca.customAttribute3 &lt;&gt; 'MAKDB'
AND uca.customAttribute3 &lt;&gt; 'KDBMA'
AND uca.customAttribute3 &lt;&gt; 'KDB-MA'
AND uca.customAttribute3 &lt;&gt; ''
AND uca.customAttribute3 IS NOT NULL
AND suih.startDate BETWEEN @fromDate AND @toDate
AND suih.endDate IS NULL
ORDER BY u.office, u.division, u.Nachname, t.startDate</command>
    </Report>
  </Reports>
</ReportsExport>