This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,140 @@
IF ((SELECT is_disabled FROM sys.triggers tr where tr.name = N'tr_AsyncAuditEMAILHIBALOG') <> 1)
DISABLE TRIGGER tr_AsyncAuditEMAILHIBALOG ON T_EMAILHIBALOG;
DECLARE @tableName nvarchar(max),
@triggerName nvarchar(max)
DECLARE cur cursor FOR
SELECT DISTINCT t.name, tr.name
FROM sys.tables t
INNER JOIN sys.columns c ON c.object_id = t.object_id
AND c.name IN (N'SERIAL', N'LASTCHANGED', N'CREATED')
INNER JOIN sys.triggers tr ON tr.parent_id = t.object_id
AND tr.name LIKE N'tr_%Log'
AND tr.name NOT LIKE N'tr_AsyncAudit%LOG'
WHERE t.name NOT LIKE N'%_STAGE'
OPEN cur
FETCH NEXT FROM cur
INTO @tableName, @triggerName
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @query nvarchar(max) = N'
DISABLE TRIGGER ' + @triggerName + N' ON ' + @tableName + N';
UPDATE ' + @tableName + N' SET
TOROLT = N''F''
WHERE TOROLT IS NULL;
UPDATE ' + @tableName + N' SET
SERIAL = 0
WHERE SERIAL IS NULL;
UPDATE ' + @tableName + N' SET
CREATED = N''20000101''
WHERE CREATED IS NULL;
UPDATE ' + @tableName + N' SET
LASTCHANGED = CREATED
WHERE LASTCHANGED IS NULL;
ENABLE TRIGGER ' + @triggerName + N' ON ' + @tableName + N';'
EXEC sp_executesql @query
FETCH NEXT FROM cur
INTO @tableName, @triggerName
END
CLOSE cur;
DEALLOCATE cur;
GO
UPDATE T_ENTITYATTRIBUTEHISTORY SET
TOROLT = N'F'
WHERE TOROLT IS NULL;
UPDATE T_ENTITYATTRIBUTEHISTORY SET
SERIAL = 0
WHERE SERIAL IS NULL;
UPDATE T_ENTITYATTRIBUTEHISTORY SET
CREATED = N'20000101'
WHERE CREATED IS NULL;
UPDATE T_ENTITYATTRIBUTEHISTORY SET
LASTCHANGED = CREATED
WHERE LASTCHANGED IS NULL;
UPDATE T_ENTITYHISTORY SET
TOROLT = N'F'
WHERE TOROLT IS NULL;
UPDATE T_ENTITYHISTORY SET
SERIAL = 0
WHERE SERIAL IS NULL;
UPDATE T_ENTITYHISTORY SET
CREATED = N'20000101'
WHERE CREATED IS NULL;
UPDATE T_ENTITYHISTORY SET
LASTCHANGED = CREATED
WHERE LASTCHANGED IS NULL;
UPDATE T_LOGEVENTTYPE SET
TOROLT = N'F'
WHERE TOROLT IS NULL;
UPDATE T_LOGEVENTTYPE SET
SERIAL = 0
WHERE SERIAL IS NULL;
UPDATE T_LOGEVENTTYPE SET
CREATED = N'20000101'
WHERE CREATED IS NULL;
UPDATE T_LOGEVENTTYPE SET
LASTCHANGED = CREATED
WHERE LASTCHANGED IS NULL;
UPDATE T_LOGLEVELTYPE SET
TOROLT = N'F'
WHERE TOROLT IS NULL;
UPDATE T_LOGLEVELTYPE SET
SERIAL = 0
WHERE SERIAL IS NULL;
UPDATE T_LOGLEVELTYPE SET
CREATED = N'20000101'
WHERE CREATED IS NULL;
UPDATE T_LOGLEVELTYPE SET
LASTCHANGED = CREATED
WHERE LASTCHANGED IS NULL;
UPDATE T_TANTARGYNEVHEZKATEGORIA SET
TOROLT = N'F'
WHERE TOROLT IS NULL;
UPDATE T_TANTARGYNEVHEZKATEGORIA SET
SERIAL = 0
WHERE SERIAL IS NULL;
UPDATE T_TANTARGYNEVHEZKATEGORIA SET
CREATED = N'20000101'
WHERE CREATED IS NULL;
UPDATE T_TANTARGYNEVHEZKATEGORIA SET
LASTCHANGED = CREATED
WHERE LASTCHANGED IS NULL;
GO

View file

@ -0,0 +1,852 @@
IF OBJECT_ID('[dbo].[sp_ImportASC]') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_ImportASC]
END
GO
CREATE PROCEDURE [dbo].[sp_ImportASC]
@importXml xml,
@regiTorlese bit,
@ervenyessegFilebanSzerepel bit,
@feladatellatasiHelyId int,
@tanevId int,
@intezmenyId int,
@userId int
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @mukodsesiHely int
DECLARE @osztalyCsoport table (
osztalyCsoportID nvarchar(32),
nev nvarchar(100),
osztalyCsoport varchar(2),
id int
)
INSERT INTO @osztalyCsoport (osztalyCsoportID, nev, osztalyCsoport)
SELECT
sor.value('(OsztalyId)[1]', 'nvarchar(32)') AS osztalcsoportId,
sor.value('(Nev)[1]', 'varchar(100)') AS nev,
'O'
FROM @importXml.nodes('/AscImport/OsztalyLista/Osztaly') as sorok(sor)
INSERT INTO @osztalyCsoport (osztalyCsoportID, nev, osztalyCsoport)
SELECT
sor.value('(Id)[1]', 'nvarchar(32)') AS osztalcsoportId,
sor.value('(Nev)[1]', 'varchar(100)') AS nev,
'CS'
FROM @importXml.nodes('/AscImport/CsoportLista/Csoport') as sorok(sor)
UPDATE x
SET x.id = ocs.ID
FROM @osztalyCsoport x
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON x.nev = ocs.C_NEV AND ocs.C_TANEVID = @tanevId
WHERE ocs.TOROLT = 'F'
DECLARE @tantargy table (
tantargyId nvarchar(32),
nev nvarchar(100),
osztalyCsoport varchar(2),
id int
)
INSERT INTO @tantargy (tantargyId, nev)
SELECT
sor.value('(TantargyId)[1]', 'nvarchar(32)') AS tantargyId,
sor.value('(Nev)[1]', 'varchar(100)') AS nev
FROM @importXml.nodes('/AscImport/TantargyLista/Tantargy') as sorok(sor)
UPDATE x
SET x.id = t.ID
FROM @tantargy x
INNER JOIN T_TANTARGY_OSSZES t ON x.nev = t.C_NEV AND t.C_TANEVID = @tanevId
WHERE t.TOROLT = 'F'
/* TEREM temp TÁBLÁBA */
DECLARE @terem TABLE (
teremId nvarchar(32),
nev nvarchar(255),
kapacitas int,
id int
)
INSERT INTO @terem (teremId, nev, kapacitas)
SELECT
sor.value('(TeremId)[1]', 'nvarchar(32)') AS teremId,
sor.value('(Nev)[1]', 'nvarchar(255)') AS nev,
sor.value('(Kapacitas)[1]', 'int') AS kapacitas
FROM @importXml.nodes('/AscImport/TeremLista/Terem') as sorok(sor)
UPDATE x
SET x.id = t.ID
FROM @terem x
INNER JOIN T_TEREM_OSSZES t ON x.nev = t.C_NEV AND t.C_TANEVID = @tanevId
WHERE t.TOROLT = 'F'
/* HETIREND temp TÁBLÁBA */
DECLARE @hetirend TABLE (
hetirendId nvarchar(32),
nev nvarchar(255),
id int
)
INSERT INTO @hetirend (hetirendId, nev)
SELECT
sor.value('(HetirendId)[1]', 'nvarchar(32)') AS hetirendId,
sor.value('(Nev)[1]', 'nvarchar(255)') AS nev
FROM @importXml.nodes('/AscImport/HetirendLista/Hetirend') as sorok(sor)
UPDATE x
SET x.id = d.ID
FROM @hetirend x
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON x.nev = d.C_NAME AND d.C_TANEVID = @tanevId AND C_TYPE = 'HetiRendTipus' AND d.TOROLT = 'F'
/* CSENGETÉSIREND temp TÁBLÁBA */
DECLARE @csengetesiRendOra TABLE (
csengetesiRendOraId nvarchar(32),
starttime time,
endtime time,
sorszam int,
id int
)
INSERT INTO @csengetesiRendOra (csengetesiRendOraId, starttime, endtime, sorszam)
SELECT
sor.value('(CsengetesiRendOraId)[1]', 'nvarchar(32)') AS csengetesiRendOraId,
sor.value('(Starttime)[1]', 'time') AS starttime,
sor.value('(Endtime)[1]', 'time') AS endtime,
sor.value('(Sorszam)[1]', 'int') AS sorszam
FROM @importXml.nodes('/AscImport/CsengetesiRendOraLista/CsengetesiRendOra') as sorok(sor)
UPDATE x
SET x.id = cs.ID
FROM @csengetesiRendOra x
INNER JOIN T_CSENGETESIRENDORA_OSSZES cs ON x.sorszam = cs.C_ORASZAM AND cs.C_TANEVID = @tanevId
WHERE cs.C_CSENGETESIRENDID = (SELECT MIN(ID) FROM T_CSENGETESIREND_OSSZES csr WHERE /*csr.C_IMPORTALT = 'T' AND*/ csr.C_TANEVID = @tanevId AND csr.TOROLT = 'F')
DECLARE @tanar TABLE (
tanarId nvarchar(32),
nev nvarchar(100),
id int
)
INSERT INTO @tanar (tanarId, nev)
SELECT
sor.value('(Id)[1]', 'nvarchar(32)') AS tanarId,
sor.value('(Nev)[1]', 'varchar(100)') AS tanarNev
FROM @importXml.nodes('/AscImport/TanarLista/Tanar') as sorok(sor)
UPDATE x
SET x.id = f.ID
FROM @tanar x
INNER JOIN T_FELHASZNALO_OSSZES f ON f.C_NYOMTATASINEV = x.nev AND f.TOROLT = 'F'
WHERE EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES a WHERE a.ID = f.ID AND a.C_ALINTEZMENYID = f.C_INTEZMENYID AND a.C_ALTANEVID = f.C_TANEVID AND a.TOROLT = 'F')
AND C_TANEVID = @tanevId
AND C_INTEZMENYID = @intezmenyId
/* ÓRARENDIÓRA temp TÁBLÁBA */
DECLARE @orarendiOra TABLE (
teremID nvarchar(32),
tanarID nvarchar(32),
hetNapja nvarchar(10),
hetirendID nvarchar(32),
osztalyID nvarchar(32),
csoportID nvarchar(32),
tantargyID nvarchar(32),
hetiOraszam float,
sorszam int,
ervenyessegKezdete datetime,
ervenyessegVege datetime
)
INSERT INTO @orarendiOra (
teremID,
tanarID,
hetNapja,
hetirendID,
osztalyID,
csoportID,
tantargyID,
hetiOraszam,
sorszam,
ervenyessegKezdete,
ervenyessegVege
)
SELECT
sor.value('(TeremId)[1]', 'nvarchar(32)') AS teremID,
sor.value('(TanarId)[1]', 'nvarchar(32)') AS tanarID,
sor.value('(HetNapja)[1]', 'nvarchar(10)') AS hetNapja,
sor.value('(HetirendId)[1]', 'nvarchar(32)') AS hetirendID,
NULLIF(sor.value('(OsztalyId)[1]', 'nvarchar(32)'), '') AS osztalyID,
NULLIF(sor.value('(CsoportId)[1]', 'nvarchar(32)'), '') AS csoportID,
sor.value('(TantargyId)[1]', 'nvarchar(32)') AS tantargyID,
sor.value('(HetiOraszam)[1]', 'float') AS hetiOraszam,
sor.value('(Sorszam)[1]', 'int') AS sorszam,
sor.value('(ErvenyessegKezdete)[1]', 'datetime') AS ervenyessegKezdete,
IIF(sor.value('(ErvenyessegVege)[1]', 'datetime') = '19000101', NULL, sor.value('(ErvenyessegVege)[1]', 'datetime')) AS ervenyessegVege
FROM @importXml.nodes('/AscImport/OrarendiOraLista/OrarendiOra') as sorok(sor)
DECLARE
@utolsoTannap datetime
,@utolsoTannapVegzos datetime
-- Utolsó tanitási nap
SELECT @utolsoTannap = C_DATUM + 1
FROM T_TANEVRENDJE_OSSZES
WHERE C_NAPTIPUSA = 1395
AND C_INTEZMENYID = @intezmenyId
AND C_TANEVID = @tanevId
AND TOROLT = 'F'
-- Utolsó tanitási nap végzősöknek
SELECT @utolsoTannapVegzos = C_DATUM + 1
FROM T_TANEVRENDJE_OSSZES
WHERE C_NAPTIPUSA = 1402
AND C_TANEVID = @tanevId
AND C_INTEZMENYID = @intezmenyId
AND TOROLT = 'F'
UPDATE o
SET ervenyessegVege = CASE WHEN ocsk.C_VEGZOSEVFOLYAM = 'F' THEN @utolsoTannap ELSE @utolsoTannapVegzos END
FROM @orarendiOra o
INNER JOIN @osztalyCsoport ocs ON o.osztalyID = ocs.osztalyCsoportID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocsk ON ocs.id = ocsk.ID AND ocsk.TOROLT = 'F'
WHERE ocs.osztalyCsoport = 'O'
AND ervenyessegVege IS NULL
AND ocsk.C_TANEVID = @tanevId
UPDATE @orarendiOra
SET ervenyessegVege = @utolsoTannap
WHERE ervenyessegVege IS NULL
DECLARE @linkTable TABLE (
insertedID int, tempId nvarchar(32), act nvarchar(20)
)
BEGIN TRY
BEGIN TRANSACTION
SELECT @mukodsesiHely = MIN(ID) FROM T_MUKODESIHELY_OSSZES WHERE C_TANEVID = @tanevId
MERGE T_TEREM_OSSZES trg
USING (
SELECT * FROM @terem WHERE nev <> '-') src ON src.ID = trg.ID AND trg.C_TANEVID = @tanevId AND trg.TOROLT = 'F'
WHEN MATCHED THEN
UPDATE SET
trg.C_KAPACITAS = src.kapacitas
,trg.SERIAL = trg.SERIAL + 1
,trg.LASTCHANGED = GETDATE()
,trg.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
C_JELLEG
,C_NEV
,C_MUKODESIHELYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
181 -- osztályterem
,src.nev
,@mukodsesiHely
,@intezmenyId
,@tanevId
,@userId
,@userId
)
OUTPUT INSERTED.ID, src.teremId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @terem x
INNER JOIN @linkTable y ON x.teremId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
SET @feladatellatasiHelyId = ISNULL(@feladatellatasiHelyId,
(SELECT MIN(ID)
FROM T_FELADATELLATASIHELY_OSSZES
WHERE C_INTEZMENYID = @intezmenyID
AND C_TANEVID = @tanevID)
)
MERGE T_OSZTALYCSOPORT_OSSZES trg
USING (SELECT * FROM @osztalyCsoport WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_IMPORTALT
,C_TERVEZETTLETSZAM
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
NULL -- C_MEGJEGYZES - nvarchar(255)
,src.nev -- C_NEV - nvarchar(255)
,'F' -- C_VEGZOSEVFOLYAM - char(1)
,1296 -- C_EVFOLYAMTIPUSA - int
,'T' -- C_IMPORTALT - char(1)
,NULL -- C_TERVEZETTLETSZAM - int
,NULL -- C_TEREMID - int
,@feladatellatasiHelyId -- C_FELADATELLATASIHELYID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.osztalycsoportId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @osztalyCsoport x
INNER JOIN @linkTable y ON x.osztalycsoportId = y.tempId
WHERE x.ID IS NULL
INSERT INTO T_OSZTALY_OSSZES (
ID
,C_KEPZESIFORMA
,C_OSZTALYNAPLOLEIRASA
,C_OSZTALYNAPLOMEGNYITASA
,C_OSZTALYNAPLOZARASA
,C_OSZTALYFONOKID
,C_OFOHELYETTESID
,C_TANTERVID
,C_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
) SELECT
x.id AS ID -- ID - int
,1096 AS C_KEPZESIFORMA -- C_KEPZESIFORMA - int
,NULL AS C_OSZTALYNAPLOLEIRASA -- C_OSZTALYNAPLOLEIRASA - nvarchar(MAX)
,NULL AS C_OSZTALYNAPLOMEGNYITASA -- C_OSZTALYNAPLOMEGNYITASA - datetime
,NULL AS C_OSZTALYNAPLOZARASA -- C_OSZTALYNAPLOZARASA - datetime
,NULL AS C_OSZTALYFONOKID -- C_OSZTALYFONOKID - int
,NULL AS C_OFOHELYETTESID -- C_OFOHELYETTESID - int
,NULL AS C_TANTERVID -- C_TANTERVID - int
,@intezmenyId AS C_ALINTEZMENYID -- C_ALINTEZMENYID - int
,@tanevId AS C_ALTANEVID -- C_ALTANEVID - int
,@userId AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @osztalyCsoport x
INNER JOIN @linktable y ON x.id = y.insertedID
WHERE osztalyCsoport = 'O'
INSERT INTO T_CSOPORT_OSSZES (
ID
,C_TIPUSA
,C_CSOPORTNAPLOLEIRAS
,C_CSOPORTNAPLOMEGNYITASA
,C_CSOPORTNAPLOZARASA
,C_CSOPORTVEZETOID
,C_OSZTALYBONTASID
,C_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
) SELECT
x.id AS ID -- ID - int
,1031 AS C_TIPUSA -- C_TIPUSA - int
,NULL AS C_CSOPORTNAPLOLEIRAS -- C_CSOPORTNAPLOLEIRAS - nvarchar(MAX)
,NULL AS C_CSOPORTNAPLOMEGNYITASA -- C_CSOPORTNAPLOMEGNYITASA - datetime
,NULL AS C_CSOPORTNAPLOZARASA -- C_CSOPORTNAPLOZARASA - datetime
,NULL AS C_CSOPORTVEZETOID -- C_CSOPORTVEZETOID - int
,NULL AS C_OSZTALYBONTASID -- C_OSZTALYBONTASID - int
,@intezmenyId AS C_ALINTEZMENYID -- C_ALINTEZMENYID - int
,@tanevId AS C_ALTANEVID -- C_ALTANEVID - int
,@userId AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @osztalyCsoport x
INNER JOIN @linktable y ON x.id = y.insertedID
WHERE osztalyCsoport = 'CS'
DELETE FROM @linktable
MERGE T_TANTARGY_OSSZES trg
USING (SELECT * FROM @tantargy WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_GYAKORLATI
,C_NEV
,C_ROVIDNEV
,C_TARGYKATEGORIA
,C_ALTANTARGYKENTNYOMTATVANYBAN
,C_NEVNYOMTATVANYBAN
,C_TANORANKIVULI
,C_IMPORTALT
,C_FOTARGYE
,C_FOTARGYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
'F' -- C_GYAKORLATI - char(1)
,nev -- C_NEV - nvarchar(255)
,LEFT(nev, 20) -- C_ROVIDNEV - nvarchar(20)
,1197 -- C_TARGYKATEGORIA - int
,NULL -- C_ALTANTARGYKENTNYOMTATVANYBAN - char(1)
,NULL -- C_NEVNYOMTATVANYBAN - nvarchar(255)
,'F' -- C_TANORANKIVULI - char(1)
,'T' -- C_IMPORTALT - char(1)
,'F' -- C_FOTARGYE - char(1)
,NULL -- C_FOTARGYID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.tantargyId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @tantargy x
INNER JOIN @linkTable y ON x.tantargyId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
DECLARE @foglalkozas TABLE (
foglalozasId int IDENTITY(1, 1)
,tantargyId int
,tanarId int
,osztalyCsoportId int
,hetiOraszam float
,nev nvarchar(255)
,id int
)
INSERT INTO @foglalkozas (
tantargyId
,tanarId
,osztalyCsoportId
,hetiOraszam
,nev
,id
) SELECT
tt.ID
,fh.ID
,ISNULL(cs.ID, o.ID)
,oraszam
,tt.nev + ' - ' + ISNULL(cs.nev, o.nev) + ' - ' + x.tanar AS nev
,x.existItemId AS id
FROM (
SELECT
NULLIF(sor.value('(osztaly)[1]', 'nvarchar(32)'), '') AS osztaly
,NULLIF(sor.value('(csoport)[1]', 'nvarchar(32)'), '') AS csoport
,sor.value('(tantargy)[1]', 'nvarchar(32)') AS tantargy
,sor.value('(oraszam)[1]', 'float') AS oraszam
,sor.value('(tanar)[1]', 'nvarchar(32)') AS tanar
,NULLIF(sor.value('(existItemId)[1]', 'nvarchar(32)'), 0) AS existItemId
FROM @importXml.nodes('/AscImport/TantargyfelosztasLista/Tantargyfelosztas') as sorok(sor)
) x
LEFT JOIN @osztalyCsoport cs ON cs.nev = x.csoport
LEFT JOIN @osztalyCsoport o ON o.nev = x.osztaly
INNER JOIN @tantargy tt ON tt.nev = x.tantargy
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.C_NYOMTATASINEV = x.tanar AND fh.C_TANEVID = @tanevId AND fh.TOROLT = 'F'
WHERE EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES a WHERE a.ID = fh.ID AND a.C_ALTANEVID = fh.C_TANEVID AND a.TOROLT = 'F')
/* Az importtal bekerült foglalkozások beszúrása */
MERGE T_FOGLALKOZAS_OSSZES trg
USING (select * FROM @foglalkozas WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_IMPORTALT
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
1338 -- C_FOGLALKOZASTIPUSA - int
,hetiOraszam -- C_ORASZAM - numeric(10, 2)
,nev -- C_NEV - nvarchar(255)
,'T' -- C_ERTEKELESKELL - char(1)
,'T' -- C_MULASZTASKELL - char(1)
,'T' -- C_TANARFELVEHETI - char(1)
,'T' -- C_IMPORTALT - char(1)
,tantargyId -- C_TANTARGYID - int
,osztalyCsoportId -- C_OSZTALYCSOPORTID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.foglalozasId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @foglalkozas x
INNER JOIN @linkTable y ON x.foglalozasId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
INSERT INTO T_FOGLALKOZASOK_TANAROK (
C_FOGLALKOZASOKID
,C_TANAROKID
) SELECT
id AS C_FOGLALKOZASOKID -- C_FOGLALKOZASOKID - int
,tanarId AS C_TANAROKID -- C_TANAROKID - int
FROM @foglalkozas f
WHERE id IS NOT NULL
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK ft WHERE f.ID = ft.C_FOGLALKOZASOKID)
/* Az importtal bekerült foglalkozások beszúrása */
INSERT INTO @foglalkozas (
tantargyId
,tanarId
,osztalyCsoportId
,hetiOraszam
,nev
,id
) SELECT
tt.id AS tantargyId
,a.id AS tanarId
,ocs.id AS osztalyCsoportId
,COUNT(1) AS hetiOraszam
,MIN(tt.nev) + ' - ' + MIN(ocs.nev) + ' - ' + MIN(a.nev) AS nev
,MIN(ff.ID) AS id
FROM @orarendiOra o
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport ocs ON (ocs.osztalyCsoportID = o.CsoportId AND ocs.osztalyCsoport = 'CS') --OR (ocs.osztalyCsoportID = o.OsztalyId AND ocs.osztalyCsoport = 'O')
LEFT JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, ft.C_TANAROKID
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.C_FOGLALKOZASOKID = f.ID
WHERE f.TOROLT = 'F'
AND f.C_TANEVID = @tanevId
) ff
ON ff.C_TANTARGYID = tt.ID
AND ff.C_TANAROKID = a.ID
AND ff.C_OSZTALYCSOPORTID = ocs.ID
GROUP BY tt.id, a.id, ocs.id
INSERT INTO @foglalkozas (
tantargyId
,tanarId
,osztalyCsoportId
,hetiOraszam
,nev
,id
) SELECT
tt.id AS tantargyId
,a.id AS tanarId
,ocs.id AS osztalyCsoportId
,COUNT(1) AS hetiOraszam
,MIN(tt.nev) + ' - ' + MIN(ocs.nev) + ' - ' + MIN(a.nev) AS nev
,MIN(ff.ID) AS id
FROM @orarendiOra o
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport ocs ON (ocs.osztalyCsoportID = o.OsztalyId AND ocs.osztalyCsoport = 'O') AND o.csoportId IS NULL --OR (ocs.osztalyCsoportID = o.OsztalyId AND ocs.osztalyCsoport = 'O')
LEFT JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, ft.C_TANAROKID
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.C_FOGLALKOZASOKID = f.ID
WHERE f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
) ff ON ff.C_TANTARGYID = tt.ID
AND ff.C_TANAROKID = a.ID
AND ff.C_OSZTALYCSOPORTID = ocs.ID
GROUP BY tt.id, a.id, ocs.id
/* Az órarendi órából keletkező foglalkozások beszúrása */
MERGE T_FOGLALKOZAS_OSSZES trg
USING (SELECT * FROM @foglalkozas WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_IMPORTALT
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
1338 -- C_FOGLALKOZASTIPUSA - int
,hetiOraszam -- C_ORASZAM - numeric(10, 2)
,nev -- C_NEV - nvarchar(255)
,'T' -- C_ERTEKELESKELL - char(1)
,'T' -- C_MULASZTASKELL - char(1)
,'T' -- C_TANARFELVEHETI - char(1)
,'T' -- C_IMPORTALT - char(1)
,tantargyId -- C_TANTARGYID - int
,osztalyCsoportId -- C_OSZTALYCSOPORTID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.foglalozasId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @foglalkozas x
INNER JOIN @linkTable y ON x.foglalozasId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
INSERT INTO T_FOGLALKOZASOK_TANAROK (
C_FOGLALKOZASOKID
,C_TANAROKID
) SELECT
id AS C_FOGLALKOZASOKID -- C_FOGLALKOZASOKID - int
,tanarId AS C_TANAROKID -- C_TANAROKID - int
FROM @foglalkozas f
WHERE id IS NOT NULL
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK ft WHERE f.ID = ft.C_FOGLALKOZASOKID)
/* T_HETIRENDTIPUS INSERT */
SELECT @mukodsesiHely = MIN(ID) FROM T_MUKODESIHELY_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F'
MERGE T_DICTIONARYITEMBASE_OSSZES trg
USING @hetirend src ON src.ID = trg.ID AND trg.C_INTEZMENYID = @intezmenyid AND trg.C_TANEVID = @tanevId AND trg.TOROLT = 'F'
WHEN NOT MATCHED THEN
INSERT (
C_VALUE
,C_NAME
,C_VISIBLE
,C_TYPE
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
0
,src.nev + ' (importálva: ' + CONVERT(varchar(20), GETDATE(), 120) + ')'
,'T'
,'HetirendTipus'
,@intezmenyID
,@tanevID
,NULL
,@userId
)
OUTPUT INSERTED.ID, src.hetirendID, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @hetirend x
INNER JOIN @linkTable y ON x.hetirendId = y.tempId
WHERE x.ID IS NULL;
INSERT INTO T_HETIRENDTIPUS_OSSZES (
ID
,C_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
) SELECT
x.ID AS ID -- ID - int
,@intezmenyId AS C_ALINTEZMENYID -- C_ALINTEZMENYID - int
,@tanevId AS C_ALTANEVID -- C_ALTANEVID - int
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @hetirend x
WHERE NOT EXISTS (SELECT 1 FROM T_HETIRENDTIPUS_OSSZES ht WHERE ht.ID = x.ID AND C_ALTANEVID = @tanevId AND TOROLT = 'F')
DECLARE @ids TABLE (
id int
)
DECLARE @ervenyessegKezdete datetime
/* T_ORARENDIORA INSERT */
IF @regiTorlese = 1 BEGIN
IF @ervenyessegFilebanSzerepel = 0 BEGIN
SELECT TOP(1) @ervenyessegKezdete = ervenyessegKezdete
FROM @orarendiOra
UPDATE T_ORARENDIORA_OSSZES
SET
C_ORAERVENYESSEGVEGE = @ervenyessegKezdete
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @userId
WHERE C_ORAERVENYESSEGVEGE > @ervenyessegKezdete
AND C_TANEVID = @tanevId
AND C_ORAERVENYESSEGVEGE <> C_ORAERVENYESSEGKEZDETE
AND TOROLT = 'F'
AND C_ORAERVENYESSEGKEZDETE < @ervenyessegKezdete
END
ELSE BEGIN
UPDATE T_ORARENDIORA_OSSZES
SET TOROLT = 'T'
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @userId
WHERE TOROLT = 'F'
AND C_TANEVID = @tanevId
AND C_ORAERVENYESSEGVEGE <> C_ORAERVENYESSEGKEZDETE
END
END
DECLARE @csengetesiRendId int
SELECT @csengetesiRendId = ID FROM T_CSENGETESIREND_OSSZES WHERE C_AKTIV = 'T' AND C_TANEVID = @tanevId AND TOROLT = 'F'
INSERT INTO T_ORARENDIORA_OSSZES (
C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_INTEZMENYID
,C_TANEVID
,C_BONTOTT
,C_ORAERVENYESSEGVEGE
,C_ORAKEZDETE
,C_ORAVEGE
,C_TEREMID
,C_FOGLALKOZASID
,C_CSENGETESIRENDORAID
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_ORATULAJDONOSID
,MODIFIER
,CREATOR
,C_IMPORTALT
,C_CSENGETESIRENDID
) SELECT --'T_ORARENDIORA',
h.id AS C_HETIREND
,CASE o.hetNapja
WHEN 'Hétfő' THEN 1408
WHEN 'Kedd' THEN 1409
WHEN 'Szerda' THEN 1410
WHEN 'Csütörtök' THEN 1411
WHEN 'Péntek' THEN 1412
WHEN 'Szombat' THEN 1413
WHEN 'Vasárnap' THEN 1414
ELSE 1407
END AS C_HETNAPJA -- ?
,csro.C_ORASZAM AS C_ORASZAM
,o.ervenyessegKezdete AS C_ORAERVENYESSEGKEZDETE
,@intezmenyID AS C_INTEZMENYID
,@tanevId AS C_TANEVID
,'F' AS C_BONTOTT
,o.ervenyessegVege AS C_ORAERVENYESSEGVEGE
,csro.C_KEZDETE AS C_ORAKEZDETE
,csro.C_VEGE AS C_ORAVEGE
,t.id AS C_TEREMID
,ff.ID AS C_FOGLALKOZASID -- ?
,csro.ID AS C_CSENGETESIRENDORAID
,tt.ID AS C_TANTARGYID -- ?
,oszt.ID AS C_OSZTALYCSOPORTID -- ?
,a.ID AS C_TANARID -- ?
,@userId AS C_ORATULAJDONOSID -- ?
,NULL AS MODIFIER
,@userId AS CREATOR
,'T' AS C_IMPORTALT
,csro.C_CSENGETESIRENDID AS C_CSENGETESIRENDID
FROM @orarendiOra o
INNER JOIN @terem t ON t.teremID = o.teremID
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport oszt ON oszt.osztalyCsoportID = o.OsztalyId AND oszt.osztalyCsoport = 'O' AND o.csoportId IS NULL
INNER JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, ft.C_TANAROKID
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.C_FOGLALKOZASOKID = f.ID
WHERE f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
) ff ON ff.C_TANTARGYID = tt.ID AND ff.C_TANAROKID = a.ID AND ff.C_OSZTALYCSOPORTID = oszt.ID--ISNULL(cs.ID, oszt.ID)
INNER JOIN @hetirend h ON o.hetirendID = h.hetirendId
INNER JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_ORASZAM = o.sorszam AND csro.C_CSENGETESIRENDID = @csengetesiRendId AND csro.TOROLT = 'F';
INSERT INTO T_ORARENDIORA_OSSZES (
C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_INTEZMENYID
,C_TANEVID
,C_BONTOTT
,C_ORAERVENYESSEGVEGE
,C_ORAKEZDETE
,C_ORAVEGE
,C_TEREMID
,C_FOGLALKOZASID
,C_CSENGETESIRENDORAID
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_ORATULAJDONOSID
,MODIFIER
,CREATOR
,C_IMPORTALT
,C_CSENGETESIRENDID
) SELECT --'T_ORARENDIORA',
h.id AS C_HETIREND
,CASE o.hetNapja
WHEN 'Hétfő' THEN 1408
WHEN 'Kedd' THEN 1409
WHEN 'Szerda' THEN 1410
WHEN 'Csütörtök' THEN 1411
WHEN 'Péntek' THEN 1412
WHEN 'Szombat' THEN 1413
WHEN 'Vasárnap' THEN 1414
ELSE 1407
END AS C_HETNAPJA -- ?
,csro.C_ORASZAM AS C_ORASZAM
,o.ervenyessegKezdete AS C_ORAERVENYESSEGKEZDETE
,@intezmenyID AS C_INTEZMENYID
,@tanevId AS C_TANEVID
,'F' AS C_BONTOTT
,o.ervenyessegVege AS C_ORAERVENYESSEGVEGE
,csro.C_KEZDETE AS C_ORAKEZDETE
,csro.C_VEGE AS C_ORAVEGE
,t.id AS C_TEREMID
,ff.ID AS C_FOGLALKOZASID -- ?
,csro.ID AS C_CSENGETESIRENDORAID
,tt.ID AS C_TANTARGYID -- ?
,cs.ID AS C_OSZTALYCSOPORTID -- ?
,a.ID AS C_TANARID -- ?
,@userId AS C_ORATULAJDONOSID -- ?
,NULL AS MODIFIER
,@userId AS CREATOR
,'T' AS C_IMPORTALT
,csro.C_CSENGETESIRENDID AS C_CSENGETESIRENDID
FROM @orarendiOra o
INNER JOIN @terem t ON t.teremID = o.teremID
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport cs ON cs.osztalyCsoportID = o.CsoportId AND cs.osztalyCsoport = 'CS'
INNER JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, ft.C_TANAROKID
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.C_FOGLALKOZASOKID = f.ID
WHERE f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
) ff ON ff.C_TANTARGYID = tt.ID AND ff.C_TANAROKID = a.ID AND ff.C_OSZTALYCSOPORTID = cs.ID
INNER JOIN @hetirend h ON o.hetirendID = h.hetirendId
INNER JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_ORASZAM = o.sorszam AND csro.C_CSENGETESIRENDID = @csengetesiRendId AND csro.TOROLT = 'F';
COMMIT TRANSACTION
-- ROLLBACK TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,134 @@
IF OBJECT_ID('sp_ImportCsoportok', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportCsoportok
END
GO
CREATE PROCEDURE sp_ImportCsoportok
@xml xml,
@userID int,
@intezmenyID int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
ID int,
C_NEV nvarchar(50),
C_TIPUSA int,
C_EVFOLYAMTIPUSA int,
C_FELADATELLATASIHELYID int,
C_TEREMID int,
C_CSOPORTVEZETOID int,
C_TANEVID int
);
INSERT INTO @tbl
SELECT
NULL AS ID,
sor.value('(nev)[1]', 'nvarchar(50)') AS C_NEV,
sor.value('(tipus)[1]', 'int') AS C_TIPUSA,
sor.value('(evfolyam-tipusa)[1]', 'int') AS C_EVFOLYAMTIPUSA,
sor.value('(fhely)[1]', 'int') AS C_FELADATELLATASIHELYID,
sor.value('(terem)[1]', 'int') AS C_TEREMID,
sor.value('(csoportvezeto)[1]', 'int') AS C_CSOPORTVEZETOID,
sor.value('(tanev)[1]', 'int') AS C_TANEVID
FROM @xml.nodes('/CsoportImport/CsoportLista/Csoport') AS sorok(sor)
BEGIN TRANSACTION
UPDATE ocs SET
ocs.C_EVFOLYAMTIPUSA = t.C_EVFOLYAMTIPUSA -- int
,ocs.C_TEREMID = t.C_TEREMID -- int
,ocs.C_FELADATELLATASIHELYID = t.C_FELADATELLATASIHELYID -- int
,ocs.SERIAL = ocs.SERIAL + 1
,ocs.LASTCHANGED = GETDATE() -- datetime
,ocs.MODIFIER = @userID -- int
FROM T_OSZTALYCSOPORT ocs
INNER JOIN @tbl t ON ocs.C_NEV = t.C_NEV AND ocs.C_TANEVID = t.C_TANEVID AND ocs.TOROLT = 'F'
WHERE EXISTS (SELECT 1 FROM T_CSOPORT WHERE ID = ocs.ID)
INSERT INTO T_OSZTALYCSOPORT (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_IMPORTALT
,C_TANEVID
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,MODIFIER
,CREATOR
) SELECT
NULL AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,C_NEV AS C_NEV -- C_NEV - nvarchar(255)
,'F' AS C_VEGZOSEVFOLYAM -- C_VEGZOSEVFOLYAM - char(1)
,C_EVFOLYAMTIPUSA AS C_EVFOLYAMTIPUSA -- C_EVFOLYAMTIPUSA - int
,'F' AS C_IMPORTALT -- C_IMPORTALT - char(1)
,C_TANEVID AS C_TANEVID -- C_TANEVID - int
,C_TEREMID AS C_TEREMID -- C_TEREMID - int
,C_FELADATELLATASIHELYID AS C_FELADATELLATASIHELYID -- C_FELADATELLATASIHELYID - int
,@intezmenyID AS C_INTEZMENYID
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (
SELECT 1 FROM T_OSZTALYCSOPORT ocs
WHERE ocs.C_NEV = t.C_NEV AND ocs.C_TANEVID = t.C_TANEVID AND ocs.TOROLT = 'F'
AND NOT EXISTS (SELECT 1 FROM T_OSZTALY WHERE ID = ocs.ID)
);
UPDATE t
SET t.ID = ocs.ID
FROM @tbl t
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.C_NEV = t.C_NEV AND ocs.C_TANEVID = t.C_TANEVID AND ocs.TOROLT = 'F'
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALY WHERE ID = ocs.ID)
UPDATE cs
SET cs.C_TIPUSA = t.C_TIPUSA -- int
FROM T_CSOPORT cs
INNER JOIN @tbl t ON t.ID = cs.ID
INSERT INTO T_CSOPORT (
ID
,C_TIPUSA
,C_CSOPORTNAPLOLEIRAS
,C_CSOPORTNAPLOMEGNYITASA
,C_CSOPORTNAPLOZARASA
,C_CSOPORTVEZETOID
,C_OSZTALYBONTASID
,MODIFIER
,CREATOR
) SELECT
t.ID AS ID -- ID - int
,t.C_TIPUSA AS C_TIPUSA -- C_TIPUSA - int
,NULL AS C_CSOPORTNAPLOLEIRAS -- C_CSOPORTNAPLOLEIRAS - nvarchar(MAX)
,NULL AS C_CSOPORTNAPLOMEGNYITASA -- C_CSOPORTNAPLOMEGNYITASA - datetime
,NULL AS C_CSOPORTNAPLOZARASA -- C_CSOPORTNAPLOZARASA - datetime
,NULL AS C_CSOPORTVEZETOID -- C_CSOPORTVEZETOID - int
,NULL AS C_OSZTALYBONTASID -- C_OSZTALYBONTASID - int
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (SELECT 1 FROM T_CSOPORT WHERE ID = t.ID)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,135 @@
IF OBJECT_ID('sp_ImportEszkozok', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportEszkozok
END
GO
CREATE PROCEDURE [sp_ImportEszkozok]
@xml xml,
@userID int,
@intezmenyID int,
@tanevID int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
C_NEV nvarchar(255),
C_TEREMID int,
C_FELELOSID int,
C_DARABSZAM int,
C_TIPUS int,
C_KATEGORIA int,
C_BESZERZESDATUM datetime,
C_LELTARISZAM nvarchar(20),
C_GYARISZAM nvarchar(20),
C_MEGJEGYZES nvarchar(255)
)
INSERT INTO @tbl
SELECT
sor.value('(EszkozNeve)[1]', 'nvarchar(255)') AS C_NEV,
sor.value('number((TeremId)[1])', 'int') AS C_TEREMID,
sor.value('number((FelelosId)[1])', 'int') AS C_FELELOSID,
sor.value('(DarabSzam)[1]', 'int') AS C_DARABSZAM,
sor.value('number((EszkozTipus)[1])', 'int') AS C_TIPUS,
sor.value('number((kategoria)[1])', 'int') AS C_KATEGORIA,
sor.value('(beszerzes-datuma)[1]', 'datetime') AS C_BESZERZESDATUM,
sor.value('(LeltariSzam)[1]', 'nvarchar(20)') AS C_LELTARISZAM,
sor.value('(gyari-szam)[1]', 'nvarchar(20)') AS C_GYARISZAM,
sor.value('(megjegyzes)[1]', 'nvarchar(255)') AS C_MEGJEGYZES
FROM @xml.nodes('/EszkozImport/EszkozLista/Eszkoz') as sorok(sor)
BEGIN TRANSACTION
UPDATE e
SET e.C_BESZERZESDATUM = IsNull(t.C_BESZERZESDATUM, e.C_BESZERZESDATUM)
,e.C_GYARISZAM = IsNull(t.C_GYARISZAM, e.C_GYARISZAM)
,e.C_KATEGORIA = IsNull(t.C_KATEGORIA, e.C_KATEGORIA)
,e.C_DARABSZAM = IsNull(t.C_DARABSZAM, e.C_DARABSZAM)
,e.C_LELTARISZAM = IsNull(t.C_LELTARISZAM, e.C_LELTARISZAM)
,e.C_MEGJEGYZES = IsNull(t.C_MEGJEGYZES, e.C_MEGJEGYZES)
,e.C_TIPUS = IsNull(t.C_TIPUS, e.C_TIPUS)
,e.C_FELELOSID = IsNull(t.C_FELELOSID, e.C_FELELOSID)
,e.SERIAL = e.SERIAL + 1
,e.LASTCHANGED = GETDATE() -- datetime
,e.MODIFIER = @userID -- int
FROM T_ESZKOZ e
INNER JOIN @tbl t ON t.C_NEV = e.C_NEV AND t.C_TEREMID = e.C_TEREMID
INSERT INTO T_ESZKOZ (
C_BERELT
,C_BESZERZESDATUM
,C_BESZERZESIAR
,C_DARABSZAM
,C_FOKONYVISZAM
,C_GYARISZAM
,C_GYARTASIEV
,C_HALOZATIKAPCSOLAT
,C_HORDOZHATO
,C_INTERNETKAPCSOLAT
,C_KATEGORIA
,C_LELTARISZAM
,C_MEGJEGYZES
,C_MULTIMEDIAS
,C_NEV
,C_PEDAGOGUSHOZZAFERHET
,C_SZALLITO
,C_TANULOHOZZAFERHET
,C_TARTOZEK
,C_TARTOZEKHIVATKOZAS
,C_TIPUS
,C_CELJA
,C_JELLEGE
,C_MENNYISEGIEGYSEG
,C_VONALKOD
,C_TEREMID
,C_FELELOSID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) SELECT
'F' AS C_BERELT -- C_BERELT - char(1)
,NULL AS C_BESZERZESDATUM -- C_BESZERZESDATUM - datetime
,NULL AS C_BESZERZESIAR -- C_BESZERZESIAR - int
,t.C_DARABSZAM AS C_DARABSZAM -- C_DARABSZAM - int
,NULL AS C_FOKONYVISZAM -- C_FOKONYVISZAM - nvarchar(255)
,t.C_GYARISZAM AS C_GYARISZAM -- C_GYARISZAM - nvarchar(20)
,NULL AS C_GYARTASIEV -- C_GYARTASIEV - int
,NULL AS C_HALOZATIKAPCSOLAT -- C_HALOZATIKAPCSOLAT - char(1)
,NULL AS C_HORDOZHATO -- C_HORDOZHATO - char(1)
,NULL AS C_INTERNETKAPCSOLAT -- C_INTERNETKAPCSOLAT - char(1)
,t.C_KATEGORIA AS C_KATEGORIA -- C_KATEGORIA - int
,t.C_LELTARISZAM AS C_LELTARISZAM -- C_LELTARISZAM - nvarchar(20)
,t.C_MEGJEGYZES AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,NULL AS C_MULTIMEDIAS -- C_MULTIMEDIAS - char(1)
,t.C_NEV AS C_NEV -- C_NEV - nvarchar(255)
,NULL AS C_PEDAGOGUSHOZZAFERHET -- C_PEDAGOGUSHOZZAFERHET - char(1)
,NULL AS C_SZALLITO -- C_SZALLITO - nvarchar(255)
,NULL AS C_TANULOHOZZAFERHET -- C_TANULOHOZZAFERHET - char(1)
,NULL AS C_TARTOZEK -- C_TARTOZEK - char(1)
,NULL AS C_TARTOZEKHIVATKOZAS -- C_TARTOZEKHIVATKOZAS - nvarchar(20)
,t.C_TIPUS AS C_TIPUS -- C_TIPUS - int
,NULL AS C_CELJA -- C_CELJA - int
,NULL AS C_JELLEGE -- C_JELLEGE - int
,NULL AS C_MENNYISEGIEGYSEG -- C_MENNYISEGIEGYSEG - int
,NULL AS C_VONALKOD -- C_VONALKOD - int
,t.C_TEREMID AS C_TEREMID -- C_TEREMID - int
,t.C_FELELOSID AS C_FELELOSID -- C_FELELOSID - int
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (SELECT 1 FROM T_ESZKOZ WHERE C_NEV = t.C_NEV AND C_TEREMID = t.C_TEREMID);
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END

View file

@ -0,0 +1,72 @@
IF OBJECT_ID('sp_ImportOratervTantargyai', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportOratervTantargyai
END
GO
CREATE PROCEDURE sp_ImportOratervTantargyai
@xml xml,
@userID int,
@intezmenyID int,
@tanevID int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
C_ORATERVID int,
C_TANTARGYID int,
C_EVESORASZAM int,
C_HETIORASZAM int
)
select * from T_ORATERVTARGY
INSERT INTO @tbl
SELECT
sor.value('(oraterv)[1]', 'int') AS C_ORATERVID,
sor.value('(tantargy)[1]', 'int') AS C_TANTARGYID,
sor.value('(eves-oraszam)[1]', 'int') AS C_EVESORASZAM,
sor.value('(heti-oraszam)[1]', 'float') AS C_HETIORASZAM
FROM @xml.nodes('/OratervTantargyaImport/OratervTantargyaLista/OratervTantargya') as sorok(sor)
BEGIN TRANSACTION
UPDATE o SET
o.C_EVESORASZAM = t.C_EVESORASZAM -- int
,o.SERIAL = o.SERIAL + 1
,o.LASTCHANGED = GETDATE() -- datetime
,o.MODIFIER = @userID -- int
FROM T_ORATERVTARGY o
INNER JOIN @tbl t ON t.C_ORATERVID = o.C_ORATERVID AND t.C_TANTARGYID = o.C_TANTARGYID
INSERT T_ORATERVTARGY (
C_EVESORASZAM
,C_ORATERVID
,C_TANTARGYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) SELECT
t.C_EVESORASZAM AS C_EVESORASZAM -- C_EVESORASZAM - int
,t.C_ORATERVID AS C_ORATERVID -- C_ORATERVID - int
,t.C_TANTARGYID AS C_TANTARGYID -- C_TANTARGYID - int
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (SELECT 1 FROM T_ORATERVTARGY WHERE C_ORATERVID = t.C_ORATERVID AND C_TANTARGYID = C_TANTARGYID)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,68 @@
IF OBJECT_ID('sp_ImportOratervek', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportOratervek
END
GO
CREATE PROCEDURE sp_ImportOratervek
@xml xml,
@userID int,
@intezmenyID int,
@tanevID int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
C_NEV nvarchar(255),
C_EVFOLYAM int,
C_TANTERVID int
);
INSERT INTO @tbl
SELECT
sor.value('(nev)[1]', 'nvarchar(255)') AS C_NEV,
sor.value('(evfolyam)[1]', 'int') AS C_EVFOLYAM,
sor.value('(tanterv)[1]', 'int') AS C_TANTERVID
FROM @xml.nodes('/OratervImport/OratervLista/Oraterv') as sorok(sor)
BEGIN TRANSACTION
UPDATE o
SET o.C_EVFOLYAM = t.C_EVFOLYAM
,o.C_TANTERVID = t.C_TANTERVID
,o.SERIAL = o.SERIAL + 1
,o.LASTCHANGED = GETDATE()
,o.MODIFIER = @userID
FROM T_ORATERV o
INNER JOIN @tbl t ON t.C_NEV = o.C_NEV
INSERT INTO T_ORATERV (
C_EVFOLYAM
,C_NEV
,C_TANTERVID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) SELECT
C_EVFOLYAM AS C_EVFOLYAM -- C_EVFOLYAM - int
,C_NEV AS C_NEV -- C_NEV - nvarchar(255)
,C_TANTERVID AS C_TANTERVID -- C_TANTERVID - int
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (SELECT 1 FROM T_ORATERV WHERE C_NEV = t.C_NEV)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,137 @@
IF OBJECT_ID('sp_ImportOsztalyok', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportOsztalyok
END
GO
CREATE PROCEDURE sp_ImportOsztalyok
@xml xml,
@userID int,
@intezmenyID int
AS
BEGIN
BEGIN TRY
DECLARE @tbl TABLE (
ID int,
C_NEV nvarchar(50),
C_FELADATELLATASIHELYID int,
C_EVFOLYAMTIPUSA int,
C_OSZTALYFONOKID int,
C_OFOHELYETTESID int,
C_KEPZESIFORMA int,
C_TANTERVID int,
C_TEREMID int,
C_VEGZOSEVFOLYAM char(1),
C_MEGJEGYZES nvarchar(255),
C_TANEVID int
);
INSERT INTO @tbl
SELECT
NULL AS ID,
sor.value('(nev)[1]', 'nvarchar(50)') AS C_NEV,
sor.value('(fhely)[1]', 'int') AS C_FELADATELLATASIHELYID,
sor.value('(evfolyamtipusa)[1]', 'int') AS C_EVFOLYAMTIPUSA,
sor.value('(osztalyfonok)[1]', 'int') AS C_OSZTALYFONOKID,
sor.value('(helyettes)[1]', 'int') AS C_OFOHELYETTESID,
sor.value('(kepzes)[1]', 'int') AS C_KEPZESIFORMA,
sor.value('(tanterv)[1]', 'int') AS C_TANTERVID,
sor.value('(terem)[1]', 'int') AS C_TEREMID,
sor.value('(vegzos)[1]', 'char(1)') AS C_VEGZOSEVFOLYAM,
sor.value('(megjegyzes)[1]', 'nvarchar(255)') AS C_MEGJEGYZES,
sor.value('(tanev)[1]', 'int') AS C_TANEVID
FROM @xml.nodes('/OsztalyImport/OsztalyLista/Osztaly') AS sorok(sor)
BEGIN TRANSACTION
UPDATE ocs SET
ocs.C_MEGJEGYZES = t.C_MEGJEGYZES -- nvarchar(255)
,ocs.C_VEGZOSEVFOLYAM = t.C_VEGZOSEVFOLYAM -- char(1)
,ocs.C_EVFOLYAMTIPUSA = t.C_EVFOLYAMTIPUSA -- int
,ocs.C_IMPORTALT = 'T' -- char(1)
,ocs.C_TEREMID = t.C_TEREMID -- int
,ocs.C_FELADATELLATASIHELYID = t.C_FELADATELLATASIHELYID -- int
,ocs.SERIAL = ocs.SERIAL + 1
,ocs.LASTCHANGED = GETDATE() -- datetime
,ocs.MODIFIER = @userID -- int
FROM T_OSZTALYCSOPORT ocs
INNER JOIN @tbl t ON ocs.C_NEV = t.C_NEV AND ocs.C_TANEVID = t.C_TANEVID AND ocs.TOROLT = 'F'
WHERE EXISTS (SELECT 1 FROM T_OSZTALY WHERE ID = ocs.ID)
INSERT INTO T_OSZTALYCSOPORT (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_IMPORTALT
,C_TANEVID
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,MODIFIER
,CREATOR
) SELECT
C_MEGJEGYZES AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,C_NEV AS C_NEV -- C_NEV - nvarchar(255)
,C_VEGZOSEVFOLYAM AS C_VEGZOSEVFOLYAM -- C_VEGZOSEVFOLYAM - char(1)
,C_EVFOLYAMTIPUSA AS C_EVFOLYAMTIPUSA -- C_EVFOLYAMTIPUSA - int
,'F' AS C_IMPORTALT -- C_IMPORTALT - char(1)
,C_TANEVID AS C_TANEVID -- C_TANEVID - int
,C_TEREMID AS C_TEREMID -- C_TEREMID - int
,C_FELADATELLATASIHELYID AS C_FELADATELLATASIHELYID -- C_FELADATELLATASIHELYID - int
,@intezmenyID AS C_INTEZMENYID
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (
SELECT 1 FROM T_OSZTALYCSOPORT ocs
WHERE ocs.C_NEV = t.C_NEV AND ocs.C_TANEVID = t.C_TANEVID AND ocs.TOROLT = 'F'
AND NOT EXISTS (SELECT 1 FROM T_CSOPORT WHERE ID = ocs.ID)
);
UPDATE t
SET t.ID = ocs.ID
FROM @tbl t
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.C_NEV = t.C_NEV AND ocs.C_TANEVID = t.C_TANEVID AND ocs.TOROLT = 'F'
WHERE NOT EXISTS (SELECT 1 FROM T_CSOPORT WHERE ID = ocs.ID)
UPDATE o
SET o.C_KEPZESIFORMA = t.C_KEPZESIFORMA -- int
,o.C_OSZTALYFONOKID = t.C_OSZTALYFONOKID -- int
,o.C_OFOHELYETTESID = t.C_OFOHELYETTESID -- int
,o.C_TANTERVID = t.C_TANTERVID -- int
FROM T_OSZTALY o
INNER JOIN @tbl t ON t.ID = O.ID
INSERT INTO T_OSZTALY (
ID
,C_KEPZESIFORMA
,C_OSZTALYNAPLOLEIRASA
,C_OSZTALYNAPLOMEGNYITASA
,C_OSZTALYNAPLOZARASA
,C_OSZTALYFONOKID
,C_OFOHELYETTESID
,C_TANTERVID
,MODIFIER
,CREATOR
) SELECT
t.ID AS ID -- ID - int
,t.C_KEPZESIFORMA AS C_KEPZESIFORMA -- C_KEPZESIFORMA - int
,NULL AS C_OSZTALYNAPLOLEIRASA -- C_OSZTALYNAPLOLEIRASA - nvarchar(MAX)
,NULL AS C_OSZTALYNAPLOMEGNYITASA -- C_OSZTALYNAPLOMEGNYITASA - datetime
,NULL AS C_OSZTALYNAPLOZARASA -- C_OSZTALYNAPLOZARASA - datetime
,t.C_OSZTALYFONOKID AS C_OSZTALYFONOKID -- C_OSZTALYFONOKID - int
,t.C_OFOHELYETTESID AS C_OFOHELYETTESID -- C_OFOHELYETTESID - int
,t.C_TANTERVID AS C_TANTERVID -- C_TANTERVID - int
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALY WHERE ID = t.ID)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,55 @@
IF OBJECT_ID('sp_ImportTanariTantargyak', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportTanariTantargyak
END
GO
CREATE PROCEDURE sp_ImportTanariTantargyak
@xml xml,
@userID int,
@intezmenyID int,
@tanevID int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
C_ALKALMAZOTTID int,
C_TANTARGYID int
)
INSERT INTO @tbl
SELECT
sor.value('(tanar)[1]', 'int') AS C_ALKALMAZOTTID,
sor.value('(tantargy)[1]', 'int') AS C_TANTARGYID
FROM @xml.nodes('/TanariTantargyImport/TanariTantargyLista/TanariTantargy') as sorok(sor)
BEGIN TRANSACTION
INSERT INTO T_TANARITANTARGY (
C_ALKALMAZOTTID
,C_TANTARGYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) SELECT
C_ALKALMAZOTTID AS C_ALKALMAZOTTID -- C_ALKALMAZOTTID - int
,C_TANTARGYID AS C_TANTARGYID -- C_TANTARGYID - int
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (SELECT 1 FROM T_TANARITANTARGY WHERE C_ALKALMAZOTTID = t.C_ALKALMAZOTTID AND C_TANTARGYID = t.C_TANTARGYID)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,170 @@
IF OBJECT_ID('sp_ImportTanevRendje') IS NOT NULL
BEGIN
DROP PROCEDURE sp_ImportTanevRendje
END
GO
CREATE PROCEDURE [sp_ImportTanevRendje]
@tanevRendjeImportAdatokXML as xml,
@intezmenyID int,
@userId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- XML beolvasásához
DECLARE @tanevRendjeTable TABLE (
tempId int,
id int,
datum datetime,
hetiRend int,
hetNapja int,
megjegyzes nvarchar(255),
napTipus int,
orarendiNap char(1),
osszesCsoport char(1),
tanevId int
)
-- A beszúrt sorok ID-jának kigyerése
DECLARE @linkTable TABLE (
tempId int,
id int
)
-- A T_OSZTALYCSOPORT_TANEVRENDJE beszúrűsűjoz
DECLARE @osztalyCsoportTable TABLE (
tempID int,
osztalyCsoport int
)
BEGIN TRY
-- XML feldolgozása
INSERT INTO @tanevRendjeTable (tempID, Datum, Hetirend, Hetnapja, Megjegyzes, NapTipus, OrarendiNap, OsszesCsoport, TanevId)
SELECT TanevRendjeImport.value('(ID)[1]', 'int'),
TanevRendjeImport.value('(Datum)[1]', 'datetime'), -- ISO 8601 date format
TanevRendjeImport.value('(Hetirend)[1]', 'int'),
TanevRendjeImport.value('(Hetnapja)[1]', 'int'),
TanevRendjeImport.value('(Megjegyzes)[1]', 'nvarchar(255)'),
TanevRendjeImport.value('(NapTipus)[1]', 'int'),
TanevRendjeImport.value('(OrarendiNap)[1]', 'char(1)'),
TanevRendjeImport.value('(OsszesCsoport)[1]', 'char(1)'),
TanevRendjeImport.value('(TanevId)[1]', 'int')--,
FROM @tanevRendjeImportAdatokXML.nodes('/TanevRendjeImportAdatok/Adatok/TanevRendjeImport') AS TanevRendjeImportAdatok(TanevRendjeImport)
INSERT INTO @osztalyCsoportTable (tempID, osztalyCsoport)
SELECT OsztalyCsoportId.value('(../../ID)[1]', 'int') AS tempId,
OsztalyCsoportId.value('.', 'int') AS osztalyCsoport
FROM @tanevRendjeImportAdatokXML.nodes('/TanevRendjeImportAdatok/Adatok/TanevRendjeImport/OsztalyCsoportIdList/ID') AS OsztalyCsoportIdList(OsztalyCsoportId)
/* Ha már létezik az adott tanevRendje, akkor töltjük az ID-t (amikhez tartozik osztalyCsoport) */
UPDATE x
SET x.ID = r.ID
FROM @tanevRendjeTable x
LEFT JOIN @osztalyCsoportTable o ON o.tempId = x.tempId
LEFT JOIN T_TANEVRENDJE_OSSZES r ON r.C_DATUM = x.Datum AND x.tanevId = r.C_TANEVID
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocsr ON ocsr.C_OSZTALYCSOPORTID = o.osztalyCsoport AND ocsr.C_TANEVRENDJEID = r.ID
BEGIN TRANSACTION
/* Töröljük a első, utolso tanitási nap, félév vége, utolsó tan nap végzősöknek tipusu napokat, ha abból van az xml-ben */
DELETE FROM T_TANEVRENDJE_OSSZES
WHERE EXISTS (
SELECT 1
FROM @tanevRendjeTable
WHERE napTipus IN (1394, 1395, 1400, 1402) /* első, utolso tanitási nap, félév vége, utolsó tan nap végzősöknek*/
AND C_NAPTIPUSA = napTipus
AND C_TANEVID = tanevId
)
/* Ha már létezik az adott tanevRendje, akkor töltjük az ID-t (amikhez NEM tartozik osztalyCsoport) */
UPDATE x
SET
x.ID = r.ID
FROM @tanevRendjeTable x
INNER JOIN T_TANEVRENDJE_OSSZES r ON r.C_DATUM = x.Datum AND x.tanevId = r.C_TANEVID
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE ocsr WHERE ocsr.C_OSZTALYCSOPORTID = x.OsszesCsoport AND ocsr.C_TANEVRENDJEID = r.ID)
AND x.OsszesCsoport IS NULL
MERGE T_TANEVRENDJE_OSSZES trg
USING @tanevRendjeTable src ON src.ID = trg.ID
WHEN MATCHED THEN
UPDATE SET
trg.C_HETIREND = src.Hetirend
,trg.C_HETNAPJA = src.Hetnapja
,trg.C_MEGJEGYZES = src.Megjegyzes
,trg.C_NAPTIPUSA = src.NapTipus
,trg.C_ORARENDINAP = src.OrarendiNap
,trg.C_OSSZESCSOPORTRAVONATKOZIK = src.OsszesCsoport
,trg.SERIAL = trg.SERIAL + 1
,trg.LASTCHANGED = GETDATE()
,trg.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
C_AKTIV
,C_DATUM
,C_HETIREND
,C_HETNAPJA
,C_MEGJEGYZES
,C_NAPTIPUSA
,C_ORARENDINAP
,C_OSSZESCSOPORTRAVONATKOZIK
,C_CSENGETESIRENDID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR)
VALUES (
1 -- C_AKTIV - char(1)
,src.Datum -- C_DATUM - datetime
,src.Hetirend -- C_HETIREND - int
,src.Hetnapja -- C_HETNAPJA - int
,src.Megjegyzes -- C_MEGJEGYZES - nvarchar(255)
,src.NapTipus -- C_NAPTIPUSA - int
,src.OrarendiNap -- C_ORARENDINAP - char(1)
,src.OsszesCsoport -- C_OSSZESCSOPORTRAVONATKOZIK - char(1)
,NULL -- C_CSENGETESIRENDID - int
,@intezmenyID -- C_INTEZMENYID - int
,src.TanevId -- C_TANEVID - int
,NULL -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.tempId
INTO @linkTable(id, tempId);
-- Tanévrendje - osztálycsoportok összerendelése
INSERT INTO T_OSZTALYCSOPORT_TANEVRENDJE (C_OSZTALYCSOPORTID, C_TANEVRENDJEID)
SELECT osztalyCsoport, lt.id
FROM @osztalyCsoportTable x
INNER JOIN @linkTable lt ON lt.tempId = x.tempId
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE r WHERE r.C_OSZTALYCSOPORTID = x.osztalyCsoport AND r.C_TANEVRENDJEID = lt.id)
-- Az osztályhoz tartozó csoportokhoz is felvesszük a tanév rendjét
INSERT INTO T_OSZTALYCSOPORT_TANEVRENDJE (C_OSZTALYCSOPORTID, C_TANEVRENDJEID)
SELECT cso.C_CSOPORTOKID, lt.id
FROM @osztalyCsoportTable x
INNER JOIN @linkTable lt ON lt.tempId = x.tempId
INNER JOIN T_OSZTALY o ON x.osztalyCsoport = o.ID
INNER JOIN T_CSOPORTOK_OSZTALYOK cso ON cso.C_OSZTALYOKID = o.ID
WHERE NOT EXISTS (
SELECT 1
FROM T_OSZTALYCSOPORT_TANEVRENDJE
WHERE C_OSZTALYCSOPORTID = cso.C_CSOPORTOKID AND C_TANEVRENDJEID = lt.id
)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRAN;
THROW;
END CATCH
END
GO

View file

@ -0,0 +1,89 @@
IF OBJECT_ID('sp_ImportTanmenetek', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportTanmenetek
END
GO
CREATE PROCEDURE sp_ImportTanmenetek
@xml xml,
@tantargyID int,
@osztalycsoportID int,
@userID int,
@intezmenyID int,
@tanevID int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
C_ORASZAM int,
C_TEMA nvarchar(max)
)
INSERT INTO @tbl
SELECT
sor.value('(oraszam)[1]', 'int') AS C_ORASZAM,
sor.value('(tema)[1]', 'nvarchar(1000)') AS C_TEMA
FROM @xml.nodes('/TanmenetImport/TanmenetLista/Tanmenet') as sorok(sor)
BEGIN TRANSACTION
UPDATE m SET
m.C_NEV = LEFT(t.C_TEMA, 1000) -- nvarchar(1000)
,m.C_TEMA = t.C_TEMA -- nvarchar(MAX)
,m.SERIAL = m.SERIAL + 1 -- int
,m.LASTCHANGED = GETDATE() -- datetime
,m.MODIFIER = @userID -- int
FROM T_TANMENET m
INNER JOIN @tbl t ON t.C_ORASZAM = m.C_ORASZAM
AND m.C_TANTARGYID = @tantargyID
AND C_OSZTALYCSOPORTID = @osztalycsoportID
AND C_FELTOLTOID = @userID
INSERT INTO T_TANMENET (
C_BEJEGYZESIDEJE
,C_MEGJEGYZES
,C_NEV
,C_ROVIDNEV
,C_TEMA
,C_ORASZAM
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_FELTOLTOID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) SELECT
GETDATE() AS C_BEJEGYZESIDEJE -- C_BEJEGYZESIDEJE - datetime
,NULL AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,LEFT(t.C_TEMA, 1000) AS C_NEV -- C_NEV - nvarchar(1000)
,NULL AS C_ROVIDNEV -- C_ROVIDNEV - nvarchar(255)
,t.C_TEMA AS C_TEMA -- C_TEMA - nvarchar(MAX)
,t.C_ORASZAM AS C_ORASZAM -- C_ORASZAM - int
,@tantargyID AS C_TANTARGYID -- C_TANTARGYID - int
,@osztalycsoportID AS C_OSZTALYCSOPORTID -- C_OSZTALYCSOPORTID - int
,@userID AS C_FELTOLTOID -- C_FELTOLTOID - int
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (
SELECT 1 FROM T_TANMENET
WHERE T_TANMENET.C_ORASZAM = t.C_ORASZAM
AND C_TANTARGYID = @tantargyID
AND C_OSZTALYCSOPORTID = @osztalycsoportID
AND C_FELTOLTOID = @userID
)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,122 @@
IF OBJECT_ID('sp_ImportTanoranKivuliFogl', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportTanoranKivuliFogl
END
GO
CREATE PROCEDURE sp_ImportTanoranKivuliFogl
@xml xml,
@userID int,
@tanevID int,
@intezmenyID int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
ID int,
C_NEV nvarchar(255),
C_TANARID int,
C_TANTARGYID int,
C_OSZTALYCSOPORTID int,
C_FOGLALKOZASTIPUSA int,
C_ORASZAM float,
C_MULASZTASKELL char(1),
C_ERTEKELESKELL char(1)
)
INSERT INTO @tbl
SELECT
NULL AS ID,
sor.value('(foglalkozas-neve)[1]', 'nvarchar(255)') AS C_NEV,
sor.value('(tanar)[1]', 'int') AS C_TANARID,
sor.value('(tantargy)[1]', 'int') AS C_TANTARGYID,
sor.value('(osztcsop)[1]', 'int') AS C_OSZTALYCSOPORTID,
sor.value('(foglalkozas-tipusa)[1]', 'int') AS C_FOGLALKOZASTIPUSA,
sor.value('(heti-oraszam)[1]', 'float') AS C_ORASZAM,
sor.value('(mulasztas-kell)[1]', 'char(1)') AS C_MULASZTASKELL,
sor.value('(ertekeles-kell)[1]', 'char(1)') AS C_ERTEKELESKELL
FROM @xml.nodes('/TanoranKivuliFoglImport/TanoranKivuliFoglLista/TanoranKivuliFogl') as sorok(sor)
BEGIN TRANSACTION
UPDATE f
SET f.C_FOGLALKOZASTIPUSA = t.C_FOGLALKOZASTIPUSA -- int
,f.C_ORASZAM = t.C_ORASZAM -- numeric(10, 2)
,f.C_NEV = t.C_NEV -- nvarchar(255)
,f.C_ERTEKELESKELL = t.C_ERTEKELESKELL -- char(1)
,f.C_MULASZTASKELL = t.C_MULASZTASKELL -- char(1)
,f.SERIAL = f.SERIAL + 1 -- int
,f.LASTCHANGED = GETDATE() -- datetime
,f.MODIFIER = @userID -- int
FROM T_FOGLALKOZAS f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON f.ID = ft.C_FOGLALKOZASOKID
INNER JOIN @tbl t ON f.C_TANTARGYID = t.C_TANTARGYID
AND f.C_OSZTALYCSOPORTID = t.C_OSZTALYCSOPORTID
AND f.C_TANEVID = @tanevID AND ft.C_TANAROKID = t.C_TANARID
INSERT INTO T_FOGLALKOZAS (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_IMPORTALT
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) SELECT
t.C_FOGLALKOZASTIPUSA AS C_FOGLALKOZASTIPUSA -- C_FOGLALKOZASTIPUSA - int
,t.C_ORASZAM AS C_ORASZAM -- C_ORASZAM - numeric(10, 2)
,t.C_NEV AS C_NEV -- C_NEV - nvarchar(255)
,t.C_ERTEKELESKELL AS C_ERTEKELESKELL -- C_ERTEKELESKELL - char(1)
,t.C_MULASZTASKELL AS C_MULASZTASKELL -- C_MULASZTASKELL - char(1)
,NULL AS C_TANARFELVEHETI -- C_TANARFELVEHETI - char(1)
,'F' AS C_IMPORTALT -- C_IMPORTALT - char(1)
,t.C_TANTARGYID AS C_TANTARGYID -- C_TANTARGYID - int
,t.C_OSZTALYCSOPORTID AS C_OSZTALYCSOPORTID -- C_OSZTALYCSOPORTID - int
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID -- C_TANEVID - int
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (
SELECT 1 FROM T_FOGLALKOZAS f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON f.ID = ft.C_FOGLALKOZASOKID
WHERE f.C_TANTARGYID = t.C_TANTARGYID
AND f.C_OSZTALYCSOPORTID = t.C_OSZTALYCSOPORTID
AND f.C_TANEVID = @tanevID
AND ft.C_TANAROKID = t.C_TANARID
)
UPDATE t
SET t.ID = f.ID
FROM @tbl t
INNER JOIN T_FOGLALKOZAS f ON f.C_TANTARGYID = t.C_TANTARGYID
AND f.C_OSZTALYCSOPORTID = t.C_OSZTALYCSOPORTID
AND f.C_TANEVID = @tanevID
INSERT INTO T_FOGLALKOZASOK_TANAROK (
C_FOGLALKOZASOKID
,C_TANAROKID
) SELECT
t.ID AS C_FOGLALKOZASOKID -- C_FOGLALKOZASOKID - int
,t.C_TANARID AS C_TANAROKID -- C_TANAROKID - int
FROM @tbl t
WHERE NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK WHERE C_FOGLALKOZASOKID = t.ID AND C_TANAROKID = t.C_TANARID)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,393 @@
IF OBJECT_ID('sp_ImportTantargyFelosztas', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportTantargyFelosztas
END
GO
CREATE PROCEDURE sp_ImportTantargyFelosztas
@importXml xml,
@tanevId int,
@feladatellatasiHelyId int,
@intezmenyId int,
@userId int
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON;
DECLARE
@root int
DECLARE @tbl TABLE (
osztalyID int,
osztalyNev nvarchar(255),
csoportID int,
csoportNev nvarchar(255),
tantargyID int,
tantargyNev nvarchar(255),
oraszam float,
tanarID int,
tanarNev nvarchar(255),
szulDatum datetime,
foglalkozasID int,
existItemId int
)
SET @root = @importXml.exist('/TantargyfelosztasImport')
--SELECT @importXml;
IF @root = 1 BEGIN
INSERT INTO @tbl
SELECT
NULL AS osztalyID,
sor.value('(osztaly)[1]', 'nvarchar(255)') AS osztalyNev,
NULL AS csoportID,
sor.value('(csoport)[1]', 'nvarchar(255)') AS csoportNev,
NULL AS tantargyID,
sor.value('(tantargy)[1]', 'nvarchar(255)') AS tantargyNev,
sor.value('(oraszam)[1]', 'float') AS oraszam,
NULL AS tanarID,
sor.value('(tanar)[1]', 'nvarchar(255)') AS tanarNev,
sor.value('(szuldatum)[1]', 'varchar(10)')AS szulDatum,
NULL AS foglalkozasID,
sor.value('(existItemId)[1]', 'int') AS existItemId
FROM @importXml.nodes('/TantargyfelosztasImport/TantargyfelosztasLista/Tantargyfelosztas') as sorok(sor)
END
ELSE BEGIN
INSERT INTO @tbl
SELECT
NULL AS osztalyID,
sor.value('(osztaly)[1]', 'nvarchar(255)') AS osztalyNev,
NULL AS csoportID,
sor.value('(csoport)[1]', 'nvarchar(255)') AS csoportNev,
NULL AS tantargyID,
sor.value('(tantargy)[1]', 'nvarchar(255)') AS tantargyNev,
sor.value('(oraszam)[1]', 'float') AS oraszam,
NULL AS tanarID,
sor.value('(tanar)[1]', 'nvarchar(255)') AS tanarNev,
sor.value('(szuldatum)[1]', 'varchar(10)')AS szulDatum,
NULL AS foglalkozasID,
sor.value('(existItemId)[1]', 'int') AS existItemId
FROM @importXml.nodes('/TantargyfelosztasLista/Tantargyfelosztas') as sorok(sor)
END
BEGIN TRY
BEGIN TRAN
UPDATE t
SET t.C_IMPORTALT = 'T'
FROM T_TANTARGY_OSSZES AS t
INNER JOIN T_FOGLALKOZAS_OSSZES fo ON t.ID = fo.C_TANTARGYID AND fo.C_TANEVID = t.C_TANEVID
WHERE fo.ID IN (SELECT existItemId FROM @tbl WHERE existItemId <> 0)
AND t.C_TANEVID = @tanevId
UPDATE ocs
SET ocs.C_IMPORTALT = 'T'
FROM T_OSZTALYCSOPORT_OSSZES AS ocs
INNER JOIN T_FOGLALKOZAS_OSSZES fo ON ocs.ID = fo.C_OSZTALYCSOPORTID AND ocs.C_TANEVID = fo.C_TANEVID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = fo.C_TANTARGYID AND t.C_TANEVID = fo.C_TANEVID
WHERE fo.ID IN (SELECT existItemId FROM @tbl WHERE existItemId <> 0)
AND ocs.C_TANEVID = @tanevId
UPDATE fo
SET fo.C_IMPORTALT = 'T'
FROM T_FOGLALKOZAS_OSSZES AS fo
where fo.ID IN (SELECT existItemId FROM @tbl WHERE existItemId <> 0)
AND fo.C_TANEVID = @tanevId
/*TÖRÖLJÜK AZ IMPORTÁLTakat*/
EXEC sp_DeleteAllTTF @feladatellatasiHelyId = @feladatellatasiHelyId, @tanevId = @tanevId
UPDATE f
SET
f.C_ORASZAM = temp.oraszam
,f.C_IMPORTALT = 'T'
,f.SERIAL += 1
,f.LASTCHANGED = GETDATE()
,f.MODIFIER = @userId
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN @tbl temp ON f.C_NEV = temp.tantargyNev + ' - ' + ISNULL(temp.csoportNev, temp.osztalyNev) + ' - ' + temp.tanarNev
WHERE f.C_INTEZMENYID = @intezmenyId
AND f.C_TANEVID = @tanevId
AND f.TOROLT = 'F'
UPDATE o
SET o.tanarID = fh.ID
FROM @tbl o
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.C_NYOMTATASINEV = o.tanarNev AND fh.C_SZULETESIDATUM = ISNULL(o.szulDatum, fh.C_SZULETESIDATUM)
INNER JOIN T_ALKALMAZOTT_OSSZES a ON fh.ID = a.ID
WHERE fh.C_TANEVID = @tanevId
AND fh.TOROLT = 'F'
/*töltjük a tantárgyakat*/
INSERT INTO T_TANTARGY_OSSZES (
C_GYAKORLATI
,C_NEV
,C_ROVIDNEV
,C_TARGYKATEGORIA
,C_ALTANTARGYKENTNYOMTATVANYBAN
,C_NEVNYOMTATVANYBAN
,C_TANORANKIVULI
,C_FOTARGYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
,C_IMPORTALT
) SELECT DISTINCT
'F' AS C_GYAKORLATI -- C_GYAKORLATI - char(1)
,o.tantargyNev AS C_NEV -- C_NEV - nvarchar(255)
,LEFT(o.tantargyNev, 20) AS C_ROVIDNEV -- C_ROVIDNEV - nvarchar(20)
,1197 AS C_TARGYKATEGORIA /*Na*/ -- C_TARGYKATEGORIA - int
,NULL AS C_ALTANTARGYKENTNYOMTATVANYBAN -- C_ALTANTARGYKENTNYOMTATVANYBAN - char(1)
,NULL AS C_NEVNYOMTATVANYBAN -- C_NEVNYOMTATVANYBAN - nvarchar(255)
,'F' AS C_TANORANKIVULI -- C_TANORANKIVULI - char(1)
,NULL AS C_FOTARGYID -- C_FOTARGYID - int
,@intezmenyId AS C_INTEZMENYID
,@tanevId AS C_TANEVID
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,'T' AS C_IMPORTALT -- C_IMPORTALT char(1)
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_TANTARGY_OSSZES WHERE C_NEV = o.tantargyNev AND C_TANEVID = @tanevId AND TOROLT = 'F')
UPDATE o
SET o.tantargyID = t.ID
FROM @tbl o
INNER JOIN T_TANTARGY_OSSZES t ON t.C_NEV = o.tantargyNev AND t.C_TANEVID = @tanevId AND t.TOROLT = 'F'
/* OSZTÁLY */
INSERT INTO T_OSZTALYCSOPORT_OSSZES (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_TANEVID
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,MODIFIER
,CREATOR
,C_IMPORTALT
) SELECT DISTINCT
NULL AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,o.osztalyNev AS C_NEV -- C_NEV - nvarchar(255)
,'F' AS C_VEGZOSEVFOLYAM -- C_VEGZOSEVFOLYAM - char(1)
,1296 AS C_EVFOLYAMTIPUSA -- C_EVFOLYAMTIPUSA - int
,@tanevId AS C_TANEVID -- C_TANEVID - int
,NULL AS C_TEREMID -- C_TEREMID - int
,@feladatellatasiHelyId AS C_FELADATELLATASIHELYID -- C_FELADATELLATASIHELYID - int
,@intezmenyId AS C_INTEZMENYID
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,'T' AS C_IMPORTALT -- C_IMPORTALT char(1)
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_NEV = o.osztalyNev AND C_TANEVID = @tanevId AND TOROLT = 'F')
AND o.OsztalyNev IS NOT NULL AND o.OsztalyNev <> ''
UPDATE o
SET o.osztalyID = t.ID
FROM @tbl o
INNER JOIN T_OSZTALYCSOPORT_OSSZES t ON t.C_NEV = o.osztalyNev AND C_TANEVID = @tanevId AND TOROLT = 'F'
INSERT INTO T_OSZTALY_OSSZES (
ID
,C_KEPZESIFORMA
,C_OSZTALYFONOKID
,C_OFOHELYETTESID
,C_TANTERVID
,C_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
) SELECT DISTINCT
o.osztalyID AS ID -- ID - int
,1096 AS C_KEPZESIFORMA /*Nappali rendszerű iskolai oktatás*/ -- C_KEPZESIFORMA - int
,NULL AS C_OSZTALYFONOKID -- C_OSZTALYFONOKID - int
,NULL AS C_OFOHELYETTESID -- C_OFOHELYETTESID - int
,NULL AS C_TANTERVID -- C_TANTERVID - int
,@intezmenyId
,@tanevId
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = o.osztalyID AND C_ALTANEVID = @tanevId AND TOROLT = 'F')
AND o.osztalyID IS NOT NULL
INSERT INTO T_OSZTALYCSOPORT_OSSZES (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_TANEVID
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,MODIFIER
,CREATOR
,C_IMPORTALT
) SELECT DISTINCT
NULL AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,IIF(o.csoportNev IS NULL, o.osztalyNev, o.csoportNev) AS C_NEV -- C_NEV - nvarchar(255)
,'F' AS C_VEGZOSEVFOLYAM -- C_VEGZOSEVFOLYAM - char(1)
,1296 AS C_EVFOLYAMTIPUSA -- C_EVFOLYAMTIPUSA - int Default(NA)
,@tanevId AS C_TANEVID -- C_TANEVID - int
,NULL AS C_TEREMID -- C_TEREMID - int
,@feladatellatasiHelyId AS C_FELADATELLATASIHELYID -- C_FELADATELLATASIHELYID - int
,@intezmenyId AS C_INTEZMENYID
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,'T' AS C_IMPORTALT -- C_IMPORTALT char(1)
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_NEV = o.csoportNev AND C_TANEVID = @tanevId AND TOROLT = 'F')
AND o.csoportNev IS NOT NULL AND o.csoportNev <> ''
UPDATE o
SET o.csoportID = t.ID
FROM @tbl o
INNER JOIN T_OSZTALYCSOPORT_OSSZES t ON t.C_NEV = o.csoportNev AND C_TANEVID = @tanevId AND TOROLT = 'F'
INSERT INTO T_CSOPORT_OSSZES (
ID
,C_TIPUSA
,C_CSOPORTNAPLOLEIRAS
,C_CSOPORTNAPLOMEGNYITASA
,C_CSOPORTNAPLOZARASA
,C_CSOPORTVEZETOID
,C_OSZTALYBONTASID
,C_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
) SELECT DISTINCT
o.csoportID AS ID -- ID - int
,1031 AS C_TIPUSA /*Na*/ -- C_TIPUSA - int
,NULL AS C_CSOPORTNAPLOLEIRAS -- C_CSOPORTNAPLOLEIRAS - nvarchar(MAX)
,NULL AS C_CSOPORTNAPLOMEGNYITASA -- C_CSOPORTNAPLOMEGNYITASA - datetime
,NULL AS C_CSOPORTNAPLOZARASA -- C_CSOPORTNAPLOZARASA - datetime
,NULL AS C_CSOPORTVEZETOID -- C_CSOPORTVEZETOID - int
,IIF(o.osztalyNev IS NULL, NULL, o.osztalyId) AS C_OSZTALYBONTASID -- C_OSZTALYBONTASID - int
,@intezmenyId
,@tanevId
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = o.csoportID AND C_ALTANEVID = @tanevId AND TOROLT = 'F')
AND o.csoportID IS NOT NULL
DECLARE @linkTable TABLE (
id int,
osztalyCsoportId int,
tantargyID int,
tanarID int
);
MERGE T_FOGLALKOZAS_OSSZES trg
USING (SELECT ISNULL(o.csoportID, o.osztalyID) osztalyCsoportId, o.tantargyID, o.tanarID, SUM(o.oraszam) oraszam,
MAX(o.tantargyNev) + ' - ' + MAX(ISNULL(o.csoportNev, o.osztalyNev)) + ' - ' + MAX(o.tanarNev) as foglalkozasNev
FROM @tbl o
WHERE NOT EXISTS (
SELECT 1 FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON f.ID = ft.C_FOGLALKOZASOKID
WHERE f.C_TANTARGYID = o.tantargyID
AND f.C_OSZTALYCSOPORTID = o.csoportID
AND ft.C_TANAROKID = o.tanarID
AND f.C_TANEVID = @tanevId
)
GROUP BY ISNULL(o.csoportID, o.osztalyID), o.tantargyID, o.tanarID
) src ON 1 = 0
WHEN NOT MATCHED THEN
INSERT (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
,C_IMPORTALT
) VALUES(
--IIF (src.osztalyCsoportId IS NOT NULL, 1368 /*Tanóra (osztálybontásos)*/, 1339/*Tanóra*/) /*Na*/ -- C_FOGLALKOZASTIPUSA - int
IIF (EXISTS(select 1 from T_CSOPORT cs where cs.ID = src.osztalyCsoportId), 1368 /*Tanóra (osztálybontásos)*/, 1339/*Tanóra*/) /*Na*/ -- C_FOGLALKOZASTIPUSA - int
,src.oraszam -- C_ORASZAM - int
,src.foglalkozasNev -- C_NEV - nvarchar(255)
,'T' -- C_ERTEKELESKELL - char(1)
,'T' -- C_MULASZTASKELL - char(1)
,'T' -- C_TANARFELVEHETI - char(1)
,src.tantargyID -- C_TANTARGYID - int
,src.osztalyCsoportId -- C_OSZTALYCSOPORTID - int
,@intezmenyId
,@tanevId -- C_TANEVID - int
,NULL -- MODIFIER - int
,@userId -- CREATOR - int
,'T' -- C_IMPORTALT char(1)
)
OUTPUT INSERTED.ID, src.osztalyCsoportId, src.tantargyID, src.tanarID
INTO @linkTable(id, osztalyCsoportId, tantargyID, tanarID);
/*csoport - osztaly*/
UPDATE o
SET o.foglalkozasID = f.id
FROM @tbl o
INNER JOIN @linkTable f ON f.osztalyCsoportId = ISNULL(o.csoportID, o.osztalyID) AND f.tantargyID = o.tantargyID AND f.tanarID = o.tanarID
WHERE o.foglalkozasID IS NULL
/*osztaly*/
UPDATE o
SET o.foglalkozasID = f.id
FROM @tbl o
INNER JOIN @linkTable f ON f.osztalyCsoportId = o.osztalyID AND f.tantargyID = o.tantargyID AND f.tanarID = o.tanarID
WHERE o.foglalkozasID IS NULL
/*csoport - osztaly*/
UPDATE o
SET o.foglalkozasID = f.id
FROM @tbl o
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANTARGYID = o.tantargyID AND f.C_OSZTALYCSOPORTID = ISNULL(o.csoportID, o.osztalyID)
WHERE o.foglalkozasID IS NULL
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK ft WHERE ft.C_FOGLALKOZASOKID = o.foglalkozasID)
AND f.C_TANEVID = @tanevId
/*osztaly*/
UPDATE o
SET o.foglalkozasID = f.id
FROM @tbl o
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANTARGYID = o.tantargyID AND f.C_OSZTALYCSOPORTID = o.osztalyID
WHERE o.foglalkozasID IS NULL
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK ft WHERE ft.C_FOGLALKOZASOKID = o.foglalkozasID)
AND f.C_TANEVID = @tanevId
INSERT INTO T_FOGLALKOZASOK_TANAROK (
C_FOGLALKOZASOKID
,C_TANAROKID
) SELECT DISTINCT
o.foglalkozasID AS C_FOGLALKOZASOKID -- C_FOGLALKOZASOKID - int
,o.tanarID AS C_TANAROKID -- C_TANAROKID - int
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK WHERE C_FOGLALKOZASOKID = o.foglalkozasID AND C_TANAROKID = o.tanarID)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN;
THROW
END CATCH
END

View file

@ -0,0 +1,88 @@
IF OBJECT_ID('sp_ImportTantargyak', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportTantargyak
END
GO
CREATE PROCEDURE sp_ImportTantargyak
@xml xml,
@userID int,
@intezmenyID int,
@tanevID int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
C_NEV nvarchar(255),
C_TARGYKATEGORIA int,
C_ROVIDNEV nvarchar(20),
C_ALTANTARGYKENTNYOMTATVANYBAN char(1),
C_FOTARGYID int,
C_GYAKORLATI char(1)
)
INSERT INTO @tbl
SELECT
sor.value('(nev)[1]', 'nvarchar(255)') AS C_NEV,
sor.value('(kategoria)[1]', 'int') AS C_TARGYKATEGORIA,
sor.value('(rovidnev)[1]', 'nvarchar(20)') AS C_ROVIDNEV,
sor.value('(bizonyitvanyban)[1]', 'char(1)') AS C_ALTANTARGYKENTNYOMTATVANYBAN,
sor.value('(fotargy)[1]', 'int') AS C_FOTARGYID,
sor.value('(gyakorlati)[1]', 'char(1)') AS C_GYAKORLATI
FROM @xml.nodes('/TantargyImport/TantargyLista/Tantargy') AS sorok(sor)
BEGIN TRANSACTION
UPDATE t
SET t.C_GYAKORLATI = x.C_GYAKORLATI -- char(1)
,t.C_ROVIDNEV = x.C_ROVIDNEV -- nvarchar(20)
,t.C_TARGYKATEGORIA = x.C_TARGYKATEGORIA -- int
,t.C_ALTANTARGYKENTNYOMTATVANYBAN = x.C_ALTANTARGYKENTNYOMTATVANYBAN -- char(1)
,t.C_FOTARGYID = x.C_FOTARGYID -- int
,t.SERIAL = t.SERIAL + 1 -- int
,t.LASTCHANGED = GETDATE() -- datetime
,t.MODIFIER = @userID -- int
FROM T_TANTARGY t
INNER JOIN @tbl x ON x.C_NEV = t.C_NEV AND t.TOROLT = 'T'
INSERT INTO T_TANTARGY (
C_GYAKORLATI
,C_NEV
,C_ROVIDNEV
,C_TARGYKATEGORIA
,C_ALTANTARGYKENTNYOMTATVANYBAN
,C_NEVNYOMTATVANYBAN
,C_TANORANKIVULI
,C_IMPORTALT
,C_FOTARGYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) SELECT
C_GYAKORLATI AS C_GYAKORLATI -- C_GYAKORLATI - char(1)
,C_NEV AS C_NEV -- C_NEV - nvarchar(255)
,C_ROVIDNEV AS C_ROVIDNEV -- C_ROVIDNEV - nvarchar(20)
,C_TARGYKATEGORIA AS C_TARGYKATEGORIA -- C_TARGYKATEGORIA - int
,C_ALTANTARGYKENTNYOMTATVANYBAN AS C_ALTANTARGYKENTNYOMTATVANYBAN -- C_ALTANTARGYKENTNYOMTATVANYBAN - char(1)
,C_NEV AS C_NEVNYOMTATVANYBAN -- C_NEVNYOMTATVANYBAN - nvarchar(255)
,'F' AS C_TANORANKIVULI -- C_TANORANKIVULI - char(1)
,'T' AS C_IMPORTALT -- C_IMPORTALT - char(1)
,C_FOTARGYID AS C_FOTARGYID -- C_FOTARGYID - int
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl x
WHERE NOT EXISTS (SELECT 1 FROM T_TANTARGY WHERE C_NEV = x.C_NEV AND TOROLT = 'F')
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,82 @@
IF OBJECT_ID('sp_ImportTantervek', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportTantervek
END
GO
CREATE PROCEDURE sp_ImportTantervek
@xml xml,
@userID int,
@intezmenyID int,
@tanevID int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
C_NEV nvarchar(255),
C_CSOPORTTIPUSA int,
C_EVFOLYAMTOL int,
C_EVFOLYAMIG int,
C_KERETTANTERVREEPULO char(1),
C_MEGJEGYZES nvarchar(255)
)
INSERT INTO @tbl
SELECT
sor.value('(nev)[1]', 'nvarchar(255)') AS C_NEV,
sor.value('(csoport-tipusa)[1]', 'int') AS C_CSOPORTTIPUSA,
sor.value('(kezdo-evfolyam)[1]', 'int') AS C_EVFOLYAMTOL,
sor.value('(vegzo-evfolyam)[1]', 'int') AS C_EVFOLYAMIG,
sor.value('(kerettanterv)[1]', 'char(1)') AS C_KERETTANTERVREEPULO,
sor.value('(megjegyzes)[1]', 'nvarchar(255)') AS C_MEGJEGYZES
FROM @xml.nodes('/TantervImport/TantervLista/Tanterv') AS sorok(sor)
BEGIN TRANSACTION
UPDATE t
SET t.C_CSOPORTTIPUSA = x.C_CSOPORTTIPUSA -- int
,t.C_EVFOLYAMIG = x.C_EVFOLYAMIG -- int
,t.C_EVFOLYAMTOL = x.C_EVFOLYAMTOL -- int
,t.C_KERETTANTERVREEPULO = x.C_KERETTANTERVREEPULO -- char(1)
,t.C_MEGJEGYZES = x.C_MEGJEGYZES -- nvarchar(255)
,t.SERIAL = t.SERIAL + 1 -- int
,t.LASTCHANGED = GETDATE() -- datetime
,t.MODIFIER = @userID -- int
FROM T_TANTERV t
INNER JOIN @tbl x ON x.C_NEV = t.C_NEV
INSERT INTO T_TANTERV (
C_CSOPORTTIPUSA
,C_EVFOLYAMIG
,C_EVFOLYAMTOL
,C_KERETTANTERVREEPULO
,C_MEGJEGYZES
,C_NEV
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) SELECT
C_CSOPORTTIPUSA AS C_CSOPORTTIPUSA -- C_CSOPORTTIPUSA - int
,C_EVFOLYAMIG AS C_EVFOLYAMIG -- C_EVFOLYAMIG - int
,C_EVFOLYAMTOL AS C_EVFOLYAMTOL -- C_EVFOLYAMTOL - int
,C_KERETTANTERVREEPULO AS C_KERETTANTERVREEPULO -- C_KERETTANTERVREEPULO - char(1)
,C_MEGJEGYZES AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,C_NEV AS C_NEV -- C_NEV - nvarchar(255)
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl x
WHERE NOT EXISTS (SELECT 1 FROM T_TANTERV WHERE C_NEV = x.C_NEV)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,80 @@
IF OBJECT_ID('dbo.sp_ImportTanuloBesorolas') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_ImportTanuloBesorolas
END
GO
CREATE PROCEDURE dbo.sp_ImportTanuloBesorolas
@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
INSERT INTO T_TANULOCSOPORT_OSSZES (
C_BEJEGYZESIDOPONTJA
,C_BELEPESDATUM
,C_KILEPESDATUM
,C_ZARADEK
,C_BEFOGADOINTEZMENY
,C_MEGJEGYZES
,C_NAPLOSORSZAM
,C_TORZSLAPSZAM
,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_NAPLOSORSZAM -- C_NAPLOSORSZAM - int
,NULL AS C_TORZSLAPSZAM -- C_TORZSLAPSZAM - int
,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)
SELECT e1.TanuloId, e1.OsztalyId FROM @exist e1
END
GO

View file

@ -0,0 +1,97 @@
IF OBJECT_ID('sp_ImportTermek', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportTermek
END
GO
CREATE PROCEDURE sp_ImportTermek
@xml xml,
@userID int,
@intezmenyID int,
@tanevID int,
@mukodesiHelyId int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
C_JELLEG int,
C_KAPACITAS int,
C_NEV nvarchar(50),
C_TERULET int,
C_TOBBORATLEHETTARTANI char(1),
C_VIZSGAKAPACITAS int,
C_MUKODESIHELYID int,
C_TEREMFELELOSID int
)
INSERT INTO @tbl
SELECT
sor.value('number((JellegId)[1])', 'int') AS C_JELLEG,
sor.value('xs:decimal((Kapacitas)[1])', 'int') AS C_KAPACITAS,
sor.value('(TeremNev)[1]', 'nvarchar(50)') AS C_NEV,
sor.value('number((Terulet)[1])', 'int') AS C_TERULET,
sor.value('(tobbora)[1]', 'char(1)') AS C_TOBBORATLEHETTARTANI,
sor.value('number((vizsgakapacitas)[1])', 'int') AS C_VIZSGAKAPACITAS,
@mukodesiHelyId AS C_MUKODESIHELYID,
sor.value('number((teremfelelos)[1])', 'int') AS C_TEREMFELELOSID
FROM @xml.nodes('/TeremImport/TeremLista/Terem') as sorok(sor)
BEGIN TRANSACTION
UPDATE t
SET
t.C_JELLEG = IsNull(s.C_JELLEG, t.C_JELLEG)
,t.C_KAPACITAS = IsNull(s.C_KAPACITAS, t.C_KAPACITAS)
,t.C_NEV = IsNull(s.C_NEV, t.C_NEV)
,t.C_TERULET = IsNull(s.C_TERULET, t.C_TERULET)
,t.C_TOBBORATLEHETTARTANI = IsNull(s.C_TOBBORATLEHETTARTANI, t.C_TOBBORATLEHETTARTANI)
,t.C_VIZSGAKAPACITAS = IsNull(s.C_VIZSGAKAPACITAS, t.C_VIZSGAKAPACITAS)
,t.C_MUKODESIHELYID = IsNull(s.C_MUKODESIHELYID, t.C_MUKODESIHELYID)
,t.C_TEREMFELELOSID = IsNull(s.C_TEREMFELELOSID, t.C_TEREMFELELOSID)
,t.SERIAL = t.SERIAL + 1
,t.LASTCHANGED = GETDATE()
,t.MODIFIER = @userID
FROM T_TEREM t
INNER JOIN @tbl s ON s.C_NEV = t.C_NEV AND s.C_MUKODESIHELYID = t.C_MUKODESIHELYID AND t.C_INTEZMENYID = t.C_INTEZMENYID
INSERT INTO T_TEREM (
C_AKTIV
,C_JELLEG
,C_KAPACITAS
,C_NEV
,C_TERULET
,C_TOBBORATLEHETTARTANI
,C_VIZSGAKAPACITAS
,C_MUKODESIHELYID
,C_TEREMFELELOSID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) SELECT
'T' AS C_ACTIVE
,C_JELLEG AS C_JELLEG
,C_KAPACITAS AS C_KAPACITAS
,C_NEV AS C_NEV
,C_TERULET AS C_TERULET
,C_TOBBORATLEHETTARTANI AS C_TOBBORATLEHETTARTANI
,C_VIZSGAKAPACITAS AS C_VIZSGAKAPACITAS
,C_MUKODESIHELYID AS C_MUKODESIHELYID
,C_TEREMFELELOSID AS C_TEREMFELELOSID
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID
,NULL AS MODIFIER
,@userID AS CREATOR
FROM @tbl t
WHERE NOT EXISTS (SELECT 1 FROM T_TEREM WHERE C_NEV = t.C_NEV AND C_MUKODESIHELYID = t.C_MUKODESIHELYID)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END

View file

@ -0,0 +1,496 @@
IF OBJECT_ID('[dbo].[sp_KIRImportTanarok]', 'P') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_KIRImportTanarok]
END
GO
CREATE PROCEDURE [dbo].[sp_KIRImportTanarok]
-- Add the parameters for the stored procedure here
@TanarokXML xml
,@FeladatellatasiHelyId int
,@intezmenyID int
,@tanevID int
,@userId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SET XACT_ABORT ON;
-- XML paraméter értelmezése
DECLARE @Tanarok TABLE (
Id int
,OktatasiAzonosito varchar(15)
,KretaKod varchar(6)
,VezetekNev nvarchar(50)
,UtoNev nvarchar(50)
,Elotag nvarchar(10)
,NevSorrend char(1)
,AnyjaNeveElotag nvarchar(10)
,AnyjaNeveVezetekNev nvarchar(50)
,AnyjaNeveKeresztNev nvarchar(50)
,AnyjaNeveNevSorrend nvarchar(50)
,SzuletesiDatum datetime
,SzuletesiHely nvarchar(255)
,SzuletesiOrszag int
,Allampolgarsag int
,Nem int
,EmailCim nvarchar(255)
,Telefonszam nvarchar(100)
,AllandoLakcimIranyitoSzam nvarchar(10)
,AllandoLakcimTelepules nvarchar(255)
,AllandoLakcimKozteruletNev nvarchar(255)
,AllandoLakcimKozteruletJelleg int
,AllandoLakcimHazszam nvarchar(20)
,TartozkodasiCimTelepules nvarchar(255)
,TartozkodasiCimKozteruletNev nvarchar(255)
,TartozkodasiCimKozteruletJelleg int
,TartozkodasiCimHazszam nvarchar(20)
,TartozkodasiCimIranyitoszam nvarchar(20)
,KeresesiNev nvarchar(255)
,NyomtatasiNev nvarchar(255)
,OMAzonosito nvarchar(15)
,Foallas char(1)
,KotelezoOraszam nvarchar(15)
,MunkakorTipusa nvarchar(15)
,MunkaviszonyTipusa nvarchar(15)
,JogviszonyKezdete datetime
,FelhasznaloId int -- Ide kerül be a tényleges ID, amit a DB-ben is van/lesz
,isUjTanar bit -- létezik-e már a rendszereben
)
INSERT INTO @Tanarok (
Id
,OktatasiAzonosito
,KretaKod
,VezetekNev
,UtoNev
,Elotag
,NevSorrend
,AnyjaNeveElotag
,AnyjaNeveVezetekNev
,AnyjaNeveKeresztNev
,AnyjaNeveNevSorrend
,SzuletesiDatum
,SzuletesiHely
,SzuletesiOrszag
,Allampolgarsag
,Nem
,EmailCim
,Telefonszam
,AllandoLakcimIranyitoSzam
,AllandoLakcimTelepules
,AllandoLakcimKozteruletNev
,AllandoLakcimKozteruletJelleg
,AllandoLakcimHazszam
,TartozkodasiCimTelepules
,TartozkodasiCimKozteruletNev
,TartozkodasiCimKozteruletJelleg
,TartozkodasiCimHazszam
,TartozkodasiCimIranyitoszam
,KeresesiNev
,NyomtatasiNev
,OMAzonosito
,Foallas
,KotelezoOraszam
,MunkakorTipusa
,MunkaviszonyTipusa
,JogviszonyKezdete
,isUjTanar
) SELECT
Id = Tanar.value('(ID)[1]', 'int'),
OktatasiAzonosito = Tanar.value('(OktatasiAzonosito)[1]', 'varchar(15)'),
KretaKod = Tanar.value('(KretaKod)[1]', 'varchar(6)'),
VezetekNev = Tanar.value('(ViseltNevVezetekNev)[1]', 'nvarchar(50)'),
UtoNev = Tanar.value('(ViseltNevKeresztNev)[1]', 'nvarchar(50)'),
Elotag = Tanar.value('(ViseltNevElotag)[1]', 'nvarchar(10)'),
NevSorrend = Tanar.value('(ViseltNevNevSorrend)[1]', 'char(1)'),
AnyjaNeveElotag = Tanar.value('(AnyjaNeveElotag)[1]', 'nvarchar(10)'),
AnyjaNeveVezetekNev = Tanar.value('(AnyjaNeveVezetekNev)[1]', 'nvarchar(50)'),
AnyjaNeveKeresztNev = Tanar.value('(AnyjaNeveKeresztNev)[1]', 'nvarchar(50)'),
AnyjaNeveNevSorrend = Tanar.value('(AnyjaNeveNevSorrend)[1]', 'nvarchar(50)'),
SzuletesiDatum = Tanar.value('(SzuletesiDatum)[1]', 'date'),
SzuletesiHely = Tanar.value('(SzuletesiHely)[1]', 'nvarchar(255)'),
SzuletesiOrszag = Tanar.value('(SzuletesiOrszag)[1]', 'int'),
Allampolgarsag = Tanar.value('(Allampolgarsag)[1]', 'int'),
Nem = Tanar.value('(Nem)[1]', 'int'),
EmailCim = Tanar.value('(EmailCim)[1]', 'nvarchar(255)'),
Telefonszam = Tanar.value('(Telefonszam)[1]', 'nvarchar(100)'),
AllandoLakcimIranyitoSzam = Tanar.value('(AllandoLakcimIranyitoSzam)[1]', 'nvarchar(10)'),
AllandoLakcimTelepules = Tanar.value('(AllandoLakcimTelepules)[1]', 'nvarchar(255)'),
AllandoLakcimKozteruletNev = Tanar.value('(AllandoLakcimKozteruletNev)[1]', 'nvarchar(255)'),
AllandoLakcimKozteruletJelleg = Tanar.value('number((AllandoLakcimKozteruletJelleg)[1])', 'int'),
AllandoLakcimHazszam = Tanar.value('(AllandoLakcimHazszam)[1]', 'nvarchar(20)'),
TartozkodasiCimTelepules = Tanar.value('(TartozkodasiCimTelepules)[1]', 'nvarchar(255)'),
TartozkodasiCimKozteruletNev = Tanar.value('(TartozkodasiCimKozteruletNev)[1]', 'nvarchar(255)'),
TartozkodasiCimKozteruletJelleg = Tanar.value('number((TartozkodasiCimKozteruletJelleg)[1])', 'int'),
TartozkodasiCimHazszam = Tanar.value('(TartozkodasiCimHazszam)[1]', 'nvarchar(20)'),
TartozkodasiCimIranyitoszam = Tanar.value('(TartozkodasiCimIranyitoSzam)[1]', 'nvarchar(20)'),
KeresesiNev = Tanar.value('(KeresesiNev)[1]', 'nvarchar(255)'),
NyomtatasiNev = ltrim(Tanar.value('(NyomtatasiNev)[1]', 'nvarchar(255)')),
OMAzonosito = Tanar.value('(OMAzonosito)[1]', 'nvarchar(15)'),
Foallas = Tanar.value('(Foallas)[1]', 'char(1)'),
KotelezoOraszam = Tanar.value('(KotelezoOraszam)[1]', 'nvarchar(15)'),
MunkakorTipusa = Tanar.value('(MunkakorTipusa)[1]', 'nvarchar(15)'),
MunkaviszonyTipusa = Tanar.value('(MunkaviszonyTipusa)[1]', 'nvarchar(15)'),
JogviszonyKezdete = Tanar.value('(JogviszonyKezdete)[1]', 'date'),
1 AS isUjTanar
FROM @TanarokXML.nodes('/KIRTanarok/ImportaltTanarok/Tanar') as Tanarok(Tanar)
DECLARE @LinkTable TABLE (felHasznaloId int, kretaKod varchar(6), action nvarchar(20))
BEGIN TRY
BEGIN TRANSACTION
MERGE T_FELHASZNALO_OSSZES fh
USING (
SELECT * FROM @Tanarok
) t ON t.KretaKod = fh.C_KRETAKOD AND fh.C_INTEZMENYID = @intezmenyid AND fh.C_TANEVID = @tanevID
WHEN MATCHED THEN
UPDATE SET
fh.C_NEME = t.Nem,
fh.C_SZULETESIDATUM = t.SzuletesiDatum,
fh.C_SZULETESINEV = t.VezetekNev + ' ' + t.UtoNev,
fh.C_ANYJANEVE = t.AnyjaNeveVezetekNev + ' ' + t.AnyjaNeveKeresztNev,
fh.C_SZULETESIHELY = t.SzuletesiHely,
fh.C_ALLAMPOLGARSAGA = t.Allampolgarsag,
fh.C_KERESESINEV = t.KeresesiNev,
fh.C_SZULETESIORSZAG = t.SzuletesiOrszag,
fh.C_SZULETESINEVSORREND = t.NevSorrend,
fh.C_ANYJANEVESORREND = t.AnyjaNeveNevSorrend,
fh.C_ALAPERTELMEZETTLCID = 1038,
fh.C_SZULETESINEVELVALASZTO = LEN(t.VezetekNev),
fh.C_ANYJANEVEELVALASZTO = LEN(t.AnyjaNeveVezetekNev),
fh.C_NYOMTATASINEV = t.NyomtatasiNev,
fh.C_UTONEV = t.UtoNev,
fh.C_VEZETEKNEV = t.VezetekNev,
fh.C_ELOTAG = t.Elotag,
fh.C_NEVSORREND = t.NevSorrend,
fh.C_NYILVANTARTASKEZDETE = GETDATE(),
fh.C_OMKOD = t.OMAzonosito,
fh.C_KRETAKOD = t.KretaKod,
fh.C_OKTATASIAZONOSITO = t.OktatasiAzonosito,
fh.TOROLT = 'F',
fh.SERIAL += 1,
fh.LASTCHANGED = GETDATE(),
fh.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
[C_NEME],
[C_SZULETESIDATUM],
[C_SZULETESINEV],
[C_ANYJANEVE],
[C_SZULETESIHELY],
[C_ALLAMPOLGARSAGA],
[C_KERESESINEV],
[C_SZULETESIORSZAG],
[C_SZULETESINEVSORREND],
[C_ANYJANEVESORREND],
[C_ALAPERTELMEZETTLCID],
[C_SZULETESINEVELVALASZTO],
[C_ANYJANEVEELVALASZTO],
[C_NYOMTATASINEV],
[C_UTONEV],
[C_VEZETEKNEV],
[C_ELOTAG],
[C_NEVSORREND],
[C_NYILVANTARTASKEZDETE],
[C_OKTATASIAZONOSITO],
[C_OMKOD],
[C_KRETAKOD],
[C_INTEZMENYID],
[C_TANEVID],
[MODIFIER],
[CREATOR]
) VALUES (
t.Nem,
t.SzuletesiDatum,
t.VezetekNev + ' ' + t.UtoNev,
t.AnyjaNeveVezetekNev + ' ' + t.AnyjaNeveKeresztNev,
t.SzuletesiHely,
t.Allampolgarsag,
t.KeresesiNev,
t.SzuletesiOrszag,
t.NevSorrend,
t.AnyjaNeveNevSorrend,
1038,
LEN(t.VezetekNev),
LEN(t.AnyjaNeveVezetekNev),
t.NyomtatasiNev,
t.UtoNev,
t.VezetekNev,
t.Elotag,
t.NevSorrend,
GETDATE(),
t.OktatasiAzonosito,
t.OMAzonosito,
t.KretaKod,
@intezmenyID,
@tanevID,
NULL,
@userId
)
OUTPUT INSERTED.ID, t.KretaKod, $action
INTO @LinkTable(felhasznaloId, kretaKod, action);
UPDATE t
SET t.FelhasznaloId = x.felhasznaloId
,t.isUjTanar = 0
FROM @Tanarok t
INNER JOIN @LinkTable x ON x.KretaKod = t.KretaKod
MERGE T_ALKALMAZOTT_OSSZES a
USING (
SELECT * FROM @Tanarok
) t ON a.ID = t.FelhasznaloId AND a.C_ALINTEZMENYID = @intezmenyid AND a.C_ALTANEVID = @tanevID
WHEN MATCHED THEN
UPDATE SET
a.C_FOALLAS = t.Foallas,
a.TOROLT = 'F',
a.SERIAL += 1,
a.LASTCHANGED = GETDATE(),
a.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
[ID],
[C_FOALLAS],
[C_ALINTEZMENYID],
[C_ALTANEVID],
[MODIFIER],
[CREATOR]
) VALUES (
t.FelhasznaloId,
t.Foallas,
@intezmenyID,
@tanevID,
NULL,
@userId
);
MERGE T_MUNKAUGYIADATOK_OSSZES m
USING (
SELECT * FROM @Tanarok
) t ON m.C_ALKALMAZOTTID = t.FelhasznaloId AND m.C_INTEZMENYID = @intezmenyid AND m.C_TANEVID = @tanevID
WHEN MATCHED THEN
UPDATE SET
m.C_ALKALMAZASKEZDETE = t.JogviszonyKezdete,
m.C_KOTELEZOORASZAM = t.KotelezoOraszam,
m.C_MUNKAKORTIPUSA = t.MunkakorTipusa,
m.C_MUNKAVISZONYTIPUSA = t.MunkaviszonyTipusa,
m.C_FELADATELLATASIHELYID = @FeladatellatasiHelyId,
m.TOROLT = 'F',
m.SERIAL += 1,
m.LASTCHANGED = GETDATE(),
m.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
C_ALKALMAZASKEZDETE,
C_KOTELEZOORASZAM,
C_MUNKAKORTIPUSA,
C_MUNKAVISZONYTIPUSA,
C_ALKALMAZOTTID,
C_FELADATELLATASIHELYID,
C_INTEZMENYID,
C_TANEVID,
MODIFIER,
CREATOR
) VALUES (
t.JogviszonyKezdete,
t.KotelezoOraszam,
t.MunkakorTipusa,
t.MunkaviszonyTipusa,
t.FelhasznaloId,
@FeladatellatasiHelyId,
@intezmenyID,
@tanevID,
NULL,
@userId
);
MERGE T_CIM_OSSZES c
USING (
SELECT * FROM @Tanarok
) t ON c.C_FELHASZNALOID = t.FelhasznaloId AND c.C_INTEZMENYID = @intezmenyid AND c.C_TANEVID = @tanevID AND c.C_CIMTIPUSA = 908
WHEN MATCHED THEN
UPDATE SET
c.[C_CIMTIPUSA] = 908,
c.[C_ORSZAG] = 765,
c.[C_IRANYITOSZAM] = t.TartozkodasiCimIranyitoszam,
c.[C_VAROS] = t.TartozkodasiCimTelepules,
c.[C_KOZTERULET] = t.TartozkodasiCimKozteruletNev,
c.[C_KOZTERULETJELLEGE] = t.TartozkodasiCimKozteruletJelleg,
c.[C_HAZSZAM] = t.TartozkodasiCimHazszam,
c.[TOROLT] = 'F',
c.SERIAL += 1,
c.LASTCHANGED = GETDATE(),
c.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
[C_CIMTIPUSA],
[C_ORSZAG],
[C_IRANYITOSZAM],
[C_VAROS],
[C_KOZTERULET],
[C_KOZTERULETJELLEGE],
[C_HAZSZAM],
[C_FELHASZNALOID],
[C_INTEZMENYID],
[C_TANEVID],
[MODIFIER],
[CREATOR]
) VALUES (
908,
765,
t.TartozkodasiCimIranyitoszam,
t.TartozkodasiCimTelepules,
t.TartozkodasiCimKozteruletNev,
t.TartozkodasiCimKozteruletJelleg,
t.TartozkodasiCimHazszam,
t.FelhasznaloId,
@intezmenyID,
@tanevID,
NULL,
@userId
);
MERGE T_CIM_OSSZES c
USING (
SELECT * FROM @Tanarok
) t ON c.C_FELHASZNALOID = t.FelhasznaloId AND c.C_INTEZMENYID = @intezmenyid AND c.C_TANEVID = @tanevID AND c.C_CIMTIPUSA = 907
WHEN MATCHED THEN
UPDATE SET
c.[C_CIMTIPUSA] = 907,
c.[C_ORSZAG] = 765,
c.[C_IRANYITOSZAM] = t.AllandoLakcimIranyitoSzam,
c.[C_VAROS] = t.AllandoLakcimTelepules,
c.[C_KOZTERULET] = t.AllandoLakcimKozteruletNev,
c.[C_KOZTERULETJELLEGE] = t.AllandoLakcimKozteruletJelleg,
c.[C_HAZSZAM] = t.AllandoLakcimHazszam,
c.[TOROLT] = 'F',
c.SERIAL += 1,
c.LASTCHANGED = GETDATE(),
c.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
[C_CIMTIPUSA],
[C_ORSZAG],
[C_IRANYITOSZAM],
[C_VAROS],
[C_KOZTERULET],
[C_KOZTERULETJELLEGE],
[C_HAZSZAM],
[C_FELHASZNALOID],
[C_INTEZMENYID],
[C_TANEVID],
[MODIFIER],
[CREATOR]
) VALUES (
907,
765,
t.AllandoLakcimIranyitoSzam,
t.AllandoLakcimTelepules,
t.AllandoLakcimKozteruletNev,
t.AllandoLakcimKozteruletJelleg,
t.AllandoLakcimHazszam,
t.FelhasznaloId,
@intezmenyID,
@tanevID,
NULL,
@userId
);
MERGE T_EMAIL_OSSZES e
USING (
SELECT * FROM @Tanarok
) t ON e.C_FELHASZNALOID = t.FelhasznaloId AND e.C_INTEZMENYID = @intezmenyid AND e.C_TANEVID = @tanevID
WHEN MATCHED THEN
UPDATE SET
e.C_EMAILCIM = t.EmailCim,
e.SERIAL += 1,
e.LASTCHANGED = GETDATE(),
e.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
[C_EMAILTIPUSA],
[C_EMAILCIM],
[C_ALAPERTELMEZETT],
[C_GONDVISELOID],
[C_FELHASZNALOID],
[C_INTEZMENYID],
[C_TANEVID],
[MODIFIER],
[CREATOR]
) VALUES (
1025,
t.EmailCim,
'T',
null,
t.FelhasznaloId,
@intezmenyID,
@tanevID,
NULL,
@userId
);
MERGE T_TELEFON_OSSZES tf
USING (
SELECT * FROM @Tanarok WHERE Telefonszam IS NOT NULL
) t ON tf.C_FELHASZNALOID = t.FelhasznaloId AND tf.C_INTEZMENYID = @intezmenyid AND tf.C_TANEVID = @tanevID
WHEN MATCHED THEN
UPDATE SET
tf.[C_TELEFONSZAM] = t.Telefonszam,
tf.SERIAL += 1,
tf.LASTCHANGED = GETDATE(),
tf.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
[C_TELEFONTIPUSA],
[C_TELEFONSZAM],
[C_ALAPERTELMEZETT],
[C_GONDVISELOID],
[C_FELHASZNALOID],
[C_INTEZMENYID],
[C_TANEVID],
[MODIFIER],
[CREATOR]
) VALUES (
1019,
t.Telefonszam,
'T',
null,
t.FelhasznaloId,
@intezmenyID,
@tanevID,
NULL,
@userId
);
DECLARE @szerepkorId int;
SELECT @szerepkorId = ID
FROM T_SZEREPKOR_OSSZES
WHERE C_SZEREPKORTIPUS = '1760'
AND C_INTEZMENYID = @intezmenyID AND C_TANEVID = @tanevID
INSERT INTO T_FELHASZNALO_SZEREPKOR (
C_FELHASZNALOID
,C_SZEREPKORID
) SELECT
t.FelhasznaloId
,@szerepkorId
FROM @Tanarok t
WHERE NOT EXISTS (SELECT 1 FROM T_FELHASZNALO_SZEREPKOR fsz WHERE fsz.C_FELHASZNALOID = FelhasznaloId AND fsz.C_SZEREPKORID = @szerepkorId)
COMMIT TRANSACTION
-- ROLLBACK TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END

View file

@ -0,0 +1,476 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.sp_KIRImportTanulok') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_KIRImportTanulok]
END
GO
CREATE PROCEDURE [dbo].[sp_KIRImportTanulok]
-- Add the parameters for the stored procedure here
@TanulokXML as XML,
@intezmenyID int,
@tanevID int,
@userId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@TantervID int,
@userNameGenerateMode int
DECLARE @linkTable TABLE (
tempId int,
insertedId int,
act varchar(10)
)
-- XML paraméter értelmezése
SELECT ID = Tanulo.value('(ID)[1]', 'int'),
OktatasiAzonosito = Tanulo.value('(OktatasiAzonosito)[1]', 'varchar(15)'),
KretaKod = Tanulo.value('(KretaKod)[1]', 'varchar(6)'),
VezetekNev = Tanulo.value('(ViseltNevVezetekNev)[1]', 'nvarchar(50)'), UtoNev = Tanulo.value('(ViseltNevKeresztNev)[1]', 'nvarchar(50)'),
Elotag = Tanulo.value('(ViseltNevElotag)[1]', 'nvarchar(10)'), NevSorrend = Tanulo.value('(ViseltNevNevSorrend)[1]', 'char(1)'),
AnyjaNeveElotag = Tanulo.value('(AnyjaNeveElotag)[1]', 'nvarchar(10)'), AnyjaNeveVezetekNev = Tanulo.value('(AnyjaNeveVezetekNev)[1]', 'nvarchar(50)'),
AnyjaNeveKeresztNev = Tanulo.value('(AnyjaNeveKeresztNev)[1]', 'nvarchar(50)'), AnyjaNeveNevSorrend = Tanulo.value('(AnyjaNeveNevSorrend)[1]', 'nvarchar(50)'),
SzuletesiDatum = Tanulo.value('(SzuletesiDatum)[1]', 'date'), SzuletesiHely = Tanulo.value('(SzuletesiHely)[1]', 'nvarchar(255)'),
SzuletesiOrszag = Tanulo.value('(SzuletesiOrszag)[1]', 'int'), Allampolgarsag = Tanulo.value('(Allampolgarsag)[1]', 'int'),
Nem = Tanulo.value('(Nem)[1]', 'int'), TAJSzam = Tanulo.value('(TAJSzam)[1]', 'nvarchar(15)'),
AllandoLakcimIranyitoSzam = Tanulo.value('(AllandoLakcimIranyitoSzam)[1]', 'nvarchar(10)'), AllandoLakcimTelepules = Tanulo.value('(AllandoLakcimTelepules)[1]', 'nvarchar(255)'),
AllandoLakcimKozteruletNev = Tanulo.value('(AllandoLakcimKozteruletNev)[1]', 'nvarchar(255)'), AllandoLakcimKozteruletJelleg = Tanulo.value('number((AllandoLakcimKozteruletJelleg)[1])', 'int'),
AllandoLakcimHazszam = Tanulo.value('(AllandoLakcimHazszam)[1]', 'nvarchar(20)'), TartozkodasiCimTelepules = Tanulo.value('(TartozkodasiCimTelepules)[1]', 'nvarchar(255)'),
TartozkodasiCimKozteruletNev = Tanulo.value('(TartozkodasiCimKozteruletNev)[1]', 'nvarchar(255)'), TartozkodasiCimKozteruletJelleg = Tanulo.value('number((TartozkodasiCimKozteruletJelleg)[1])', 'int'),
TartozkodasiCimHazszam = Tanulo.value('(TartozkodasiCimHazszam)[1]', 'nvarchar(20)'), TartozkodasiCimIranyitoszam = Tanulo.value('(TartozkodasiCimIranyitoSzam)[1]', 'nvarchar(20)'),
TankotelezettsegVege = Tanulo.value('(TankotelezettsegVege)[1]', 'date'),
TankotelezettsegetTeljesito = Tanulo.value('(TankotelezettsegetTeljesito)[1]', 'char'), SajatosNevelesIgenyu = Tanulo.value('(SajatosNevelesIgenyu)[1]', 'char'),
BeilleszkedesselKuzd = Tanulo.value('(BeilleszkedesselKuzd)[1]', 'char'), OMAzonosito = Tanulo.value('(OMAzonosito)[1]', 'nvarchar(20)'),
JogviszonyStatusza = Tanulo.value('(JogviszonyStatusza)[1]', 'nvarchar(50)'), JogviszonyKezdete = Tanulo.value('(JogviszonyKezdete)[1]', 'date'),
JogviszonyVarBefejezese = Tanulo.value('(JogviszonyVarBefejezese)[1]', 'date'), JogviszonyJellege = Tanulo.value('(JogviszonyJellege)[1]', 'nvarchar(50)'),
Vendegtanulo = Tanulo.value('(Vendegtanulo)[1]', 'char'), Magantanulo = Tanulo.value('(Magantanulo)[1]', 'char'),
Osztaly = Tanulo.value('(Osztaly)[1]', 'nvarchar(255)'),
KeresesiNev = Tanulo.value('(KeresesiNev)[1]', 'nvarchar(255)'), NyomtatasiNev = ltrim(Tanulo.value('(NyomtatasiNev)[1]', 'nvarchar(255)')),
Telefonszam = Tanulo.value('(Telefonszam)[1]', 'nvarchar(45)'),
AnyjaNeve = Tanulo.value('(AnyjaNeve)[1]', 'nvarchar(255)'),
EmailCim = Tanulo.value('(Email)[1]', 'nvarchar(200)'),
0 AS isTanulo,
0 TanuloID
INTO #tempTanulok
FROM @TanulokXML.nodes('/KIRTanulok/ImportaltTanulok/Tanulo') as Tanulok(Tanulo)
-- A létező felhasználók ID-ját kitöltjük, és az isTanulot is update-eljük
UPDATE t
SET t.TanuloID = fh.ID,
t.isTanulo = IIF(tn.ID IS NULL, 0, 1)
FROM #tempTanulok t
INNER JOIN T_FELHASZNALO_OSSZES fh ON
t.NyomtatasiNev = fh.C_NYOMTATASINEV AND
t.SzuletesiDatum = fh.C_SZULETESIDATUM AND
t.SzuletesiHely = fh.C_SZULETESIHELY AND
t.AnyjaNeve = fh.C_ANYJANEVE
LEFT JOIN T_TANULO_OSSZES tn ON tn.ID = fh.ID
WHERE fh.TOROLT = 'F' AND fh.C_TANEVID = @tanevID AND fh.C_INTEZMENYID = @intezmenyID
BEGIN TRY
BEGIN TRANSACTION
-- FELHASZNÁLÓK INSERTJE VAGY UPDATE-JE AKA MERGE
MERGE T_FELHASZNALO_OSSZES trg
USING #tempTanulok src ON src.TanuloID = trg.ID AND trg.C_TANEVID = @tanevID
WHEN MATCHED AND src.isTanulo = 1 THEN
UPDATE SET
trg.C_NEME = src.Nem,
trg.C_SZULETESIDATUM = src.SzuletesiDatum,
trg.C_SZULETESINEV = src.VezetekNev + ' ' + src.UtoNev,
trg.C_ANYJANEVE = src.AnyjaNeveVezetekNev + ' ' + src.AnyjaNeveKeresztNev,
trg.C_SZULETESIHELY = src.SzuletesiHely,
trg.C_ALLAMPOLGARSAGA = src.Allampolgarsag,
trg.C_KERESESINEV = src.KeresesiNev,
trg.C_SZULETESIORSZAG = src.SzuletesiOrszag,
trg.C_SZULETESINEVSORREND = src.NevSorrend,
trg.C_ANYJANEVESORREND = src.AnyjaNeveNevSorrend,
trg.C_ALAPERTELMEZETTLCID = 1038,
trg.C_SZULETESINEVELVALASZTO = len(src.VezetekNev),
trg.C_ANYJANEVEELVALASZTO = len(src.AnyjaNeveVezetekNev),
trg.C_NYOMTATASINEV = src.NyomtatasiNev,
trg.C_UTONEV = src.UtoNev,
trg.C_VEZETEKNEV = src.VezetekNev,
trg.C_ELOTAG = src.Elotag,
trg.C_NEVSORREND = src.NevSorrend,
trg.C_NYILVANTARTASKEZDETE = getdate(),
trg.C_OMKOD = src.OMAzonosito,
trg.C_KRETAKOD = src.KretaKod,
trg.TOROLT = 'F',
trg.SERIAL = trg.SERIAL + 1,
trg.LASTCHANGED = GETDATE(),
trg.MODIFIER = @userId,
trg.C_OKTATASIAZONOSITO = src.OktatasiAzonosito
WHEN NOT MATCHED THEN
INSERT (
C_NEME
,C_SZULETESIDATUM
,C_SZULETESINEV
,C_ANYJANEVE
,C_SZULETESIHELY
,C_TAJSZAM
,C_ALLAMPOLGARSAGA
,C_LEIRAS
,C_KERESESINEV
,C_SZULETESIORSZAG
,C_SZULETESINEVSORREND
,C_ANYJANEVESORREND
,C_ALAPERTELMEZETTLCID
,C_SZULETESINEVELVALASZTO
,C_ANYJANEVEELVALASZTO
,C_NYOMTATASINEV
,C_UTONEV
,C_VEZETEKNEV
,C_ELOTAG
,C_NEVSORREND
,C_NYILVANTARTASKEZDETE
,C_OKTATASIAZONOSITO
,C_OMKOD
,C_KRETAKOD
,C_INTEZMENYID
,C_TANEVID
,SERIAL
,MODIFIER
,CREATOR)
VALUES (
src.Nem
,src.SzuletesiDatum
,src.VezetekNev + ' ' + src.UtoNev
,src.AnyjaNeveVezetekNev + ' ' + src.AnyjaNeveKeresztNev
,src.SzuletesiHely
,src.TAJSzam
,src.Allampolgarsag
,src.JogviszonyJellege
,src.KeresesiNev
,src.SzuletesiOrszag
,src.NevSorrend
,src.AnyjaNeveNevSorrend
,1038
,len(src.VezetekNev)
,len(src.AnyjaNeveVezetekNev)
,src.NyomtatasiNev
,src.UtoNev
,src.VezetekNev
,src.Elotag
,src.NevSorrend
,src.JogviszonyKezdete
,src.OktatasiAzonosito
,src.OMAzonosito
,src.KretaKod
,@intezmenyID
,@tanevID
,NULL
,@userId
)
OUTPUT INSERTED.ID, src.ID, $action
INTO @linkTable(insertedID, tempId, act);
SET @TantervID = (SELECT MAX(ID) FROM T_TANTERV_OSSZES WHERE C_TANEVID = @tanevID AND TOROLT = 'F')
MERGE T_TANULO_OSSZES trg
USING (
SELECT t.*, l.insertedId AS insertedID
FROM #tempTanulok t
INNER JOIN @linkTable l ON t.ID = l.tempID
) src ON src.TanuloID = trg.ID AND trg.C_ALTANEVID = @tanevID AND src.isTanulo = 1
WHEN MATCHED THEN
UPDATE SET
trg.C_TANKOTELEZETTSEGVEGE = src.TankotelezettsegVege,
trg.C_TANKOTELEZETT = src.TankotelezettsegetTeljesito,
trg.C_SAJATOSNEVELESU = src.SajatosNevelesIgenyu,
trg.C_BTMPROBLEMAS = src.BeilleszkedesselKuzd,
trg.C_JOGVISZONYVARHATOBEFEJEZESE = src.JogviszonyVarBefejezese,
trg.C_VENDEG = src.Vendegtanulo,
trg.C_MAGANTANULO = src.Magantanulo,
trg.C_JOGVISZONYATSZUNETELTETO = src.JogviszonyStatusza,
trg.C_FELVETELTANEVEID = @tanevID,
trg.C_TANTERVID = @TantervId,
trg.TOROLT = 'F',
trg.SERIAL = trg.SERIAL + 1,
trg.LASTCHANGED = GETDATE(),
trg.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
ID
,C_TANKOTELEZETTSEGVEGE
,C_TANKOTELEZETT
,C_SAJATOSNEVELESU
,C_BTMPROBLEMAS
,C_JOGVISZONYVARHATOBEFEJEZESE
,C_VENDEG
,C_MAGANTANULO
,C_JOGVISZONYATSZUNETELTETO
,C_FELVETELTANEVEID
,C_TANTERVID
,C_ALINTEZMENYID
,C_ALTANEVID
,SERIAL
,MODIFIER
,CREATOR
) VALUES (
src.insertedID
,src.TankotelezettsegVege
,src.TankotelezettsegetTeljesito
,src.SajatosNevelesIgenyu
,src.BeilleszkedesselKuzd
,src.JogviszonyVarBefejezese
,src.Vendegtanulo
,src.Magantanulo
,src.JogviszonyStatusza
,@tanevID
,@TantervId
,@intezmenyID
,@tanevID
,NULL
,@userId
);
--TODO: GENERATE SALT
-------FELHASZNALO BELEPES--------
/*SET @userNameGenerateMode = dbo.fnGetRendszerbeallitasEnumBool(2885, @intezmenyID, @tanevID)
IF @userNameGenerateMode <> 3 BEGIN
INSERT INTO [T_FELHASZNALOBELEPES_OSSZES] (
[C_JELSZO],
[C_BEJELENTKEZESINEV],
[C_FELHASZNALOID],
[C_INTEZMENYID],
[C_TANEVID],
[MODIFIER],
[CREATOR],
[C_GUID]
)
SELECT
CONVERT(nvarchar(8), fh.C_SZULETESIDATUM,112),
CASE @userNameGenerateMode
WHEN 1 THEN fh.C_OKTATASIAZONOSITO
WHEN 2 THEN fh.C_KRETAKOD
ELSE NULL
END,
fh.ID,
@intezmenyID,
@tanevID,
NULL,
@userId,
(select NEWID())
FROM #tempTanulok t
INNER JOIN @linkTable l ON t.ID = l.tempID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = l.insertedId
WHERE C_TANEVID = @tanevID AND
NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES_OSSZES belepes
WHERE belepes.C_FELHASZNALOID = fh.ID AND
belepes.C_GONDVISELOID IS NULL)
END*/
--------FELHASZNALO SZEREPKÖR-----------
DELETE FROM T_FELHASZNALO_SZEREPKOR
WHERE T_FELHASZNALO_SZEREPKOR.[C_FELHASZNALOID] IN (SELECT TanuloID FROM #tempTanulok WHERE TanuloID > 0)
INSERT INTO T_FELHASZNALO_SZEREPKOR (C_FELHASZNALOID, C_SZEREPKORID)
SELECT l.insertedId, (SELECT ID FROM T_SZEREPKOR_OSSZES WHERE C_SZEREPKORTIPUS = '1761' AND C_TANEVID = @tanevID)
FROM #tempTanulok t
INNER JOIN @linkTable l ON t.ID = l.tempID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = l.insertedId
WHERE C_TANEVID = @tanevID
----- Telefonszám -----
MERGE T_TELEFON_OSSZES trg
USING (
SELECT t.*, l.insertedId AS insertedID
FROM #tempTanulok t
INNER JOIN @linkTable l ON t.ID = l.tempID --AND C_ALAPERTELMEZETT = 'T'
WHERE t.Telefonszam IS NOT NULL AND t.Telefonszam <> ''
) src ON src.TanuloID = trg.C_FELHASZNALOID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_ALAPERTELMEZETT = 'T'
WHEN MATCHED THEN
UPDATE SET
trg.C_TELEFONSZAM = src.Telefonszam,
trg.TOROLT = 'F',
trg.SERIAL = trg.SERIAL + 1,
trg.LASTCHANGED = GETDATE(),
trg.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
C_TELEFONTIPUSA
,C_TELEFONSZAM
,C_LEIRAS
,C_ALAPERTELMEZETT
,C_GONDVISELOID
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
1019 -- C_TELEFONTIPUSA - int
,src.Telefonszam -- C_TELEFONSZAM - nvarchar(100)
,N'' -- C_LEIRAS - nvarchar(50)
,'T' -- C_ALAPERTELMEZETT - char(1)
,NULL -- C_GONDVISELOID - int
,src.insertedID -- C_FELHASZNALOID - int
,@intezmenyID -- C_INTEZMENYID - int
,@tanevID -- C_TANEVID - int
,NULL -- MODIFIER - int
,@userId -- CREATOR - int
);
----- TARTÓZKODÁSI HELY -----
MERGE T_CIM_OSSZES trg
USING (
SELECT t.*, l.insertedId AS insertedID
FROM #tempTanulok t
INNER JOIN @linkTable l ON t.ID = l.tempID
WHERE t.TartozkodasiCimIranyitoszam IS NOT NULL AND t.TartozkodasiCimIranyitoszam <> ''
) src ON src.TanuloID = trg.C_FELHASZNALOID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_CIMTIPUSA = 908
WHEN MATCHED THEN
UPDATE SET
trg.C_CIMTIPUSA = 908,
trg.C_ORSZAG = 765,
trg.C_IRANYITOSZAM = src.TartozkodasiCimIranyitoszam,
trg.C_VAROS = src.TartozkodasiCimTelepules,
trg.C_KOZTERULET = src.TartozkodasiCimKozteruletNev,
trg.C_KOZTERULETJELLEGE = src.TartozkodasiCimKozteruletJelleg,
trg.C_HAZSZAM = src.TartozkodasiCimHazszam,
trg.C_FELHASZNALOID = src.insertedId,
trg.TOROLT = 'F',
trg.SERIAL = trg.SERIAL + 1,
trg.LASTCHANGED = GETDATE(),
trg.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
C_CIMTIPUSA
,C_ORSZAG
,C_IRANYITOSZAM
,C_VAROS
,C_KOZTERULET
,C_KOZTERULETJELLEGE
,C_HAZSZAM
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
908
,765
,src.TartozkodasiCimIranyitoszam
,src.TartozkodasiCimTelepules
,src.TartozkodasiCimKozteruletNev
,src.TartozkodasiCimKozteruletJelleg
,src.TartozkodasiCimHazszam
,src.insertedID
,@intezmenyID
,@tanevID
,NULL
,@userId
);
----- TARTÓZKODÁSI HELY -----
MERGE T_CIM_OSSZES trg
USING (
SELECT t.*, l.insertedId AS insertedID
FROM #tempTanulok t
INNER JOIN @linkTable l ON t.ID = l.tempID
) src ON src.TanuloID = trg.C_FELHASZNALOID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_CIMTIPUSA = 907
WHEN MATCHED THEN
UPDATE SET
trg.C_CIMTIPUSA = 907,
trg.C_ORSZAG = 765,
trg.C_IRANYITOSZAM = src.AllandoLakcimIranyitoSzam,
trg.C_VAROS = src.AllandoLakcimTelepules,
trg.C_KOZTERULET = src.AllandoLakcimKozteruletNev,
trg.C_KOZTERULETJELLEGE = src.AllandoLakcimKozteruletJelleg,
trg.C_HAZSZAM = src.AllandoLakcimHazszam,
trg.C_FELHASZNALOID = src.insertedId,
trg.TOROLT = 'F',
trg.SERIAL = trg.SERIAL + 1,
trg.LASTCHANGED = GETDATE(),
trg.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
C_CIMTIPUSA
,C_ORSZAG
,C_IRANYITOSZAM
,C_VAROS
,C_KOZTERULET
,C_KOZTERULETJELLEGE
,C_HAZSZAM
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
907
,765
,src.AllandoLakcimIranyitoSzam
,src.AllandoLakcimTelepules
,src.AllandoLakcimKozteruletNev
,src.AllandoLakcimKozteruletJelleg
,src.AllandoLakcimHazszam
,src.insertedID
,@intezmenyID
,@tanevID
,NULL
,@userId
);
----- E-mail cím -----
MERGE T_EMAIL_OSSZES
USING (
SELECT #tempTanulok.*, linkTable.insertedId AS insertedID
FROM #tempTanulok
INNER JOIN
@linkTable linkTable ON #tempTanulok.ID = linkTable.tempID --AND C_ALAPERTELMEZETT = 'T'
WHERE #tempTanulok.EmailCim IS NOT NULL AND #tempTanulok.EmailCim <> ''
)
src ON
T_EMAIL_OSSZES.C_FELHASZNALOID = src.TanuloID AND
T_EMAIL_OSSZES.C_TANEVID = @tanevID AND
src.isTanulo = 1 AND
T_EMAIL_OSSZES.C_ALAPERTELMEZETT = 'T'
WHEN
MATCHED THEN
UPDATE SET
T_EMAIL_OSSZES.C_EMAILCIM = src.EmailCim,
T_EMAIL_OSSZES.TOROLT = 'F',
T_EMAIL_OSSZES.SERIAL = T_EMAIL_OSSZES.SERIAL + 1,
T_EMAIL_OSSZES.LASTCHANGED = GETDATE(),
T_EMAIL_OSSZES.MODIFIER = @userId
WHEN
NOT MATCHED THEN
INSERT (
C_EMAILTIPUSA
,C_EMAILCIM
,C_ALAPERTELMEZETT
,C_GONDVISELOID
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
1024 -- C_EMAILTIPUSA - int NA
,src.EmailCim -- C_EMAILCIM - nvarchar(100)
,'T' -- C_ALAPERTELMEZETT - char(1)
,NULL -- C_GONDVISELOID - int
,src.insertedID -- C_FELHASZNALOID - int
,@intezmenyID -- C_INTEZMENYID - int
,@tanevID -- C_TANEVID - int
,NULL -- MODIFIER - int
,@userId -- CREATOR - int
);
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END

View file

@ -0,0 +1,219 @@
-- =============================================
-- Description: A nebuló lista importálása XML-ből
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_NebuloImport]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_NebuloImport]
END
GO
CREATE PROCEDURE [dbo].[sp_NebuloImport]
-- Add the parameters for the stored procedure here
@pNebuloListXml XML
,@pIntezmenyId INT
,@pTanevId INT
,@pUserId INT
,@pNebuloImportTipusId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
-- XML paraméter értelmezése
SELECT
-- MERGE-höz adatok
NebuloID = 0
,IsExistingNebulo = 0
--Egyszerű import adatok
,Vezeteknev = Nebulo.value('(Vezeteknev)[1]', 'NVARCHAR(255)')
,Keresztnev = Nebulo.value('(Keresztnev)[1]', 'NVARCHAR(255)')
,AnyjaVezetekneve = Nebulo.value('(AnyjaVezetekneve)[1]', 'NVARCHAR(255)')
,AnyjaKeresztneve = Nebulo.value('(AnyjaKeresztneve)[1]', 'NVARCHAR(255)')
,SzuletesiVezeteknev = Nebulo.value('(SzuletesiVezeteknev)[1]', 'NVARCHAR(255)')
,SzuletesiKeresztnev = Nebulo.value('(SzuletesiKeresztnev)[1]', 'NVARCHAR(255)')
,SzuletesiOrszag = Nebulo.value('number((SzuletesiOrszag)[1])', 'INT')
,SzuletesiHely = Nebulo.value('(SzuletesiHely)[1]', 'NVARCHAR(50)')
,SzuletesiIdo = Nebulo.value('(SzuletesiIdoString)[1]', 'DATETIME')
,TKCimeAzonos = Nebulo.value('(TKCimeAzonosString)[1]', 'CHAR(1)')
,THCimeAzonos = Nebulo.value('(THCimeAzonosString)[1]', 'CHAR(1)')
,Anyanyelv = Nebulo.value('number((Anyanyelv)[1])', 'INT')
,Allampolgarsag = Nebulo.value('number((Allampolgarsag)[1])', 'INT')
,EletvitelszeruOttLakasKorzetes = Nebulo.value('(EletvitelszeruOttLakasKorzetesString)[1]', 'CHAR(1)')
,FeladatellatasiHelyId = Nebulo.value('number((FeladatellatasiHelyId)[1])', 'INT')
,Tagozat = Nebulo.value('number((Tagozat)[1])', 'INT')
,FelvetelStatusza = Nebulo.value('number((FelvetelStatusza)[1])', 'INT')
,BTMLetszamSuly = Nebulo.value('number((BTMLetszamSuly)[1])', 'NUMERIC(10,2)')
,SNILetszamSuly = Nebulo.value('number((SNILetszamSuly)[1])', 'NUMERIC(10,2)')
--Egyszerű import lakcímmel adatok
,Iranyitoszam = Nebulo.value('(Iranyitoszam)[1]', 'NVARCHAR(20)')
,Helyseg = Nebulo.value('(Helyseg)[1]', 'NVARCHAR(255)')
,Kozterulet = Nebulo.value('(Kozterulet)[1]', 'NVARCHAR(40)')
,KozteruletJelleg = Nebulo.value('number((KozteruletJelleg)[1])', 'INT')
,Szam = Nebulo.value('(Szam)[1]', 'NVARCHAR(30)')
,Emelet = Nebulo.value('(Emelet)[1]', 'NVARCHAR(40)')
,Ajto = Nebulo.value('(Ajto)[1]', 'NVARCHAR(30)')
INTO
#tempNebuloList
FROM
@pNebuloListXml.nodes('NebuloImport/NebuloList/Nebulo') AS NebuloList(Nebulo)
-- A létező nebulók ID-ját kitöltjük, és az IsExistingNebulo-t is UPDATE-eljük 4T alapján
UPDATE
tempNebulo
SET
tempNebulo.NebuloID = nebulo.ID
,tempNebulo.IsExistingNebulo = IIF(nebulo.ID IS NULL, 0, 1)
FROM
#tempNebuloList tempNebulo
INNER JOIN
T_NEBULO_OSSZES nebulo ON
nebulo.C_TANULOCSALADINEVE = tempNebulo.Vezeteknev AND
nebulo.C_TANULOUTONEVE = tempNebulo.Keresztnev AND
nebulo.C_EDESANYJASZULETESICSALADINEV = tempNebulo.AnyjaVezetekneve AND
nebulo.C_EDESANYJASZULETESIUTONEVE = tempNebulo.AnyjaKeresztneve AND
nebulo.C_SZULETESIORSZAG = tempNebulo.SzuletesiOrszag AND
nebulo.C_SZULETESIHELY = tempNebulo.SzuletesiHely AND
nebulo.C_SZULETESIIDO = tempNebulo.SzuletesiIdo
BEGIN TRY
BEGIN TRANSACTION
DECLARE @currentDateTime DATETIME
SET @currentDateTime = (SELECT GETDATE())
DECLARE @isUpdateLakcim BIT
SET @isUpdateLakcim = CASE WHEN @pNebuloImportTipusId = 1 THEN 1 ELSE 0 END
-- Nebulók INSERT-je vagy UPDATE-je aka MERGE
MERGE T_NEBULO_OSSZES nebulo
USING #tempNebuloList tempNebulo ON
tempNebulo.NebuloID = nebulo.ID AND nebulo.C_TANEVID = @pTanevId
WHEN MATCHED AND tempNebulo.IsExistingNebulo = 1 THEN
UPDATE SET
--Egyszerű import adatok
nebulo.C_TANULOCSALADINEVE = tempNebulo.Vezeteknev
,nebulo.C_TANULOUTONEVE = tempNebulo.Keresztnev
,nebulo.C_EDESANYJASZULETESICSALADINEV = tempNebulo.AnyjaVezetekneve
,nebulo.C_EDESANYJASZULETESIUTONEVE = tempNebulo.AnyjaKeresztneve
,nebulo.C_SZULETESICSALADINEVE = tempNebulo.SzuletesiVezeteknev
,nebulo.C_SZULETESIUTONEVE = tempNebulo.SzuletesiKeresztnev
,nebulo.C_SZULETESIORSZAG = tempNebulo.SzuletesiOrszag
,nebulo.C_SZULETESIHELY = tempNebulo.SzuletesiHely
,nebulo.C_SZULETESIIDO = tempNebulo.SzuletesiIdo
--nebulo.C_FELVETELSTATUSZA = tempNebulo.FelvetelStatusza
--Egyszerű import lakcímmel adatok
,nebulo.C_IRANYITOSZAM = CASE WHEN @isUpdateLakcim = 1 THEN tempNebulo.Iranyitoszam ELSE nebulo.C_IRANYITOSZAM END
,nebulo.C_HELYSEGNEV = CASE WHEN @isUpdateLakcim = 1 THEN tempNebulo.Helyseg ELSE nebulo.C_HELYSEGNEV END
,nebulo.C_KOZTERULETNEV = CASE WHEN @isUpdateLakcim = 1 THEN tempNebulo.Kozterulet ELSE nebulo.C_KOZTERULETNEV END
,nebulo.C_KOZTERULETJELLEGE = CASE WHEN @isUpdateLakcim = 1 THEN tempNebulo.KozteruletJelleg ELSE nebulo.C_KOZTERULETJELLEGE END
,nebulo.C_HAZSZAM = CASE WHEN @isUpdateLakcim = 1 THEN tempNebulo.Szam ELSE nebulo.C_HAZSZAM END
,nebulo.C_EMELET = CASE WHEN @isUpdateLakcim = 1 THEN tempNebulo.Emelet ELSE nebulo.C_EMELET END
,nebulo.C_AJTO = CASE WHEN @isUpdateLakcim = 1 THEN tempNebulo.Ajto ELSE nebulo.C_AJTO END
--Technikai adatok
,nebulo.TOROLT = 'F'
,nebulo.SERIAL = nebulo.SERIAL + 1
,nebulo.LASTCHANGED = @currentDateTime
,nebulo.MODIFIER = @pUserId
WHEN NOT MATCHED THEN
INSERT (
--Egyszerű import adatok
C_TANULOCSALADINEVE
,C_TANULOUTONEVE
,C_EDESANYJASZULETESICSALADINEV
,C_EDESANYJASZULETESIUTONEVE
,C_SZULETESICSALADINEVE
,C_SZULETESIUTONEVE
,C_SZULETESIORSZAG
,C_SZULETESIHELY
,C_SZULETESIIDO
,C_KEPVISELOCIMEAZONOS
,C_TARTOZKODASIHELYAZONOS
,C_ANYANYELVE
,C_ALLAMPOLGARSAGA
,C_ELETVITELSZERUOTTLAKASKORZET
,C_FELADATELLATASIHELYID
,C_TAGOZAT
,C_FELVETELSTATUSZA
,C_BTMLETSZAMSULY
,C_SNILETSZAMSULY
--Egyszerű import lakcímmel adatok
,C_IRANYITOSZAM
,C_HELYSEGNEV
,C_KOZTERULETNEV
,C_KOZTERULETJELLEGE
,C_HAZSZAM
,C_EMELET
,C_AJTO
--Technikai adatok
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR)
VALUES (
--Egyszerű import adatok
tempNebulo.Vezeteknev
,tempNebulo.Keresztnev
,tempNebulo.AnyjaVezetekneve
,tempNebulo.AnyjaKeresztneve
,tempNebulo.SzuletesiVezeteknev
,tempNebulo.SzuletesiKeresztnev
,tempNebulo.SzuletesiOrszag
,tempNebulo.SzuletesiHely
,tempNebulo.SzuletesiIdo
,tempNebulo.TKCimeAzonos
,tempNebulo.THCimeAzonos
,tempNebulo.Anyanyelv
,tempNebulo.Allampolgarsag
,tempNebulo.EletvitelszeruOttLakasKorzetes
,tempNebulo.FeladatellatasiHelyId
,tempNebulo.Tagozat
,tempNebulo.FelvetelStatusza
,tempNebulo.BTMLetszamSuly
,tempNebulo.SNILetszamSuly
--Egyszerű import lakcímmel adatok
,tempNebulo.Iranyitoszam
,tempNebulo.Helyseg
,tempNebulo.Kozterulet
,tempNebulo.KozteruletJelleg
,tempNebulo.Szam
,tempNebulo.Emelet
,tempNebulo.Ajto
--Technikai adatok
,@pIntezmenyId
,@pTanevId
,'F'
,@currentDateTime
,@currentDateTime
,@pUserId
,@pUserId);
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO