DROP PROCEDURE IF EXISTS uspUpdateDktFeladatHelyettesitoAlkalmazott
GO

CREATE PROCEDURE uspUpdateDktFeladatHelyettesitoAlkalmazott
   @pOrarendiOraId int
  ,@pHelyettesitesNapja datetime
  ,@pHelyettesitoAlkalmazottId int = NULL
AS
BEGIN
    SET NOCOUNT ON;
    
    DECLARE @ooAlkalmazottId int, @ooOsztalyCsoportId int, @ooTantargyId int, @ooOraszam int, @ooOraKezdete datetime;
    SELECT
        @ooAlkalmazottId = oo.C_TANARID, @ooOsztalyCsoportId = oo.C_OSZTALYCSOPORTID, @ooTantargyId = oo.C_TANTARGYID
    ,@ooOraszam = oo.C_ORASZAM, @ooOraKezdete = oo.C_ORAERVENYESSEGKEZDETE
    FROM T_ORARENDIORA oo
    WHERE
        oo.ID = @pOrarendiOraId AND TOROLT = 'F'
        AND ((@pHelyettesitesNapja >= oo.C_ORAERVENYESSEGKEZDETE AND @pHelyettesitesNapja < oo.C_ORAERVENYESSEGVEGE)
              OR
             (oo.C_ORAERVENYESSEGKEZDETE = oo.C_ORAERVENYESSEGVEGE AND oo.C_ORAERVENYESSEGKEZDETE = @pHelyettesitesNapja))
    
    UPDATE dktFeladat
    SET
        C_HELYETTESITOALKALMAZOTTID = @pHelyettesitoAlkalmazottId
    FROM T_DKT_FELADAT dktFeladat
    WHERE
        dktFeladat.C_DATUM = @pHelyettesitesNapja
        AND dktFeladat.TOROLT = 'F'
        AND dktFeladat.C_ALKALMAZOTTID = @ooAlkalmazottId
        AND dktFeladat.C_OSZTALYCSOPORTID = @ooOsztalyCsoportId
        AND dktFeladat.C_TANTARGYID = @ooTantargyId
        AND (dktFeladat.C_ORASZAM = @ooOraszam OR @pHelyettesitesNapja + @ooOraKezdete = dktFeladat.C_IDOPONT)

END
GO