init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,357 @@
|
|||
DROP PROCEDURE IF EXISTS uspOrarendImport
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspOrarendImport
|
||||
@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
,@pUserId int
|
||||
,@pImportJson nvarchar(max)
|
||||
,@pIsTorles bit
|
||||
,@pIsModositas bit
|
||||
,@pIsNapirendImport bit
|
||||
,@pOrarendiOraLezarasDateTime datetime = NULL
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@tableNameList nvarchar(2000) = 'T_TEREM_OSSZES'
|
||||
,@actualJson nvarchar(max) = ''
|
||||
,@lastChangedDateTime datetime = GETDATE()
|
||||
|
||||
--Ha törlés van, akkor a kapcsolódások törlésével kell kezdenünk!
|
||||
IF (@pIsTorles = 1) BEGIN
|
||||
--Órarendi óra kapcsolatainak törlése
|
||||
UPDATE tao SET
|
||||
tao.C_ORARENDIORAID = NULL
|
||||
,tao.SERIAL = tao.SERIAL + 1
|
||||
,tao.LASTCHANGED = @lastChangedDateTime
|
||||
,tao.MODIFIER = @pUserId
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
WHERE tao.C_INTEZMENYID = @pIntezmenyId
|
||||
AND tao.C_TANEVID = @pTanevId
|
||||
AND tao.TOROLT = 'F'
|
||||
AND EXISTS (
|
||||
SELECT TOP 1 ID
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
WHERE oo.ID = tao.C_ORARENDIORAID
|
||||
AND oo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND oo.C_TANEVID = @pTanevId
|
||||
AND oo.TOROLT = 'F'
|
||||
AND oo.C_IMPORTALT = 'T'
|
||||
AND ((@pIsNapirendImport = 0 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'F')
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'T'))
|
||||
)
|
||||
|
||||
UPDATE hf SET
|
||||
hf.C_ORARENDIORAID = NULL
|
||||
,hf.SERIAL = hf.SERIAL + 1
|
||||
,hf.LASTCHANGED = @lastChangedDateTime
|
||||
,hf.MODIFIER = @pUserId
|
||||
FROM T_HAZIFELADATOK_OSSZES hf
|
||||
WHERE hf.C_INTEZMENYID = @pIntezmenyId
|
||||
AND hf.C_TANEVID = @pTanevId
|
||||
AND hf.TOROLT = 'F'
|
||||
AND EXISTS (
|
||||
SELECT TOP 1 ID
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
WHERE oo.ID = hf.C_ORARENDIORAID
|
||||
AND oo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND oo.C_TANEVID = @pTanevId
|
||||
AND oo.TOROLT = 'F'
|
||||
AND oo.C_IMPORTALT = 'T'
|
||||
AND ((@pIsNapirendImport = 0 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'F')
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'T'))
|
||||
)
|
||||
|
||||
UPDATE oot SET
|
||||
oot.C_ORARENDIORAID = NULL
|
||||
,oot.SERIAL = oot.SERIAL + 1
|
||||
,oot.LASTCHANGED = @lastChangedDateTime
|
||||
,oot.MODIFIER = @pUserId
|
||||
FROM T_ORARENDIORATULAJDONSAG oot
|
||||
WHERE oot.C_INTEZMENYID = @pIntezmenyId
|
||||
AND oot.C_TANEVID = @pTanevId
|
||||
AND oot.TOROLT = 'F'
|
||||
AND EXISTS (
|
||||
SELECT TOP 1 ID
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
WHERE oo.ID = oot.C_ORARENDIORAID
|
||||
AND oo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND oo.C_TANEVID = @pTanevId
|
||||
AND oo.TOROLT = 'F'
|
||||
AND oo.C_IMPORTALT = 'T'
|
||||
AND ((@pIsNapirendImport = 0 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'F')
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'T'))
|
||||
)
|
||||
|
||||
DELETE hi
|
||||
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
|
||||
WHERE EXISTS (
|
||||
SELECT TOP 1 ID
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
WHERE oo.ID = hi.C_HELYETTESITETTORARENDID
|
||||
AND oo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND oo.C_TANEVID = @pTanevId
|
||||
AND oo.TOROLT = 'F'
|
||||
AND oo.C_IMPORTALT = 'T'
|
||||
AND ((@pIsNapirendImport = 0 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'F')
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'T'))
|
||||
)
|
||||
|
||||
--Órarendi órák törlése
|
||||
UPDATE oo SET
|
||||
oo.TOROLT = 'T'
|
||||
,oo.SERIAL = oo.SERIAL + 1
|
||||
,oo.LASTCHANGED = @lastChangedDateTime
|
||||
,oo.MODIFIER = @pUserId
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
WHERE oo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND oo.C_TANEVID = @pTanevId
|
||||
AND oo.TOROLT = 'F'
|
||||
AND oo.C_IMPORTALT = 'T'
|
||||
AND oo.C_ORAERVENYESSEGVEGE <> oo.C_ORAERVENYESSEGKEZDETE
|
||||
AND ((@pIsNapirendImport = 0 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'F')
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'T'))
|
||||
END
|
||||
|
||||
--Ha módosítás van, akkor a már létező órarendi órák módosításával kell kezdenünk!
|
||||
IF (@pIsModositas = 1) BEGIN
|
||||
--Korábbi órarendi órák lezárása
|
||||
UPDATE oo SET
|
||||
oo.C_ORAERVENYESSEGVEGE = @pOrarendiOraLezarasDateTime
|
||||
,oo.SERIAL = oo.SERIAL + 1
|
||||
,oo.LASTCHANGED = @lastChangedDateTime
|
||||
,oo.MODIFIER = @pUserId
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
WHERE oo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND oo.C_TANEVID = @pTanevId
|
||||
AND oo.TOROLT = 'F'
|
||||
AND (oo.C_ORAERVENYESSEGVEGE IS NULL
|
||||
OR oo.C_ORAERVENYESSEGVEGE > @pOrarendiOraLezarasDateTime)
|
||||
AND oo.C_ORAERVENYESSEGVEGE <> oo.C_ORAERVENYESSEGKEZDETE
|
||||
AND oo.C_ORAERVENYESSEGKEZDETE < @pOrarendiOraLezarasDateTime
|
||||
AND ((@pIsNapirendImport = 0 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'F')
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'T'))
|
||||
|
||||
--A korábban felvett, de későbbi időpontra importált órarendi órák törlése
|
||||
UPDATE oo SET
|
||||
oo.TOROLT = 'T'
|
||||
,oo.SERIAL = oo.SERIAL + 1
|
||||
,oo.LASTCHANGED = @lastChangedDateTime
|
||||
,oo.MODIFIER = @pUserId
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
WHERE oo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND oo.C_TANEVID = @pTanevId
|
||||
AND oo.TOROLT = 'F'
|
||||
AND oo.C_IMPORTALT = 'T'
|
||||
AND oo.C_ORAERVENYESSEGVEGE <> oo.C_ORAERVENYESSEGKEZDETE
|
||||
AND oo.C_ORAERVENYESSEGKEZDETE >= @pOrarendiOraLezarasDateTime
|
||||
AND ((@pIsNapirendImport = 0 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'F')
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'T'))
|
||||
END
|
||||
|
||||
EXECUTE uspTantargyfelosztasImport @pIntezmenyId, @pTanevId, @pUserId, @pImportJson, @pIsTorles
|
||||
|
||||
--NOTE: A törlés azért false, mert a T_TEREM_OSSZES view-ból nem törlünk importnál!
|
||||
EXECUTE uspDynamicImportJsonSplit @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @pImportJson, @pIsTorles = 0, @pIsSubTable = 0, @pTableNameList = @tableNameList
|
||||
|
||||
--NOTE: Órarendi óra temp tábla incializálása
|
||||
CREATE TABLE #OrarendiOraTempTable (
|
||||
ID int
|
||||
,C_TANARID int
|
||||
,C_TANTARGYID int
|
||||
,C_OSZTALYCSOPORTID int
|
||||
,C_TEREMID int
|
||||
,C_FOGLALKOZASID int
|
||||
,C_HETIREND int
|
||||
,C_HETNAPJA int
|
||||
,C_ORASZAM int
|
||||
,C_ORAERVENYESSEGKEZDETE datetime
|
||||
,C_ORAERVENYESSEGVEGE datetime
|
||||
,C_TANORANKIVULIFOGLALKOZAs char(1)
|
||||
,C_EGYEDINAP char(1)
|
||||
,C_ISKEZZELFELVETTEGYEDINAp char(1)
|
||||
,C_CSENGETESIRENDID int
|
||||
,C_CSENGETESIRENDORAID int
|
||||
,C_ORAKEZDETE datetime
|
||||
,C_ORAVEGE datetime
|
||||
,C_BONTOTT char(1)
|
||||
,C_ORATULAJDONOSID int
|
||||
|
||||
,C_IMPORTALT char(1)
|
||||
,C_INTEZMENYID int
|
||||
,C_TANEVID int
|
||||
,TOROLT char(1)
|
||||
,SERIAL int
|
||||
,LASTCHANGED datetime
|
||||
,CREATED datetime
|
||||
,MODIFIER int
|
||||
,CREATOR int
|
||||
,ELOZOTANEVIREKORDID int
|
||||
,NNID int
|
||||
,Operation int
|
||||
)
|
||||
|
||||
INSERT INTO #OrarendiOraTempTable
|
||||
SELECT
|
||||
oo.ID
|
||||
,oo.C_TANARID
|
||||
,tt.ID AS C_TANTARGYID
|
||||
,ocs.ID AS C_OSZTALYCSOPORTID
|
||||
,t.ID AS C_TEREMID
|
||||
,fg.ID AS C_FOGLALKOZASID
|
||||
,oo.C_HETIREND
|
||||
,oo.C_HETNAPJA
|
||||
,oo.C_ORASZAM
|
||||
,oo.C_ORAERVENYESSEGKEZDETE
|
||||
,oo.C_ORAERVENYESSEGVEGE
|
||||
,oo.C_TANORANKIVULIFOGLALKOZAS
|
||||
,oo.C_EGYEDINAP
|
||||
,oo.C_ISKEZZELFELVETTEGYEDINAP
|
||||
,oo.C_CSENGETESIRENDID
|
||||
,oo.C_CSENGETESIRENDORAID
|
||||
,oo.C_ORAKEZDETE
|
||||
,oo.C_ORAVEGE
|
||||
,oo.C_BONTOTT
|
||||
,oo.C_ORATULAJDONOSID
|
||||
|
||||
,oo.C_IMPORTALT
|
||||
,oo.C_INTEZMENYID
|
||||
,oo.C_TANEVID
|
||||
,oo.TOROLT
|
||||
,oo.SERIAL
|
||||
,oo.LASTCHANGED
|
||||
,oo.CREATED
|
||||
,oo.MODIFIER
|
||||
,oo.CREATOR
|
||||
,oo.ELOZOTANEVIREKORDID
|
||||
,oo.NNID
|
||||
,oo.Operation
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_ORARENDIORA_OSSZES')
|
||||
WITH (
|
||||
ID int '$.ID'
|
||||
,C_TANARID int '$.C_TANARID'
|
||||
,C_HETIREND int '$.C_HETIREND'
|
||||
,C_HETNAPJA int '$.C_HETNAPJA'
|
||||
,C_ORASZAM int '$.C_ORASZAM'
|
||||
,C_ORAERVENYESSEGKEZDETE datetime '$.C_ORAERVENYESSEGKEZDETE'
|
||||
,C_ORAERVENYESSEGVEGE datetime '$.C_ORAERVENYESSEGVEGE'
|
||||
,C_TANORANKIVULIFOGLALKOZAS char(1) '$.C_TANORANKIVULIFOGLALKOZAS'
|
||||
,C_EGYEDINAP char(1) '$.C_EGYEDINAP'
|
||||
,C_ISKEZZELFELVETTEGYEDINAP char(1) '$.C_ISKEZZELFELVETTEGYEDINAP'
|
||||
,C_CSENGETESIRENDID int '$.C_CSENGETESIRENDID'
|
||||
,C_CSENGETESIRENDORAID int '$.C_CSENGETESIRENDORAID'
|
||||
,C_ORAKEZDETE datetime '$.C_ORAKEZDETE'
|
||||
,C_ORAVEGE datetime '$.C_ORAVEGE'
|
||||
,C_BONTOTT char(1) '$.C_BONTOTT'
|
||||
,C_ORATULAJDONOSID int '$.C_ORATULAJDONOSID'
|
||||
|
||||
,C_IMPORTALT char(1) '$.C_IMPORTALT'
|
||||
,C_INTEZMENYID int '$.C_INTEZMENYID'
|
||||
,C_TANEVID int '$.C_TANEVID'
|
||||
,TOROLT char(1) '$.TOROLT'
|
||||
,SERIAL int '$.SERIAL'
|
||||
,LASTCHANGED datetime '$.LASTCHANGED'
|
||||
,CREATED datetime '$.CREATED'
|
||||
,MODIFIER int '$.MODIFIER'
|
||||
,CREATOR int '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID int '$.ELOZOTANEVIREKORDID'
|
||||
,NNID int '$.NNID'
|
||||
,Operation int '$.Operation'
|
||||
|
||||
,TantargyNev nvarchar(255) '$.TantargyNev'
|
||||
,OsztalyCsoportNev nvarchar(255) '$.OsztalyCsoportNev'
|
||||
,TeremNev nvarchar(255) '$.TeremNev'
|
||||
) oo
|
||||
LEFT JOIN T_TANTARGY_OSSZES tt ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(tt.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(oo.TantargyNev)
|
||||
AND tt.C_INTEZMENYID = @pIntezmenyId
|
||||
AND tt.C_TANEVID = @pTanevId
|
||||
AND tt.TOROLT = 'F'
|
||||
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ocs.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(oo.OsztalyCsoportNev)
|
||||
AND ocs.C_INTEZMENYID = @pIntezmenyId
|
||||
AND ocs.C_TANEVID = @pTanevId
|
||||
AND ocs.TOROLT = 'F'
|
||||
LEFT JOIN T_TEREM_OSSZES t ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(t.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(oo.TeremNev)
|
||||
AND t.C_INTEZMENYID = @pIntezmenyId
|
||||
AND t.C_TANEVID = @pTanevId
|
||||
AND t.TOROLT = 'F'
|
||||
LEFT JOIN T_FOGLALKOZAS_OSSZES fg ON
|
||||
fg.C_OSZTALYCSOPORTID = ocs.ID
|
||||
AND fg.C_TANARID = oo.C_TANARID
|
||||
AND fg.C_TANTARGYID = tt.ID
|
||||
AND fg.C_INTEZMENYID = @pIntezmenyId
|
||||
AND fg.C_TANEVID = @pTanevId
|
||||
AND fg.TOROLT = 'F'
|
||||
|
||||
--Órarendi órák beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_ORARENDIORA_OSSZES":' + (
|
||||
SELECT
|
||||
oo.ID
|
||||
,oo.C_TANARID
|
||||
,oo.C_TANTARGYID
|
||||
,oo.C_OSZTALYCSOPORTID
|
||||
,oo.C_TEREMID
|
||||
,oo.C_FOGLALKOZASID
|
||||
,oo.C_HETIREND
|
||||
,oo.C_HETNAPJA
|
||||
,oo.C_ORASZAM
|
||||
,oo.C_ORAERVENYESSEGKEZDETE
|
||||
,oo.C_ORAERVENYESSEGVEGE
|
||||
,oo.C_TANORANKIVULIFOGLALKOZAS
|
||||
,oo.C_EGYEDINAP
|
||||
,oo.C_ISKEZZELFELVETTEGYEDINAP
|
||||
,oo.C_CSENGETESIRENDID
|
||||
,oo.C_CSENGETESIRENDORAID
|
||||
,oo.C_ORAKEZDETE
|
||||
,oo.C_ORAVEGE
|
||||
,oo.C_BONTOTT
|
||||
,oo.C_ORATULAJDONOSID
|
||||
|
||||
,oo.C_IMPORTALT
|
||||
,oo.C_INTEZMENYID
|
||||
,oo.C_TANEVID
|
||||
,oo.TOROLT
|
||||
,oo.SERIAL
|
||||
,oo.LASTCHANGED
|
||||
,oo.CREATED
|
||||
,oo.MODIFIER
|
||||
,oo.CREATOR
|
||||
,oo.ELOZOTANEVIREKORDID
|
||||
,oo.NNID
|
||||
,oo.Operation
|
||||
FROM #OrarendiOraTempTable AS oo
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES
|
||||
)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés azért false, mert a T_ORARENDIORA_OSSZES view-ból korábban elvégeztük a törlést, mivel egyéb feltélek is kellettek hozzá, ami nem szerepel a uspDynamicImport-ban.
|
||||
EXECUTE uspDynamicImport @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0
|
||||
DROP TABLE IF EXISTS #OrarendiOraTempTable
|
||||
|
||||
--NOTE: Update-elnünk kell a órarendi óráknak a groud id-ját!
|
||||
UPDATE oo SET
|
||||
oo.C_ORARENDIORAGROUPID = ID
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
WHERE oo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND oo.C_TANEVID = @pTanevId
|
||||
AND oo.TOROLT = 'F'
|
||||
AND oo.C_IMPORTALT = 'T'
|
||||
AND ((@pIsNapirendImport = 0 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'F')
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_TANORANKIVULIFOGLALKOZAS = 'T'))
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
|
@ -0,0 +1,444 @@
|
|||
DROP PROCEDURE IF EXISTS uspTantargyfelosztasImport
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspTantargyfelosztasImport
|
||||
@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
,@pUserId int
|
||||
,@pImportJson nvarchar(max)
|
||||
,@pIsTorles bit
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@tableNameList nvarchar(2000) = 'T_TANTARGY_OSSZES,T_OSZTALYCSOPORT_OSSZES'
|
||||
,@actualJson nvarchar(max) = ''
|
||||
,@lastChangedDateTime datetime = GETDATE()
|
||||
|
||||
--Ha törlés van, akkor a kapcsolódások törlésével kell kezdenünk!
|
||||
IF (@pIsTorles = 1) BEGIN
|
||||
--Foglalkozás kapcsolatainak törlése
|
||||
UPDATE oo SET
|
||||
oo.C_FOGLALKOZASID = NULL
|
||||
,oo.SERIAL = oo.SERIAL + 1
|
||||
,oo.LASTCHANGED = @lastChangedDateTime
|
||||
,oo.MODIFIER = @pUserId
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
WHERE oo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND oo.C_TANEVID = @pTanevId
|
||||
AND oo.TOROLT = 'F'
|
||||
AND EXISTS (
|
||||
SELECT TOP 1 ID
|
||||
FROM T_FOGLALKOZAS_OSSZES fg
|
||||
WHERE fg.ID = oo.C_FOGLALKOZASID
|
||||
AND fg.C_INTEZMENYID = @pIntezmenyId
|
||||
AND fg.C_TANEVID = @pTanevId
|
||||
AND fg.TOROLT = 'F'
|
||||
AND fg.C_IMPORTALT = 'T'
|
||||
)
|
||||
|
||||
UPDATE tao SET
|
||||
tao.C_FOGLALKOZASID = NULL
|
||||
,tao.SERIAL = tao.SERIAL + 1
|
||||
,tao.LASTCHANGED = @lastChangedDateTime
|
||||
,tao.MODIFIER = @pUserId
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
WHERE tao.C_INTEZMENYID = @pIntezmenyId
|
||||
AND tao.C_TANEVID = @pTanevId
|
||||
AND tao.TOROLT = 'F'
|
||||
AND EXISTS (
|
||||
SELECT TOP 1 ID
|
||||
FROM T_FOGLALKOZAS_OSSZES fg
|
||||
WHERE fg.ID = tao.C_FOGLALKOZASID
|
||||
AND fg.C_INTEZMENYID = @pIntezmenyId
|
||||
AND fg.C_TANEVID = @pTanevId
|
||||
AND fg.TOROLT = 'F'
|
||||
AND fg.C_IMPORTALT = 'T'
|
||||
)
|
||||
|
||||
UPDATE tms SET
|
||||
tms.C_TARGYMULASZTASSTATISZTIKAIID = NULL
|
||||
,tms.SERIAL = tms.SERIAL + 1
|
||||
,tms.LASTCHANGED = @lastChangedDateTime
|
||||
,tms.MODIFIER = @pUserId
|
||||
FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES tms
|
||||
WHERE tms.C_INTEZMENYID = @pIntezmenyId
|
||||
AND tms.C_TANEVID = @pTanevId
|
||||
AND tms.TOROLT = 'F'
|
||||
AND EXISTS (
|
||||
SELECT TOP 1 ID
|
||||
FROM T_FOGLALKOZAS_OSSZES fg
|
||||
WHERE fg.ID = tms.C_TARGYMULASZTASSTATISZTIKAIID
|
||||
AND fg.C_INTEZMENYID = @pIntezmenyId
|
||||
AND fg.C_TANEVID = @pTanevId
|
||||
AND fg.TOROLT = 'F'
|
||||
AND fg.C_IMPORTALT = 'T'
|
||||
)
|
||||
|
||||
DELETE tfg
|
||||
FROM T_TEREM_FOGLALKOZAS tfg
|
||||
WHERE EXISTS (
|
||||
SELECT TOP 1 ID
|
||||
FROM T_FOGLALKOZAS_OSSZES fg
|
||||
WHERE fg.ID = tfg.C_FOGLALKOZASID
|
||||
AND fg.C_INTEZMENYID = @pIntezmenyId
|
||||
AND fg.C_TANEVID = @pTanevId
|
||||
AND fg.TOROLT = 'F'
|
||||
AND fg.C_IMPORTALT = 'T'
|
||||
)
|
||||
END
|
||||
|
||||
--NOTE: A törlés azért false, mert a T_TANTARGY_OSSZES és a T_OSZTALYCSOPORT_OSSZES view-ból nem törlünk importnál!
|
||||
EXECUTE uspDynamicImportJsonSplit @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @pImportJson, @pIsTorles = 0, @pIsSubTable = 0, @pTableNameList = @tableNameList
|
||||
|
||||
--NOTE: Osztály temp tábla incializálása
|
||||
CREATE TABLE #OsztalyTempTable (
|
||||
ID int
|
||||
,C_TECHNIKAIOSZTALY char(1)
|
||||
,C_GYOGYPEDAGOGIAI char(1)
|
||||
,C_KETTANNYELVU char(1)
|
||||
,C_LOGOPEDIAI char(1)
|
||||
,C_NEMZETISEGI char(1)
|
||||
,C_NYELVIELOKESZITO char(1)
|
||||
,C_SPORT char(1)
|
||||
|
||||
,C_ALINTEZMENYID int
|
||||
,C_ALTANEVID int
|
||||
,TOROLT char(1)
|
||||
,SERIAL int
|
||||
,LASTCHANGED datetime
|
||||
,CREATED datetime
|
||||
,MODIFIER int
|
||||
,CREATOR int
|
||||
,ELOZOTANEVIREKORDID int
|
||||
,NNID int
|
||||
,Operation int
|
||||
)
|
||||
|
||||
INSERT INTO #OsztalyTempTable
|
||||
SELECT
|
||||
ocs.ID
|
||||
,o.C_TECHNIKAIOSZTALY
|
||||
,o.C_GYOGYPEDAGOGIAI
|
||||
,o.C_KETTANNYELVU
|
||||
,o.C_LOGOPEDIAI
|
||||
,o.C_NEMZETISEGI
|
||||
,o.C_NYELVIELOKESZITO
|
||||
,o.C_SPORT
|
||||
|
||||
,o.C_ALINTEZMENYID
|
||||
,o.C_ALTANEVID
|
||||
,o.TOROLT
|
||||
,o.SERIAL
|
||||
,o.LASTCHANGED
|
||||
,o.CREATED
|
||||
,o.MODIFIER
|
||||
,o.CREATOR
|
||||
,o.ELOZOTANEVIREKORDID
|
||||
,o.NNID
|
||||
,o.Operation
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_OSZTALY_OSSZES')
|
||||
WITH (
|
||||
ID int '$.ID'
|
||||
,C_TECHNIKAIOSZTALY char(1) '$.C_TECHNIKAIOSZTALY'
|
||||
,C_GYOGYPEDAGOGIAI char(1) '$.C_GYOGYPEDAGOGIAI'
|
||||
,C_KETTANNYELVU char(1) '$.C_KETTANNYELVU'
|
||||
,C_LOGOPEDIAI char(1) '$.C_LOGOPEDIAI'
|
||||
,C_NEMZETISEGI char(1) '$.C_NEMZETISEGI'
|
||||
,C_NYELVIELOKESZITO char(1) '$.C_NYELVIELOKESZITO'
|
||||
,C_SPORT char(1) '$.C_SPORT'
|
||||
|
||||
,C_ALINTEZMENYID int '$.C_INTEZMENYID'
|
||||
,C_ALTANEVID int '$.C_TANEVID'
|
||||
,TOROLT char(1) '$.TOROLT'
|
||||
,SERIAL int '$.SERIAL'
|
||||
,LASTCHANGED datetime '$.LASTCHANGED'
|
||||
,CREATED datetime '$.CREATED'
|
||||
,MODIFIER int '$.MODIFIER'
|
||||
,CREATOR int '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID int '$.ELOZOTANEVIREKORDID'
|
||||
,NNID int '$.NNID'
|
||||
,Operation int '$.Operation'
|
||||
|
||||
,OsztalyCsoportNev nvarchar(255) '$.OsztalyCsoportNev'
|
||||
) o
|
||||
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ocs.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(o.OsztalyCsoportNev)
|
||||
AND ocs.C_INTEZMENYID = @pIntezmenyId
|
||||
AND ocs.C_TANEVID = @pTanevId
|
||||
AND ocs.TOROLT = 'F'
|
||||
AND o.ID IS NULL
|
||||
|
||||
--NOTE: Csoport temp tábla incializálása
|
||||
CREATE TABLE #CsoportTempTable (
|
||||
ID int
|
||||
,C_TIPUSA int
|
||||
,C_OSZTALYBONTASID int
|
||||
|
||||
,C_ALINTEZMENYID int
|
||||
,C_ALTANEVID int
|
||||
,TOROLT char(1)
|
||||
,SERIAL int
|
||||
,LASTCHANGED datetime
|
||||
,CREATED datetime
|
||||
,MODIFIER int
|
||||
,CREATOR int
|
||||
,ELOZOTANEVIREKORDID int
|
||||
,NNID int
|
||||
,Operation int
|
||||
)
|
||||
|
||||
INSERT INTO #CsoportTempTable
|
||||
SELECT
|
||||
ocs.ID
|
||||
,cs.C_TIPUSA
|
||||
,ob.ID
|
||||
|
||||
,cs.C_ALINTEZMENYID
|
||||
,cs.C_ALTANEVID
|
||||
,cs.TOROLT
|
||||
,cs.SERIAL
|
||||
,cs.LASTCHANGED
|
||||
,cs.CREATED
|
||||
,cs.MODIFIER
|
||||
,cs.CREATOR
|
||||
,cs.ELOZOTANEVIREKORDID
|
||||
,cs.NNID
|
||||
,cs.Operation
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_CSOPORT_OSSZES')
|
||||
WITH (
|
||||
ID int '$.ID'
|
||||
,C_TIPUSA int '$.C_TIPUSA'
|
||||
,C_OSZTALYBONTASID int '$.C_OSZTALYBONTASID'
|
||||
|
||||
,C_ALINTEZMENYID int '$.C_INTEZMENYID'
|
||||
,C_ALTANEVID int '$.C_TANEVID'
|
||||
,TOROLT char(1) '$.TOROLT'
|
||||
,SERIAL int '$.SERIAL'
|
||||
,LASTCHANGED datetime '$.LASTCHANGED'
|
||||
,CREATED datetime '$.CREATED'
|
||||
,MODIFIER int '$.MODIFIER'
|
||||
,CREATOR int '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID int '$.ELOZOTANEVIREKORDID'
|
||||
,NNID int '$.NNID'
|
||||
,Operation int '$.Operation'
|
||||
|
||||
,OsztalyCsoportNev nvarchar(255) '$.OsztalyCsoportNev'
|
||||
,OsztalybontasNev nvarchar(255) '$.OsztalybontasNev'
|
||||
) cs
|
||||
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ocs.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(cs.OsztalyCsoportNev)
|
||||
AND ocs.C_INTEZMENYID = @pIntezmenyId
|
||||
AND ocs.C_TANEVID = @pTanevId
|
||||
AND ocs.TOROLT = 'F'
|
||||
AND cs.ID IS NULL
|
||||
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ob ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ob.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(cs.OsztalybontasNev)
|
||||
AND ob.C_INTEZMENYID = @pIntezmenyId
|
||||
AND ob.C_TANEVID = @pTanevId
|
||||
AND ob.TOROLT = 'F'
|
||||
AND cs.ID IS NULL
|
||||
|
||||
--NOTE: Foglalkozas temp tábla incializálása
|
||||
CREATE TABLE #FoglalkozasTempTable (
|
||||
ID int
|
||||
,C_TANARID int
|
||||
,C_TANTARGYID int
|
||||
,C_OSZTALYCSOPORTID int
|
||||
,C_FOGLALKOZASTIPUSA int
|
||||
,C_ORASZAM numeric(10,2)
|
||||
,C_NEV nvarchar(255)
|
||||
,C_ERTEKELESKELL char(1)
|
||||
,C_MULASZTASKELL char(1)
|
||||
,C_TANARFELVEHETI char(1)
|
||||
,C_ISOSSZEVONTORA char(1)
|
||||
|
||||
,C_IMPORTALT char(1)
|
||||
,C_INTEZMENYID int
|
||||
,C_TANEVID int
|
||||
,TOROLT char(1)
|
||||
,SERIAL int
|
||||
,LASTCHANGED datetime
|
||||
,CREATED datetime
|
||||
,MODIFIER int
|
||||
,CREATOR int
|
||||
,ELOZOTANEVIREKORDID int
|
||||
,NNID int
|
||||
,Operation int
|
||||
)
|
||||
|
||||
INSERT INTO #FoglalkozasTempTable
|
||||
SELECT
|
||||
fg.ID
|
||||
,fg.C_TANARID
|
||||
,tt.ID
|
||||
,ocs.ID
|
||||
,fg.C_FOGLALKOZASTIPUSA
|
||||
,fg.C_ORASZAM
|
||||
,fg.C_NEV
|
||||
,fg.C_ERTEKELESKELL
|
||||
,fg.C_MULASZTASKELL
|
||||
,fg.C_TANARFELVEHETI
|
||||
,fg.C_ISOSSZEVONTORA
|
||||
|
||||
,fg.C_IMPORTALT
|
||||
,fg.C_INTEZMENYID
|
||||
,fg.C_TANEVID
|
||||
,fg.TOROLT
|
||||
,fg.SERIAL
|
||||
,fg.LASTCHANGED
|
||||
,fg.CREATED
|
||||
,fg.MODIFIER
|
||||
,fg.CREATOR
|
||||
,fg.ELOZOTANEVIREKORDID
|
||||
,fg.NNID
|
||||
,fg.Operation
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_FOGLALKOZAS_OSSZES')
|
||||
WITH (
|
||||
ID int '$.ID'
|
||||
,C_TANARID int '$.C_TANARID'
|
||||
,C_FOGLALKOZASTIPUSA int '$.C_FOGLALKOZASTIPUSA'
|
||||
,C_ORASZAM numeric(10,2) '$.C_ORASZAM'
|
||||
,C_NEV nvarchar(255) '$.C_NEV'
|
||||
,C_ERTEKELESKELL char(1) '$.C_ERTEKELESKELL'
|
||||
,C_MULASZTASKELL char(1) '$.C_MULASZTASKELL'
|
||||
,C_TANARFELVEHETI char(1) '$.C_TANARFELVEHETI'
|
||||
,C_ISOSSZEVONTORA char(1) '$.C_ISOSSZEVONTORA'
|
||||
|
||||
,C_IMPORTALT char(1) '$.C_IMPORTALT'
|
||||
,C_INTEZMENYID int '$.C_INTEZMENYID'
|
||||
,C_TANEVID int '$.C_TANEVID'
|
||||
,TOROLT char(1) '$.TOROLT'
|
||||
,SERIAL int '$.SERIAL'
|
||||
,LASTCHANGED datetime '$.LASTCHANGED'
|
||||
,CREATED datetime '$.CREATED'
|
||||
,MODIFIER int '$.MODIFIER'
|
||||
,CREATOR int '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID int '$.ELOZOTANEVIREKORDID'
|
||||
,NNID int '$.NNID'
|
||||
,Operation int '$.Operation'
|
||||
|
||||
,TantargyNev nvarchar(255) '$.TantargyNev'
|
||||
,OsztalyCsoportNev nvarchar(255) '$.OsztalyCsoportNev'
|
||||
) fg
|
||||
LEFT JOIN T_TANTARGY_OSSZES tt ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(tt.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(fg.TantargyNev)
|
||||
AND tt.C_INTEZMENYID = @pIntezmenyId
|
||||
AND tt.C_TANEVID = @pTanevId
|
||||
AND tt.TOROLT = 'F'
|
||||
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ocs.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(fg.OsztalyCsoportNev)
|
||||
AND ocs.C_INTEZMENYID = @pIntezmenyId
|
||||
AND ocs.C_TANEVID = @pTanevId
|
||||
AND ocs.TOROLT = 'F'
|
||||
|
||||
--Osztályok beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_OSZTALY_OSSZES":' + (
|
||||
SELECT
|
||||
o.ID
|
||||
,o.C_TECHNIKAIOSZTALY
|
||||
,o.C_GYOGYPEDAGOGIAI
|
||||
,o.C_KETTANNYELVU
|
||||
,o.C_LOGOPEDIAI
|
||||
,o.C_NEMZETISEGI
|
||||
,o.C_NYELVIELOKESZITO
|
||||
,o.C_SPORT
|
||||
|
||||
,o.C_ALINTEZMENYID
|
||||
,o.C_ALTANEVID
|
||||
,o.TOROLT
|
||||
,o.SERIAL
|
||||
,o.LASTCHANGED
|
||||
,o.CREATED
|
||||
,o.MODIFIER
|
||||
,o.CREATOR
|
||||
,o.ELOZOTANEVIREKORDID
|
||||
,o.NNID
|
||||
,o.Operation
|
||||
FROM #OsztalyTempTable AS o
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES
|
||||
)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés azért false, mert a T_OSZTALY_OSSZES view-ból nem törlünk importnál!
|
||||
EXECUTE uspDynamicImport @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 1
|
||||
|
||||
--Csoportok beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_CSOPORT_OSSZES":' + (
|
||||
SELECT
|
||||
cs.ID
|
||||
,cs.C_TIPUSA
|
||||
,cs.C_OSZTALYBONTASID
|
||||
|
||||
,cs.C_ALINTEZMENYID
|
||||
,cs.C_ALTANEVID
|
||||
,cs.TOROLT
|
||||
,cs.SERIAL
|
||||
,cs.LASTCHANGED
|
||||
,cs.CREATED
|
||||
,cs.MODIFIER
|
||||
,cs.CREATOR
|
||||
,cs.ELOZOTANEVIREKORDID
|
||||
,cs.NNID
|
||||
,cs.Operation
|
||||
FROM #CsoportTempTable AS cs
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES
|
||||
)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés azért false, mert a T_CSOPORT_OSSZES view-ból nem törlünk importnál!
|
||||
EXECUTE uspDynamicImport @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 1
|
||||
|
||||
--Foglalkozások beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_FOGLALKOZAS_OSSZES":' + (
|
||||
SELECT
|
||||
fg.ID
|
||||
,fg.C_TANARID
|
||||
,fg.C_TANTARGYID
|
||||
,fg.C_OSZTALYCSOPORTID
|
||||
,fg.C_FOGLALKOZASTIPUSA
|
||||
,fg.C_ORASZAM
|
||||
,fg.C_NEV
|
||||
,fg.C_ERTEKELESKELL
|
||||
,fg.C_MULASZTASKELL
|
||||
,fg.C_TANARFELVEHETI
|
||||
,fg.C_ISOSSZEVONTORA
|
||||
|
||||
,fg.C_IMPORTALT
|
||||
,fg.C_INTEZMENYID
|
||||
,fg.C_TANEVID
|
||||
,fg.TOROLT
|
||||
,fg.SERIAL
|
||||
,fg.LASTCHANGED
|
||||
,fg.CREATED
|
||||
,fg.MODIFIER
|
||||
,fg.CREATOR
|
||||
,fg.ELOZOTANEVIREKORDID
|
||||
,fg.NNID
|
||||
,fg.Operation
|
||||
FROM #FoglalkozasTempTable AS fg
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES
|
||||
)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
EXECUTE uspDynamicImport @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = @pIsTorles, @pIsSubTable = 0
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue