This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,69 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanuloGondviseloExportData]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanuloGondviseloExportData]
END
GO
-- =============================================
-- Description: <Gondviselők adatait adja vissza>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTanuloGondviseloExportData]
@pTanevId INT
,@pIntezmenyId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT DISTINCT
T_TANULO.ID TanuloId
,T_FELHASZNALO.C_NYOMTATASINEV TanuloNeve
,T_FELHASZNALO.C_OKTATASIAZONOSITO OktatasiAzonosito
,T_OSZTALYCSOPORT.C_NEV TanuloOsztalya
,T_GONDVISELO.ID GondviseloId
,T_GONDVISELO.C_NEV GondviseloNeve
,T_GONDVISELO.C_ROKONSAGFOKA GondviseloRokonsagifoka
,T_TELEFON.C_TELEFONSZAM GondviseloTelefonszama
,T_EMAIL.C_EMAILCIM GondviseloEmailcime
FROM
T_TANULO
LEFT JOIN
T_GONDVISELO ON
T_GONDVISELO.C_TANULOID = T_TANULO.ID
LEFT JOIN
T_FELHASZNALO ON
T_FELHASZNALO.ID = T_TANULO.ID
LEFT JOIN
T_TANULOCSOPORT ON
T_TANULOCSOPORT.C_TANULOID = T_TANULO.ID
LEFT JOIN
T_OSZTALYCSOPORT ON
T_OSZTALYCSOPORT.ID = T_TANULOCSOPORT.C_OSZTALYCSOPORTID
LEFT JOIN
T_TELEFON ON
T_TELEFON.C_GONDVISELOID = T_GONDVISELO.ID
LEFT JOIN
T_EMAIL ON
T_EMAIL.C_GONDVISELOID = T_GONDVISELO.ID
WHERE
(T_GONDVISELO.ID IS NULL OR T_GONDVISELO.ID IN (SELECT ID FROM T_GONDVISELO WHERE T_GONDVISELO.TOROLT='F'))
AND T_FELHASZNALO.TOROLT ='F'
AND (T_TANULOCSOPORT.C_OSZTALYCSOPORTID IS NULL OR T_TANULOCSOPORT.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY))
AND (T_TELEFON.TOROLT = 'F' OR T_TELEFON.ID IS NULL)
AND (T_EMAIL.TOROLT = 'F' OR T_EMAIL.ID IS NULL)
AND T_TANULO.C_ALTANEVID = @pTanevId
AND T_TANULO.C_ALINTEZMENYID = @pIntezmenyId
ORDER BY
T_FELHASZNALO.C_NYOMTATASINEV
END
GO

View file

@ -0,0 +1,246 @@
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ők adatait importá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
DECLARE @Gondviselok TABLE (
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 @Gondviselok
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 @Gondviselok AS gondviselok ON gondviselok.GondviseloId = g.Id
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 = NULL
,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
,NULL
,@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 = NULL
,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
,NULL
,@pIntezmenyId
,@pTanevId
,'F'
,0
,GETDATE()
,GETDATE()
,@pUserId
,@pUserId
);
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO