﻿DROP FUNCTION IF EXISTS  dbo.fnGetOsztondijSzazalek
GO

CREATE FUNCTION dbo.fnGetOsztondijSzazalek (
   @pBeszamitasosTanulo char(1)
  ,@pIsBeszamitasosFixSzazalek char(1)
  ,@pAtlag float
  ,@pCode nvarchar(10)
  ,@pFelevnelValtos char(1)
  ,@pIsSikeresAgazatiVizsga char(1)
  ,@pIsAtlagSzakkepzesi char(1)
)
  RETURNS int
BEGIN  
  RETURN CASE
      WHEN @pBeszamitasosTanulo = 'T' AND @pIsBeszamitasosFixSzazalek = 'T' THEN 10
      WHEN @pBeszamitasosTanulo = 'T' THEN dbo.fnGetOsztondijSzazalekFromAtlag(@pAtlag)
      WHEN @pCode = '003' THEN dbo.fnGetOsztondijSzazalekFromAtlag(@pAtlag)
      WHEN @pFelevnelValtos = 'T' THEN 
        CASE
          WHEN @pIsSikeresAgazatiVizsga = 'F' AND @pCode = '001' THEN 5
          WHEN @pIsSikeresAgazatiVizsga = 'F' AND @pCode = '002' THEN 10
          WHEN @pIsSikeresAgazatiVizsga = 'T' AND @pIsAtlagSzakkepzesi = 'F' THEN 10
          WHEN @pIsSikeresAgazatiVizsga = 'T' AND @pIsAtlagSzakkepzesi = 'T' THEN dbo.fnGetOsztondijSzazalekFromAtlag(@pAtlag)
          ELSE -1
        END
      WHEN @pCode IN ('001','004','005') THEN 5
      WHEN @pCode = '002' THEN 10
      ELSE 0
    END
END
GO
