init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,360 @@
|
|||
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
|
||||
|
||||
/*TÖRÖLJÜK AZ IMPORTÁLTakat*/
|
||||
EXEC sp_DeleteAllTTF @feladatellatasiHelyId = @feladatellatasiHelyId, @tanevId = @tanevId
|
||||
|
||||
UPDATE @tbl
|
||||
SET ExistItemId = 0
|
||||
WHERE NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES f WHERE f.ID = ExistItemId)
|
||||
|
||||
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
|
||||
,SERIAL
|
||||
) 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)
|
||||
,0 AS SERIAL
|
||||
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
|
||||
,SERIAL
|
||||
) 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)
|
||||
,0 AS SERIAL
|
||||
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
|
||||
,SERIAL
|
||||
) 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
|
||||
,0 AS SERIAL
|
||||
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
|
||||
,SERIAL
|
||||
) 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)
|
||||
,0 AS SERIAL
|
||||
|
||||
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
|
||||
,SERIAL
|
||||
) 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
|
||||
,0 AS SERIAL
|
||||
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
|
||||
WHERE f.C_TANTARGYID = o.tantargyID
|
||||
AND f.C_OSZTALYCSOPORTID = o.csoportID
|
||||
AND f.C_TANARID = o.tanarID
|
||||
AND f.C_TANEVID = @tanevId
|
||||
)
|
||||
AND o.existItemId = 0
|
||||
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_TANARID
|
||||
,C_INTEZMENYID
|
||||
,C_TANEVID
|
||||
,MODIFIER
|
||||
,CREATOR
|
||||
,C_IMPORTALT
|
||||
,SERIAL
|
||||
) 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
|
||||
,src.tanarID
|
||||
,@intezmenyId
|
||||
,@tanevId -- C_TANEVID - int
|
||||
,NULL -- MODIFIER - int
|
||||
,@userId -- CREATOR - int
|
||||
,'T' -- C_IMPORTALT char(1)
|
||||
,0
|
||||
)
|
||||
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
|
||||
|
||||
COMMIT TRANSACTION
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
IF @@TRANCOUNT > 0
|
||||
ROLLBACK TRAN;
|
||||
THROW
|
||||
END CATCH
|
||||
|
||||
END
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue