UFN_DISBURSEMENTTRANSACTIONS_TOITEMLISTXML

Converts Disbursement Transactions for a given Disbursement to xml.

Return

Return Type
xml

Parameters

Parameter Parameter Type Mode Description
@DISBURSEMENTID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_DISBURSEMENTTRANSACTIONS_TOITEMLISTXML(
  @DISBURSEMENTID uniqueidentifier
)
returns xml
with execute as caller
as begin
    return (
    select 
      FTA.ID
      ,case
        when FTA.AMOUNT = 0 then 0
        else 1
       end [INCLUDE]
      ,FTPAID.USERDEFINEDID  [NUMBER]
      ,FTPAID.TYPECODE
      ,FTPAID.[DATE] [TRANSACTIONDATE]
      ,FTS.DUEDATE [DUEDATE]
      ,case 
        when I.ID is not null then FTS.AMOUNT 
        else -FTS.AMOUNT 
       end [SCHEDULEDAMOUNT]
      ,FTDISC.POSSIBLEDISCOUNT [DISCOUNTAMOUNT]
      ,FTDISC.DISCOUNTAMOUNT [DISCOUNTTAKEN]
      ,case 
        when I.ID is not null then FTS.AMOUNT + coalesce(FTDISC.POSSIBLEDISCOUNT, 0)
        else -FTS.AMOUNT 
       end [NETAMOUNT]
      ,case 
        when I.ID is not null then FTA.AMOUNT
        else -FTA.AMOUNT
       end [AMOUNTTOPAY]
    from dbo.FINANCIALTRANSACTION as FT
      inner join dbo.CONSTITUENT as C on FT.CONSTITUENTID = C.ID
      inner join dbo.DISBURSEMENTPROCESSDISBURSEMENT as DPD on FT.ID = DPD.ID
      inner join dbo.FINANCIALTRANSACTIONAPPLICATION as FTA on FT.ID = FTA.FINANCIALTRANSACTIONID and FTA.TYPECODE = 0
      inner join dbo.FINANCIALTRANSACTIONSCHEDULE as FTS on FTA.FINANCIALTRANSACTIONSCHEDULEID = FTS.ID and FTS.DELETED = 0
      inner join dbo.FINANCIALTRANSACTION as FTPAID on FTS.FINANCIALTRANSACTIONID = FTPAID.ID
      left outer join dbo.INVOICE as I on FTPAID.ID = I.ID
      left outer join dbo.CREDITMEMO as CM on FTPAID.ID = CM.ID
            left outer join (
                select
                    FTA.FINANCIALTRANSACTIONSCHEDULEID
                    ,-FTA.AMOUNT [DISCOUNTAMOUNT]
                    ,-I.DISCOUNTAMOUNT [POSSIBLEDISCOUNT]
                from dbo.FINANCIALTRANSACTIONAPPLICATION FTA
                    inner join dbo.FINANCIALTRANSACTIONSCHEDULE FTS on FTA.FINANCIALTRANSACTIONSCHEDULEID = FTS.ID and FTS.DELETED = 0
                    inner join dbo.INVOICE I on FTS.FINANCIALTRANSACTIONID = I.ID
                    inner join dbo.DISBURSEMENTPROCESSDISBURSEMENT DPD on DPD.ID = FTA.FINANCIALTRANSACTIONID
                    inner join dbo.DISBURSEMENTPROCESS DP on DPD.DISBURSEMENTPROCESSID = DP.ID
                where FTA.TYPECODE = 1
                    and (I.DISCOUNTEXPIRATIONDATE is NULL or I.DISCOUNTEXPIRATIONDATE >= DP.DISCOUNTASOFDATE)
            ) as FTDISC on FTA.FINANCIALTRANSACTIONSCHEDULEID = FTDISC.FINANCIALTRANSACTIONSCHEDULEID
    where
      FT.TYPECODE = 255
      and FT.ID = @DISBURSEMENTID
    for xml raw('ITEM'),type,elements,root('DISBURSEMENT'),BINARY BASE64
  )
end