Merhaba
Yapmak istediğim şey ;
Müşteriden Tahsil edilen faturanın Logoda Kapatılma tarihini getirmek.Yani bu fatura şu tarihde tahsil edildi kapandı.Tahsilat tarihini fatura vade tarihinden önce yaptıysa Erken tahsilat olmuştur ve bu müşteri sağlam müşteridir.
Ama Tahsilat çek ile yapıldıında sıkıntı yaşıyorum.Çünki Çekin vade tarihi (Bankada Bozulma Tarihi) faturanın vade tarihinden sonraya yazılmışsa ozaman erken tahsilat olmamalı.
Ayrı Ayrı SQL sorguları yaptım .Birbirine refarans ettim fatura numaraları üzerinden .Bunu Başka yolla nasıl yapabiliriz.
Web tabanlı bir sistem kurdum .Bu sistem üzerinden fianans departmanı takip edecek.
Aşağıdaki sorguya Çek olayını nasıl entegre edebilirim.Sorgu Bu haliyle Doğru sanırım:
SELECT
CLC.CODE AS Chesap_Kodu,
CLC.DEFINITION_ AS Cari,
INV.FICHENO AS Fat_No,
INV.DATE_ AS Fat_Tarih,
PAY.DATE_ AS Fat_VadeTarihi,
CASE WHEN PAY1.DATE_ IS NOT NULL THEN PAY1.DATE_ ELSE CONVERT(date,'2000-01-01 00:00:00.000') END AS FaturaKapamaTarihi,
PAY.SIGN,
ISNULL(SLSMAN.CODE, '') AS Pazarlamaci_Kodu,
ISNULL(SLSMAN.DEFINITION_, '') AS Pazarlamaci_Adi,
CASE INV.TRCODE WHEN 1 THEN 'Satınalma Fat' WHEN 2 THEN 'PerakendeStş İad Fat' WHEN 3 THEN 'Top. Stş İad Fat' WHEN 4 THEN 'Alınan Hizm.Fat' WHEN 5 THEN 'AlınanProfrma Fat' WHEN
6 THEN 'Satınalma İad. Fat' WHEN 7 THEN 'Satınalma İad. Fat' WHEN 8 THEN 'Top. Stş Fat' WHEN 9 THEN 'Verilen Hizm.Fat' WHEN 10 THEN 'Verilen Profrm.Fat' WHEN 13 THEN 'Satınalma Fiyat Farkı Fat'
WHEN 14 THEN 'Satış Fiyt Farkı Fat' WHEN 26 THEN 'Mustahsil Mak.' ELSE CAST(INV.TRCODE AS NVARCHAR) END AS Fat_Türü,
CASE INV.GENEXP1 WHEN '' THEN CLF.LINEEXP ELSE INV.GENEXP1 END AS ACIKLAMA,
SUM(CAST(ISNULL(CASE PAY.SIGN WHEN 0 THEN (CASE WHEN PAY.TRCURR IN (0, 160)
THEN PAY.TOTAL ELSE PAY.TOTAL * PAY.TRRATE END) ELSE 0 END, 0) AS decimal(18, 2))) AS BORÇ,
SUM(CAST(ISNULL(CASE PAY.SIGN WHEN 1 THEN (CASE WHEN PAY.TRCURR IN (0, 160)
THEN PAY.TOTAL ELSE PAY.TOTAL * PAY.TRRATE END) ELSE 0 END, 0) AS decimal(18, 2))) AS ALACAK,
SUM(CAST(PAY.TOTAL - PAY.PAID AS DECIMAL(18, 2)) * CASE PAY.SIGN WHEN 1 THEN - 1 ELSE 1 END) AS KALAN,
DIV.NAME AS İŞYERİ
FROM
SERVERMUHASEBE.FRM700.dbo.LG_700_01_CLFLINE AS CLF WITH (NOLOCK) INNER JOIN
SERVERMUHASEBE.FRM700.dbo.LG_700_01_INVOICE AS INV WITH (NOLOCK) ON CLF.SOURCEFREF = INV.LOGICALREF INNER JOIN
SERVERMUHASEBE.UNITY.dbo.L_CAPIDIV AS DIV WITH (NOLOCK) ON DIV.NR = INV.BRANCH AND DIV.FIRMNR = 700 LEFT OUTER JOIN
SERVERMUHASEBE.UNITY.dbo.LG_SLSMAN AS SLSMAN WITH (NOLOCK) ON INV.SALESMANREF = SLSMAN.LOGICALREF AND SLSMAN.FIRMNR = 700 INNER JOIN
SERVERMUHASEBE.FRM700.dbo.LG_700_CLCARD AS CLC WITH (NOLOCK) ON CLC.LOGICALREF = CLF.CLIENTREF INNER JOIN
SERVERMUHASEBE.FRM700.dbo.LG_700_01_PAYTRANS AS PAY WITH (NOLOCK) ON PAY.FICHEREF = INV.LOGICALREF LEFT OUTER JOIN
SERVERMUHASEBE.FRM700.dbo.LG_700_01_PAYTRANS AS PAY1 WITH (NOLOCK) ON PAY.CROSSREF=PAY1.LOGICALREF
WHERE
(CLF.MODULENR = 4)
AND (PAY.MODULENR = 4)
AND (INV.CANCELLED = 0)
AND (CLF.CANCELLED = 0)
AND (PAY.CANCELLED = 0)
AND INV.TRCODE=8--- 8 sadece toptan satış faturaları demek
AND PAY1.PAYMENTTYPE IN (1,2,4)--ÖDEME TÜRÜ SADECE 1 NAKİT, 2 ÇEK , 4 KREDİ KARTI
GROUP BY
CLC.CODE,
CLC.DEFINITION_,
INV.FICHENO,
INV.DATE_,
PAY.DATE_,
PAY.SIGN,
ISNULL(SLSMAN.CODE, ''),
ISNULL(SLSMAN.DEFINITION_, ''),
INV.TRCODE,
CASE INV.GENEXP1 WHEN '' THEN CLF.LINEEXP ELSE INV.GENEXP1 END,
DIV.NAME,
PAY.DATE_,
PAY1.DATE_ ,
PAY.SIGN