﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="d989c37c-9a32-4553-9fbe-3cc2189e037d" codekey="Kosmos_ListOfManuallyCreatedAndDeletedUsers" categoryCodekey="UserStats" name="Auflistung manuell angelegter Benutzer" description="">
      <MetaData created="2011-08-24T11:55:17" createdBy="Administrator Zentrale" modified="2016-08-01T09:11:26" modifiedBy="Administrator Zentrale" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="0ab3e804-57cb-42a7-82a3-a6fd412d317d" mandatorName="Kosmos" isStandard="False" isUsedByMenu="False" />
      <Parameters>
        <Parameter id="35d53ae4-4c93-455f-9ef2-0bb4c8671b1b" isRequired="False" allowMultiSelect="False" name="AllMandators" contextName="Mandator" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="d8e4595f-8bdd-4a54-9298-8f378450e6a0" isRequired="False" allowMultiSelect="False" name="Zeitraum" contextName="Zeitraum" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles>
        <Role id="90" />
      </Roles>
      <command>
        /*
        declare @dateRange_start datetime
        set @dateRange_start = '2011-01-01'

        declare @dateRange_end datetime
        set @dateRange_end = '2011-10-31'
        */
        -- The report without debugging information starts here

        DECLARE @statusMapping TABLE(id INT, text NVARCHAR(200))
        INSERT INTO @statusMapping SELECT 0, 'Unbekannt'
        INSERT INTO @statusMapping SELECT 1, 'Aktiv'
        INSERT INTO @statusMapping SELECT 2, 'Ausgeschieden'
        INSERT INTO @statusMapping SELECT 3, 'Abwesend'
        INSERT INTO @statusMapping SELECT 4, 'Neueinstellung'

        declare @current_user_role int
        set  @current_user_role = ISNULL((select SecurityID from v_Users where intUserCn = @current_user_id), 10)

        IF (@mandator_id IS NULL AND @current_user_role &lt; 100)
        BEGIN
        SET @mandator_id = @current_mandator_id  --select @mandator_id = mandator_id from v_Users where intUserCn = @current_user_id
        END

        if (@dateRange_start is not null)
        set @dateRange_start = cast(convert(NVARCHAR(32), @dateRange_start, 112) as datetime)

        if (@dateRange_end is not null)
        begin
        set @dateRange_end  = cast(convert(NVARCHAR(32), @dateRange_end, 112) as datetime)
        set @dateRange_end = dateadd(day, 1, @dateRange_end)
        set @dateRange_end = dateadd(second, -1, @dateRange_end)
        end

        select
        'Angelegt' as 'Aktion',
        DeletedUsers.descUserCn as 'Kennung',
        DeletedUsers.Vorname as 'Vorname',
        DeletedUsers.Nachname as 'Nachname',
        tblMandators.name  as 'Mandant',
        Creator.Vorname + ' ' + Creator.nachname as 'von wem',
        DeletedUsers.created as 'Wann',
        (SELECT text FROM @statusMapping WHERE id = ISNULL(DeletedUsers.userStatus,0)) AS 'Status',
        DeletedUsers.userStatusStart AS 'Status Datum'
        into
        #tempResult
        from
        tableUsers as DeletedUsers
        inner join tblActionLog on tblActionLog.effectedObjectInt_id=DeletedUsers.intUserCn
        inner join tblMandators on tblMandators.id=tblActionLog.mandator_id
        left outer join tableUsers as Creator on Creator.intUserCn=DeletedUsers.createdBy_user_id
        where
        (tblActionLog.action_id=3)
        and (@dateRange_start is null or @dateRange_start&lt;= DeletedUsers.created)
        and (@dateRange_end is null or DeletedUsers.created&lt;=@dateRange_end)
        and DeletedUsers.deleted is null
        AND (@mandator_id IS NULL OR Creator.mandator_id = @mandator_id)
        AND NULLIF(DeletedUsers.employeeId,'') IS NULL


        insert into #tempResult
        select
        'Angelegt' as 'Aktion',
        v_Users.descUserCn as 'Kennung',
        v_Users.Vorname as 'Vorname',
        v_Users.Nachname as 'Nachname',
        tblMandators.name as 'Mandant',
        Creator.Vorname + ' ' + Creator.nachname as 'von wem',
        v_Users.created as 'Wann',
        (SELECT text FROM @statusMapping WHERE id = ISNULL(v_Users.userStatus,0)) AS 'Status',
        v_Users.userStatusStart AS 'Status Datum'
        from
        v_Users
        inner join tblMandators on tblMandators.id=v_Users.mandator_id
        left outer join tableUsers as Creator on Creator.intUserCn=v_Users.createdBy_user_id
        where
        (@dateRange_start is null or @dateRange_start&lt;= v_Users.created)
        and (@dateRange_end is null or v_Users.created&lt;=@dateRange_end)
        AND (@mandator_id IS NULL OR Creator.mandator_id = @mandator_id)
        AND NULLIF(v_Users.employeeId,'') IS NULL

        select * from #tempResult order by 'wann'

        drop table #tempResult

      </command>
    </Report>
  </Reports>
  <Parameters>
    <Parameter id="35d53ae4-4c93-455f-9ef2-0bb4c8671b1b" isSystem="False" name="AllMandators" reportParameterType_id="17a098cd-8e46-43ad-8350-4dab86f7cf9d" queryParameterName="@mandator_id" />
    <Parameter id="d8e4595f-8bdd-4a54-9298-8f378450e6a0" isSystem="True" name="Zeitraum" reportParameterType_id="abff13be-91c3-4ee1-93a3-7292f8e013ba" queryParameterName="@dateRange" />
  </Parameters>
  <ParameterTypes>
    <ParameterType id="17a098cd-8e46-43ad-8350-4dab86f7cf9d" isSystem="False" name="AllMandators" datatype="GuidDDL" dataValueField="id" dataTextField="name">
      <query>IF(EXISTS(SELECT *
            FROM v_Users
           WHERE intUserCn = @current_user_id AND SecurityID = 100))
    BEGIN
        SELECT id, 
               name
          FROM tblMandators
         WHERE isTemplate = 0
         ORDER BY name
    END
ELSE
    BEGIN
        SELECT id, 
               name
          FROM tblMandators
         WHERE id = @current_mandator_id
           AND EXISTS(
                      SELECT *
                        FROM v_Users
                       WHERE intUserCn = @current_user_id AND SecurityID &gt;= 90)
    END
</query>
    </ParameterType>
    <ParameterType id="abff13be-91c3-4ee1-93a3-7292f8e013ba" isSystem="True" name="DateRange" datatype="DateRange" dataValueField="" dataTextField="" />
  </ParameterTypes>
</ReportsExport>