init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,353 @@
|
|||
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_CSENGETESIRENDID IS NOT NULL)
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
|
||||
)
|
||||
|
||||
UPDATE hf SET
|
||||
hf.TOROLT = 'T'
|
||||
,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_CSENGETESIRENDID IS NOT NULL)
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
|
||||
)
|
||||
|
||||
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_CSENGETESIRENDID IS NOT NULL)
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
|
||||
)
|
||||
|
||||
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_CSENGETESIRENDID IS NOT NULL)
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
|
||||
)
|
||||
|
||||
--Ó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_CSENGETESIRENDID IS NOT NULL)
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
|
||||
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_CSENGETESIRENDID IS NOT NULL)
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
|
||||
|
||||
--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_CSENGETESIRENDID IS NOT NULL)
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
|
||||
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_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_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_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_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_CSENGETESIRENDID IS NOT NULL)
|
||||
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue