Ön muhasebe F10 da carinin muhasebe bakiyesini görmek için ;
MUSTERI_CHOOSE_2A (F10’da kod sıralı görünüm) gönümüne alternatif tanıtacağımız bir sorgu örneği
SELECT TOP 100 PERCENT
muk_RECno AS [KAYIT NO],
muk_kod AS [MÜŞTERİ KODU],
muk_unvan1 AS [MÜŞTERİ ÜNVANI],
muk_unvan2 AS [MÜŞTERİ ÜNVANI 2],
dbo.fn_CariHesapAnaDovizBakiye(0, muk_kod, '', 0) AS BAKİYE,
muk_muh_kod AS [MUH KODU],
dbo.fn_muhbakiye(muk_muh_kod) AS [MUH BAKİYE]
FROM dbo.MUSTERI WITH (NOLOCK)
ORDER BY muk_kod
MUSTERI_CHOOSE_3A (F10’da İsim sıralı görünüm) gönümüne alternatif tanıtacağımız bir sorgu örneği
SELECT TOP 100 PERCENT
muk_RECno AS [KAYIT NO],
muk_unvan1 AS [MÜŞTERİ ÜNVANI],
muk_unvan2 AS [MÜŞTERİ ÜNVANI 2],
muk_kod AS [MÜŞTERİ KODU],
dbo.fn_CariHesapAnaDovizBakiye(0, muk_kod, '', 0) AS BAKİYE,
muk_muh_kod AS [MUH KODU],
dbo.fn_muhbakiye(muk_muh_kod) AS [MUH BAKİYE]
FROM dbo.MUSTERI WITH (NOLOCK)
ORDER BY muk_unvan1
Satıcılar ve diğer cariler içinde bu örneğe benzer görünümler yazabiliriz.
———————
Eklenen satırlardan [MUH BAKİYE] satırının muhasebe bakiyesini nasıl bulduğunu anlamak için dbo.fn_muhbakiye fonksiyonuna bi göz atalım ;
CREATE FUNCTION dbo.fn_muhbakiye (@MuhKod as varchar(25))
RETURNS float AS
BEGIN
Declare @Bakiye as float
SELECT @Bakiye = Sum(fis_meblag0) from dbo.MUHFIS WITH (NOLOCK)
where (fis_hesap_kod = @MuhKod)
Return (@Bakiye)
END
Dikkat ederseniz fonksiyon @MuhKod için bizden bi değer istiyor. Bizde muk_muh_kodu değerini veriyoruz.Fonksiyon da MUHFIS tablosu içersindeki fis_hesap_kodu = @MuhKod (yani muhasebe kodu olan muk_muh_kod )
olan fislerin meblağını topluyor. MUHFIS tablosunda borc meblag lar (+) alacak meblağlar (-) değere sahip olduğundan bakiye = borc toplamı-alacak toplamı şeklinde değer alıyor.
” dbo.fn_muhbakiye ” fonksiyonunu cari muhasebe kodunun veya cari kodunun yer aldığı bütün raporlarda kullanabiliriz. Örn, Müşteri Durum Raporunda Sorgu ekle bölümüne
Select dbo.fn_muhbakiye('#9#')
yazalım…
(müşteri durum raporunda Muhasebe Kodu Kolonu 9 dur. Diğer Raporlarda değişebilir)
Raporda Müşteri Kodu kolonu var ama muhasebe kodu kolonu yoksa
(Müşteri Sıralı ve Sorm merkz Detaylı Bakiye Durm.Rap gibi…)
o zaman şu fonksiyonu MyeDBA dan yada Ent.Managerdan kaydedelim.
——
CREATE FUNCTION dbo.fn_muhkodunubul (@Caricinsi as varchar(5),@carikod as varchar(25))
RETURNS VARCHAR(50) AS
BEGIN
Declare @muhkod as varchar(25)
if @Caricinsi = 0 SELECT @muhkod = muk_muh_kod from dbo.MUSTERI WITH (NOLOCK) where (muk_kod = @carikod)
if @Caricinsi = 1 SELECT @muhkod = sat_muh_kod from dbo.SATICI WITH (NOLOCK) where (sat_kod = @carikod)
— Diğer cari, banka vs.. için buraya ilave yapabiliriz.
Return (@muhkod)
END
—-
(Fonksiyon kendisini tükçe olarak şöyle tanıtır ;
Bana 2 değer gönderin. (1- @Caricinsi , 2- @Carikod )
Eğer @caricinsi ‘ne 0 değeri gönderirseniz @Carikod ‘una verdiğiniz değere eşit olan muhasebe kodunu Müşteri tablosundan bulurum.
Eğer @caricinsi ‘ne 1 değeri gönderirseniz @Carikod ‘una verdiğiniz değere eşit olan muhasebe kodunu Satıcı tablosundan bulurum.
vs… )
——————-
Sorgu ekle kolonuna şu satırı yazalım ;
Select dbo.fn_muhbakiye(dbo.fn_muhkodunubul(0,'#1#'))
(Bu raporda Müşteri Kodu Kolonu 1 dir. Diğer Raporlarda değişebilir)
Not : Sorgu kolonlarının Veri Tipi Real olarak ayarlanmalıdır.
İki depoda ki miktar ve toplam miktarı gösteren sorgu
SELECT TOP 100 PERCENT sto_RECno AS [KAYIT NO], sto_kod AS KODU, sto_isim AS ADI, sto_fiat1_tutar AS [FİYAT],
dbo.fn_EldekiMiktar(sto_kod) AS [TOPLAM MİK.],
dbo.fn_DepodakiMiktar(sto_kod,1,0) AS [MERKEZ DEPO],
dbo.fn_DepodakiMiktar(sto_kod,2,0) AS [BÇEK.DEPO]
FROM dbo.STOK WITH (NOLOCK)
ORDER BY sto_kod
Buda banka yönetim ekranına bakiyeyi eklediğimiz sorgu(BANKA_YONETIM):
SELECT TOP 100 PERCENT ban_RECno AS [KAYIT NO],
ban_kod AS [KODU],
ban_ismi AS [İSMİ],
ban_sube AS [ŞUBE],
ban_hesapno AS [HESAP NO],
ban_hesap_tip AS [HESAP TİPİ],
ban_mevduat_tip AS [MEVDUAT TİPİ],
ban_muh_kod AS [MUHASEBE KODU],
dbo.fn_DovizIsmi(ban_doviz_cinsi) AS [DÖVİZ CİNSİ],
ban_TCMB_Kodu AS [TCMB BANKA KODU],
ban_TCMB_Sube_Kodu AS [TCMB ŞUBE KODU],
ban_TCMB_Il_kodu AS [TCMB İL KODU],
ban_musteri_no AS [MÜŞTERİ NUMARAMIZ],
ban_Ayni_banka_tahsil_suresi AS [AYNI BANKA ÇEK TAHSİL SÜRESİ],
ban_baska_banka_tahsil_suresi AS [BAŞKA BANKA ÇEK TAHSİL SÜRESİ],
dbo.fn_CariHesapAnaDovizBakiye(2,ban_kod,'',1) as [BAKİYE]
FROM dbo.BANKA WITH (NOLOCK)
ORDER BY ban_kod