124 lines
3.9 KiB
Transact-SQL
124 lines
3.9 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS [dbo].[sp_CsengetesiRendOrakTorles]
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[sp_CsengetesiRendOrakTorles]
|
|
@TanevId int,
|
|
@xml xml
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @torlendoCsengetesiRendek TABLE (id int);
|
|
|
|
INSERT INTO @torlendoCsengetesiRendek
|
|
SELECT
|
|
sor.value('.', 'int') AS id
|
|
FROM @xml.nodes('/CsengetesiRendOraTorles/IdLista/Id') as sorok(sor)
|
|
|
|
SELECT
|
|
ID oraId,
|
|
csengrendOraId,
|
|
newCsengrendOraId,
|
|
newOraKezdete,
|
|
newOraVege,
|
|
ISNULL(newOraszam, 0) newOraszam,
|
|
newCsengrendId,
|
|
IsTanora,
|
|
UpdateVegeDate,
|
|
UpdateKezdeteDate,
|
|
UpdateType
|
|
INTO #TEMPmodositandoOrak
|
|
from (
|
|
select kapcsolodoOrak.ID,
|
|
kapcsolodoOrak.C_CSENGETESIRENDID,
|
|
kapcsolodoOrak.C_CSENGETESIRENDORAID csengrendOraId,
|
|
kapcsolodoOrak.C_ORASZAM,
|
|
alapcsora.C_KEZDETE,
|
|
alapcsora.C_VEGE,
|
|
kapcsolodoOrak.C_ORAKEZDETE,
|
|
kapcsolodoOrak.C_ORAVEGE,
|
|
kapcsolodoOrak.Tanora IsTanora,
|
|
csengrend.ID newCsengrendOraId,
|
|
csengrend.C_CSENGETESIRENDID newCsengrendId,
|
|
csengrend.C_KEZDETE newOraKezdete,
|
|
csengrend.C_VEGE newOraVege,
|
|
csengrend.C_ORASZAM newOraszam
|
|
,IIF(kapcsolodoOrak.Tanora = 0 and cast(alapcsora.C_VEGE as time) = cast(kapcsolodoOrak.C_ORAVEGE as time) and csengrend.C_VEGE is not null, 1, 0) UpdateVegeDate
|
|
,IIF(kapcsolodoOrak.Tanora = 0 and cast(alapcsora.C_KEZDETE as time) = cast(kapcsolodoOrak.C_ORAKEZDETE as time) and csengrend.C_KEZDETE is not null, 1, 0) UpdateKezdeteDate
|
|
,IIF(csengrend.ID is null, 1, 0) UpdateType
|
|
from (
|
|
select
|
|
x.ID,
|
|
C_CSENGETESIRENDID,
|
|
C_CSENGETESIRENDORAID,
|
|
C_ORASZAM,
|
|
C_ORAKEZDETE,
|
|
C_ORAVEGE,
|
|
Tanora
|
|
from(
|
|
select ID,
|
|
C_CSENGETESIRENDID,
|
|
C_CSENGETESIRENDORAID,
|
|
C_ORASZAM,
|
|
C_ORAKEZDETE,
|
|
C_ORAVEGE,
|
|
0 Tanora
|
|
from T_ORARENDIORA_OSSZES
|
|
union
|
|
select ID,
|
|
C_CSENGETESIRENDID,
|
|
C_CSENGETESIRENDORAID,
|
|
C_ORASZAM,
|
|
C_ORAKEZDETE,
|
|
C_ORAVEGE,
|
|
1 Tanora
|
|
from T_TANITASIORA_OSSZES
|
|
) x
|
|
inner join @torlendoCsengetesiRendek torlendoIdk on torlendoIdk.id = x.C_CSENGETESIRENDORAID
|
|
) kapcsolodoOrak
|
|
left join (
|
|
select
|
|
ID,
|
|
C_KEZDETE,
|
|
C_VEGE
|
|
from T_CSENGETESIRENDORA_OSSZES) alapcsora on alapcsora.ID = kapcsolodoOrak.C_CSENGETESIRENDORAID
|
|
left join (select csora.ID,
|
|
csora.C_CSENGETESIRENDID,
|
|
csora.C_KEZDETE,
|
|
csora.C_VEGE,
|
|
csora.C_ORASZAM
|
|
from T_CSENGETESIRENDORA_OSSZES csora
|
|
inner join T_CSENGETESIREND_OSSZES on csora.C_CSENGETESIRENDID = T_CSENGETESIREND_OSSZES.ID And T_CSENGETESIREND_OSSZES.C_AKTIV = 'T'
|
|
where csora.C_TANEVID = @TanevId)csengrend on csengrend.C_ORASZAM = kapcsolodoOrak.C_ORASZAM and csengrend.ID != kapcsolodoOrak.C_CSENGETESIRENDORAID
|
|
)t
|
|
|
|
UPDATE o
|
|
SET
|
|
o.C_ORAVEGE = IIF(temp.UpdateVegeDate = 1,
|
|
DATEADD(HOUR, datepart(hour, temp.newOraVege),DATEADD(MINUTE,datepart(minute, temp.newOraVege),CAST(CAST(o.C_ORAVEGE AS DATE) as datetime))),
|
|
o.C_ORAVEGE),
|
|
o.C_ORAKEZDETE = IIF(temp.UpdateKezdeteDate = 1,
|
|
DATEADD(HOUR, datepart(hour, temp.newOraVege),DATEADD(MINUTE,datepart(minute, temp.newOraVege),CAST(CAST(o.C_ORAKEZDETE AS DATE) as datetime))),
|
|
o.C_ORAKEZDETE),
|
|
o.C_CSENGETESIRENDID = temp.newCsengrendId,
|
|
o.C_CSENGETESIRENDORAID = temp.newCsengrendOraId,
|
|
o.C_ORASZAM = temp.newOraszam
|
|
from T_ORARENDIORA_OSSZES o
|
|
inner join #TEMPmodositandoOrak temp on temp.csengrendOraId = o.C_CSENGETESIRENDORAID and temp.IsTanora = 0
|
|
|
|
UPDATE t
|
|
SET
|
|
t.C_CSENGETESIRENDID = temp.newCsengrendId,
|
|
t.C_CSENGETESIRENDORAID = temp.newCsengrendOraId,
|
|
t.C_ORASZAM = temp.newOraszam
|
|
from T_TANITASIORA_OSSZES t
|
|
inner join #TEMPmodositandoOrak temp on temp.csengrendOraId = t.C_CSENGETESIRENDORAID and temp.IsTanora = 1
|
|
|
|
DELETE csro
|
|
FROM T_CSENGETESIRENDORA_OSSZES csro
|
|
inner join @torlendoCsengetesiRendek torlendoIdk on torlendoIdk.id = csro.ID
|
|
|
|
DROP TABLE #TEMPmodositandoOrak
|
|
|
|
END
|
|
GO
|