Tahsilat Raporunda Kapama Tarihi Ve Erken&Geç Tahsilat SQL Sorgusu

Gönderen Konu: Tahsilat Raporunda Kapama Tarihi Ve Erken&Geç Tahsilat SQL Sorgusu  (Okunma sayısı 1033 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı huseyinnurcin

  • Yeni Kullanıcı
  • *
  • Karma: 0
  • Tembellerin Çalışma Günü Yarındır
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

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Bu konu son bir kaç ay için 2-3 defa işlendi , yok açıyorum SQL query analyzeri yeniden yazacagım sizin için ,yinemi aynı şey diye bir uyarı alıyorum :)

Çevrimdışı huseyinnurcin

  • Yeni Kullanıcı
  • *
  • Karma: 0
  • Tembellerin Çalışma Günü Yarındır
Baktım bulamadım vallahi yoksa uğraştırmazdım :)
yada arama kelimeleri konusunda yanlış aratıyorum Bence tam net bir sorgu yapalım herkes yararlansın :)

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Crosref ile kapanan referansdan PROCDATE alanı kapama tarihi ,PAYPLANS tablosu ile Ödeme Planı Açıklaması ,PAYLINES ilede Ödeme Planı satırlarına ulaşabilirsiniz .

Çevrimdışı huseyinnurcin

  • Yeni Kullanıcı
  • *
  • Karma: 0
  • Tembellerin Çalışma Günü Yarındır
Deniyorum hemen

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
http://s4.dosya.tc/server/2rwcDy/LogoFatura_zleme.xls.html
BUNU BİR DENE

Çevrimdışı huseyinnurcin

  • Yeni Kullanıcı
  • *
  • Karma: 0
  • Tembellerin Çalışma Günü Yarındır
Merhaba Halis Batmaz
Güzel Paylaşım.Bu dosyanın arka planındaki kodlar işer yarar.Benim sistem web tabanlı bir sistem.
Benim için güzel bir örnek.Buna Benzer web tabanlı versiyonunu yaparım.

Çevrimdışı huseyinnurcin

  • Yeni Kullanıcı
  • *
  • Karma: 0
  • Tembellerin Çalışma Günü Yarındır
Merhaba Birol
Dediğin yöntem oldu.Ben bu sorguya Çek ile ödenenleri joın yapamadım.Fakat Ayrı bir view da çek ile ödenen leri fatura numarasıyla aldım.
Daha sonra iki sorguyu Fatura numarası üzerinden left outer joın yaptım.Şu an oldu.Birkaç sonuca baktım doğru.
Tümünü Test Etmedim daha sonuçları ama sanırım doğru  dönüyor.

Çevrimdışı huseyinnurcin

  • Yeni Kullanıcı
  • *
  • Karma: 0
  • Tembellerin Çalışma Günü Yarındır
Bu arada PAYPLANS ve PAYLINES tablolarının hangi alanları
Yukarıdakı sorguya Joın edebilirim. Veritabanı bağlantıları olan excel dosyasında joın edilecek alan yokmuş gibi duruyor