kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190129160839_AL_407/uspImportTanuloBesorolasOsztaly.sql
2024-03-13 00:33:46 +01:00

178 lines
6.4 KiB
Transact-SQL

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