21 Şubat 2012 Salı

Mikro'da Cari Hesaplar ve Muhasebe Bakiyelerini Karşılaştırmak.

Bu sorgu yardımı ile cari hesap bakiyelerinin ve muhasebe bakiyelerinin karşılaştırması yapılabilir.


CREATE VIEW dbo.CARI_MUHASEBE_KARSILASTIRMA
AS 
SELECT TOP 100 PERCENT
     cari_kod AS [Cari Kodu]
    ,ISNULL(cari_unvan1,'') AS [Cari Ünvanı]
    ,cari_muh_kod AS [Cari Muhasebe Kodu]
    ,CASE WHEN muh_hesap_kod IS NULL THEN 'Yok' ELSE 'Var' END AS [Muhasebe Hesap Kodu]
    ,ISNULL(muh_hesap_isim1,'') AS [Muhasebe Hesap Ünvanı]
    ,ISNULL(SUM(dbo.fn_CariHesapAnaDovizBakiye('',0,cari_kod,'','',NULL,NULL,NULL,0)),'') AS [Cari Bakiye]
    ,ISNULL(SUM(dbo.fn_muhbakiye(muh_hesap_kod, dbo.fn_GetAktifFirma(), dbo.fn_GetAktifMaliYil(), 0)),'') AS [Muhasebe Bakiye]
FROM dbo.CARI_HESAPLAR WITH(NOLOCK)
    FULL OUTER JOIN dbo.MUHASEBE_HESAP_PLANI WITH(NOLOCK)
    ON (muh_hesap_kod=cari_muh_kod)
WHERE cari_muh_kod <> ''
GROUP BY cari_kod, cari_unvan1, cari_muh_kod, muh_hesap_kod, muh_hesap_isim1
GO

10 yorum:

Adsız dedi ki...

2011 yılı cari kapanış ve 2012 cari açılışı karşılaştıran kodunuz varmı v12 için?

Adsız dedi ki...

yararlı bir bilgi.

Orhan ÖCAL dedi ki...

Merhaba aşağıdaki sorguya tarih arası yardımı ile iki yıla ait bakiyeleri alabilirsiniz.

SELECT * FROM dbo.fn_CariMuhasebeBakiyeKontrol(?T1,?T2,?K1)

Aşağıdaki sorguyu SQL Managment Studio ya yapıştırarak oluşturun.

CREATE FUNCTION dbo.fn_CariMuhasebeBakiyeKontrol
(
@ilktar datetime = NULL,
@sontar datetime = NULL,
@carikod varchar(25) = ''
)
RETURNS TABLE AS
RETURN
(
SELECT TOP 100 PERCENT

cari_kod AS [CARİ KOD]
,cari_unvan1 AS [CARİ ÜNVAN]

,dbo.fn_CariHesapAnaDovizBakiye('', 0, cari_kod, '', '',0, @ilktar, @sontar, 0) AS [CARİ BAKİYE 1 (TL)]
,dbo.fn_CariHesapOrjinalDovizBakiye('',0,cari_kod,'','',0, @ilktar, @sontar, 0) AS [CARİ BAKİYE 1 (ORJİNAL)]
,dbo.fn_DovizSembolu(cari_doviz_cinsi) AS [DÖVİZ CİNSİ 1]

,dbo.fn_CariHesapAnaDovizBakiye('', 1, cari_kod, '', '',0, @ilktar, @sontar, 0) AS [CARİ BAKİYE 2 (TL)]
,dbo.fn_CariHesapOrjinalDovizBakiye('',1,cari_kod,'','',0, @ilktar, @sontar, 0) AS [CARİ BAKİYE 2 (ORJİNAL)]
,dbo.fn_DovizSembolu(cari_doviz_cinsi1) AS [DÖVİZ CİNSİ 2]

,dbo.fn_CariHesapAnaDovizBakiye('', 2, cari_kod, '', '',0, @ilktar, @sontar, 0) AS [CARİ BAKİYE 3 (TL)]
,dbo.fn_CariHesapOrjinalDovizBakiye('',2,cari_kod,'','',0, @ilktar, @sontar, 0) AS [CARİ BAKİYE 3 (ORJİNAL)]
,dbo.fn_DovizSembolu(cari_doviz_cinsi) AS [DÖVİZ CİNSİ 3]

,cari_muh_kod AS [MUH.KOD 1]
,dbo.fn_MuhHesapIsmi(cari_muh_kod) AS [MUH.İSİM 1]

,(SELECT SUM(fis_meblag0)
FROM dbo.MUHASEBE_FISLERI WITH(NOLOCK)
WHERE fis_hesap_kod=cari_muh_kod AND fis_tarih BETWEEN @ilktar AND @sontar) AS [MUH.BAKİYE 1 (TL)]

,(SELECT SUM(fis_meblag2)
FROM dbo.MUHASEBE_FISLERI WITH(NOLOCK)
WHERE fis_hesap_kod=cari_muh_kod AND fis_tarih BETWEEN @ilktar AND @sontar) AS [MUH.BAKİYE 1 (ORJİNAL)]

,cari_muh_kod1 AS [MUH.KOD 2]
,dbo.fn_MuhHesapIsmi(cari_muh_kod1) AS [MUH.İSİM 2]

,(SELECT SUM(fis_meblag0)
FROM dbo.MUHASEBE_FISLERI WITH(NOLOCK)
WHERE fis_hesap_kod=cari_muh_kod1 AND fis_tarih BETWEEN @ilktar AND @sontar) AS [MUH.BAKİYE 2 (TL)]

,(SELECT SUM(fis_meblag2)
FROM dbo.MUHASEBE_FISLERI WITH(NOLOCK)
WHERE fis_hesap_kod=cari_muh_kod1 AND fis_tarih BETWEEN @ilktar AND @sontar) AS [MUH.BAKİYE 2 (ORJİNAL)]

,cari_muh_kod2 AS [MUH.KOD 3]
,dbo.fn_MuhHesapIsmi(cari_muh_kod2) AS [MUH.İSİM 3]

,(SELECT SUM(fis_meblag0)
FROM dbo.MUHASEBE_FISLERI WITH(NOLOCK)
WHERE fis_hesap_kod=cari_muh_kod2 AND fis_tarih BETWEEN @ilktar AND @sontar) AS [MUH.BAKİYE 3 (TL)]

,(SELECT SUM(fis_meblag2)
FROM dbo.MUHASEBE_FISLERI WITH(NOLOCK)
WHERE fis_hesap_kod=cari_muh_kod2 AND fis_tarih BETWEEN @ilktar AND @sontar) AS [MUH.BAKİYE 3 (ORJİNAL)]

,CASE WHEN UPPER(LEFT(cari_unvan1, 40)) <> UPPER(dbo.fn_MuhHesapIsmi(cari_muh_kod)) OR dbo.fn_MuhHesapIsmi(cari_muh_kod) IS NULL
THEN 'Hayır'
ELSE 'Evet' END AS ['HESAP İSMİ UYUMLU MU?']

FROM dbo.CARI_HESAPLAR WITH(NOLOCK)
WHERE cari_kod=@carikod OR @carikod=''
)

paket servisi dedi ki...

thank you very much for information

paket servisi dedi ki...

thank you very mcuh

Useme Alehosaini dedi ki...

:) Paylaşmak güzeldir
Teşekkürler

ulash dedi ki...

Bu sorguda ilk tarih olmadan sadece verdiğimiz son tarihe göre bakiye durumunu alabilir miyiz muhasebe hesaplarında?

Orhan ÖCAL dedi ki...

Makalede yer alan sorgu son tarihe göre yani şimdiki bakiyeye göre çalışır. Makaledeki sorguyu kullanabilirsiniz.

Adsız dedi ki...

SELECT TOP 100 PERCENT

cari_kod AS [Cari Kodu]

,ISNULL(cari_unvan1,'') AS [Cari Ünvanı]

,cari_muh_kod AS [Cari Muhasebe Kodu]

,CASE WHEN muh_hesap_kod IS NULL THEN 'Yok' ELSE 'Var' END AS [Muhasebe Hesap Kodu]

,ISNULL(muh_hesap_isim1,'') AS [Muhasebe Hesap Ünvanı]

,ISNULL(SUM(dbo.fn_CariHesapAnaDovizBakiye('',0,cari_kod,'','',NULL,NULL,NULL,0)),'') AS [Cari Bakiye]

,ISNULL(SUM(dbo.fn_muhbakiye(muh_hesap_kod, dbo.fn_GetAktifFirma(), dbo.fn_GetAktifMaliYil(), 0)),'') AS [Muhasebe Bakiye]

FROM dbo.CARI_HESAPLAR WITH(NOLOCK)

FULL OUTER JOIN dbo.MUHASEBE_HESAP_PLANI WITH(NOLOCK)

ON (muh_hesap_kod=cari_muh_kod)

WHERE cari_muh_kod <> ''

GROUP BY cari_kod, cari_unvan1, cari_muh_kod, muh_hesap_kod, muh_hesap_isim1



bu sorguya tarih sorgusu nasıl ekleriz. tarihleri biz girmek istiyoruz.
Ayrıca tablo yönetimi gibi nasıl kullanabiliriz yani cari kodda iken hareket detaylarına nasıl girebiliriz.

Sizin sorguyu sql de çalıştırdım ama bir sonuç çıkmadı.

SELECT * FROM dbo.fn_CariMuhasebeBakiyeKontrol(?T1,?T2,?K1)

nerde kullanacağımı bilemedim.

Orhan ÖCAL dedi ki...

Merhaba,
Yazmış olduğum ilk yorumları kontrol ederseniz istediğiniz şekilde çalışan tarihleri sizin vereceğiniz bir sorgu bulunmaktardır.

Yönetim ekranları gibi çalışmaz. Yanlızca raporlama amaçlıdır.