﻿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 16
      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 8
          WHEN @pIsSikeresAgazatiVizsga = 'F' AND @pCode = '002' THEN 16
          WHEN @pIsSikeresAgazatiVizsga = 'T' AND @pIsAtlagSzakkepzesi = 'F' THEN 16
          WHEN @pIsSikeresAgazatiVizsga = 'T' AND @pIsAtlagSzakkepzesi = 'T' THEN dbo.fnGetOsztondijSzazalekFromAtlag(@pAtlag)
          ELSE -1
        END
      WHEN @pCode IN ('001','004','005') THEN 8
      WHEN @pCode = '002' THEN 16
      ELSE 0
    END
END
GO
