Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Code Block
languagesql
 GO
 
 CREATE OR ALTER VIEW _as_AROverdueTransactions
 AS
 SELECT C.AccountTerms,T.IntervalValue,I.DueDate as InvNumDueDate
	,Calculated_IsOverdue = CASE 
			WHEN Outstanding <= 0 THEN 0
			WHEN (COALESCE(I.DueDate,'1900-01-01') > P.TxDate AND I.DueDate < GETDATE()) THEN 1 /*DUE Date more than inv date and less than today.*/
			WHEN (COALESCE(I.DueDate,'1900-01-01') <= P.TxDate AND DATEADD(day,T.IntervalValue,P.TxDate) < GETDATE()) THEN 1
			ELSE 0 END 
	,CalculatedDueDate = CASE WHEN (COALESCE(I.DueDate,'1900-01-01') > P.TxDate) THEN COALESCE(I.DueDate,'1900-01-01')
			WHEN (COALESCE(I.DueDate,'1900-01-01') <= P.TxDate) THEN DATEADD(day,T.IntervalValue,P.TxDate)
			ELSE P.TxDate END 
	,P.* 
	from PostAR P 
	LEFT JOIN Client C on P.AccountLink = C.DCLink
	--LEFT JOIN _etblTerms T ON C.iAgeingTermID = T.iTermID
	LEFT JOIN _as_ARAP_Terms_Unpivot T ON T.iTermID = C.iAgeingTermID AND C.AccountTerms = T.IntervalNumber 

	LEFT JOIN InvNum I on I.AutoIndex = P.InvNumKey
 WHERE P.Id IN ('OInv','Inv') 
	AND Outstanding > 0 /*handles debit only as well (for AR)*/


Overdue clients view:

Code Block
languagesql
title_as_AROverdueClients
CREATE VIEW _as_AROverdueClients
	AS
	SELECT C.DCLink, SUM(t.Outstanding) as OverdueAmount, IsOverdue = CASE WHEN SUM(t.Outstanding) > 1 THEN 1 ELSE 0 END FROM _as_AROverdueTransactions t
		LEFT JOIN Client C ON t.AccountLink = C.DCLink
		GROUP BY C.DCLink



With dependency on:

Include Page
SQL - _etblTerms - Unpivot _as_ARAP_Terms_Unpivot
SQL - _etblTerms - Unpivot _as_ARAP_Terms_Unpivot