﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
	<Reports>
		<Report id="b9a0fabb-9007-458e-abe5-68333e656ed8" codekey="GWG-Report" categoryCodekey="SpecialPurpose" name="Geldwäsche Auswertung" description="Jährlicher Report zu Geldwäsche, der immer im Zeitraum 01.01.-31.12. eines Jahres zur Verfügung steht. Eine Vergangenheitsbetrachtung ist notwendig.">
			<MetaData created="2021-06-18T17:56:19" createdBy="Ultsch2, Martin (AP923ADM)" createdBy_user_id="251" modified="2023-03-13T15:55:49" modifiedBy="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" isStandard="False" isUsedByMenu="False" />
			<Parameters>
				<Parameter id="420648ce-6ead-43a0-b693-28d13e96e8d9" isRequired="False" allowMultiSelect="False" name="Jahre ab 2021" contextName="Jahr" 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" />
			</Parameters>
			<Roles>
				<Role id="20" />
				<Role id="55" />
				<Role id="80" />
				<Role id="90" />
			</Roles>
			<command>
				DECLARE @mandator_id UNIQUEIDENTIFIER = @current_mandator_id
				--DECLARE @mandator_id UNIQUEIDENTIFIER = 'F7A65C38-6CE4-41C9-AAF7-C6111449F0F0'
				DECLARE @tg_id INT = @targetGroup_id
				-- DECLARE @tg_id INT = (SELECT TOP 1 id FROM tblTargetGroups WHERE title = 'ALLE')

				DECLARE @currentYear NVARCHAR(4) = @year
				-- DECLARE @currentYear NVARCHAR(4) = CAST(YEAR(GETDATE()) AS NVARCHAR)
				DECLARE @lastYear NVARCHAR(4) = CAST((YEAR(@currentYear) -1) AS NVARCHAR)
				DECLARE @firstOfCurrentYear date = @currentYear + '-01-01'
				DECLARE @fourthAprilOfCurrentYear date = @currentYear + '-04-01'

				-- Ausschluss Zielgruppe fuer manuelle Zwecke
				DECLARE @exclude_tg_id INT = (SELECT id FROM tblTargetGroups WHERE mandator_id = @mandator_id AND title = 'GWG_Ausnahmen' + @currentYear)

				-- WBT aktuelles Jahr
				DECLARE @currentGWGWBTTitle NVARCHAR(255) = (SELECT title FROM tblItems WHERE (title LIKE '%Geldwäsche' + @currentYear + '%' OR title LIKE '%Geldwäsche ' + @currentYear + '%' OR title LIKE '%Geldwäschegesetz ' + @currentYear + '%') AND itemType_id = 1 AND isExternal = 0)
				DECLARE @currentGWGWBTId NVARCHAR(255) = (SELECT id FROM tblItems WHERE title = @currentGWGWBTTitle AND itemType_id = 1 AND isExternal = 0)

				-- Test aktuelle Jahr (%GeldwäscheYYYY% | %Geldwäsche YYYY% | %Geldwäschegesetz YYYY%)
				DECLARE @currentGWGTestTitle NVARCHAR(255) = (SELECT title FROM tblItems WHERE (title LIKE '%Geldwäsche' + @currentYear + '%' OR title LIKE '%Geldwäsche ' + @currentYear + '%' OR title LIKE '%Geldwäschegesetz ' + @currentYear + '%') AND itemType_id = 0 AND isExternal = 0)
				DECLARE @currentGWGTestId NVARCHAR(255) = (SELECT id FROM tblItems WHERE title = @currentGWGTestTitle AND itemType_id = 0 AND isExternal = 0)

				-- Test letztes Jahr
				DECLARE @lastyearGWGTestTitle NVARCHAR(255) = (SELECT title FROM tblItems WHERE (title LIKE '%Geldwäsche' + @lastYear + '%' OR title LIKE '%Geldwäsche ' + @lastYear + '%' OR title LIKE '%Geldwäschegesetz ' + @lastYear + '%') AND itemType_id = 0 AND isExternal = 0)
				DECLARE @lastyearGWGTestId NVARCHAR(255) = (SELECT id FROM tblItems WHERE title = @lastyearGWGTestTitle AND itemType_id = 0 AND isExternal = 0)

				-- Test ohne WBT (YYYY%Wissenstest%Geldwäsche%)
				DECLARE @currentYearGWGWissenstestTitle NVARCHAR(255) = (SELECT title FROM tblItems WHERE title LIKE @currentYear + '%Wissenstest%Geldwäsche%' AND itemType_id = 0 AND isExternal = 0)
				DECLARE @currentYearGWGWissenstestId NVARCHAR(255) = (SELECT id FROM tblItems WHERE title = @currentYearGWGWissenstestTitle AND itemType_id = 0 AND isExternal = 0)

				SELECT
				users.employeeId AS "VM Nummer",
				users.nachname AS "Nachname",
				users.vorname AS "Vorname",
				CASE
				WHEN users.statusWBTaktJahr = 2 THEN 'bearbeitet'
				WHEN users.statusWBTaktJahr = 1 THEN 'in Bearbeitung'
				ELSE 'nicht bearbeitet'
				END AS [Status Lernprogramm "Geldwäsche Akt. Jahr"],
				CASE
				WHEN users.statusTestaktJahr = 3 THEN 'nicht bestanden'
				WHEN users.statusTestaktJahr = 2 THEN 'bestanden'
				WHEN users.statusTestaktJahr = 1 THEN 'in Bearbeitung'
				ELSE 'nicht bearbeitet'
				END AS "Status Test",
				CASE
				WHEN users.statusWissenstestAktJahr = 3 THEN 'nicht bestanden'
				WHEN users.statusWissenstestAktJahr = 2 THEN 'bestanden'
				WHEN users.statusWissenstestAktJahr = 1 THEN 'in Bearbeitung'
				ELSE 'nicht bearbeitet'
				END AS "Status Wissenstest",
				CASE
				WHEN users.zgAusnahmeaktJahr IS NOT NULL THEN 'Ja'
				ELSE 'Nein'
				END AS 'Ausnahme',
				CASE
				WHEN users.gwgStatus = 2 THEN 'Ja'
				ELSE 'Nein'
				END AS "GWG Status"
				FROM (
				SELECT u.employeeId AS "employeeId",
				u.Nachname AS "nachname",
				u.Vorname AS "vorname",
				uca.customAttribute5 AS "joining",
				(SELECT TOP 1 status FROM tblStatusUserItemHistory WHERE user_id = u.intUserCn AND item_id = @currentGWGWBTId AND endDate IS NULL ORDER BY status DESC) AS "statusWBTaktJahr",
				(SELECT TOP 1 status FROM tblStatusUserItemHistory WHERE user_id = u.intUserCn AND item_id = @currentGWGTestId ORDER BY startDate DESC) AS "statusTestaktJahr",
				(SELECT TOP 1 status FROM tblStatusUserItemHistory WHERE user_id = u.intUserCn AND item_id = @lastyearGWGTestId ORDER BY startDate DESC) AS "statusTestVorjahr",
				-- wenn der wissenstest mehrfach gemacht wurde kann es sein, dass der letzte Status nicht der erfolgsstatus ist (daher pruefung auf status = 2)
				(SELECT TOP 1 status FROM tblStatusUserItemHistory WHERE user_id = u.intUserCn AND item_id = @currentYearGWGWissenstestId AND status = 2 ORDER BY startDate DESC) AS "statusWissenstestAktJahr",
				(SELECT CASE WHEN UserCn IS NOT NULL THEN '1' ELSE '0' END AS "AusnahmeZG" FROM tblUsersTargetGroups utg WHERE utg.UserCn = u.intUserCn AND utg.targetGroup_id = @exclude_tg_id) AS "zgAusnahmeaktJahr",
				CASE
				-- wenn user in der ausnahmegruppe ist
				WHEN EXISTS(SELECT UserCn from tblUsersTargetGroups as utg WHERE utg.UserCn = u.intUserCn AND utg.targetGroup_id = @exclude_tg_id) THEN '2'
				-- wenn Eintritt groesser gleich erstes des aktuelen Jahres UND Eintritt kleiner gleich dem 4. April des aktuellen Jahres ist
				WHEN CAST(uca.customAttribute5 AS date) &gt;= @firstOfCurrentYear AND CAST(uca.customAttribute5 AS date) &lt;= @fourthAprilOfCurrentYear THEN
				COALESCE(
				(SELECT TOP 1 status FROM tblStatusUserItemHistory WHERE user_id = u.intUserCn AND item_id = @lastyearGWGTestId AND status = 2 ORDER BY startDate DESC),
				(SELECT TOP 1 status FROM tblStatusUserItemHistory WHERE user_id = u.intUserCn AND item_id = @currentGWGTestId AND status = 2 ORDER BY startDate DESC),
				(SELECT TOP 1 status FROM tblStatusUserItemHistory WHERE user_id = u.intUserCn AND item_id = @currentYearGWGWissenstestId AND status = 2 ORDER BY startDate DESC)
				)
				ELSE
				COALESCE(
				(SELECT TOP 1 status FROM tblStatusUserItemHistory WHERE user_id = u.intUserCn AND item_id = @currentGWGTestId AND status = 2 ORDER BY startDate DESC),
				(SELECT TOP 1 status FROM tblStatusUserItemHistory WHERE user_id = u.intUserCn AND item_id = @currentYearGWGWissenstestId AND status = 2 ORDER BY startDate DESC)
				)
				END AS "gwgStatus"
				FROM tableUsers u
				INNER JOIN tblUsersTargetGroups utg ON utg.UserCn = u.intUserCn
				AND utg.targetGroup_id = @tg_id
				INNER JOIN tblUserCustomAttributes uca
				ON uca.user_id = u.intUserCn
				AND uca.customAttribute3 IS NOT NULL
				AND uca.customAttribute3 &lt;&gt; 'KDBMA'
				AND uca.customAttribute3 &lt;&gt; 'KDB-MA'
				AND uca.customAttribute3 &lt;&gt; ''
				WHERE mandator_id = @mandator_id
				AND deleted IS NULL
				AND userStatus &lt; 2
				AND blocked = 0
				AND SecurityID = 10
				) AS users
				ORDER BY users.joining DESC
			</command>
		</Report>
	</Reports>
	<Parameters>
		<Parameter id="420648ce-6ead-43a0-b693-28d13e96e8d9" mandator_id="f7a65c38-6ce4-41c9-aaf7-c6111449f0f0" isSystem="False" name="Jahre ab 2021" reportParameterType_id="325c0998-6bc6-4287-bd10-a70e90a78bd1" queryParameterName="@year" />
		<Parameter id="a5485539-67e0-4912-8255-8081a54efb3c" isSystem="True" name="Zielgruppe" reportParameterType_id="9ae252e1-18b4-4b71-982c-e27b2d3a5287" queryParameterName="@targetGroup_id" />
	</Parameters>
	<ParameterTypes>
		<ParameterType id="325c0998-6bc6-4287-bd10-a70e90a78bd1" isSystem="True" name="Auswahlliste Zahlen" datatype="IntegerDDL" dataValueField="year_id" dataTextField="year_name">
			<query>
				; WITH yearsCTE AS
				(
				SELECT 2021 as year
				UNION ALL
				SELECT year + 1
				FROM yearsCTE
				WHERE year &lt; YEAR(GETDATE())
				)
				SELECT year AS year_id, cast(year as nvarchar(64)) AS year_name
				FROM yearsCTE
			</query>
		</ParameterType>
		<ParameterType id="9ae252e1-18b4-4b71-982c-e27b2d3a5287" isSystem="True" name="TargetGroup" datatype="TargetGroup" dataValueField="" dataTextField="" />
	</ParameterTypes>
</ReportsExport>