AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Veritabanı › Functions › FN-POS.BSMVHESAPLA

POS.BSMVHesapla

FUNCTIONMOD-POSPOS_VARIANTMANUAL_REVIEWVERY_HIGH[SOURCE_IMPLEMENTED]
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Tip: SCALAR FUNCTION · Şema: POS · Modül: MOD-POS · Temizlik sınıfı: MANUAL_REVIEW (kategori D, güven 55) · Kapsam: POS_VARIANT / ALL

Kullanım haritası (13.09.2026)

KategoriF — MANUAL REVIEW · F-EXTERNAL_PRODUCT
Güven90
GerekçeERPGOLD dışı ürün/servis şeması: ErpPosV2 / web banko (POS Aşama 0) — ERPGOLD kodu çağırmaz ama başka uygulama kullanır
Referans veren (gerekli olmayan)POS.FisKaydet

Bkz. Database Usage Map · Manual Review. Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.

Temizlik kanıtı

Kontrol Sonuç
app WEAK
report NO
config NO
dynamic NO
db_in YES
db_out YES
trigger NO
fk NO
computed NO
crossdb NO
runtime UNKNOWN
external RISK

Gerekçe: EXTERNAL USE RISK: ErpPosV2 (POS / vezne uygulaması) — ERPGOLD dışı AIFASOFT ürünü; nesneler 2026-09-10 oluşturulmuş

KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)

Tür: FUNCTION (FN) · Modül: MOD-POS · Uzunluk: 33 satır

Özet

[GAP] Kaynakta açıklama yorumu yok; davranış aşağıdaki SQL tanımından ve ilişkilerden okunur.

Parametreler

# Parametre Tip Çıktı
1 @IslemKodu int
2 @IslemTuru int
3 @Tutar decimal
4 @Tarih date

Bağımlılıklar (bu nesne → hedef)

İlişki Hedef Tip
READS POS.VergiOranlari TABLE

Bu nesneyi kullananlar

Nesne Tip
POS.FisKaydet PROCEDURE

SQL tanımı (AS-IMPLEMENTED, örnek DB)

CREATE FUNCTION POS.BSMVHesapla
(
    @IslemKodu int,
    @IslemTuru int,
    @Tutar     decimal(18,2),
    @Tarih     date
)
RETURNS decimal(18,2)
AS
BEGIN
    -- Yalniz NAKIT (3) ve VADELI (6), yalniz satis yonu (tek IslemTuru)
    IF @IslemKodu NOT IN (3, 6) RETURN 0;
    IF @IslemTuru % 2 = 0       RETURN 0;
    IF ISNULL(@Tutar, 0) = 0    RETURN 0;

    DECLARE @Oran decimal(9,6), @Dahil bit;

    SELECT TOP (1) @Oran = Oran, @Dahil = Dahil
    FROM POS.VergiOranlari
    WHERE Vergi = 'BSMV'
      AND YururlukBas <= @Tarih
      AND (YururlukBit IS NULL OR YururlukBit >= @Tarih)
    ORDER BY YururlukBas DESC;

    IF @Oran IS NULL RETURN 0;

    RETURN CONVERT(decimal(18,2),
             CASE WHEN @Dahil = 1
                  THEN @Tutar * @Oran / (1 + @Oran)   -- dahil:  T * 2/1002
                  ELSE @Tutar * @Oran                 -- haric:  T * 2/1000
             END);
END

Kaynaklar

  • SRC-DB-MODULES — sys.sql_modules tanımı (salt okunur); gizli sabitler [REDACTED_SECRET] ile değiştirildi.

Bilinmeyenler

  • Hangi sürümde eklendiği: created DB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).