﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="0f649630-febe-421e-aef9-1242da701d01" codekey="TrainingDaysCount" categoryCodekey="Trainings" name="Anzahl der durchgeführten Seminartage (Multimandator)" description="">
      <MetaData created="2011-01-18T16:42:46" createdBy="Administrator VIWIS" createdBy_user_id="3" modified="2014-04-10T10:48:48" modifiedBy="Rolle Administrator" />
      <ExecutionDetails format="KeyValueResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="ExcludeMandators" mandator_id="96ba2868-8baf-4e69-b1fb-d2cc6d6832e8" mandatorName="ADAC" isStandard="False" isUsedByMenu="True">
        <Mandator mandatorName="ELECT" />
      </Mandators>
      <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 Seminartage

        /*
        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 = '2010-12-01'

        declare @dateRange_end datetime
        --set @dateRange_end = '2011-01-01'
        */

        -- 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
        inner join tblUserTrainingStatus on tblUserTrainingStatus.training_id=tblTrainings.id
        inner join v_Users on v_Users.intUserCn=tblUserTrainingStatus.user_id
        where
        (@division is null or v_Users.division=@division)
	      and (@mandator_id is null or v_Users.mandator_id=@mandator_id)
	      and (tblUserTrainingStatus.actionclass_id&gt;=70)
        and
        tblTrainings.isClosed!=0
        order by 'year'

        declare @startYear int
        open cursorYears

        declare @historyDays 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)

        create table #tempResult(seminarEvent_id uniqueidentifier, days INTEGER)

        if (@division IS NULL)
        BEGIN
        insert into #tempResult
        select
        tblTrainings.id as seminarEvent_id,
        datediff(day, tblTrainings.startDate, tblTrainings.endDate)+1 as days
        from tblTrainings
        inner join #relevantTrainingTitles on #relevantTrainingTitles.id=tblTrainings.trainingTitle_id
        inner join tblItems on tblTrainings.id = tblItems.id
        where
        tblTrainings.isClosed!=0
        and tblTrainings.startDate&gt;=@start
        and tblTrainings.endDate&lt;@end
        and (tblItems.deleted IS NULL)
        END
        else
        BEGIN
        insert into #tempResult
        select
        tblTrainings.id as seminarEvent_id,
        datediff(day, tblTrainings.startDate, tblTrainings.endDate)+1 as days
        from tblTrainings
        inner join #relevantTrainingTitles on #relevantTrainingTitles.id=tblTrainings.trainingTitle_id
        inner join tblUserTrainingStatus on tblUserTrainingStatus.training_id=tblTrainings.id
        inner join v_Users on v_Users.intUserCn=tblUserTrainingStatus.user_id
        inner join tblItems on tblTrainings.id = tblItems.id
        where
        (@division is null or v_Users.division=@division)
        and (@mandator_id is null or v_Users.mandator_id=@mandator_id)
        and (tblUserTrainingStatus.actionclass_id&gt;=70)
        and
        tblTrainings.isClosed!=0
        and tblTrainings.startDate&gt;=@start
        and tblTrainings.endDate&lt;@end
        and (tblItems.deleted IS NULL)
        END

        declare @line nvarchar(256)
        declare @countDays int

        select @countDays=SUM(days) from #tempResult

        drop table #tempResult

        set @line = CONVERT(nvarchar(4), @startYear) + ':'	+ CONVERT(nvarchar(8), @countDays)
        if ( @historyDays is null )
        set @historyDays = @line
        else
        set @historyDays = @historyDays + ' ; ' + @line

        fetch next from cursorYears into @startYear
        END

        close cursorYears
        deallocate cursorYears

        if ( @historyDays is null )
        set @displayHistory = 0

        create table #tempResult1(seminarEvent_id uniqueidentifier, days INTEGER)

        if (@division IS NULL)
        BEGIN
        insert into #tempResult1
        select
        tblTrainings.id,
        datediff(day, tblTrainings.startDate, tblTrainings.endDate)+1
        from tblTrainings
        inner join #relevantTrainingTitles on #relevantTrainingTitles.id=tblTrainings.trainingTitle_id
        inner join tblItems on tblTrainings.id = tblItems.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 (tblItems.deleted IS NULL)
        END
        else
        BEGIN
        insert into #tempResult1
        select
        tblTrainings.id,
        datediff(day, tblTrainings.startDate, tblTrainings.endDate)+1
        from tblTrainings
        inner join #relevantTrainingTitles on #relevantTrainingTitles.id=tblTrainings.trainingTitle_id
        inner join tblUserTrainingStatus on tblUserTrainingStatus.training_id=tblTrainings.id
        inner join v_Users on v_Users.intUserCn=tblUserTrainingStatus.user_id
        inner join tblItems on tblTrainings.id = tblItems.id
        where
        (@division is null or v_Users.division=@division)
        and (@mandator_id is null or v_Users.mandator_id=@mandator_id)
        and (tblUserTrainingStatus.actionclass_id&gt;=70)
        and
        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 (tblItems.deleted IS NULL)
        END

        if ( @displayHistory!=0 )
        select
        convert(nvarchar, GETDATE(), 104) as 'Auswertung vom:',
        sum(days) as 'Anzahl Seminartage',
        @historyDays as 'History days'
        from
        #tempResult1
        else
        select
        convert(nvarchar, GETDATE(), 104) as 'Auswertung vom:',
        sum(days) as 'Anzahl Seminartage',
        @historyDays as 'History days'
        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

        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="cf85efc9-150b-4eee-8c20-929a112b658c" 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="cf85efc9-150b-4eee-8c20-929a112b658c" 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>