USE [Vertragsverwaltung_20160404] GO /****** Object: StoredProcedure [dbo].[sp_generate_activity] Script Date: 02.12.2016 09:08:53 ******/ DROP PROCEDURE [dbo].[sp_generate_activity] GO /****** Object: StoredProcedure [dbo].[sp_generate_activity] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO -- ============================================= -- Author: Stefan Hutter -- Create date: 29.01.2009 -- Description: Aktivitäten aus Ereignissen generieren -- ============================================= CREATE PROCEDURE [dbo].[sp_generate_activity] @mitarbeiternr int=0, @datum varchar(20)='' as declare @steuerdatum datetime declare @tmp varchar(50) IF @datum='' begin --select @steuerdatum=convert(varchar(10),getdate(),104) select @steuerdatum =getdate() print @steuerdatum end else begin select @steuerdatum=@datum print @steuerdatum end insert joblog (logentry) values (@steuerdatum) -------------------------------------------------------------------- -- Vertragsablauf -------------------------------------------------------------------- declare @vdate datetime set @vdate = FLOOR( CAST( @steuerdatum AS FLOAT ) ) Insert into Aktivitaet SELECT 0 as EreignisNr, 1 AS AktivitaetStatusNr, 15, @steuerdatum AS Ausgeloest_am, 'Vertragsstatus prüfen' AS Ereignis, '' AS Kostenart, 0, @steuerdatum as Termin,'' as Beschreibung, '' as Bemerkung, 0 as SecurityLevelNr, 1 AS aktiv, GETDATE() AS erstellt_am, GETDATE() AS mutiert_am, 9999 AS mutierer, '' as Kuendigungsfrist, Vertragselement.Vertragselementnr as vertragselementnr from dbo.vertragselement where vertragselement.aktiv=1 and dbo.vertragselement.vertragsablauf = @vdate -------------------------------------------------------------------- -- Gekündigt per -------------------------------------------------------------------- Insert into Aktivitaet SELECT 0 as EreignisNr, 1 AS AktivitaetStatusNr, 15, @steuerdatum AS Ausgeloest_am, 'Vertragsstatus prüfen' AS Ereignis, '' AS Kostenart, 0, @steuerdatum as Termin,'' as Beschreibung, '' as Bemerkung, 0 as SecurityLevelNr, 1 AS aktiv, GETDATE() AS erstellt_am, GETDATE() AS mutiert_am, 9999 AS mutierer, '' as Kuendigungsfrist, Vertragselement.Vertragselementnr as vertragselementnr from dbo.vertragselement where vertragselement.aktiv=1 and dateadd(d,1,dbo.vertragselement.Gekuendigt_per) = @vdate -------------------------------------------------------------------- -- Einmalige Ereignisse -------------------------------------------------------------------- insert into aktivitaet SELECT dbo.Vertragsereignis.EreignisNr, 1 AS AktivitaetStatusNr, dbo.Periodizitaet.PeriodizitaetNr, @steuerdatum AS Ausgeloest_am, dbo.Ereignistyp.Bezeichnung AS Ereignis, dbo.Kostenart.Bezeichnung AS Kostenart, dbo.Vertragsereignis.Betrag, dbo.check_generate_activity(dbo.vertragsereignis.datum, dbo.vertragsereignis.datum,@steuerdatum, dbo.vertragsereignis.vorlaufzeit,dbo.vertragsereignis.periodizitaetnr, dbo.Ereignistyp.Aktivitaeten_generieren, dbo.vertragsereignis.kuendigungsfristnr,dbo.ereignistyp.kuendigung,1,1) as Termin, dbo.Vertragsereignis.Bezeichnung AS Beschreibung, dbo.Vertragsereignis.Beschreibung AS Bemerkung, dbo.Vertragsereignis.SecurityLevelNr, 1 AS aktiv, GETDATE() AS erstellt_am, GETDATE() AS mutiert_am, 9999 AS mutierer, dbo.get_kuendigungsfrist(dbo.vertragsereignis.kuendigungsfristnr,dbo.ereignistyp.kuendigung) as Kuendigungsfrist,0 as vertragselementnr FROM dbo.Vertragsereignis INNER JOIN dbo.Periodizitaet ON dbo.Vertragsereignis.PeriodizitaetNr = dbo.Periodizitaet.PeriodizitaetNr INNER JOIN dbo.Ereignistyp ON dbo.Vertragsereignis.EreignistypNr = dbo.Ereignistyp.Ereignistypnr INNER JOIN dbo.Kostenart ON dbo.Vertragsereignis.KostenartNr = dbo.Kostenart.KostenartNr WHERE dbo.Ereignistyp.Aktivitaeten_generieren = 1 and dbo.vertragsereignis.aktiv=1 --and and dbo.check_generate_activity(dbo.vertragsereignis.Datum, dbo.vertragsereignis.datum,@steuerdatum, dbo.vertragsereignis.vorlaufzeit,dbo.vertragsereignis.periodizitaetnr, dbo.Ereignistyp.Aktivitaeten_generieren, dbo.vertragsereignis.kuendigungsfristnr,dbo.ereignistyp.kuendigung,0,1)='1' and dbo.vertragsereignis.periodizitaetnr=15 -------------------------------------------------------------------- -- Periodische -------------------------------------------------------------------- Insert into aktivitaet SELECT dbo.Vertragsereignis.EreignisNr, 1 AS AktivitaetStatusNr, dbo.Periodizitaet.PeriodizitaetNr, @steuerdatum AS Ausgeloest_am, dbo.Ereignistyp.Bezeichnung AS Ereignis, dbo.Kostenart.Bezeichnung AS Kostenart, dbo.Vertragsereignis.Betrag, dbo.check_generate_activity(dbo.vertragsereignis.start, dbo.vertragsereignis.ende,@steuerdatum, dbo.vertragsereignis.vorlaufzeit,dbo.vertragsereignis.periodizitaetnr, dbo.Ereignistyp.Aktivitaeten_generieren, dbo.vertragsereignis.kuendigungsfristnr,dbo.ereignistyp.kuendigung,1,0) as Termin, --'' as termin, dbo.Vertragsereignis.Bezeichnung AS Beschreibung, dbo.Vertragsereignis.Beschreibung AS Bemerkung, dbo.Vertragsereignis.SecurityLevelNr, 1 AS aktiv, GETDATE() AS erstellt_am, GETDATE() AS mutiert_am, 9999 AS mutierer, dbo.get_kuendigungsfrist(dbo.vertragsereignis.kuendigungsfristnr,dbo.ereignistyp.kuendigung) as Kuendigungsfrist, 0 as vertragselementnr FROM dbo.Vertragsereignis INNER JOIN dbo.Periodizitaet ON dbo.Vertragsereignis.PeriodizitaetNr = dbo.Periodizitaet.PeriodizitaetNr INNER JOIN dbo.Ereignistyp ON dbo.Vertragsereignis.EreignistypNr = dbo.Ereignistyp.Ereignistypnr INNER JOIN dbo.Kostenart ON dbo.Vertragsereignis.KostenartNr = dbo.Kostenart.KostenartNr WHERE dbo.vertragsereignis.periodizitaetnr<>15 and dbo.vertragsereignis.periodizitaetnr<>0 and dbo.check_generate_activity(dbo.vertragsereignis.start, dbo.vertragsereignis.ende,@steuerdatum, dbo.vertragsereignis.vorlaufzeit,dbo.vertragsereignis.periodizitaetnr, dbo.Ereignistyp.Aktivitaeten_generieren, dbo.vertragsereignis.kuendigungsfristnr,dbo.ereignistyp.kuendigung,0,0)='1' and dbo.vertragsereignis.aktiv=1 insert joblog (logentry) values ('ende') GO