DROP PROCEDURE IF EXISTS dbo.uspImportTanuloBesorolasOsztaly GO CREATE PROCEDURE dbo.uspImportTanuloBesorolasOsztaly @xml xml, @besorolasDatuma datetime, @intezmenyId int, @tanevId int, @userId int AS BEGIN DECLARE @TanuloBesorolas TABLE ( TanuloId int, OsztalyId int, CsoportId int ) INSERT INTO @TanuloBesorolas (Tanuloid, OsztalyId, CsoportId) SELECT sor.value('(TanuloId)[1]', 'int') AS TanuloId, sor.value('(OsztalyId)[1]', 'int') AS OsztalyId, sor.value('(CsoportId)[1]', 'int') AS CsoportId FROM @xml.nodes('/TanuloBesorolasImport/TanuloBesorolasLista/TanuloBesorolas') as sorok(sor) DECLARE @exist TABLE (TanuloId int, OsztalyId int) INSERT INTO @exist (TanuloId, OsztalyId) SELECT TanuloId, OsztalyId FROM @TanuloBesorolas b INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON b.TanuloId = tcs.C_TANULOID INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID WHERE tcs.C_BELEPESDATUM <= @besorolasDatuma AND (tcs.C_KILEPESDATUM > @besorolasDatuma OR tcs.C_KILEPESDATUM IS NULL) AND b.OsztalyId > 0 AND (b.OsztalyId <> tcs.C_OSZTALYCSOPORTID) AND tcs.C_INTEZMENYID = @intezmenyId AND tcs.C_TANEVID = @tanevId AND tcs.TOROLT = 'F' AND o.TOROLT ='F' INSERT INTO T_TANULOCSOPORT_OSSZES ( C_BEJEGYZESIDOPONTJA ,C_BELEPESDATUM ,C_KILEPESDATUM ,C_ZARADEK ,C_BEFOGADOINTEZMENY ,C_MEGJEGYZES ,C_VEGZARADEK ,C_INTEZMENYID ,C_TANEVID ,C_OSZTALYCSOPORTID ,C_TANULOID ,MODIFIER ,CREATOR ) SELECT GETDATE() AS C_BEJEGYZESIDOPONTJA -- C_BEJEGYZESIDOPONTJA - datetime ,@besorolasDatuma AS C_BELEPESDATUM -- C_BELEPESDATUM - datetime ,NULL AS C_KILEPESDATUM -- C_KILEPESDATUM - datetime ,NULL AS C_ZARADEK -- C_ZARADEK - nvarchar(MAX) ,NULL AS C_BEFOGADOINTEZMENY -- C_BEFOGADOINTEZMENY - nvarchar(255) ,NULL AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255) ,NULL AS C_VEGZARADEK -- C_VEGZARADEK - nvarchar(MAX) ,@intezmenyId AS C_INTEZMENYID -- C_INTEZMENYID - int ,@tanevId AS C_TANEVID -- C_TANEVID - int ,ISNULL(NULLIF(b.OsztalyId, 0), b.CsoportId) AS C_OSZTALYCSOPORTID -- C_OSZTALYCSOPORTID - int ,b.TanuloId AS C_TANULOID -- C_TANULOID - int ,NULL AS MODIFIER -- MODIFIER - int ,@userId AS CREATOR -- CREATOR - int FROM @TanuloBesorolas b WHERE NOT EXISTS (SELECT 1 FROM @exist e WHERE e.TanuloId = b.TanuloId AND e.OsztalyId = b.OsztalyId) INSERT INTO [T_TANULOTANUGYIADATOK] ([C_BEIRASINAPLOSORSZAM] ,[C_BEJARO] ,[C_DIAKSPORTKOROS] ,[C_EGYEBORSZAGOSDONTO] ,[C_EGYUTTMUKODESES] ,[C_ELOZOINTEZMENY] ,[C_EVISMETLO] ,[C_ISKOLAIKERETEKKOZOTT] ,[C_JOGVISZONYATSZUNETELTETO] ,[C_JOGVISZONYVARHATOBEFEJEZESE] ,[C_MAGANTANULO] ,[C_MAGANTANULOSAGANAKOKAID] ,[C_MAGANTANULOSAGKEZDETE] ,[C_NYILVANTARTASKEZDETE] ,[C_OSZTV] ,[C_POLGARISZERZODESES] ,[C_SZAKMAIGYAKORLATON] ,[C_SZETVAGAZAT] ,[C_SZINTVIZSGA] ,[C_SZKTV] ,[C_TANDIJATFIZETO] ,[C_TANKOTELEZETT] ,[C_TANKOTELEZETTSEGVEGE] ,[C_TANULOEVFOLYAMTIPUSID] ,[C_TANULOSZERZODESES] ,[C_TECHNIKUSIEVFOLYAM] ,[C_TERITESIDIJATFIZETO] ,[C_VENDEG] ,[C_NAPLOSORSZAM] ,[C_TORZSLAPSZAM] ,[C_TANTERVID] ,[C_FELVETELTANEVEID] ,[C_TANULOCSOPORTID] ,[C_INTEZMENYID] ,[C_TANEVID] ,[TOROLT] ,[SERIAL] ,[LASTCHANGED] ,[CREATED] ,[MODIFIER] ,[CREATOR] ,[ELOZOTANEVIREKORDID] ,[NNID]) SELECT tanulo.C_BEIRASINAPLOSORSZAM ,ISNULL(tanulo.C_BEJARO, 'F') ,ISNULL(tanulo.C_DIAKSPORTKOROS, 'F') ,ISNULL(tanulo.C_EGYEBDONTO, 'F') ,tanulo.C_EGYUTTMUKODESES ,tanulo.C_ELOZOINTEZMENY ,ISNULL(tanulo.C_EVISMETLO, 'F') ,ISNULL(tanulo.C_ISKOLAIKERETEKKOZOTT, 'F') ,ISNULL(tanulo.C_JOGVISZONYATSZUNETELTETO, 'F') ,tanulo.C_JOGVISZONYVARHATOBEFEJEZESE ,ISNULL(tanulo.C_MAGANTANULO, 'F') ,tanulo.C_MAGANTANULOSAGANAKOKA ,tanulo.C_MAGANTANULOSAGKEZDETE ,felhasznalo.C_NYILVANTARTASKEZDETE ,ISNULL(tanulo.C_OSZTV, 'F') ,ISNULL(tanulo.C_POLGARISZERZODESES, 'F') ,ISNULL(tanulo.C_SZAKMAIGYAKORLATON, 'F') ,ISNULL(tanulo.C_SZETVAGAZAT, 'F') ,tanulo.C_SZINTVIZSGA ,ISNULL(tanulo.C_SZKTV, 'F') ,ISNULL(tanulo.C_TANDIJATFIZETO, 'F') ,ISNULL(tanulo.C_TANKOTELEZETT, 'F') ,tanulo.C_TANKOTELEZETTSEGVEGE ,tanulo.C_TANULOEVFOLYAMTIPUS ,ISNULL(tanulo.C_TANULOSZERZODESES, 'F') ,ISNULL(tanulo.C_TECHNIKUSIEVFOLYAM, 'F') ,ISNULL(tanulo.C_TERITESIDIJATFIZETO, 'F') ,ISNULL(tanulo.C_VENDEG, 'F') ,tanulo.C_NAPLOSORSZAM ,tanulo.C_TORZSLAPSZAM ,tanulo.C_TANTERVID ,tanulo.C_FELVETELTANEVEID ,tcs.ID ,@intezmenyId ,@tanevId ,'F' , 0 ,GETDATE() ,GETDATE() ,NULL ,@userId AS CREATOR ,tanulo.ELOZOTANEVIREKORDID ,tanulo.NNID FROM @TanuloBesorolas b INNER JOIN T_TANULO_OSSZES tanulo ON tanulo.ID = b.TanuloId INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = tanulo.ID AND felhasznalo.C_TANEVID = @tanevId AND felhasznalo.C_INTEZMENYID = @intezmenyId INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = b.OsztalyId AND C_TANULOID = b.TanuloId AND tcs.TOROLT='F' AND tcs.C_INTEZMENYID = @intezmenyId AND tcs.C_TANEVID = @tanevId WHERE NOT EXISTS (SELECT 1 FROM T_TANULOTANUGYIADATOK tanugyiAdatok WHERE tanugyiAdatok.C_TANULOCSOPORTID = tcs.ID AND tanugyiAdatok.TOROLT = 'F' AND tanugyiAdatok.C_INTEZMENYID = @intezmenyId AND tanugyiAdatok.C_TANEVID = @tanevId) SELECT e1.TanuloId, e1.OsztalyId FROM @exist e1 END GO