Logo/Borc Yaslandirma/Borclar_Yaslandirma.sql
Uğur Özpınar 2080babf6f
Update Borclar_Yaslandirma.sql
Ocak ayı dışında Açılış ayı eklendi
2018-03-29 10:39:13 +03:00

192 lines
5.9 KiB
Transact-SQL
Raw Blame History

-- 320li hesaplar
create table #tempresults
(
[RECID] [int] NULL,
[SIGN] [smallint] NULL,
[DEBIT] [float] NULL,
[CREDIT] [float] NULL,
[DATE_] [datetime] NULL,
[LINEEXP] [varchar](251) NULL,
[ACCOUNTCODE] [varchar](101) NULL,
[INVOICENO] [varchar](17) NULL,
[CLOSED] [smallint] NULL,
[ACILIS] [float] NULL,
[OCAK] [float] NULL,
[SUBAT] [float] NULL,
[MART] [float] NULL,
[NISAN] [float] NULL,
[MAYIS] [float] NULL,
[HAZIRAN] [float] NULL,
[TEMMUZ] [float] NULL,
[AGUSTOS] [float] NULL,
[EYLUL] [float] NULL,
[EKIM] [float] NULL,
[KASIM] [float] NULL,
[ARALIK] [float] NULL,
[ACCOUNTNAME] [varchar](200) NULL
)
-- Tahsilatlar Temp Tablo Ba<42>lang<6E><67>
create table #tempdebits
(
[DEBIT] [float] NULL,
[ACCOUNTCODE] [varchar](101) NULL,
[REMAINING] [float] NULL
)
Insert Into #tempdebits
select SUM(DEBIT) as DEBIT,ACCOUNTCODE,SUM(DEBIT) as REMAINING
from LG_060_01_EMFLINE
WHERE CANCELLED<>1 AND [SIGN]=0 --AND ACCOUNTCODE='120.01.G01'
GROUP BY ACCOUNTCODE
-- Tahsilatlar Temp Tablo Biti<74>
DECLARE @_sign smallint;
DECLARE @_debit float;
DECLARE @_credit float;
DECLARE @_date datetime;
DECLARE @_lineexp varchar(251);
DECLARE @_accountcode varchar(101);
DECLARE @_invoiceno varchar(17);
DECLARE @_month smallint;
DECLARE @_trcode smallint;
DECLARE @_recid int;
DECLARE @_accountname varchar(200);
SET @_recid=0;
DECLARE MY_CURSOR CURSOR
LOCAL STATIC READ_ONLY FORWARD_ONLY
FOR
select [SIGN],DEBIT,CREDIT,DATE_ ,LINEEXP,ACCOUNTCODE,INVOICENO,MONTH_,ca.DEFINITION_,el.TRCODE
from LG_060_01_EMFLINE el
left join LG_060_EMUHACC ca ON ca.LOGICALREF=el.ACCOUNTREF
WHERE el.CANCELLED<>1
AND el.ACCOUNTCODE LIKE '32%'
--AND ACCOUNTCODE='320.01.I09'
--AND ACCOUNTCODE='120.01.A28'
--AND ACCOUNTCODE='320.01.A50'
ORDER BY DATE_ ASC
OPEN MY_CURSOR
FETCH NEXT FROM MY_CURSOR INTO @_sign,@_debit,@_credit,@_date,@_lineexp,@_accountcode,@_invoiceno,@_month,@_accountname,@_trcode
WHILE @@FETCH_STATUS = 0
BEGIN
SET @_recid = @_recid + 1;
DECLARE @_remaining FLOAT;
SET @_remaining=0;
DECLARE @_splitted smallint;
SET @_splitted=0;
SELECT @_remaining = ISNULL(REMAINING,0) FROM #tempdebits WHERE ACCOUNTCODE=@_accountcode
SET @_splitted=0
IF @_remaining=0 OR @_remaining IS NULL
INSERT INTO #tempresults VALUES(@_recid,@_sign,@_debit,@_credit,@_date,@_lineexp,@_accountcode,@_invoiceno,0,0,0,0,0,0,0,0,0,0,0,0,0,0,@_accountname)
ELSE
BEGIN
IF NOT @_remaining-@_credit<0 AND @_sign=1
BEGIN
--PRINT @_remaining-@_debit
UPDATE #tempdebits SET REMAINING=REMAINING-@_credit WHERE ACCOUNTCODE=@_accountcode
INSERT INTO #tempresults VALUES(@_recid,@_sign,@_debit,@_credit,@_date,@_lineexp,@_accountcode,@_invoiceno,1,0,0,0,0,0,0,0,0,0,0,0,0,0,@_accountname)
END
IF @_remaining-@_credit<0 AND @_sign=1 AND @_remaining<>0
BEGIN
UPDATE #tempdebits SET REMAINING=0 WHERE ACCOUNTCODE=@_accountcode
SET @_splitted=1
INSERT INTO #tempresults VALUES(@_recid,@_sign,@_debit,@_remaining,@_date,@_lineexp,@_accountcode,@_invoiceno,1,0,0,0,0,0,0,0,0,0,0,0,0,0,@_accountname)
SET @_recid = @_recid+1;
INSERT INTO #tempresults VALUES(@_recid,@_sign,@_debit,@_credit-@_remaining,@_date,'PAR<EFBFBD>ALANDI : '+@_lineexp,@_accountcode,@_invoiceno,0,0,0,0,0,0,0,0,0,0,0,0,0,0,@_accountname)
END
IF @_remaining=0 AND @_sign<>0
BEGIN
INSERT INTO #tempresults VALUES(@_recid,@_sign,@_debit,@_credit,@_date,@_lineexp,@_accountcode,@_invoiceno,0,0,0,0,0,0,0,0,0,0,0,0,0,0,@_accountname)
END
IF @_sign=0 --debit i<>lemi. de<64>i<EFBFBD>tirmeden ge<67>
BEGIN
INSERT INTO #tempresults VALUES(@_recid,@_sign,@_debit,@_credit,@_date,@_lineexp,@_accountcode,@_invoiceno,1,0,0,0,0,0,0,0,0,0,0,0,0,0,@_accountname)
END
END
IF ((@_remaining-@_credit<0 AND @_remaining<>0) OR @_remaining=0)AND @_sign=1
BEGIN
UPDATE #tempresults
SET
ACILIS = CASE WHEN @_trcode=1 THEN @_credit-@_remaining ELSE 0 END,
OCAK = CASE WHEN @_month=1 and @_trcode<>1 THEN @_credit-@_remaining ELSE 0 END,
SUBAT = CASE WHEN @_month=2 THEN @_credit-@_remaining ELSE 0 END,
MART = CASE WHEN @_month=3 THEN @_credit-@_remaining ELSE 0 END,
NISAN = CASE WHEN @_month=4 THEN @_credit-@_remaining ELSE 0 END,
MAYIS = CASE WHEN @_month=5 THEN @_credit-@_remaining ELSE 0 END,
HAZIRAN = CASE WHEN @_month=6 THEN @_credit-@_remaining ELSE 0 END,
TEMMUZ = CASE WHEN @_month=7 THEN @_credit-@_remaining ELSE 0 END,
AGUSTOS = CASE WHEN @_month=8 THEN @_credit-@_remaining ELSE 0 END,
EYLUL = CASE WHEN @_month=9 THEN @_credit-@_remaining ELSE 0 END,
EKIM = CASE WHEN @_month=10 THEN @_credit-@_remaining ELSE 0 END,
KASIM = CASE WHEN @_month=11 THEN @_credit-@_remaining ELSE 0 END,
ARALIK = CASE WHEN @_month=12 THEN @_credit-@_remaining ELSE 0 END
WHERE RECID=@_recid
END
FETCH NEXT FROM MY_CURSOR INTO @_sign,@_debit,@_credit,@_date,@_lineexp,@_accountcode,@_invoiceno,@_month,@_accountname,@_trcode
END
CLOSE MY_CURSOR
DEALLOCATE MY_CURSOR
-- <20>ZET
SELECT ACCOUNTCODE,ACCOUNTNAME
,SUM(DEBIT) AS BORÇ
,SUM(CREDIT) AS ALACAK
,SUM(DEBIT)-SUM(CREDIT) AS BAKIYE
,SUM(ACILIS) as Acilis
,SUM(OCAK) as Ocak
,SUM(SUBAT) as Subat
,SUM(MART) as Mart
,SUM(NISAN) as Nisan
,SUM(MAYIS) as Mayis
,SUM(HAZIRAN) as Haziran
,SUM(TEMMUZ) as Temmuz
,SUM(AGUSTOS) as Agustos
,SUM(EYLUL) as Eylul
,SUM(EKIM) as Ekim
,SUM(KASIM) as Kasim
,SUM(ARALIK) as Aralik
,((SUM(CREDIT)-SUM(DEBIT))-SUM(ACILIS)-SUM(OCAK)-SUM(SUBAT)-SUM(MART)-SUM(NISAN)-SUM(MAYIS)-SUM(HAZIRAN)-SUM(TEMMUZ)-SUM(AGUSTOS)
-SUM(EYLUL)-SUM(EKIM)-SUM(KASIM)-SUM(ARALIK)) AS SAGLAMA
from #tempresults
GROUP BY ACCOUNTCODE,ACCOUNTNAME
--DETAY
SELECT * FROM #tempresults
If(OBJECT_ID('tempdb..#tempdebits') Is Not Null)
Begin
Drop Table #tempdebits
End
If(OBJECT_ID('tempdb..#tempresults') Is Not Null)
Begin
Drop Table #tempresults
End