593 lines
25 KiB
Transact-SQL
593 lines
25 KiB
Transact-SQL
-- =============================================
|
|
-- Description: <Tanulo KIFIR import>
|
|
-- =============================================
|
|
DROP PROCEDURE IF EXISTS [dbo].[uspTanuloKifirImport]
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[uspTanuloKifirImport]
|
|
@pIntezmenyId INT
|
|
,@pTanevId INT
|
|
,@pUserId INT
|
|
,@pImportJson NVARCHAR(MAX)
|
|
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE
|
|
@tableNameList NVARCHAR(2000) = 'T_FELHASZNALO_OSSZES'
|
|
,@actualJson NVARCHAR(MAX) = ''
|
|
|
|
,@lastChangedDateTime DATETIME = GETDATE()
|
|
|
|
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
|
|
EXECUTE [dbo].[uspDynamicImportJsonSplit] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @pImportJson, @pIsTorles = 0, @pIsSubTable = 0, @pTableNameList = @tableNameList
|
|
|
|
--NOTE: Tanulo temp tábla incializálása
|
|
CREATE TABLE #TanuloTempTable (
|
|
ID INT
|
|
,C_ELOZOINTEZMENY NVARCHAR(255)
|
|
,C_ALLAMIGONDOZOTT CHAR(1)
|
|
,C_BEILLESZKEDESINEHEZSEG CHAR(1)
|
|
,C_BEJARO CHAR(1)
|
|
,C_EVISMETLO CHAR(1)
|
|
,C_JOGVISZONYATSZUNETELTETO CHAR(1)
|
|
,C_MAGANTANULO CHAR(1)
|
|
,C_POLGARISZERZODESES CHAR(1)
|
|
,C_SZAKMAIGYAKORLATON CHAR(1)
|
|
,C_SZOCIALISTAMOGATAS CHAR(1)
|
|
,C_TANDIJATFIZETO CHAR(1)
|
|
,C_TANKOTELEZETT CHAR(1)
|
|
,C_TANULOSZERZODESES CHAR(1)
|
|
,C_TERITESIDIJATFIZETO CHAR(1)
|
|
,C_TESTNEVELESTIPUSA INT
|
|
,C_VENDEG CHAR(1)
|
|
,C_BTMPROBLEMAS CHAR(1)
|
|
,C_DIAKSPORTKOROS CHAR(1)
|
|
,C_HALMOZOTTANFOGYATEKOS CHAR(1)
|
|
,C_HATRANYOSHELYZETU INT
|
|
,C_KOLLEGIUMIELLATASOS CHAR(1)
|
|
,C_SAJATOSNEVELESU CHAR(1)
|
|
,C_VESZELYEZTETETT CHAR(1)
|
|
,C_BEILLESZKEDESIPROBLEMAVALKUZ CHAR(1)
|
|
,C_MAGATARTASIPROBLEMAVALKUZD CHAR(1)
|
|
,C_TANULASIPROBLEMADISZGRAFIA CHAR(1)
|
|
,C_TANULASIPROBLEMAVALKUZD CHAR(1)
|
|
,C_TANULASIPROBLEMAVALKUZDDISZK CHAR(1)
|
|
,C_TANULASIPROBLEMAVALKUZDDISZL CHAR(1)
|
|
,C_KOZEPFOKUOKTATASBATIZENHATOD CHAR(1)
|
|
,C_MENEDEKJOGGALRENDELKEZO CHAR(1)
|
|
,C_EGYEBDONTO CHAR(1)
|
|
,C_MEGALLAPODASOS CHAR(1)
|
|
,C_OSZTV CHAR(1)
|
|
,C_SZETVAGAZAT CHAR(1)
|
|
,C_SZKTV CHAR(1)
|
|
,C_TECHNIKUSIEVFOLYAM CHAR(1)
|
|
,C_EGYUTTMUKODESES CHAR(1)
|
|
,C_ISKOLAIKERETEKKOZOTT CHAR(1)
|
|
,C_ISSZAKMAIGYAKORLATHIANY CHAR(1)
|
|
,C_ISKIFIRIMPORTALT CHAR(1)
|
|
,C_FELVETELTANEVEID INT
|
|
|
|
,C_ALINTEZMENYID INT
|
|
,C_ALTANEVID INT
|
|
,TOROLT CHAR(1)
|
|
,SERIAL INT
|
|
,LASTCHANGED DATETIME
|
|
,CREATED DATETIME
|
|
,MODIFIER INT
|
|
,CREATOR INT
|
|
,ELOZOTANEVIREKORDID INT
|
|
,Operation INT
|
|
)
|
|
|
|
INSERT INTO
|
|
#TanuloTempTable
|
|
SELECT
|
|
Felhasznalo.ID
|
|
,TanuloJsonData.C_ELOZOINTEZMENY
|
|
,TanuloJsonData.C_ALLAMIGONDOZOTT
|
|
,TanuloJsonData.C_BEILLESZKEDESINEHEZSEG
|
|
,TanuloJsonData.C_BEJARO
|
|
,TanuloJsonData.C_EVISMETLO
|
|
,TanuloJsonData.C_JOGVISZONYATSZUNETELTETO
|
|
,TanuloJsonData.C_MAGANTANULO
|
|
,TanuloJsonData.C_POLGARISZERZODESES
|
|
,TanuloJsonData.C_SZAKMAIGYAKORLATON
|
|
,TanuloJsonData.C_SZOCIALISTAMOGATAS
|
|
,TanuloJsonData.C_TANDIJATFIZETO
|
|
,TanuloJsonData.C_TANKOTELEZETT
|
|
,TanuloJsonData.C_TANULOSZERZODESES
|
|
,TanuloJsonData.C_TERITESIDIJATFIZETO
|
|
,TanuloJsonData.C_TESTNEVELESTIPUSA
|
|
,TanuloJsonData.C_VENDEG
|
|
,TanuloJsonData.C_BTMPROBLEMAS
|
|
,TanuloJsonData.C_DIAKSPORTKOROS
|
|
,TanuloJsonData.C_HALMOZOTTANFOGYATEKOS
|
|
,TanuloJsonData.C_HATRANYOSHELYZETU
|
|
,TanuloJsonData.C_KOLLEGIUMIELLATASOS
|
|
,TanuloJsonData.C_SAJATOSNEVELESU
|
|
,TanuloJsonData.C_VESZELYEZTETETT
|
|
,TanuloJsonData.C_BEILLESZKEDESIPROBLEMAVALKUZ
|
|
,TanuloJsonData.C_MAGATARTASIPROBLEMAVALKUZD
|
|
,TanuloJsonData.C_TANULASIPROBLEMADISZGRAFIA
|
|
,TanuloJsonData.C_TANULASIPROBLEMAVALKUZD
|
|
,TanuloJsonData.C_TANULASIPROBLEMAVALKUZDDISZK
|
|
,TanuloJsonData.C_TANULASIPROBLEMAVALKUZDDISZL
|
|
,TanuloJsonData.C_KOZEPFOKUOKTATASBATIZENHATOD
|
|
,TanuloJsonData.C_MENEDEKJOGGALRENDELKEZO
|
|
,TanuloJsonData.C_EGYEBDONTO
|
|
,TanuloJsonData.C_MEGALLAPODASOS
|
|
,TanuloJsonData.C_OSZTV
|
|
,TanuloJsonData.C_SZETVAGAZAT
|
|
,TanuloJsonData.C_SZKTV
|
|
,TanuloJsonData.C_TECHNIKUSIEVFOLYAM
|
|
,TanuloJsonData.C_EGYUTTMUKODESES
|
|
,TanuloJsonData.C_ISKOLAIKERETEKKOZOTT
|
|
,TanuloJsonData.C_ISSZAKMAIGYAKORLATHIANY
|
|
,TanuloJsonData.C_ISKIFIRIMPORTALT
|
|
,TanuloJsonData.C_FELVETELTANEVEID
|
|
|
|
,TanuloJsonData.C_ALINTEZMENYID
|
|
,TanuloJsonData.C_ALTANEVID
|
|
,TanuloJsonData.TOROLT
|
|
,TanuloJsonData.SERIAL
|
|
,TanuloJsonData.LASTCHANGED
|
|
,TanuloJsonData.CREATED
|
|
,TanuloJsonData.MODIFIER
|
|
,TanuloJsonData.CREATOR
|
|
,TanuloJsonData.ELOZOTANEVIREKORDID
|
|
,TanuloJsonData.Operation
|
|
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_TANULO_OSSZES')
|
|
WITH (
|
|
ID INT '$.ID'
|
|
,C_ELOZOINTEZMENY NVARCHAR(255) '$.C_ELOZOINTEZMENY'
|
|
,C_ALLAMIGONDOZOTT CHAR(1) '$.C_ALLAMIGONDOZOTT'
|
|
,C_BEILLESZKEDESINEHEZSEG CHAR(1) '$.C_BEILLESZKEDESINEHEZSEG'
|
|
,C_BEJARO CHAR(1) '$.C_BEJARO'
|
|
,C_EVISMETLO CHAR(1) '$.C_EVISMETLO'
|
|
,C_JOGVISZONYATSZUNETELTETO CHAR(1) '$.C_JOGVISZONYATSZUNETELTETO'
|
|
,C_MAGANTANULO CHAR(1) '$.C_MAGANTANULO'
|
|
,C_POLGARISZERZODESES CHAR(1) '$.C_POLGARISZERZODESES'
|
|
,C_SZAKMAIGYAKORLATON CHAR(1) '$.C_SZAKMAIGYAKORLATON'
|
|
,C_SZOCIALISTAMOGATAS CHAR(1) '$.C_SZOCIALISTAMOGATAS'
|
|
,C_TANDIJATFIZETO CHAR(1) '$.C_TANDIJATFIZETO'
|
|
,C_TANKOTELEZETT CHAR(1) '$.C_TANKOTELEZETT'
|
|
,C_TANULOSZERZODESES CHAR(1) '$.C_TANULOSZERZODESES'
|
|
,C_TERITESIDIJATFIZETO CHAR(1) '$.C_TERITESIDIJATFIZETO'
|
|
,C_TESTNEVELESTIPUSA INT '$.C_TESTNEVELESTIPUSA'
|
|
,C_VENDEG CHAR(1) '$.C_VENDEG'
|
|
,C_BTMPROBLEMAS CHAR(1) '$.C_BTMPROBLEMAS'
|
|
,C_DIAKSPORTKOROS CHAR(1) '$.C_DIAKSPORTKOROS'
|
|
,C_HALMOZOTTANFOGYATEKOS CHAR(1) '$.C_HALMOZOTTANFOGYATEKOS'
|
|
,C_HATRANYOSHELYZETU INT '$.C_HATRANYOSHELYZETU'
|
|
,C_KOLLEGIUMIELLATASOS CHAR(1) '$.C_KOLLEGIUMIELLATASOS'
|
|
,C_SAJATOSNEVELESU CHAR(1) '$.C_SAJATOSNEVELESU'
|
|
,C_VESZELYEZTETETT CHAR(1) '$.C_VESZELYEZTETETT'
|
|
,C_BEILLESZKEDESIPROBLEMAVALKUZ CHAR(1) '$.C_BEILLESZKEDESIPROBLEMAVALKUZ'
|
|
,C_MAGATARTASIPROBLEMAVALKUZD CHAR(1) '$.C_MAGATARTASIPROBLEMAVALKUZD'
|
|
,C_TANULASIPROBLEMADISZGRAFIA CHAR(1) '$.C_TANULASIPROBLEMADISZGRAFIA'
|
|
,C_TANULASIPROBLEMAVALKUZD CHAR(1) '$.C_TANULASIPROBLEMAVALKUZD'
|
|
,C_TANULASIPROBLEMAVALKUZDDISZK CHAR(1) '$.C_TANULASIPROBLEMAVALKUZDDISZK'
|
|
,C_TANULASIPROBLEMAVALKUZDDISZL CHAR(1) '$.C_TANULASIPROBLEMAVALKUZDDISZL'
|
|
,C_KOZEPFOKUOKTATASBATIZENHATOD CHAR(1) '$.C_KOZEPFOKUOKTATASBATIZENHATOD'
|
|
,C_MENEDEKJOGGALRENDELKEZO CHAR(1) '$.C_MENEDEKJOGGALRENDELKEZO'
|
|
,C_EGYEBDONTO CHAR(1) '$.C_EGYEBDONTO'
|
|
,C_MEGALLAPODASOS CHAR(1) '$.C_MEGALLAPODASOS'
|
|
,C_OSZTV CHAR(1) '$.C_OSZTV'
|
|
,C_SZETVAGAZAT CHAR(1) '$.C_SZETVAGAZAT'
|
|
,C_SZKTV CHAR(1) '$.C_SZKTV'
|
|
,C_TECHNIKUSIEVFOLYAM CHAR(1) '$.C_TECHNIKUSIEVFOLYAM'
|
|
,C_EGYUTTMUKODESES CHAR(1) '$.C_EGYUTTMUKODESES'
|
|
,C_ISKOLAIKERETEKKOZOTT CHAR(1) '$.C_ISKOLAIKERETEKKOZOTT'
|
|
,C_ISSZAKMAIGYAKORLATHIANY CHAR(1) '$.C_ISSZAKMAIGYAKORLATHIANY'
|
|
,C_ISKIFIRIMPORTALT CHAR(1) '$.C_ISKIFIRIMPORTALT'
|
|
,C_FELVETELTANEVEID INT '$.C_FELVETELTANEVEID'
|
|
|
|
,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'
|
|
,Operation INT '$.Operation'
|
|
|
|
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
|
|
,Keresztnev NVARCHAR(255) '$.Keresztnev'
|
|
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
|
|
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
|
|
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
|
|
) TanuloJsonData
|
|
LEFT JOIN
|
|
T_FELHASZNALO_OSSZES Felhasznalo 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
|
|
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(TanuloJsonData.Vezeteknev)
|
|
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(TanuloJsonData.Keresztnev)
|
|
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(TanuloJsonData.SzuletesiHely)
|
|
AND Felhasznalo.C_SZULETESIDATUM = TanuloJsonData.SzuletesiIdo
|
|
AND Felhasznalo.C_OKTATASIAZONOSITO = TanuloJsonData.OktatasiAzonosito
|
|
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
|
AND Felhasznalo.C_TANEVID = @pTanevId
|
|
AND Felhasznalo.TOROLT = 'F'
|
|
|
|
--NOTE: Cim temp tábla incializálása
|
|
CREATE TABLE #CimTempTable (
|
|
ID INT
|
|
,C_CIMTIPUSA INT
|
|
,C_IRANYITOSZAM NVARCHAR(20)
|
|
,C_VAROS NVARCHAR(50)
|
|
,C_KOZTERULET NVARCHAR(40)
|
|
,C_KOZTERULETJELLEGENEV NVARCHAR(100)
|
|
,C_HAZSZAM NVARCHAR(30)
|
|
,C_ORSZAG INT
|
|
,C_ALAPERTELMEZETT CHAR(1)
|
|
,C_EMELET NVARCHAR(40)
|
|
,C_AJTO NVARCHAR(30)
|
|
,C_FELHASZNALOID INT
|
|
|
|
,C_INTEZMENYID INT
|
|
,C_TANEVID INT
|
|
,TOROLT CHAR(1)
|
|
,SERIAL INT
|
|
,LASTCHANGED DATETIME
|
|
,CREATED DATETIME
|
|
,MODIFIER INT
|
|
,CREATOR INT
|
|
,ELOZOTANEVIREKORDID INT
|
|
,Operation INT
|
|
)
|
|
|
|
INSERT INTO
|
|
#CimTempTable
|
|
SELECT
|
|
CimJsonData.ID
|
|
,CimJsonData.C_CIMTIPUSA
|
|
,CimJsonData.C_IRANYITOSZAM
|
|
,CimJsonData.C_VAROS
|
|
,CimJsonData.C_KOZTERULET
|
|
,CimJsonData.C_KOZTERULETJELLEGENEV
|
|
,CimJsonData.C_HAZSZAM
|
|
,CimJsonData.C_ORSZAG
|
|
,CimJsonData.C_ALAPERTELMEZETT
|
|
,CimJsonData.C_EMELET
|
|
,CimJsonData.C_AJTO
|
|
,Felhasznalo.ID
|
|
|
|
,CimJsonData.C_INTEZMENYID
|
|
,CimJsonData.C_TANEVID
|
|
,CimJsonData.TOROLT
|
|
,CimJsonData.SERIAL
|
|
,CimJsonData.LASTCHANGED
|
|
,CimJsonData.CREATED
|
|
,CimJsonData.MODIFIER
|
|
,CimJsonData.CREATOR
|
|
,CimJsonData.ELOZOTANEVIREKORDID
|
|
,CimJsonData.Operation
|
|
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_CIM_OSSZES')
|
|
WITH (
|
|
ID INT '$.ID'
|
|
,C_CIMTIPUSA INT '$.C_CIMTIPUSA'
|
|
,C_IRANYITOSZAM NVARCHAR(20) '$.C_IRANYITOSZAM'
|
|
,C_VAROS NVARCHAR(50) '$.C_VAROS'
|
|
,C_KOZTERULET NVARCHAR(40) '$.C_KOZTERULET'
|
|
,C_KOZTERULETJELLEGENEV NVARCHAR(100) '$.C_KOZTERULETJELLEGENEV'
|
|
,C_HAZSZAM NVARCHAR(30) '$.C_HAZSZAM'
|
|
,C_ORSZAG INT '$.C_ORSZAG'
|
|
,C_ALAPERTELMEZETT CHAR(1) '$.C_ALAPERTELMEZETT'
|
|
,C_EMELET NVARCHAR(40) '$.C_EMELET'
|
|
,C_AJTO NVARCHAR(30) '$.C_AJTO'
|
|
|
|
,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'
|
|
,Operation INT '$.Operation'
|
|
|
|
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
|
|
,Keresztnev NVARCHAR(255) '$.Keresztnev'
|
|
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
|
|
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
|
|
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
|
|
) CimJsonData
|
|
LEFT JOIN
|
|
T_FELHASZNALO_OSSZES Felhasznalo 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
|
|
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(CimJsonData.Vezeteknev)
|
|
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(CimJsonData.Keresztnev)
|
|
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(CimJsonData.SzuletesiHely)
|
|
AND Felhasznalo.C_SZULETESIDATUM = CimJsonData.SzuletesiIdo
|
|
AND Felhasznalo.C_OKTATASIAZONOSITO = CimJsonData.OktatasiAzonosito
|
|
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
|
AND Felhasznalo.C_TANEVID = @pTanevId
|
|
AND Felhasznalo.TOROLT = 'F'
|
|
|
|
--NOTE: Email temp tábla incializálása
|
|
CREATE TABLE #EmailTempTable (
|
|
ID INT
|
|
,C_EMAILTIPUSA INT
|
|
,C_EMAILCIM NVARCHAR(200)
|
|
,C_ALAPERTELMEZETT CHAR(1)
|
|
,C_ISPUBLIC CHAR(1)
|
|
,C_FELHASZNALOID INT
|
|
,C_ISHIBASANMEGADVA char(1)
|
|
|
|
,C_INTEZMENYID INT
|
|
,C_TANEVID INT
|
|
,TOROLT CHAR(1)
|
|
,SERIAL INT
|
|
,LASTCHANGED DATETIME
|
|
,CREATED DATETIME
|
|
,MODIFIER INT
|
|
,CREATOR INT
|
|
,ELOZOTANEVIREKORDID INT
|
|
,Operation INT
|
|
)
|
|
|
|
INSERT INTO
|
|
#EmailTempTable
|
|
SELECT
|
|
EmailJsonData.ID
|
|
,EmailJsonData.C_EMAILTIPUSA
|
|
,EmailJsonData.C_EMAILCIM
|
|
,EmailJsonData.C_ALAPERTELMEZETT
|
|
,EmailJsonData.C_ISPUBLIC
|
|
,Felhasznalo.ID
|
|
,EmailJsonData.C_ISHIBASANMEGADVA
|
|
|
|
,EmailJsonData.C_INTEZMENYID
|
|
,EmailJsonData.C_TANEVID
|
|
,EmailJsonData.TOROLT
|
|
,EmailJsonData.SERIAL
|
|
,EmailJsonData.LASTCHANGED
|
|
,EmailJsonData.CREATED
|
|
,EmailJsonData.MODIFIER
|
|
,EmailJsonData.CREATOR
|
|
,EmailJsonData.ELOZOTANEVIREKORDID
|
|
,EmailJsonData.Operation
|
|
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_EMAIL_OSSZES')
|
|
WITH (
|
|
ID INT '$.ID'
|
|
,C_EMAILTIPUSA INT '$.C_EMAILTIPUSA'
|
|
,C_EMAILCIM NVARCHAR(200) '$.C_EMAILCIM'
|
|
,C_ALAPERTELMEZETT CHAR(1) '$.C_ALAPERTELMEZETT'
|
|
,C_ISPUBLIC CHAR(1) '$.C_ISPUBLIC'
|
|
,C_ISHIBASANMEGADVA CHAR(1) '$.C_ISHIBASANMEGADVA'
|
|
|
|
,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'
|
|
,Operation INT '$.Operation'
|
|
|
|
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
|
|
,Keresztnev NVARCHAR(255) '$.Keresztnev'
|
|
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
|
|
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
|
|
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
|
|
) EmailJsonData
|
|
LEFT JOIN
|
|
T_FELHASZNALO_OSSZES Felhasznalo 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
|
|
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(EmailJsonData.Vezeteknev)
|
|
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(EmailJsonData.Keresztnev)
|
|
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(EmailJsonData.SzuletesiHely)
|
|
AND Felhasznalo.C_SZULETESIDATUM = EmailJsonData.SzuletesiIdo
|
|
AND Felhasznalo.C_OKTATASIAZONOSITO = EmailJsonData.OktatasiAzonosito
|
|
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
|
AND Felhasznalo.C_TANEVID = @pTanevId
|
|
AND Felhasznalo.TOROLT = 'F'
|
|
|
|
--NOTE: Ha van bejövő cím állandó lakcím típusú a json-ben, akkor az ehhez a címhez tartozó felhasználó összes címének C_ALAPERTELMEZETT mezőjét false-ra állítjuk és a bejövő lesz a egyedül true!
|
|
UPDATE
|
|
Cim
|
|
SET
|
|
Cim.C_ALAPERTELMEZETT = 'F'
|
|
,Cim.SERIAL = Cim.SERIAL + 1
|
|
,Cim.LASTCHANGED = @lastChangedDateTime
|
|
,Cim.MODIFIER = @pUserId
|
|
FROM
|
|
T_FELHASZNALO_OSSZES Felhasznalo
|
|
INNER JOIN
|
|
#CimTempTable ON
|
|
#CimTempTable.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
|
|
AND #CimTempTable.C_TANEVID = Felhasznalo.C_TANEVID
|
|
AND #CimTempTable.TOROLT = 'F'
|
|
AND #CimTempTable.C_FELHASZNALOID = Felhasznalo.ID
|
|
INNER JOIN
|
|
T_CIM_OSSZES Cim ON
|
|
Cim.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
|
|
AND Cim.C_TANEVID = Felhasznalo.C_TANEVID
|
|
AND Cim.TOROLT = 'F'
|
|
AND Cim.C_FELHASZNALOID = Felhasznalo.ID
|
|
AND Cim.C_ALAPERTELMEZETT = 'T'
|
|
WHERE
|
|
Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
|
AND Felhasznalo.C_TANEVID = @pTanevId
|
|
AND Felhasznalo.TOROLT = 'F'
|
|
|
|
--NOTE: Ha van bejövő email a json-ben, akkor az ehhez a email-hez tartozó felhasználó összes email-jének C_ALAPERTELMEZETT mezőjét false-ra állítjuk és a bejövő lesz a egyedül true!
|
|
UPDATE
|
|
Email
|
|
SET
|
|
Email.C_ALAPERTELMEZETT = 'F'
|
|
,Email.SERIAL = Email.SERIAL + 1
|
|
,Email.LASTCHANGED = @lastChangedDateTime
|
|
,Email.MODIFIER = @pUserId
|
|
FROM
|
|
T_FELHASZNALO_OSSZES Felhasznalo
|
|
INNER JOIN
|
|
#EmailTempTable ON
|
|
#EmailTempTable.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
|
|
AND #EmailTempTable.C_TANEVID = Felhasznalo.C_TANEVID
|
|
AND #EmailTempTable.TOROLT = 'F'
|
|
AND #EmailTempTable.C_FELHASZNALOID = Felhasznalo.ID
|
|
INNER JOIN
|
|
T_EMAIL_OSSZES Email ON
|
|
Email.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
|
|
AND Email.C_TANEVID = Felhasznalo.C_TANEVID
|
|
AND Email.TOROLT = 'F'
|
|
AND Email.C_FELHASZNALOID = Felhasznalo.ID
|
|
AND Email.C_ALAPERTELMEZETT = 'T'
|
|
WHERE
|
|
Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
|
AND Felhasznalo.C_TANEVID = @pTanevId
|
|
AND Felhasznalo.TOROLT = 'F'
|
|
|
|
--Tanulók beszúrása
|
|
SET @actualJson = ' { "ImportJson":{ "T_TANULO_OSSZES":' + (
|
|
SELECT
|
|
Tanulo.ID
|
|
,Tanulo.C_ELOZOINTEZMENY
|
|
,Tanulo.C_ALLAMIGONDOZOTT
|
|
,Tanulo.C_BEILLESZKEDESINEHEZSEG
|
|
,Tanulo.C_BEJARO
|
|
,Tanulo.C_EVISMETLO
|
|
,Tanulo.C_JOGVISZONYATSZUNETELTETO
|
|
,Tanulo.C_MAGANTANULO
|
|
,Tanulo.C_POLGARISZERZODESES
|
|
,Tanulo.C_SZAKMAIGYAKORLATON
|
|
,Tanulo.C_SZOCIALISTAMOGATAS
|
|
,Tanulo.C_TANDIJATFIZETO
|
|
,Tanulo.C_TANKOTELEZETT
|
|
,Tanulo.C_TANULOSZERZODESES
|
|
,Tanulo.C_TERITESIDIJATFIZETO
|
|
,Tanulo.C_TESTNEVELESTIPUSA
|
|
,Tanulo.C_VENDEG
|
|
,Tanulo.C_BTMPROBLEMAS
|
|
,Tanulo.C_DIAKSPORTKOROS
|
|
,Tanulo.C_HALMOZOTTANFOGYATEKOS
|
|
,Tanulo.C_HATRANYOSHELYZETU
|
|
,Tanulo.C_KOLLEGIUMIELLATASOS
|
|
,Tanulo.C_SAJATOSNEVELESU
|
|
,Tanulo.C_VESZELYEZTETETT
|
|
,Tanulo.C_BEILLESZKEDESIPROBLEMAVALKUZ
|
|
,Tanulo.C_MAGATARTASIPROBLEMAVALKUZD
|
|
,Tanulo.C_TANULASIPROBLEMADISZGRAFIA
|
|
,Tanulo.C_TANULASIPROBLEMAVALKUZD
|
|
,Tanulo.C_TANULASIPROBLEMAVALKUZDDISZK
|
|
,Tanulo.C_TANULASIPROBLEMAVALKUZDDISZL
|
|
,Tanulo.C_KOZEPFOKUOKTATASBATIZENHATOD
|
|
,Tanulo.C_MENEDEKJOGGALRENDELKEZO
|
|
,Tanulo.C_EGYEBDONTO
|
|
,Tanulo.C_MEGALLAPODASOS
|
|
,Tanulo.C_OSZTV
|
|
,Tanulo.C_SZETVAGAZAT
|
|
,Tanulo.C_SZKTV
|
|
,Tanulo.C_TECHNIKUSIEVFOLYAM
|
|
,Tanulo.C_EGYUTTMUKODESES
|
|
,Tanulo.C_ISKOLAIKERETEKKOZOTT
|
|
,Tanulo.C_ISSZAKMAIGYAKORLATHIANY
|
|
,Tanulo.C_ISKIFIRIMPORTALT
|
|
,Tanulo.C_FELVETELTANEVEID
|
|
|
|
,Tanulo.C_ALINTEZMENYID
|
|
,Tanulo.C_ALTANEVID
|
|
,Tanulo.TOROLT
|
|
,Tanulo.SERIAL
|
|
,Tanulo.LASTCHANGED
|
|
,Tanulo.CREATED
|
|
,Tanulo.MODIFIER
|
|
,Tanulo.CREATOR
|
|
,Tanulo.ELOZOTANEVIREKORDID
|
|
,Tanulo.Operation
|
|
FROM
|
|
#TanuloTempTable AS Tanulo
|
|
FOR JSON PATH,INCLUDE_NULL_VALUES
|
|
)
|
|
|
|
SET @actualJson = @actualJson + ' } }'
|
|
|
|
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
|
|
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 1
|
|
DROP TABLE IF EXISTS #TanuloTempTable
|
|
|
|
--Címek beszúrása
|
|
SET @actualJson = ' { "ImportJson":{ "T_CIM_OSSZES":' + (
|
|
SELECT
|
|
Cim.ID
|
|
,Cim.C_CIMTIPUSA
|
|
,Cim.C_IRANYITOSZAM
|
|
,Cim.C_VAROS
|
|
,Cim.C_KOZTERULET
|
|
,Cim.C_KOZTERULETJELLEGENEV
|
|
,Cim.C_HAZSZAM
|
|
,Cim.C_ORSZAG
|
|
,Cim.C_ALAPERTELMEZETT
|
|
,Cim.C_EMELET
|
|
,Cim.C_AJTO
|
|
,Cim.C_FELHASZNALOID
|
|
|
|
,Cim.C_INTEZMENYID
|
|
,Cim.C_TANEVID
|
|
,Cim.TOROLT
|
|
,Cim.SERIAL
|
|
,Cim.LASTCHANGED
|
|
,Cim.CREATED
|
|
,Cim.MODIFIER
|
|
,Cim.CREATOR
|
|
,Cim.ELOZOTANEVIREKORDID
|
|
,Cim.Operation
|
|
FROM
|
|
#CimTempTable AS Cim
|
|
FOR JSON PATH,INCLUDE_NULL_VALUES
|
|
)
|
|
|
|
SET @actualJson = @actualJson + ' } }'
|
|
|
|
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
|
|
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0
|
|
DROP TABLE IF EXISTS #CimTempTable
|
|
|
|
--Emailek beszúrása
|
|
SET @actualJson = ' { "ImportJson":{ "T_EMAIL_OSSZES":' + (
|
|
SELECT
|
|
Email.ID
|
|
,Email.C_EMAILTIPUSA
|
|
,Email.C_EMAILCIM
|
|
,Email.C_ALAPERTELMEZETT
|
|
,Email.C_ISPUBLIC
|
|
,Email.C_FELHASZNALOID
|
|
,Email.C_ISHIBASANMEGADVA
|
|
|
|
,Email.C_INTEZMENYID
|
|
,Email.C_TANEVID
|
|
,Email.TOROLT
|
|
,Email.SERIAL
|
|
,Email.LASTCHANGED
|
|
,Email.CREATED
|
|
,Email.MODIFIER
|
|
,Email.CREATOR
|
|
,Email.ELOZOTANEVIREKORDID
|
|
,Email.Operation
|
|
FROM
|
|
#EmailTempTable AS Email
|
|
FOR JSON PATH,INCLUDE_NULL_VALUES
|
|
)
|
|
|
|
SET @actualJson = @actualJson + ' } }'
|
|
|
|
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
|
|
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0
|
|
DROP TABLE IF EXISTS #EmailTempTable
|
|
|
|
END
|
|
|
|
GO
|
|
|