/*
SELECT CARI_KODU, CARI_ADI, TARIH, FIS_TUR,
OZEL_KOD, BELGE, ACIKLAMA, BORC,
ALACAK, EKLEME_TARIH, EKLEYEN, DEGISTIREN_TARIH, DEGISTIREN,
0.00 TUTAR
FROM [dbo].[BM_Fnc_133_CARIEKSTRE]('00000264615', '01.01.2013', '12.31.2019')
UNION ALL
SELECT '','','','','','','',0,0,'','','','TOPLAM:',
CONVERT(DECIMAL(38,2),SUM(BORC-ALACAK)) FROM
[dbo].[BM_Fnc_133_CARIEKSTRE]('00000264615','01.01.2013','12.31.2019')
*/
USE [TURKIYE]
GO
/****** Object: UserDefinedFunction [dbo].[fn_2017_ogrenci_acikhesap] Script Date: 18.12.2019 13:48:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[BM_Fnc_133_CARIEKSTRE](
@CARIKOD VARCHAR(17),
@TARIH_ILK DATETIME,
@TARIH_SON DATETIME
)
RETURNS TABLE
AS
RETURN
(
SELECT * FROM (
SELECT
CARI_KODU,
CARI_ADI,
TARIH,
FIS_TUR,
OZEL_KOD,
BELGE,
ACIKLAMA,
BORC,
ALACAK,EKLEME_TARIH,EKLEYEN,DEGISTIREN_TARIH,DEGISTIREN
FROM (
SELECT
MAX(CLNTC.CODE) CARI_KODU,
MAX(CLNTC.DEFINITION_) CARI_ADI ,
NULL TARIH,
'-' FIS_TUR,
'-' OZEL_KOD,
'-' BELGE,
'Devir Eden Bakiye' ACIKLAMA,
ISNULL(sum(ROUND((1-CTRNS.SIGN)*AMOUNT,2)),0) BORC,
ISNULL(sum(ROUND(CTRNS.SIGN*AMOUNT,2)),0) ALACAK,null EKLEME_TARIH,'-' EKLEYEN,null DEGISTIREN_TARIH,'-' DEGISTIREN
FROM LG_133_CLCARD CLNTC LEFT OUTER JOIN
LG_133_01_CLFLINE CTRNS ON (CTRNS.CLIENTREF = CLNTC.LOGICALREF )WHERE CTRNS.CANCELLED=0 AND CTRNS.PAIDINCASH=0 AND CLNTC.CODE=@CARIKOD AND CTRNS.DATE_< CONVERT(DATETIME,@TARIH_ILK,104) ) AS T
UNION ALL
SELECT * FROM (
SELECT
CLNTC.CODE CARI_KODU ,CLNTC.DEFINITION_ CARI_ADI ,
CONVERT(datetime, CTRNS.DATE_, 104)TARIH,
case WHEN CTRNS.TRCODE=1 THEN 'Nakit Tahsilat'
WHEN CTRNS.TRCODE=2 THEN 'Nakit Ödeme'
WHEN CTRNS.TRCODE=3 THEN 'Borç Dekontu'
WHEN CTRNS.TRCODE=4 THEN 'Alacak Dekontu'
WHEN CTRNS.TRCODE=5 THEN 'Virman İşlemi'
WHEN CTRNS.TRCODE=6 THEN 'Kur Farkı İşlemi'
WHEN CTRNS.TRCODE=12 THEN 'Özel İşlem'
WHEN CTRNS.TRCODE=14 THEN 'Açılış Fişi'
WHEN CTRNS.TRCODE=20 THEN 'Gelen Havaleler'
WHEN CTRNS.TRCODE=21 THEN 'Gönderilen Havaleler'
WHEN CTRNS.TRCODE=31 THEN 'Mal Alım Faturası'
WHEN CTRNS.TRCODE=32 THEN 'Perakende Satış İade Faturası'
WHEN CTRNS.TRCODE=33 THEN 'Toptan Satış İade Faturası'
WHEN CTRNS.TRCODE=34 THEN 'Alınan Hizmet Faturası'
WHEN CTRNS.TRCODE=35 THEN 'Alınan Proforma Faturası'
WHEN CTRNS.TRCODE=36 THEN 'Alım İade Faturası'
WHEN CTRNS.TRCODE=37 THEN 'Perakende Satış Faturası'
WHEN CTRNS.TRCODE=38 THEN 'Toptan Satış Faturası'
WHEN CTRNS.TRCODE=39 THEN 'Verilen Hizmet Faturası'
WHEN CTRNS.TRCODE=40 THEN 'Verilen Proforma Faturası'
WHEN CTRNS.TRCODE=41 THEN 'Verilen Vade Farkı Faturası'
WHEN CTRNS.TRCODE=42 THEN 'Alınan Vade Farkı Faturası'
WHEN CTRNS.TRCODE=43 THEN 'Alınan Fiyat Farkı Faturası'
WHEN CTRNS.TRCODE=44 THEN 'Verilen Fiyat Farkı Faturası'
WHEN CTRNS.TRCODE=45 THEN 'Verilen Serbest Meslek Makbuzu'
WHEN CTRNS.TRCODE=46 THEN 'Alınan Serbest Meslek Makbuzu'
WHEN CTRNS.TRCODE=56 THEN 'Müstahsil Makbuzu'
WHEN CTRNS.TRCODE=70 THEN 'Kredi Kartı Fişi'
WHEN CTRNS.TRCODE=71 THEN 'Kredi Kartı Fişi İade'
WHEN CTRNS.TRCODE=72 THEN 'Firma Kredi Kartı Fişi'
WHEN CTRNS.TRCODE=73 THEN 'Firma Kredi Kartı Fişi İade'
WHEN CTRNS.TRCODE=81 THEN 'Satış Siparişi'
WHEN CTRNS.TRCODE=61 THEN 'Çek Girişi'
WHEN CTRNS.TRCODE=62 THEN 'Senet Girişi'
WHEN CTRNS.TRCODE=63 THEN 'Çek Çıkış Cari Hesaba'
WHEN CTRNS.TRCODE=64 THEN 'Senet Çıkış Cari Hesaba'
WHEN CTRNS.TRCODE=75 THEN 'Özel Dekont'
end as FIS_TUR,
CTRNS.DOCODE OZEL_KOD,
CTRNS.SPECODE AS BELGE,
CTRNS.LINEEXP AS ACIKLAMA,
ISNULL(ROUND((1-CTRNS.SIGN)*AMOUNT,2),0) AS BORC,
ISNULL(ROUND(CTRNS.SIGN*AMOUNT,2),0) AS ALACAK,
CONVERT(DATETIME,CTRNS.CAPIBLOCK_CREADEDDATE,104) AS EKLEME_TARIH,
EKLEYEN.NAME EKLEYEN,
CONVERT(DATETIME,CTRNS.CAPIBLOCK_MODIFIEDDATE,104) AS DEGISTIREN_TARIH,
DEGISTIREN.NAME DEGISTIREN
FROM
LG_133_01_CLFLINE CTRNS LEFT OUTER JOIN
LG_133_CLCARD CLNTC ON (CTRNS.CLIENTREF = CLNTC.LOGICALREF)
LEFT OUTER JOIN L_CAPIUSER EKLEYEN ON EKLEYEN.NR=CTRNS.CAPIBLOCK_CREATEDBY
LEFT OUTER JOIN L_CAPIUSER DEGISTIREN ON DEGISTIREN.NR=CTRNS.CAPIBLOCK_MODIFIEDBY
WHERE CTRNS.CANCELLED=0 AND CTRNS.PAIDINCASH=0 AND CLNTC.CODE=@CARIKOD AND CTRNS.DATE_ BETWEEN CONVERT(DATETIME,@TARIH_ILK,104) AND CONVERT(DATETIME,@TARIH_SON,104)) VEDAT_OZER
--ORDER BY CARI_KODU,TARIH
) AS EKSTRE
)
;
cari hesap ekstresin de dövizli olarak ( tl, usd, euro ayrı ayrı sütun oluşturdum) her işlem sonrasında yürüyerek oluşan, cari hesap Bakiyesini satır sonuna almaya çalışıyorum.
ama tanımlı alan için oluşturduğum, aşağıdaki işlemler, her satırda aynı şekilde cari hesabın son bakiyesini veriyor.
IF([İşlem Dövizi]=”USD”,[İşlem Dövizi Bakiye],[İşlem Dövizi Bakiye]*0)
veya
_CLCALC([Firma No.],[Cari Hesap Kodu],DATE(01,01,YEAROF([Rapor Başlangıç Tarihi])),[Cari Hesap Hareket Tarihi],”CUR:[USD]”,3,3)
yardımcı olmanızı rica ediyorum.
LikeLike