USP_DATALIST_DISBURSEMENTPROCESS_EXCLUDEDTRANSACTIONS
Displays excluded transactions for a specific disbursement process.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DISBURSEMENTPROCESSID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_DISBURSEMENTPROCESS_EXCLUDEDTRANSACTIONS (
@DISBURSEMENTPROCESSID uniqueidentifier
)
as
set nocount on;
declare @FILTEREDTRANSACTIONS table (
TRANSACTIONID uniqueidentifier
, SCHEDULEID uniqueidentifier
, [STATUS] varchar(1000)
, [STATUSCODE] tinyint
);
insert into @FILTEREDTRANSACTIONS (
TRANSACTIONID
,SCHEDULEID
,STATUS
,STATUSCODE
)
exec dbo.USP_DISBURSEMENTPROCESS_GETFILTEREDSCHEDULES @DISBURSEMENTPROCESSID;
-- Transactions that match the filter but we won't pay
select
FTS.ID [ID]
,C.NAME VENDORNAME
,case when len(FT.USERDEFINEDID) = 0
then ''
else FT.USERDEFINEDID + ' '
end +
case
when CM.ID is null and I.ID is not null then 'Invoice: '
when I.ID is null and CM.ID is not null then 'Credit memo: '
else ''
end +
convert(varchar(10), FT.[DATE], 101)
as [TRANSACTIONNUMBER]
,case
when I.ID is null and CM.ID is not null then -FTS.AMOUNT
when CM.ID is null and I.ID is not null then FTS.AMOUNT
else null
end AMOUNT
,case
when FTDISC.FINANCIALTRANSACTIONSCHEDULEID is null then 0
else I.DISCOUNTAMOUNT
end DISCOUNTAMOUNT -- When a transaction is excluded we change the FTA amounts to zero so to get the discount amount we have to get it from the invoice (remember that you can only have 1 discount FTA per invoice).
,case
when FTS.AMOUNT = FT.TRANSACTIONAMOUNT then
case
when FTDISC.FINANCIALTRANSACTIONSCHEDULEID is null then FTS.AMOUNT
else FTS.AMOUNT - coalesce(I.DISCOUNTAMOUNT, 0)
end
else FTS.AMOUNT
end NETAMOUNT -- When a transaction is excluded we change the FTA amounts to zero so to get the net amount we have to get it from the invoice (remember that you can only have 1 discount FTA per invoice).
,FTS.DUEDATE DUEDATE
,T.STATUS
,T.STATUSCODE
from
@FILTEREDTRANSACTIONS as T
inner join dbo.FINANCIALTRANSACTIONSCHEDULE FTS on T.SCHEDULEID = FTS.ID and FTS.DELETED = 0
inner join dbo.FINANCIALTRANSACTION FT on FTS.FINANCIALTRANSACTIONID = FT.ID
inner join dbo.CONSTITUENT as C on FT.CONSTITUENTID = C.ID
left outer join
(
select
FTA.FINANCIALTRANSACTIONSCHEDULEID
from dbo.FINANCIALTRANSACTIONAPPLICATION FTA
where FTA.TYPECODE = 1
) as FTDISC on FTS.ID = FTDISC.FINANCIALTRANSACTIONSCHEDULEID
left outer join dbo.INVOICE as I on FT.ID = I.ID
left outer join dbo.CREDITMEMO as CM on FT.ID = CM.ID
where not T.STATUS is null