﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="4a09d0f0-a780-47ac-bc44-3d38dbcb5e02" codekey="TrainingEventsCount" categoryCodekey="Trainings" name="Anzahl der durchgeführten Seminartermine (Multimandator)" description="">
      <MetaData created="2011-01-13T15:39:36" createdBy="Administrator VIWIS" createdBy_user_id="12" modified="2012-04-12T13:43:04" modifiedBy="Anton Administrator" />
      <ExecutionDetails format="KeyValueResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="345bbab2-62a8-424d-a6e6-133aeab480a4" mandatorName="ADAC" isStandard="False" isUsedByMenu="True" />
      <Parameters>
        <Parameter id="a785aecc-668a-4609-9613-394bd4d708c2" isRequired="False" name="Mandant" contextName="Mandant" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="ba026ff1-a110-4702-9d1c-263d9e1d9187" isRequired="False" name="Bereich" contextName="Bereich" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="0dea8c34-b20f-4fec-b8b4-4dcdbbf176a4" isRequired="False" name="Seminartitel abgeschlossener Seminare mit Teilnehmern auf dem an" contextName="Seminartitel" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="d8e4595f-8bdd-4a54-9298-8f378450e6a0" isRequired="False" name="Zeitraum" contextName="Zeitraum" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles />
      <command>
        -- Report ADAC: Anzahl der durchgeführten Seminar(termine)

        /*
        declare @mandator_id uniqueidentifier
        select @mandator_id=id from tblMandators where name='SAS'

        declare @division nvarchar(256)
        set @division = 'Geschäftsstelle'

        declare @trainingTitle_id uniqueidentifier
        set @trainingTitle_id=null

        declare @dateRange_start datetime
        --set @dateRange_start = '2011-12-01'

        declare @dateRange_end datetime
        --set @dateRange_end = '2010-12-31'
        */
        -- The report without debugging information starts here

        if (@division='' or @division='alle')
        set @division = null

        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

        -- create a table of relevant trainingTitle ids
        -- a training title is relevant if there are users of the given mandator which participated on that traing

        create table #relevantTrainingTitles
        (
        id uniqueidentifier
        )

        insert into #relevantTrainingTitles
        select distinct(tblTrainingTitles.id)
        from tblTrainingTitles
        inner join tblTrainings on tblTrainings.trainingTitle_id=tblTrainingTitles.id
        inner join tblUserTrainingStatus on tblUserTrainingStatus.training_id=tblTrainings.id
        inner join v_Users on v_Users.intUserCn=tblUserTrainingStatus.user_id
        where
        (tblTrainings.isClosed!=0)
        and (@trainingTitle_id is null or tblTrainingTitles.id=@trainingTitle_id)
        and (@mandator_id is null or v_Users.mandator_id=@mandator_id)
        and (@division is null or v_Users.division=@division)
        and (tblUserTrainingStatus.actionclass_id&gt;=70)

        -- first create the history
        declare @displayHistory int
        set @displayHistory = 1

        if ( YEAR(@dateRange_start)=YEAR(@dateRange_end) )
        set @displayHistory = 0

        declare cursorYears cursor
        forward_only read_only
        for
        select distinct(YEAR(tblTrainings.startDate)) as 'year'
        from tblTrainings
        inner join #relevantTrainingTitles on #relevantTrainingTitles.id=tblTrainings.trainingTitle_id
        where
        tblTrainings.isClosed!=0
        and (@dateRange_start is null or tblTrainings.startDate&gt;=@dateRange_start)
        and (@dateRange_end is null or tblTrainings.endDate&lt;=@dateRange_end)
        order by 'year'

        declare @startYear int
        open cursorYears

        declare @historyEvents nvarchar(4000)
        declare @historyUsers nvarchar(4000)

        fetch next from cursorYears into @startYear
        WHILE (@@FETCH_STATUS &lt;&gt; -1)
        BEGIN
        declare @start datetime
        declare @end datetime

        set @start = cast(convert(nvarchar(4), @startYear) + '-01-01T00:00:00' as datetime)
        set @end = cast(convert(nvarchar(4), @startYear+1) + '-01-01T00:00:00' as datetime)

        select
        tblTrainings.id as seminarEvent_id,
        (
        select count(*)
        from tblUserTrainingStatus
        inner join v_Users on v_Users.intUserCn=tblUserTrainingStatus.user_id
        where tblUserTrainingStatus.training_id=tblTrainings.id and tblUserTrainingStatus.actionclass_id&gt;=70
        and (@mandator_id is null or v_Users.mandator_id=@mandator_id)
        and (@division is null or v_Users.division=@division)
        ) as 'numberOfUsers'
        into
        #tempResult
        from tblTrainings
        inner join #relevantTrainingTitles on #relevantTrainingTitles.id=tblTrainings.trainingTitle_id
        where
        tblTrainings.isClosed!=0
        and tblTrainings.startDate&gt;=@start
        and tblTrainings.endDate&lt;@end

        declare @line nvarchar(256)
        declare @countEvents int
        declare @countUsers int

        select @countEvents=count(*) from #tempResult
        where exists(select * from tblUserTrainingStatus
                    inner join v_Users on v_Users.intUserCn=tblUserTrainingStatus.user_id
                    where tblUserTrainingStatus.training_id=#tempResult.seminarEvent_id
                    and tblUserTrainingStatus.actionclass_id&gt;=70
                    and (@mandator_id is null or v_Users.mandator_id=@mandator_id)
                    and (@division is null or v_Users.division=@division)
                    )
        select @countUsers=SUM(numberOfUsers) from #tempResult

        drop table #tempResult

        set @line = CONVERT(nvarchar(4), @startYear) + ':'	+ CONVERT(nvarchar(8), @countEvents)
        if ( @historyEvents is null )
        set @historyEvents = @line
        else
        set @historyEvents = @historyEvents + ' ; ' + @line

        set @line = CONVERT(nvarchar(4), @startYear) + ':'	+ CONVERT(nvarchar(8), @countUsers)
        if ( @historyUsers is null )
        set @historyUsers = @line
        else
        set @historyUsers = @historyUsers + ' ; ' + @line

        fetch next from cursorYears into @startYear
        END

        if ( @historyEvents is null )
        set @displayHistory = 0

        close cursorYears
        deallocate cursorYears

        select
        tblTrainings.id as seminarEvent_id,
        (
        select count(*)
        from tblUserTrainingStatus
        inner join v_Users on v_Users.intUserCn=tblUserTrainingStatus.user_id
        where tblUserTrainingStatus.training_id=tblTrainings.id and tblUserTrainingStatus.actionclass_id&gt;=70
        and (@mandator_id is null or v_Users.mandator_id=@mandator_id)
        and (@division is null or v_Users.division=@division)
        ) as 'numberOfUsers'
        into
        #tempResult1
        from tblTrainings
        inner join #relevantTrainingTitles on #relevantTrainingTitles.id=tblTrainings.trainingTitle_id
        where
        tblTrainings.isClosed!=0
        and (@dateRange_start is null or tblTrainings.startDate&gt;=@dateRange_start)
        and (@dateRange_end is null or tblTrainings.endDate&lt;=@dateRange_end)
        and exists(select * from tblUserTrainingStatus
                  inner join v_Users on v_Users.intUserCn=tblUserTrainingStatus.user_id
                  where tblUserTrainingStatus.training_id=tblTrainings.id
                  and tblUserTrainingStatus.actionclass_id&gt;=70
                  and (@mandator_id is null or v_Users.mandator_id=@mandator_id)
                  and (@division is null or v_Users.division=@division)
                  )

        if ( @displayHistory!=0 )
        select
        convert(nvarchar, GETDATE(), 104) as 'Auswertung vom:',
        count(*) as 'Anzahl Seminartermine',
        @historyEvents as 'History events',
        sum(numberOfUsers) as 'Anzahl Seminarteilnehmer',
        @historyUsers as 'History users'
        from #tempResult1
        else
        select
        convert(nvarchar, GETDATE(), 104) as 'Auswertung vom:',
        count(*) as 'Anzahl Seminartermine',
        sum(numberOfUsers) as 'Anzahl Seminarteilnehmer'
        from #tempResult1

        drop table #tempResult1
        drop table #relevantTrainingTitles


        -- Formatting starts here

        create table #$formating_0
        (
        tr nvarchar(128),
        col0f  nvarchar(128),
        col0v nvarchar(128),
        col1f  nvarchar(128),
        col1v nvarchar(128),
        sortOrder int
        )

        insert into #$formating_0
        select 'format info', 'cellspacing="4"', '', '', '', -1

        insert into #$formating_0
        select 'class="AdminGeneral"', 'style="width:150px"', '{key_0}', 'style="width: 200px;border:2px inset #ffffff; background-color: #c0c0c0; font-weight:bold; text-align:right"', '{value_0}', 0

        insert into #$formating_0
        select 'class="AdminGeneral"', 'style="width:150px"', '{key_1}', 'style="width: 200px;border:2px inset #ffffff; background-color: #c0c0c0; font-weight:bold; text-align:right"', '{value_1}', 1

        if ( @displayHistory!=0 )
        insert into #$formating_0
        select 'class="AdminGeneral"', 'style="width:150px"', '', 'style="width: 200px;border:2px inset #ffffff; background-color: #c0c0c0; font-weight:bold; text-align:left"', '{value_2}', 2

        if ( @displayHistory!=0 )
        begin
        insert into #$formating_0
        select 'class="AdminGeneral"', 'style="width:150px"', '{key_3}', 'style="width: 200px;border:2px inset #ffffff; background-color: #c0c0c0; font-weight:bold; text-align:right"', '{value_3}', 3

        insert into #$formating_0
        select 'class="AdminGeneral"', 'style="width:150px"', '', 'style="width: 200px;border:2px inset #ffffff; background-color: #c0c0c0; font-weight:bold; text-align:left"', '{value_4}', 4
        end
        else
        begin
        insert into #$formating_0
        select 'class="AdminGeneral"', 'style="width:150px"', '{key_2}', 'style="width: 200px;border:2px inset #ffffff; background-color: #c0c0c0; font-weight:bold; text-align:right"', '{value_2}', 3
        end

        select * from #$formating_0 order by sortOrder
        drop table #$formating_0
      </command>
    </Report>
  </Reports>
  <Parameters>
    <Parameter id="a785aecc-668a-4609-9613-394bd4d708c2" isSystem="True" name="Mandant" reportParameterType_id="6b8fa242-5449-45b3-a81a-65a7e5e3b51d" queryParameterName="@mandator_id" />
    <Parameter id="ba026ff1-a110-4702-9d1c-263d9e1d9187" isSystem="False" name="Bereich" reportParameterType_id="04f67b44-ae19-40f9-b78d-57e22d310da4" queryParameterName="@division" />
    <Parameter id="0dea8c34-b20f-4fec-b8b4-4dcdbbf176a4" mandator_id="345bbab2-62a8-424d-a6e6-133aeab480a4" isSystem="False" name="Seminartitel abgeschlossener Seminare mit Teilnehmern auf dem an" reportParameterType_id="40c8b018-6dfa-475e-aec1-abd3f0aef5ab" queryParameterName="@trainingTitle_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="6b8fa242-5449-45b3-a81a-65a7e5e3b51d" isSystem="True" name="Mandator" datatype="Mandator" dataValueField="" dataTextField="" />
    <ParameterType id="04f67b44-ae19-40f9-b78d-57e22d310da4" isSystem="False" name="Bereich abhängig vom Mandanten" datatype="StringDDL" dataValueField="division" dataTextField="division">
      <query>
        select distinct division
        from v_Users
        where (@mandator_id is null or v_Users.mandator_id=@mandator_id) and division is not null and division!=''
        order by division
      </query>
      <Parameters>
        <Parameter id="a785aecc-668a-4609-9613-394bd4d708c2" isRequired="False" name="Mandant" contextName="Mandant" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
    </ParameterType>
    <ParameterType id="40c8b018-6dfa-475e-aec1-abd3f0aef5ab" mandator_id="345bbab2-62a8-424d-a6e6-133aeab480a4" isSystem="False" name="Seminartitel abgeschlossener Seminare mit Teilnehmern auf dem an" datatype="GuidDDL" dataValueField="value" dataTextField="text">
      <query>
        select tblTrainingTitles.id as value, tblItems.title as text
        from tblTrainingTitles inner join tblItems on tblTrainingTitles.id = tblItems.id
        where exists(
        select *
        from tblUserTrainingStatus
        inner join tblTrainings on tblTrainings.id=tblUserTrainingStatus.training_id
        inner join v_Users on v_Users.intUserCn=tblUserTrainingStatus.user_id
        where
        tblTrainings.trainingTitle_id=tblTrainingTitles.id and
        tblUserTrainingStatus.actionclass_id&gt;=70 and -- participated
        (@mandator_id is null or v_Users.mandator_id=@mandator_id) and
        (@division is null or @division = 'alle' or v_Users.division=@division) and
        tblTrainings.isClosed=1
        )
        order by tblItems.title
      </query>
      <Parameters>
        <Parameter id="a785aecc-668a-4609-9613-394bd4d708c2" isRequired="False" name="Mandant" contextName="Mandant" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="6ae269c9-c842-4fd6-96c7-0a6125828996" isRequired="False" allowMultiSelect="False" name="Bereich" contextName="Bereich" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
    </ParameterType>
    <ParameterType id="abff13be-91c3-4ee1-93a3-7292f8e013ba" isSystem="True" name="DateRange" datatype="DateRange" dataValueField="" dataTextField="" />
  </ParameterTypes>
</ReportsExport>