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

as

BEGIN

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

  set @YuzdeselIndirim1 = IsNull( @YuzdeselIndirim1,
                                  0
                                )

  set @TutarsalIndirim1 = IsNull( @TutarsalIndirim1,
                                  0
                                )

  set @YuzdeselIndirim2 = IsNull( @YuzdeselIndirim2,
                                  0
                                )

  set @TutarsalIndirim2 = IsNull( @TutarsalIndirim2,
                                  0
                                )

  set @YuzdeselIndirim3 = IsNull( @YuzdeselIndirim3,
                                  0
                                )

  set @TutarsalIndirim3 = IsNull( @TutarsalIndirim3,
                                  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 ) )        */
  
  return dbo.fn_IndirimliFiyat( dbo.fn_IndirimliFiyat( dbo.fn_IndirimliFiyat( @IndirimsizFiyat,   /* İndirimsiz Fiyat        */
                                                                              @YuzdeselIndirim1,
                                                                              @TutarsalIndirim1
                                                                            ),                    /* 1.İndirim Sonrası Fiyat */
                                                       @YuzdeselIndirim2,
                                                       @TutarsalIndirim2
                                                     ),                                           /* 2.İndirim Sonrası Fiyat */
                                @YuzdeselIndirim3,
                                @TutarsalIndirim3
                              )                                                                   /* 3.İndirim Sonrası Fiyat */  

END
'

EXEC(@SQL)
END

