init
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
IF OBJECT_ID('dbo.sp_CsengetesiRendOrakTorles') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE dbo.sp_CsengetesiRendOrakTorles
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_CsengetesiRendOrakTorles]
|
||||
@TanevId int,
|
||||
@xml xml
|
||||
AS
|
||||
BEGIN
|
||||
-- SET NOCOUNT ON added to prevent extra result sets from
|
||||
-- interfering with SELECT statements.
|
||||
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_TANORANKIVULIFOGLALKOZAS = IIF(temp.UpdateType = 1, 'T', o.C_TANORANKIVULIFOGLALKOZAS),
|
||||
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_TANORANKIVULIFOGLALKOZAS = IIF(temp.UpdateType = 1, 'T', t.C_TANORANKIVULIFOGLALKOZAS),
|
||||
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
|
Reference in New Issue
Block a user