29 Nisan 2014 Salı

Mikro'da muhasebe fişleri ve cari bağlantı evraklarının kontrol raporu

Merhabalar,
Girişi yaptığımız kayıtların muhasebe fişlerinin kontrolünü her zaman yaparız. Ancak muhasebedeki fişlerin ticari bağlantısı olmayan fişler var mı şeklinde bir kontrol yapmayız. Yapmak için çok uğraşırız.

Aşağıdaki rapor sorgusu işinizi çözecektir. Function'u oluşturup sorguyu menüye ekleyerek çalıştırabilir veya function içerisinden sorguyu alıp yanlızda çalıştırabilirsiniz.

Rapor sorgusu: SELECT TOP 100 PERCENT * FROM dbo.rp_MuhasebeCariKontrolYonetimi(?T1,?T2)

Mikro veritabanına oluşturulacak fonksiyon:
CREATE FUNCTION dbo.rp_MuhasebeCariKontrolYonetimi(@Ilktar as datetime, @Sontar as datetime)
RETURNS TABLE AS
RETURN
(
SELECT TOP 100 PERCENT

      fis_RECno AS [KAYIT NO]
     ,fis_tarih AS [TARİH]
     ,fis_sira_no AS [SIRA NO]
     ,fis_satir_no AS [SATIR NO]
     ,fis_yevmiye_no AS [YEVMİYE NO]
     ,fis_hesap_kod AS [HESAP KODU]
     ,dbo.fn_MuhHesapIsmi(fis_hesap_kod) AS [HESAP İSMİ]
     ,fis_aciklama1 AS [AÇIKLAMA]
     ,dbo.fn_FisTur(fis_tur) AS [FİŞ TİPİ]
     ,dbo.fn_BORC(fis_meblag0) AS [BORÇ]
     ,dbo.fn_ALACAK(fis_meblag0) AS [ALACAK]
     ,dbo.fn_FisAktifPasif(fis_aktif_pasif) AS [FİŞ DURUMU]
     ,dbo.fn_FisMahsupTur(fis_fmahsup_tipi) AS [MAHSUP TİPİ]
     ,RTrim(dbo.fn_ResourceSplit ('A',883,fis_ticari_tip+1,DEFAULT)) AS [ENTEGRASYON KAYNAĞI]
     ,CASE WHEN fis_ticari_tip IN (1,5) THEN dbo.fn_StokHarEvrTip(fis_ticari_evraktip)
            WHEN fis_ticari_tip = 2 THEN dbo.fn_CariHarEvrTipUzun(fis_ticari_evraktip)
            WHEN fis_ticari_tip = 3 THEN dbo.fn_GetResource('S',1769,DEFAULT)
            WHEN fis_ticari_tip = 4 THEN dbo.fn_GetResource('S',1785,DEFAULT)
            WHEN fis_ticari_tip = 6 THEN dbo.fn_GetResource('S',1786,DEFAULT)
            WHEN fis_ticari_tip = 7 THEN dbo.fn_GetResource('S',1787,DEFAULT)
            ELSE '' END AS [EVRAK TİPİ]
     ,fis_tic_evrak_seri AS [EVRAK SERİ]
     ,fis_tic_evrak_sira AS [EVRAK SIRA]
     ,CASE WHEN fis_ticari_tip IN (1,5)
            THEN (SELECT CASE WHEN COUNT(*)>0 THEN 'VAR' ELSE 'YOK' END
                     FROM dbo.STOK_HAREKETLERI WITH(NOLOCK)
                     WHERE sth_RECno=fis_ticari_RECno)
            WHEN fis_ticari_tip = 2     
            THEN (SELECT CASE WHEN COUNT(*)>0 THEN 'VAR' ELSE 'YOK' END
                     FROM dbo.CARI_HESAP_HAREKETLERI WITH(NOLOCK)
                     WHERE cha_RECno=fis_ticari_RECno)
            ELSE '' END AS [TİCARİ EVRAK BAĞLANTISI]

FROM dbo.MUHASEBE_FISLERI WITH (NOLOCK)
WHERE (fis_tarih BETWEEN @Ilktar AND @Sontar)
ORDER BY fis_tarih, fis_sira_no, fis_satir_no
)

Hiç yorum yok: