IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[fn_IndirimliFiyat]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
BEGIN 
DECLARE @SQL VARCHAR(4000) = '
create function [dbo].[fn_IndirimliFiyat]
( @IndirimsizFiyat float = 0.0,
  @YuzdeselIndirim float = 0.0,
  @TutarsalIndirim float = 0.0
) RETURNS float 

as

BEGIN

  /* NULL Kontrol */
  set @IndirimsizFiyat = IsNull( @IndirimsizFiyat,
                                 0
                               )

  set @YuzdeselIndirim = IsNull( @YuzdeselIndirim,
                                 0
                               )

  set @TutarsalIndirim = IsNull( @TutarsalIndirim,
                                 0
                               )

  /* İndirim Oranı (%) = ( ( Normal Fiyat - İndirimli Fiyat ) / Normal Fiyat ) x 100 */
  /* İndirim Oranı (%) = (  1  -  ( İndirimli Fiyat / Normal Fiyat ) )         x 100 */

  /* İndirimli Fiyat   = Normal Fiyat * ( 1  -  ( İndirim Oranı (%) / 100 ) )        */
  /* İndirimli Fiyat   = Normal Fiyat  -  Normal Fiyat * ( İndirim Oranı (%) / 100 ) */

  return   dbo.FN_RoundBanker( @IndirimsizFiyat,
                               2
                             )
      /* Yüzdesel İndirim Uygulanmış Tutar */
         - dbo.FN_RoundBanker( dbo.FN_RoundBanker( @IndirimsizFiyat,
                                                   2
                                                 ) * @YuzdeselIndirim / 100,
                               2
                             )
      /* - Tutarsal İndirim */
         - dbo.FN_RoundBanker( @TutarsalIndirim,
                               2
                             ) 

END

'

EXEC(@SQL)
END
