Fatura vade durum [TSQL]

LOGO

ÖMER ÇARNAÇAR

28.02.2018

0 Yorum


Merhabalar ,

Faydalı olur umarım.

 


EXECUTE USP_VADE_DURUM @FRM = N'017'
                     ,@DNM = N'01'

CREATE PROCEDURE [dbo].[USP_VADE_DURUM]@FRM NVARCHAR(3),@DNM NVARCHAR(3)
AS
    BEGIN


    DECLARE @SQL NVARCHAR(MAX)

    SET @SQL = N'

        SELECT  CLCARD.CODE ,
                CLCARD.DEFINITION_ ,
                CONVERT(DATE, INVOICE.DATE_) FaturaTarihi ,
                CONVERT(DATE, PAYTANS.DATE_) FaturaVadesi ,
                DATEDIFF(dd, INVOICE.DATE_, PAYTANS.DATE_) VadeGün ,
                DATEDIFF(dd, PAYTANS.DATE_, GETDATE()) KalanGün ,
                INVOICE.FICHENO FaturaNo ,
                ( CASE INVOICE.TRCODE
                    WHEN 8 THEN ''Satış Faturası''
                    WHEN 1 THEN ''Alım Faturası''
                    WHEN 3 THEN ''Satış İade Faturası''
                    WHEN 6 THEN ''Alım İade Faturası''
                    ELSE ''Diğer''
                  END ) FaturaTürü ,
                INVOICE.NETTOTAL FaturaTutarı ,
                SUM(PAYTANS.PAID) Kapanan ,
                ( INVOICE.NETTOTAL - SUM(PAYTANS.PAID) ) ÖdenmemisKalan,
                 ( INVOICE.NETTOTAL - SUM(PAYTANS.PAID) ) *1*DATEDIFF(dd, PAYTANS.DATE_, GETDATE()) Faiz
                
        FROM    LG_'+@FRM+'_CLCARD CLCARD
                INNER JOIN LG_'+@FRM+'_'+@DNM+'_PAYTRANS PAYTANS ON CLCARD.LOGICALREF = PAYTANS.CARDREF
                INNER JOIN LG_'+@FRM+'_'+@DNM+'_INVOICE INVOICE ON PAYTANS.FICHEREF = INVOICE.LOGICALREF
        WHERE   PAYTANS.MODULENR = 4
                AND PAYTANS.TRCODE IN ( 8 )
        GROUP BY CLCARD.LOGICALREF ,
                PAYTANS.DATE_ ,
                CLCARD.CODE ,
                INVOICE.DATE_ ,
                CLCARD.DEFINITION_ ,
                CONVERT(DATE, INVOICE.DATE_) ,
                CONVERT(DATE, PAYTANS.DATE_) ,
                INVOICE.FICHENO ,
                ( CASE INVOICE.TRCODE
                    WHEN 8 THEN ''Satış Faturası''
                    WHEN 1 THEN ''Alım Faturası''
                    WHEN 3 THEN ''Satış İade Faturası''
                    WHEN 6 THEN ''Alım İade Faturası''
                    ELSE ''Diğer''
                  END ) ,
                INVOICE.NETTOTAL
        HAVING  ROUND(( INVOICE.NETTOTAL - SUM(PAYTANS.PAID) ), 2) > 0
        ORDER BY INVOICE.FICHENO';
        EXEC(@SQL)
        PRINT(@SQL)
    END;    
 

Başlık Değer