SQL Server’da KDV Oranına Göre Fiyat Hesaplayan Fonksiyon
Herkese merhaba,
Bu yazıda SQL Server’da KDV oranına göre fiyat hesaplayan fonksiyon kullanımından bahsedeceğim.
Bu tarz bir örnek nette göremedim ya da kimsenin ihtiyacı olmadığı için yazmamış, paylaşmamış olabilir.
Ben pratik ve deneme amaçlı böyle bir örnek yazdım.
Siz kendi mantığınıza göre revize edip daha da iyisini oluşturabilirsiniz.
KDV Oranına Göre Fiyat Hesaplayan fonksiyon şu şekilde çalışmakta.
Siz fonksiyona fiyat bilgisini ve KDV oranının sayısal değerini giriyorsunuz.
Eğer KDV oranı olmayan bir değer yazarsanız sonuç sıfır dönecektir. Eğer 1,8 ya da 18 KDV oranlarından birini girerseniz fonksiyon başarı ile çalışacaktır.
Aşağıdaki kodu kullanarak bu işlemi rahatlıkla yapabilirsiniz.
CREATE FUNCTION fn_Orana_Gore_KDV_Hesapla
(
@Fiyat DECIMAL(10, 4),
@KdvOraniTur TINYINT
)
RETURNS @SonucTablo TABLE
(
KDVOrani DECIMAL(3, 2),
KDVHaricFiyat DECIMAL(10, 4),
KDVFiyat DECIMAL(10, 4),
KDVDahilFiyat DECIMAL(10, 4)
)
AS
BEGIN
DECLARE @KdvOrani DECIMAL(3, 2);
IF (@KdvOraniTur = 1 OR @KdvOraniTur = 8 OR @KdvOraniTur = 18)
BEGIN
IF @KdvOraniTur = 1
BEGIN
SET @KdvOrani = 0.01;
END;
IF @KdvOraniTur = 8
BEGIN
SET @KdvOrani = 0.08;
END;
IF @KdvOraniTur = 18
BEGIN
SET @KdvOrani = 0.18;
END;
INSERT INTO @SonucTablo
VALUES
(@KdvOrani, @Fiyat, (@Fiyat * @KdvOrani), ((@Fiyat * @KdvOrani) + @Fiyat));
END;
ELSE
BEGIN
INSERT INTO @SonucTablo
VALUES
(0, 0, 0, 0);
END;
RETURN
END;
--Kullanımı
SELECT * FROM fn_Orana_Gore_KDV_Hesapla(10,1)
SELECT * FROM fn_Orana_Gore_KDV_Hesapla(10,8)
SELECT * FROM fn_Orana_Gore_KDV_Hesapla(10,18)
SELECT * FROM fn_Orana_Gore_KDV_Hesapla(10,9) --Gerekli koşullar oluşmadığı için hesaplamadı.
Fonksiyonu oluşturup kodu çalıştırdığınızda aşağıdaki sonucu göreceksiniz.
Sonucu ben tablo olarak döndürdüm. Bu sayede istediğiniz gibi de kullanabilirsiniz. Dediğim gibi geliştirilip daha da kullanışlı hale getirilebilir. Bu size kalmış.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.