﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="09fbac8d-4feb-4d84-872c-16d161ac7660" codekey="ADAC_UsersCountPerRoleAndMandator" categoryCodekey="UserStats" name="Benutzeranzahl pro Rolle und Mandant" description="">
      <MetaData created="2011-08-24T08:54:16" createdBy="Administrator Zentrale" modified="2016-08-01T09:12:57" modifiedBy="Administrator Zentrale" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="7da81670-5067-49c3-a371-379bb5dc4f11" mandatorName="ADAC" isStandard="False" isUsedByMenu="False" />
      <Parameters>
        <Parameter id="35d53ae4-4c93-455f-9ef2-0bb4c8671b1b" isRequired="False" allowMultiSelect="False" name="AllMandators" contextName="Mandant" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles>
        <Role id="90" />
      </Roles>
      <command>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


        select
        tblMandators.name as 'Mandant',
        (select COUNT(*) from v_Users where v_Users.mandator_id=tblMandators.id and v_Users.SecurityID=10) as 'Lerner',
        (select COUNT(*) from v_Users where v_Users.mandator_id=tblMandators.id and v_Users.SecurityID=30) as 'Trainer',
        (select COUNT(*) from v_Users where v_Users.mandator_id=tblMandators.id and v_Users.SecurityID=70) as 'ZGV',
        (select COUNT(*) from v_Users where v_Users.mandator_id=tblMandators.id and v_Users.SecurityID=80) as 'Koordinator',
        (select COUNT(*) from v_Users where v_Users.mandator_id=tblMandators.id and v_Users.SecurityID=90) as 'Administrator',
        (select COUNT(*) from v_Users where v_Users.mandator_id=tblMandators.id and v_Users.SecurityID=100) as 'Plattformverwalter',
        cast (0 as int) as 'Gesamt',
        CAST(0 as int) as 'sortOrder'
        into
        #tempResult
        from
        tblMandators
        where
        tblMandators.name not like '[_]%' and tblMandators.name!='default'
        AND (@mandator_id is null or tblMandators.id = @mandator_id)
 

        update #tempResult
        set Gesamt=Lerner + Trainer + ZGV + Koordinator + Administrator + Plattformverwalter

/* unfortunately, this does not work on SQL Server 2005
        insert into #tempResult
        (Mandant, Lerner, Trainer, ZGV, Koordinator, Administrator, Plattformverwalter , Gesamt, SortOrder)
        values
        (
        'Summe',
        (select SUM(Lerner) from #tempResult),
        (select SUM(Trainer) from #tempResult),
        (select SUM(ZGV) from #tempResult),
        (select SUM(Koordinator) from #tempResult),
        (select SUM(Administrator) from #tempResult),
        (select SUM(Plattformverwalter) from #tempResult),
        (select SUM(Gesamt) from #tempResult),
        1
        )
*/
        SELECT Mandant,
               Lerner,
               Trainer,
               ZGV,
               Koordinator,
               Administrator,
               Plattformverwalter,
               Gesamt
          FROM (
            select
            #tempResult.Mandant,
            #tempResult.Lerner,
            #tempResult.Trainer,
            #tempResult.ZGV,
            #tempResult.Koordinator,
            #tempResult.Administrator,
            #tempResult.Plattformverwalter,
            #tempResult.Gesamt,
            0 AS sortOrder
            from
            #tempResult
            UNION
            SELECT
            'Summe',
            (select SUM(Lerner) from #tempResult),
            (select SUM(Trainer) from #tempResult),
            (select SUM(ZGV) from #tempResult),
            (select SUM(Koordinator) from #tempResult),
            (select SUM(Administrator) from #tempResult),
            (select SUM(Plattformverwalter) from #tempResult),
            (select SUM(Gesamt) from #tempResult),
            1
          ) AS completeTable
        order by
        sortOrder, Mandant

        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" />
  </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>
  </ParameterTypes>
</ReportsExport>