﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="0fdb8c2a-83b1-4b9f-be21-a688a1b32a00" codekey="TrainingDaysPerTrainerCount" categoryCodekey="Trainings" name="Anzahl der durchgeführten Seminartage pro Trainer" description="">
      <MetaData created="2011-01-18T16:47:51" createdBy="VIWIS" createdBy_user_id="3" modified="2014-04-01T13:06:31" modifiedBy="Administrator ELECT" />
      <ExecutionDetails format="KeyValueResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="ExcludeMandators" mandator_id="ff99ae9d-bcb8-4a99-88c9-b7962f4b6127" isStandard="True" isUsedByMenu="True">
        <Mandator mandatorName="ADAC" />
        <Mandator mandatorName="ELECT" />
      </Mandators>
      <Parameters>
        <Parameter id="927662fa-43f0-4959-9dfb-c3a00a7f221d" isRequired="False" name="Trainer" contextName="Trainer" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="6d83f907-7cb3-4b6b-9b3b-62567039b9a5" isRequired="False" name="Seminartitel abhängig vom Trainer" 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>
        <Role id="90" />
      </Roles>
      <command>        -- Report ADAC: Anzahl der durchgeführten Seminartage pro Trainer

        /*
        declare @trainer_id uniqueidentifier
        set @trainer_id = '5AFD7B4D-7C4A-41A8-8715-FCC92F137A9D'

        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 (@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

        -- 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 tblTrainingsTrainers on tblTrainingsTrainers.training_id=tblTrainings.id
        where
        tblTrainings.isClosed=1 and tblTrainings.isCancelled=0
        and tblTrainingsTrainers.trainer_id=@trainer_id
        and (@trainingTitle_id is null or tblTrainings.trainingTitle_id=@trainingTitle_id)
        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)

        select
        id as seminarEvent_id,
        datediff(day, tblTrainings.startDate, tblTrainings.endDate)+1 as days
        into
        #tempResult
        from tblTrainings
        inner join tblTrainingsTrainers on tblTrainingsTrainers.training_id=tblTrainings.id
        where
        tblTrainings.isClosed=1 and tblTrainings.isCancelled=0
        and tblTrainingsTrainers.trainer_id=@trainer_id
        and (@trainingTitle_id is null or tblTrainings.trainingTitle_id=@trainingTitle_id)
        and tblTrainings.startDate&gt;=@start
        and tblTrainings.endDate&lt;@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

        select
        id as seminarEvent_id,
        datediff(day, tblTrainings.startDate, tblTrainings.endDate)+1 as days
        into #tempResult1
        from tblTrainings
        inner join tblTrainingsTrainers on tblTrainingsTrainers.training_id=tblTrainings.id
        where
        tblTrainings.isClosed=1 and tblTrainings.isCancelled=0
        and tblTrainingsTrainers.trainer_id=@trainer_id
        and (@trainingTitle_id is null or tblTrainings.trainingTitle_id=@trainingTitle_id)
        and (@dateRange_start is null or tblTrainings.startDate&gt;=@dateRange_start)
        and (@dateRange_end is null or tblTrainings.endDate&lt;=@dateRange_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'
        from
        #tempResult1

        drop table #tempResult1


        -- 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="927662fa-43f0-4959-9dfb-c3a00a7f221d" isSystem="False" name="Trainer" reportParameterType_id="59cc38d3-5302-49e4-983e-1c273e8b6339" queryParameterName="@trainer_id" />
    <Parameter id="6d83f907-7cb3-4b6b-9b3b-62567039b9a5" isSystem="False" name="Seminartitel abhängig vom Trainer" reportParameterType_id="3f84a439-fb11-4533-9cd0-3770026fa46c" queryParameterName="@trainingTitle_id" />
    <Parameter id="d8e4595f-8bdd-4a54-9298-8f378450e6a0" isSystem="True" name="Zeitraum" reportParameterType_id="abff13be-91c3-4ee1-93a3-7292f8e013ba" queryParameterName="@dateRange" />
    <Parameter id="83b113ea-3bc1-4913-9acb-229d8cbb54bc" isSystem="False" name="Trainer aller Mandanten" reportParameterType_id="4a7400bb-0305-41ea-8203-879818718360" queryParameterName="@trainer_id" />
  </Parameters>
  <ParameterTypes>
    <ParameterType id="59cc38d3-5302-49e4-983e-1c273e8b6339" isSystem="False" name="Trainer" datatype="GuidDDL" dataValueField="key" dataTextField="value">
      <query>
		  select
		  id as 'key',
		  (case when tblTrainers.user_id is null
		  then (tblTrainers.lastName + (case when tblTrainers.firstName is null then '' else ', ' + tblTrainers.firstName end))
		  else v_Users.nachname + ', ' + v_Users.vorname + ' (' + v_Users.descUserCn + ')' end
		  ) as 'value'
		  from tblTrainers
		  left outer join v_Users on v_Users.intUserCn=tblTrainers.user_id
		  where (user_id is not null or lastName!='N.N.')
		  and tblTrainers.mandator_id = @current_mandator_id
		  order by value
	  </query>
    </ParameterType>
    <ParameterType id="3f84a439-fb11-4533-9cd0-3770026fa46c" isSystem="False" name="Seminartitel abhängig vom Trainer" datatype="GuidDDL" dataValueField="key" dataTextField="value">
      <query>
        SELECT tblTrainingTitles.id AS 'key',
        tblItems.title AS 'value'
        FROM tblTrainingTitles inner join tblItems on tblTrainingTitles.id = tblItems.id
        WHERE EXISTS (SELECT * FROM tblTrainings, tblTrainingsTrainers
        WHERE tblTrainings.id = tblTrainingsTrainers.training_id
        AND tblTrainingTitles.id = tblTrainings.trainingTitle_id
        AND tblTrainingsTrainers.trainer_id = @trainer_id
        -- This Parameter Type doesn't say "only closed items"
        --AND tblTrainings.isClosed = 1
        )
        order by tblItems.title
      </query>
      <Parameters>
        <Parameter id="83b113ea-3bc1-4913-9acb-229d8cbb54bc" isRequired="False" name="Trainer aller Mandanten" contextName="Trainer aller Mandanten" defaultValue="" renderHint="Undefined" disableParameter="DisableUntilSet" />
      </Parameters>
    </ParameterType>
    <ParameterType id="abff13be-91c3-4ee1-93a3-7292f8e013ba" isSystem="True" name="DateRange" datatype="DateRange" dataValueField="" dataTextField="" />
    <ParameterType id="4a7400bb-0305-41ea-8203-879818718360" isSystem="False" name="Trainer aller Mandanten" datatype="GuidDDL" dataValueField="key" dataTextField="value">
      <query>
        select
        id as 'key',
        (case when tblTrainers.user_id is null
        then (tblTrainers.lastName + (case when tblTrainers.firstName is null then '' else ', ' + tblTrainers.firstName end))
        else v_Users.nachname + ', ' + v_Users.vorname end
        ) as 'value'
        from tblTrainers
        left outer join v_Users on v_Users.intUserCn=tblTrainers.user_id
        where (user_id is not null or lastName!='N.N.')
        order by value
      </query>
    </ParameterType>
  </ParameterTypes>
</ReportsExport>