Forum

Logo Cari Hesaplard...
 
Bildirimler
Hepsini Temizle

Logo Cari Hesaplarda Yürüyen Bakiye

4 Yazılar
2 Üyeler
0 Likes
2,768 Görüntüleme
Vedat OZER
(@vedatozer_2)
Gönderiler: 6
Active Member
Konu başlatıcı
 

Selamlar,

Caride yürüyen bakiye veren kullanıcı tanımlı fonksiyonu.

 

Kullanım Şekli : SELECT * FROM  [dbo].[Carı_Bakıye_006] ('01.01.2018','31.12.2018','120.07.008')
CREATE FUNCTION [dbo].[Carı_Bakıye_006] (@TARIH1 VARCHAR(12), @TARIH2 VARCHAR(12), @KODU VARCHAR(30)) RETURNS @Report TABLE ( ID INT NOT NULL PRIMARY KEY, ADI VARCHAR(300) COLLATE TURKISH_CI_AS, KODU VARCHAR(300) COLLATE TURKISH_CI_AS, FISTUR VARCHAR(150), TARIH DATETIME , BELGE VARCHAR(150), ACIKLAMA VARCHAR(150), BORC FLOAT, ALACAK FLOAT, BAKIYE FLOAT, BA VARCHAR(4) ) AS BEGIN DECLARE @COUNTER INT DECLARE @ID INT DECLARE @TARIH VARCHAR(12) DECLARE @BORC FLOAT DECLARE @ALACAK FLOAT DECLARE @BAKIYE FLOAT DECLARE @FISTUR VARCHAR(150) DECLARE @ADI VARCHAR(150) DECLARE @BELGE VARCHAR(150) DECLARE @ACIKLAMA VARCHAR(150) DECLARE @BA VARCHAR(4) SET @ID = 0 SET @BAKIYE = 0 SET @TARIH1 = CONVERT(DATETIME,@TARIH1,104) SET @TARIH2 = CONVERT(DATETIME,@TARIH2,104) DECLARE curCARI CURSOR LOCAL FAST_FORWARD FOR SELECT * FROM ( SELECT '' ADI,'' KODU,'' FISTUR,NULL TARIH,'Devir' BELGE,'' ACIKLAMA,SUM(CASE WHEN SIGN=0 THEN AMOUNT ELSE 0 END) BORC,SUM(CASE WHEN SIGN=1 THEN AMOUNT ELSE 0 END)ALACAK,'' BA FROM LG_006_01_CLFLINE AS HAREKET LEFT OUTER JOIN LG_006_CLCARD AS KART ON HAREKET.CLIENTREF=KART.LOGICALREF where HAREKET.CANCELLED=0 AND HAREKET.PAIDINCASH=0 AND KART.CODE=@KODU AND HAREKET.DATE_< @TARIH1 GROUP BY KART.CODE UNION all SELECT KART.DEFINITION_ ADI , KART.CODE KODU, FISTUR=case WHEN HAREKET.TRCODE=1 THEN 'Nakit Tahsilat' WHEN HAREKET.TRCODE=2 THEN 'Nakit Ödeme' WHEN HAREKET.TRCODE=3 THEN 'Borç Dekontu' WHEN HAREKET.TRCODE=4 THEN 'Alacak Dekontu' WHEN HAREKET.TRCODE=5 THEN 'Virman İşlemi' WHEN HAREKET.TRCODE=6 THEN 'Kur Farkı İşlemi' WHEN HAREKET.TRCODE=12 THEN 'Özel İşlem' WHEN HAREKET.TRCODE=14 THEN 'Açılış Fişi' WHEN HAREKET.TRCODE=20 THEN 'Gelen Havaleler' WHEN HAREKET.TRCODE=21 THEN 'Gönderilen Havaleler' WHEN HAREKET.TRCODE=31 THEN 'Mal Alım Faturası' WHEN HAREKET.TRCODE=32 THEN 'Perakende Satış İade Faturası' WHEN HAREKET.TRCODE=33 THEN 'Toptan Satış İade Faturası' WHEN HAREKET.TRCODE=34 THEN 'Alınan Hizmet Faturası' WHEN HAREKET.TRCODE=35 THEN 'Alınan Proforma Faturası' WHEN HAREKET.TRCODE=36 THEN 'Alım İade Faturası' WHEN HAREKET.TRCODE=37 THEN 'Perakende Satış Faturası' WHEN HAREKET.TRCODE=38 THEN 'Toptan Satış Faturası' WHEN HAREKET.TRCODE=39 THEN 'Verilen Hizmet Faturası' WHEN HAREKET.TRCODE=40 THEN 'Verilen Proforma Faturası' WHEN HAREKET.TRCODE=41 THEN 'Verilen Vade Farkı Faturası' WHEN HAREKET.TRCODE=42 THEN 'Alınan Vade Farkı Faturası' WHEN HAREKET.TRCODE=43 THEN 'Alınan Fiyat Farkı Faturası' WHEN HAREKET.TRCODE=44 THEN 'Verilen Fiyat Farkı Faturası' WHEN HAREKET.TRCODE=45 THEN 'Verilen Serbest Meslek Makbuzu' WHEN HAREKET.TRCODE=46 THEN 'Alınan Serbest Meslek Makbuzu' WHEN HAREKET.TRCODE=56 THEN 'Müstahsil Makbuzu' WHEN HAREKET.TRCODE=70 THEN 'Kredi Kartı Fişi' WHEN HAREKET.TRCODE=71 THEN 'Kredi Kartı Fişi İade' WHEN HAREKET.TRCODE=72 THEN 'Firma Kredi Kartı Fişi' WHEN HAREKET.TRCODE=73 THEN 'Firma Kredi Kartı Fişi İade' WHEN HAREKET.TRCODE=61 THEN 'Çek Girişi' WHEN HAREKET.TRCODE=62 THEN 'Senet Girişi' WHEN HAREKET.TRCODE=63 THEN 'Çek Çıkış Cari Hesaba' WHEN HAREKET.TRCODE=64 THEN 'Senet Çıkış Cari Hesaba' WHEN HAREKET.TRCODE=75 THEN 'Özel Dekont' end, HAREKET.DATE_ TARIH, HAREKET.DOCODE BELGE, HAREKET.LINEEXP ACIKLAMA, CASE WHEN SIGN=0 THEN AMOUNT ELSE 0 END BORC, CASE WHEN SIGN=1 THEN AMOUNT ELSE 0 END ALACAK,'' as ba FROM LG_006_01_CLFLINE AS HAREKET LEFT OUTER JOIN LG_006_CLCARD AS KART ON HAREKET.CLIENTREF=KART.LOGICALREF where HAREKET.CANCELLED=0 AND HAREKET.PAIDINCASH=0 AND KART.CODE=@KODU AND CONVERT(DATETIME,HAREKET.DATE_,104)>= @TARIH1 AND CONVERT(DATETIME,HAREKET.DATE_,104)<= @TARIH2 ) AS TMP ORDER BY TARIH OPEN curCARI FETCH NEXT FROM curCARI INTO @ADI,@KODU,@BELGE,@ACIKLAMA,@FISTUR, @TARIH, @BORC, @ALACAK,@BA WHILE @@FETCH_STATUS = 0 BEGIN SET @ID = @ID + 1 SET @BAKIYE = round(@BAKIYE + @BORC - @ALACAK ,2) SET @BA = CASE WHEN round(@BAKIYE ,2)>0 THEN '(B)' ELSE '(A)' END INSERT @Report VALUES (@ID, @ADI,@KODU,@BELGE,@ACIKLAMA,@FISTUR, @TARIH, @BORC, @ALACAK, @BAKIYE,@BA) FETCH NEXT FROM curCARI INTO @ADI,@KODU,@BELGE,@ACIKLAMA,@FISTUR, @TARIH, @BORC, @ALACAK,@BA END CLOSE curCARI DEALLOCATE curCARI RETURN END

[email protected]

 
Gönderildi : 17/02/2019 11:55

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 32993
Illustrious Member Yönetici
 

Bilgi için teşekkürler.

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 17/02/2019 21:22

Vedat OZER
(@vedatozer_2)
Gönderiler: 6
Active Member
Konu başlatıcı
 

Rica ederim

Sanırım yanlış yere acmisim ,ilginiz için teşekkür ederim

[email protected]

 
Gönderildi : 17/02/2019 21:34

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 32993
Illustrious Member Yönetici
 

Sorun yok, portalda yenisiniz, olur böyle şeyler.

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 18/02/2019 01:02

Paylaş: