kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspCopyOrarendiElem.sql
2024-03-13 00:33:46 +01:00

154 lines
No EOL
6.4 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[uspCopyOrarendiElem]
GO
CREATE PROCEDURE [dbo].[uspCopyOrarendiElem]
@copyId int
,@date datetime
,@oraszam int
,@pOraErvenyessegKezdete datetime = null
,@pOraErvenyessegVege datetime = null
,@pIsGenerateOrarend bit = 1
AS BEGIN
SET NOCOUNT ON
DECLARE @newId int = 0
DECLARE @intezmenyId int, @tanevId int, @hetNapja int, @tanarId int, @tantargyId int, @osztalycsoportId int, @teremId int, @ora int, @egyediNap char(1);
DECLARE @ervenyessegKezdet datetime, @ervenyessegVege datetime, @orarendiOraGroupId int, @hetirendId int;
SELECT
@intezmenyId = C_INTEZMENYID, @tanevId = C_TANEVID, @tanarId = C_TANARID, @tantargyId = C_TANTARGYID
,@osztalycsoportId = C_OSZTALYCSOPORTID, @teremId = C_TEREMID, @ora = C_ORASZAM
,@ervenyessegKezdet = C_ORAERVENYESSEGKEZDETE, @ervenyessegVege = C_ORAERVENYESSEGVEGE
,@orarendiOraGroupId = C_ORARENDIORAGROUPID, @hetirendId = C_HETIREND, @egyediNap = C_EGYEDINAP
FROM T_ORARENDIORA_OSSZES WHERE ID = @copyId AND TOROLT = 'F'
IF @date IS NOT NULL
BEGIN
SELECT @hetNapja = C_HETNAPJA FROM T_NAPTARINAP_OSSZES where C_NAPDATUMA = CAST(@date AS DATE)
END
IF (@oraszam < 0) BEGIN SET @oraszam = NULL END
IF NOT EXISTS(SELECT * FROM T_ORARENDIORA_OSSZES where @intezmenyId = C_INTEZMENYID AND @tanevId = C_TANEVID AND @tanarId = C_TANARID AND @tantargyId = C_TANTARGYID
AND @osztalycsoportId = C_OSZTALYCSOPORTID AND @teremId = C_TEREMID AND (@oraszam IS NOT NULL AND @oraszam = C_ORASZAM) AND TOROLT = 'F' AND @hetNapja = C_HETNAPJA
AND @hetirendId = C_HETIREND AND @ervenyessegKezdet < C_ORAERVENYESSEGVEGE AND @ervenyessegVege >= C_ORAERVENYESSEGKEZDETE AND @egyediNap = C_EGYEDINAP
)
BEGIN
INSERT INTO T_ORARENDIORA (
[C_DIFFERENCIALT],[C_DRAMA],[C_HETIREND],[C_HETNAPJA],[C_IKTTANORA],[C_IPRTANORA],[C_KOOPERATIV],[C_MERES],[C_MINDENNAPOSTESTNEVELES],[C_NEMSZAKRENDSZERUORA],[C_NEMZETISEGIORA]
,[C_ORASZAM],[C_SORSZAMOZANDO],[C_TAMOPORA],[C_TULORA],[C_BONTOTT],[C_ORAERVENYESSEGKEZDETE],[C_ORAERVENYESSEGVEGE],[C_PARHUZAMOSORA],[C_TIOP12],[C_ORAKEZDETE],[C_ORAVEGE]
,[C_IMPORTALT],[C_CSENGETESIRENDID],[C_CSENGETESIRENDORAID],[C_ORARENDIORAGROUPID],[C_EFOP32317],[C_MULTIKULTURALISORA],[C_KOMPLEXORA],[C_KIPORA],[C_VEKOP73317],[C_KAPORA]
,[C_GINOP623],[C_EGYEDINAP],[C_TEREMID],[C_FOGLALKOZASID],[C_TANTARGYID],[C_OSZTALYCSOPORTID],[C_TANARID],[C_ORATULAJDONOSID],[C_INTEZMENYID],[C_TANEVID],[TOROLT],[SERIAL]
,[LASTCHANGED],[CREATED],[MODIFIER],[CREATOR],[ELOZOTANEVIREKORDID],[C_ISKEZZELFELVETTEGYEDINAP],[C_EFOP31716],[C_EFOP33717],[C_TIOP1111212012001],[C_ISDFHTKIPORA]
,[C_ISDFHTORA],[C_ISDIGITALISALAPUALPROGRAM],[C_ISELETGYAKORLATALAPUALPROGRA],[C_ISLOGIKAALAPUALPROGRAM],[C_ISMUVESZETALAPUALPROGRAM],[C_ISRAHANGOLODAS],[C_ISTEORAD]
,[C_ISTESTMOZGASALAPUALPROGRAM],[C_ISFELNOTTOKTATASISZERZODES],[C_KOZPONTILAGTOROLTORAGROUPID],[C_KOZPONTIORAGROUPID],[C_EFOP23517]
)
SELECT
[C_DIFFERENCIALT]
,[C_DRAMA]
,[C_HETIREND]
,ISNULL(@hetNapja, [C_HETNAPJA])
,[C_IKTTANORA]
,[C_IPRTANORA]
,[C_KOOPERATIV]
,[C_MERES]
,[C_MINDENNAPOSTESTNEVELES]
,[C_NEMSZAKRENDSZERUORA]
,[C_NEMZETISEGIORA]
,@oraszam
,[C_SORSZAMOZANDO]
,[C_TAMOPORA]
,[C_TULORA]
,[C_BONTOTT]
,ISNULL(@pOraErvenyessegKezdete, [C_ORAERVENYESSEGKEZDETE])
,ISNULL(@pOraErvenyessegVege, [C_ORAERVENYESSEGVEGE])
,[C_PARHUZAMOSORA]
,[C_TIOP12]
,CASE
WHEN @date IS NULL THEN [C_ORAKEZDETE]
WHEN @oraszam IS NOT NULL THEN (select C_KEZDETE from T_CSENGETESIRENDORA_OSSZES where C_ORASZAM = @oraszam and C_CSENGETESIRENDID = oo.C_CSENGETESIRENDID and TOROLT = 'F')
ELSE DATEADD(minute, (DATEPART(hour, @date) *60 + DATEPART(minute, @date)),0)
END
,CASE
WHEN @date IS NULL THEN [C_ORAVEGE]
WHEN @oraszam IS NOT NULL THEN (select C_VEGE from T_CSENGETESIRENDORA_OSSZES where C_ORASZAM = @oraszam and C_CSENGETESIRENDID = oo.C_CSENGETESIRENDID and TOROLT = 'F')
ELSE (C_ORAVEGE - C_ORAKEZDETE) + DATEADD(minute, (DATEPART(hour, @date) *60 + DATEPART(minute, @date)),0)
END
,[C_IMPORTALT]
,[C_CSENGETESIRENDID]
,ISNULL((SELECT ID FROM T_CSENGETESIRENDORA_OSSZES WHERE C_CSENGETESIRENDID = oo.C_CSENGETESIRENDID AND C_ORASZAM = @oraszam AND TOROLT = 'F' AND C_TANEVID = oo.C_TANEVID),[C_CSENGETESIRENDORAID])
,[C_ORARENDIORAGROUPID]
,[C_EFOP32317]
,[C_MULTIKULTURALISORA]
,[C_KOMPLEXORA]
,[C_KIPORA]
,[C_VEKOP73317]
,[C_KAPORA]
,[C_GINOP623]
,[C_EGYEDINAP]
,[C_TEREMID]
,[C_FOGLALKOZASID]
,[C_TANTARGYID]
,[C_OSZTALYCSOPORTID]
,[C_TANARID]
,[C_ORATULAJDONOSID]
,[C_INTEZMENYID]
,[C_TANEVID]
,'F'
,0
,GETDATE()
,GETDATE()
,[MODIFIER]
,[CREATOR]
,NULL
,[C_ISKEZZELFELVETTEGYEDINAP]
,[C_EFOP31716]
,[C_EFOP33717]
,[C_TIOP1111212012001]
,[C_ISDFHTKIPORA]
,[C_ISDFHTORA]
,[C_ISDIGITALISALAPUALPROGRAM]
,[C_ISELETGYAKORLATALAPUALPROGRA]
,[C_ISLOGIKAALAPUALPROGRAM]
,[C_ISMUVESZETALAPUALPROGRAM]
,[C_ISRAHANGOLODAS]
,[C_ISTEORAD]
,[C_ISTESTMOZGASALAPUALPROGRAM]
,[C_ISFELNOTTOKTATASISZERZODES]
,[C_KOZPONTILAGTOROLTORAGROUPID]
,[C_KOZPONTIORAGROUPID]
,[C_EFOP23517]
FROM T_ORARENDIORA_OSSZES oo WHERE ID = @copyId AND TOROLT = 'F'
SET @newId = (select SCOPE_IDENTITY())
UPDATE T_ORARENDIORA_OSSZES SET C_ORARENDIORAGROUPID = @newId WHERE ID = @newId
UPDATE T_SZAMONKERESELOREJELZES_OSSZES set C_ORARENDIORAGROUPID = @newId WHERE C_ORARENDIORAGROUPID = @orarendiOraGroupId AND TOROLT = 'F'
IF @pIsGenerateOrarend = 1
BEGIN
EXEC uspGenerateOrarend @intezmenyId, @tanevId, null, null, @newId, null
END
INSERT INTO T_ORARENDIORATULAJDONSAG (
[C_ORATULAJDONSAGID],[C_ORARENDIORAID],[C_INTEZMENYID],[C_TANEVID],[TOROLT],[SERIAL],[LASTCHANGED],[CREATED],[MODIFIER],[CREATOR],[ELOZOTANEVIREKORDID],[C_BOOLERTEK]
)
SELECT
[C_ORATULAJDONSAGID]
,@newId
,[C_INTEZMENYID]
,[C_TANEVID]
,'F'
,0
,GETDATE()
,GETDATE()
,[MODIFIER]
,[CREATOR]
,NULL
,[C_BOOLERTEK]
FROM T_ORARENDIORATULAJDONSAG_OSSZES oot WHERE C_ORARENDIORAID = @copyId AND TOROLT = 'F'
END
SELECT @newId as Result
END