-- ============================================= -- Description: -- ============================================= 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