init
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
DECLARE intezmenytanevekCursor CURSOR LOCAL FOR
|
||||
SELECT i.ID, t.ID
|
||||
FROM T_INTEZMENY i
|
||||
INNER JOIN T_TANEV t ON i.ID = t.C_INTEZMENYID
|
||||
WHERE t.TOROLT = 'F'
|
||||
AND i.TOROLT = 'F'
|
||||
AND t.C_AKTIV = 'T'
|
||||
|
||||
DECLARE
|
||||
@intezmenyId int
|
||||
,@tanevId int
|
||||
|
||||
OPEN intezmenytanevekCursor
|
||||
FETCH NEXT FROM intezmenytanevekCursor INTO @intezmenyId, @tanevId
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
PRINT 'INT<EFBFBD>ZM<EFBFBD>NY ID: ' + CAST(@intezmenyId AS NVARCHAR(10)) + ', TAN<41>V ID: ' + CAST(@tanevId AS NVARCHAR(10))
|
||||
|
||||
INSERT INTO T_FELHASZNALOBELEPES (
|
||||
C_KOTELEZOVALTOZTATNI
|
||||
,C_MEGHIUSULTBELEPESEK
|
||||
,C_UTOLSOBELEPES
|
||||
,C_JELSZO
|
||||
,C_JELSZOVALTOZTATASIDEJE
|
||||
,C_SO
|
||||
,C_BEJELENTKEZESINEV
|
||||
,C_NEPTUNNAPLOJELSZO
|
||||
,C_GUID
|
||||
,C_ISCSOKKENTETTGONDVISELO
|
||||
,C_FELHASZNALOID
|
||||
,C_GONDVISELOID
|
||||
,C_INTEZMENYID
|
||||
,C_TANEVID
|
||||
,TOROLT
|
||||
,SERIAL
|
||||
,LASTCHANGED
|
||||
,CREATED
|
||||
,MODIFIER
|
||||
,CREATOR
|
||||
,ELOZOTANEVIREKORDID
|
||||
,NNID
|
||||
) SELECT
|
||||
'F' AS C_KOTELEZOVALTOZTATNI
|
||||
,NULL AS C_MEGHIUSULTBELEPESEK
|
||||
,NULL AS C_UTOLSOBELEPES
|
||||
,dbo.fnConvertBase64(HASHBYTES('SHA1', CONVERT(VARBINARY(MAX), CONVERT(NVARCHAR(MAX), Guid+RND)))) AS C_JELSZO
|
||||
,NULL AS C_JELSZOVALTOZTATASIDEJE
|
||||
,RND AS C_SO
|
||||
,LoginName AS C_BEJELENTKEZESINEV
|
||||
,NULL AS C_NEPTUNNAPLOJELSZO
|
||||
,ISNULL(otherUserGuid, NEWID()) AS C_GUID
|
||||
,'F' AS C_ISCSOKKENTETTGONDVISELO
|
||||
,FelhasznaloId AS C_FELHASZNALOID
|
||||
,GondviseloId AS C_GONDVISELOID
|
||||
,@intezmenyId AS C_INTEZMENYID
|
||||
,@tanevId AS C_TANEVID
|
||||
,'F' AS TOROLT
|
||||
,1 AS SERIAL
|
||||
,GETDATE() AS LASTCHANGED
|
||||
,GETDATE() AS CREATED
|
||||
,NULL AS MODIFIER
|
||||
,NULL AS CREATOR
|
||||
,NULL AS ELOZOTANEVIREKORDID
|
||||
,NULL AS NNID
|
||||
FROM (
|
||||
SELECT
|
||||
fh.ID AS FelhasznaloId
|
||||
,g.ID AS GondviseloId
|
||||
,fh.C_OKTATASIAZONOSITO +'G'+ RIGHT('00' + CAST(ROW_NUMBER() OVER(PARTITION BY fh.C_OKTATASIAZONOSITO ORDER BY fh.ID) + ISNULL(mx, 0) AS nvarchar(6)),2) AS LoginName
|
||||
,mx
|
||||
,CAST((SELECT * FROM dbo.getRand) AS nvarchar(64)) AS RND
|
||||
,LEFT(NEWID(), 8) Guid
|
||||
,fbGuid.C_GUID otherUserGuid
|
||||
FROM T_GONDVISELO_OSSZES g
|
||||
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = g.C_TANULOID
|
||||
AND fh.TOROLT = 'F'
|
||||
AND fh.C_INTEZMENYID = @intezmenyId
|
||||
AND fh.C_TANEVID = @tanevid
|
||||
LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb ON fb.C_GONDVISELOID = g.ID
|
||||
AND fb.TOROLT = 'F'
|
||||
AND fb.C_GONDVISELOID IS NOT NULL
|
||||
AND fb.C_INTEZMENYID = @intezmenyId
|
||||
AND fb.C_TANEVID = @tanevid
|
||||
OUTER APPLY (
|
||||
SELECT
|
||||
MAX(CAST(ISNULL(IIF(ISNUMERIC(RIGHT(fb.C_BEJELENTKEZESINEV, 2)) = 1, RIGHT(fb.C_BEJELENTKEZESINEV, 2), '00'), '00') AS int)) AS mx
|
||||
FROM T_FELHASZNALOBELEPES_OSSZES fb
|
||||
WHERE (fb.C_BEJELENTKEZESINEV LIKE fh.C_OKTATASIAZONOSITO + '__' OR fb.C_BEJELENTKEZESINEV LIKE fh.C_OKTATASIAZONOSITO + 'G__')
|
||||
AND fb.C_INTEZMENYID = @intezmenyId
|
||||
AND fb.C_TANEVID = @tanevid
|
||||
AND fb.TOROLT = 'F'
|
||||
) x
|
||||
LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fbGuid ON fbGuid.C_GONDVISELOID = g.ID
|
||||
AND fbGuid.TOROLT = 'F'
|
||||
AND fbGuid.C_GONDVISELOID IS NOT NULL
|
||||
WHERE g.C_INTEZMENYID = @intezmenyId
|
||||
AND g.C_TANEVID = @tanevId
|
||||
AND g.TOROLT = 'F'
|
||||
AND fb.ID IS NULL
|
||||
AND (NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES_OSSZES fb WHERE fh.ID = fb.C_FELHASZNALOID AND fb.C_GONDVISELOID is null)
|
||||
OR NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES_OSSZES fb WHERE fh.ID = fb.C_FELHASZNALOID AND fb.C_GONDVISELOID = g.ID))
|
||||
)y
|
||||
|
||||
FETCH NEXT FROM intezmenytanevekCursor INTO @intezmenyId, @tanevId
|
||||
END
|
||||
|
||||
CLOSE intezmenytanevekCursor
|
||||
DEALLOCATE intezmenytanevekCursor
|
||||
GO
|
@@ -0,0 +1,285 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_ImportTanulokGondviseloi]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_ImportTanulokGondviseloi]
|
||||
END
|
||||
GO
|
||||
|
||||
-- =============================================
|
||||
-- Description: <Gondvisel<65>k adatait import<72>lja>
|
||||
-- =============================================
|
||||
CREATE PROCEDURE [dbo].[sp_ImportTanulokGondviseloi]
|
||||
@pTanevId INT
|
||||
,@pUserId INT
|
||||
,@pIntezmenyId INT
|
||||
,@GondviselokXML xml
|
||||
AS
|
||||
BEGIN
|
||||
BEGIN TRY
|
||||
SET NOCOUNT ON
|
||||
SET XACT_ABORT ON
|
||||
|
||||
CREATE TABLE #GondviselokTemp (
|
||||
Id int IDENTITY(1,1),
|
||||
TanuloId int,
|
||||
TanuloNeve nvarchar(250),
|
||||
OktatasiAzonosito nvarchar(50),
|
||||
TanuloOsztalya nvarchar(50),
|
||||
GondviseloId int,
|
||||
GondviseloNeve nvarchar(250),
|
||||
GondviseloRokonsagifoka int,
|
||||
GondviseloTelefonszama nvarchar(50),
|
||||
GondviseloEmailcime nvarchar(50)
|
||||
);
|
||||
|
||||
CREATE TABLE #Gondviselok (
|
||||
Id int IDENTITY(1,1),
|
||||
TanuloId int,
|
||||
TanuloNeve nvarchar(250),
|
||||
OktatasiAzonosito nvarchar(50),
|
||||
TanuloOsztalya nvarchar(50),
|
||||
GondviseloId int,
|
||||
GondviseloNeve nvarchar(250),
|
||||
GondviseloRokonsagifoka int,
|
||||
GondviseloTelefonszama nvarchar(50),
|
||||
GondviseloEmailcime nvarchar(50)
|
||||
);
|
||||
|
||||
|
||||
INSERT INTO #GondviselokTemp
|
||||
SELECT
|
||||
sor.value('(TanuloId)[1]', 'int') AS TanuloId,
|
||||
sor.value('(TanuloNeve)[1]', 'nvarchar(200)') AS TanuloNeve,
|
||||
sor.value('(OktatasiAzonosito)[1]', 'nvarchar(11)') AS OktatasiAzonosito,
|
||||
sor.value('(TanuloOsztalya)[1]', 'nvarchar(50)') AS TanuloOsztalya,
|
||||
sor.value('(GondviseloId)[1]', 'int') AS GondviseloId,
|
||||
sor.value('(GondviseloNeve)[1]', 'nvarchar(200)') AS GondviseloNeve,
|
||||
sor.value('(GondviseloRokonsagifoka)[1]', 'int') AS GondviseloRokonsagifoka,
|
||||
sor.value('(GondviseloTelefonszama)[1]', 'nvarchar(100)') AS GondviseloTelefonszama,
|
||||
sor.value('(GondviseloEmailcime)[1]', 'nvarchar(200)') AS GondviseloEmailcime
|
||||
FROM @GondviselokXML.nodes('/GondviseloImport/GondviseloList/Gondviselo') AS sorok(sor)
|
||||
|
||||
|
||||
|
||||
DECLARE @linkTable TABLE (
|
||||
insertedId int,
|
||||
tempId nvarchar(32)
|
||||
);
|
||||
|
||||
BEGIN TRANSACTION
|
||||
|
||||
|
||||
UPDATE g SET
|
||||
C_AKTIV ='T'
|
||||
,C_GONDVISELESKEZDETE = NULL
|
||||
,C_GONDVISELESVEGE = NULL
|
||||
,C_GYERMEKETEGYEDULNEVELO = 'F'
|
||||
,C_NEV = gondviselok.GondviseloNeve
|
||||
,C_NYUGDIJAS = 'F'
|
||||
,C_ROKONSAGFOKA = gondviselok.GondviseloRokonsagifoka
|
||||
,C_ISEMAILERTESITES = 'F'
|
||||
,C_TANULOID = gondviselok.TanuloId
|
||||
,C_INTEZMENYID = @pIntezmenyId
|
||||
,C_TANEVID = @pTanevId
|
||||
,TOROLT = 'F'
|
||||
,SERIAL = SERIAL+1
|
||||
,MODIFIER = NULL
|
||||
,CREATOR = @pUserId
|
||||
,LASTCHANGED = GETDATE()
|
||||
|
||||
FROM T_GONDVISELO g
|
||||
INNER JOIN #GondviselokTemp AS gondviselok ON gondviselok.GondviseloId = g.Id
|
||||
|
||||
|
||||
INSERT INTO #Gondviselok (
|
||||
TanuloId
|
||||
,TanuloNeve
|
||||
,OktatasiAzonosito
|
||||
,TanuloOsztalya
|
||||
,GondviseloId
|
||||
,GondviseloNeve
|
||||
,GondviseloRokonsagifoka
|
||||
,GondviseloTelefonszama
|
||||
,GondviseloEmailcime )
|
||||
SELECT* FROM (SELECT DISTINCT
|
||||
TanuloId
|
||||
,TanuloNeve
|
||||
,OktatasiAzonosito
|
||||
,TanuloOsztalya
|
||||
,GondviseloId
|
||||
,GondviseloNeve
|
||||
,GondviseloRokonsagifoka
|
||||
,GondviseloTelefonszama
|
||||
,GondviseloEmailcime
|
||||
FROM #GondviselokTemp) AS g;
|
||||
|
||||
|
||||
|
||||
MERGE T_GONDVISELO_OSSZES trg
|
||||
USING (SELECT * FROM #Gondviselok WHERE GondviseloId = 0) AS src
|
||||
ON 1 = 2
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (C_AKTIV
|
||||
,C_GONDVISELESKEZDETE
|
||||
,C_GONDVISELESVEGE
|
||||
,C_GYERMEKETEGYEDULNEVELO
|
||||
,C_NEV
|
||||
,C_NYUGDIJAS
|
||||
,C_ROKONSAGFOKA
|
||||
,C_ISEMAILERTESITES
|
||||
,C_TANULOID
|
||||
,C_INTEZMENYID
|
||||
,C_TANEVID
|
||||
,TOROLT
|
||||
,SERIAL
|
||||
,MODIFIER
|
||||
,CREATOR
|
||||
,CREATED
|
||||
,LASTCHANGED)
|
||||
VALUES
|
||||
(
|
||||
'T'
|
||||
,NULL
|
||||
,NULL
|
||||
,'F'
|
||||
,src.GondviseloNeve
|
||||
,'F'
|
||||
,src.GondviseloRokonsagifoka
|
||||
,'F'
|
||||
,src.TanuloId
|
||||
,@pIntezmenyId
|
||||
,@pTanevId
|
||||
,'F'
|
||||
,0
|
||||
,@pUserid
|
||||
,@pUserid
|
||||
,GETDATE()
|
||||
,GETDATE()
|
||||
)
|
||||
OUTPUT INSERTED.ID, src.Id
|
||||
INTO @linkTable(insertedId,tempId);
|
||||
|
||||
UPDATE g SET g.GondviseloId = link.insertedId FROM #Gondviselok g
|
||||
INNER JOIN @linkTable link ON link.tempId = g.Id
|
||||
|
||||
|
||||
MERGE T_EMAIL_OSSZES trg
|
||||
USING (
|
||||
SELECT * FROM #Gondviselok WHERE GondviseloEmailcime IS NOT NULL) src ON src.GondviseloId = trg.C_GONDVISELOID AND trg.C_TANEVID = @pTanevId AND trg.TOROLT = 'F'
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
trg.C_EMAILTIPUSA = 1024 --NA
|
||||
,trg.C_EMAILCIM = src.GondviseloEmailcime
|
||||
,trg.C_ALAPERTELMEZETT = 'T'
|
||||
,trg.C_GONDVISELOID = src.GondviseloId
|
||||
,trg.C_FELHASZNALOID = src.TanuloId
|
||||
,trg.C_INTEZMENYID = @pIntezmenyId
|
||||
,trg.C_TANEVID = @pTanevId
|
||||
,trg.TOROLT = 'F'
|
||||
,trg.SERIAL = trg.SERIAL+1
|
||||
,trg.LASTCHANGED = GETDATE()
|
||||
,trg.CREATED = GETDATE()
|
||||
,trg.MODIFIER = @pUserId
|
||||
,trg.CREATOR = @pUserId
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
C_EMAILTIPUSA
|
||||
,C_EMAILCIM
|
||||
,C_ALAPERTELMEZETT
|
||||
,C_GONDVISELOID
|
||||
,C_FELHASZNALOID
|
||||
,C_INTEZMENYID
|
||||
,C_TANEVID
|
||||
,TOROLT
|
||||
,SERIAL
|
||||
,LASTCHANGED
|
||||
,CREATED
|
||||
,MODIFIER
|
||||
,CREATOR
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
1024 --NA
|
||||
,src.GondviseloEmailcime
|
||||
,'T'
|
||||
,src.GondviseloID
|
||||
,src.TanuloId
|
||||
,@pIntezmenyId
|
||||
,@pTanevId
|
||||
,'F'
|
||||
,0
|
||||
,GETDATE()
|
||||
,GETDATE()
|
||||
,@pUserId
|
||||
,@pUserId
|
||||
);
|
||||
|
||||
|
||||
MERGE T_TELEFON_OSSZES trg
|
||||
USING (
|
||||
SELECT * FROM #Gondviselok WHERE GondviseloTelefonszama IS NOT NULL) src ON src.GondviseloId = trg.C_GONDVISELOID AND trg.C_TANEVID = @pTanevId AND trg.TOROLT = 'F'
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
trg.C_TELEFONTIPUSA = 1019 --Ismeretlen
|
||||
,trg.C_TELEFONSZAM = src.GondviseloTelefonszama
|
||||
,trg.C_ALAPERTELMEZETT = 'T'
|
||||
,trg.C_GONDVISELOID = src.GondviseloId
|
||||
,trg.C_FELHASZNALOID = src.TanuloId
|
||||
,trg.C_INTEZMENYID = @pIntezmenyId
|
||||
,trg.C_TANEVID = @pTanevId
|
||||
,trg.TOROLT = 'F'
|
||||
,trg.SERIAL = trg.SERIAL+1
|
||||
,trg.LASTCHANGED = GETDATE()
|
||||
,trg.CREATED = GETDATE()
|
||||
,trg.MODIFIER = @pUserId
|
||||
,trg.CREATOR = @pUserId
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
C_TELEFONTIPUSA
|
||||
,C_TELEFONSZAM
|
||||
,C_ALAPERTELMEZETT
|
||||
,C_GONDVISELOID
|
||||
,C_FELHASZNALOID
|
||||
,C_INTEZMENYID
|
||||
,C_TANEVID
|
||||
,TOROLT
|
||||
,SERIAL
|
||||
,LASTCHANGED
|
||||
,CREATED
|
||||
,MODIFIER
|
||||
,CREATOR
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
1019 --Ismeretlen
|
||||
,src.GondviseloTelefonszama
|
||||
,'T'
|
||||
,src.GondviseloId
|
||||
,src.TanuloId
|
||||
,@pIntezmenyId
|
||||
,@pTanevId
|
||||
,'F'
|
||||
,0
|
||||
,GETDATE()
|
||||
,GETDATE()
|
||||
,@pUserId
|
||||
,@pUserId
|
||||
);
|
||||
COMMIT TRANSACTION
|
||||
|
||||
SELECT GondviseloId FROM #Gondviselok
|
||||
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
|
||||
ROLLBACK TRANSACTION;
|
||||
THROW
|
||||
END CATCH
|
||||
END
|
||||
|
||||
GO
|
||||
|
Reference in New Issue
Block a user