USP_DATAFORMTEMPLATE_VIEW_CREDITPAGEDATA

The load procedure used by the view dataform template "Credit Refund Page Expression View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@TRANSACTIONDATE date INOUT Credit date
@CREDITTOTAL money INOUT Credit total
@CONSTITUENTNAME nvarchar(100) INOUT Constituent name
@CONSTITUENTID uniqueidentifier INOUT Constituent ID
@CREDITHASTICKET bit INOUT Has tickets
@CREDITTICKETTOTAL money INOUT Ticket total
@CREDITHASEVENTREGISTRATION bit INOUT Has event registrations
@CREDITEVENTREGISTRATIONTOTAL money INOUT Event registration total
@CREDITHASMEMBERSHIP bit INOUT Has memberships
@CREDITMEMBERSHIPTOTAL money INOUT Membership total
@CREDITHASADJUSTMENT bit INOUT Has adjustments
@CREDITADJUSTMENTTOTAL money INOUT Adjustment total
@HASINCOMPLETEREFUND bit INOUT Has a credit payment that has not been processed
@SALESORDERID uniqueidentifier INOUT Credit sales order ID
@CREDITHASSECURITYDEPOSIT bit INOUT Has security deposit
@CREDITHASMERCHANDISE bit INOUT Has merchandise
@CREDITMERCHANDISETOTAL money INOUT Merchandise total
@USERGRANTEDCREDITCARDRETRYOPERATION bit INOUT USERGRANTEDCREDITCARDRETRYOPERATION
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@CREDITHASDONATION bit INOUT Has donation
@CREDITDONATIONTOTAL money INOUT Donation total
@CREDITHASMEMBERSHIPADDON bit INOUT
@POSTSTATUSCODE tinyint INOUT
@CREDITHASUNEARNEDREVENUE bit INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_CREDITPAGEDATA
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @TRANSACTIONDATE date = null output,
    @CREDITTOTAL money = null output,
    @CONSTITUENTNAME nvarchar(100) = null output,
    @CONSTITUENTID uniqueidentifier = null output,
    @CREDITHASTICKET bit = null output,
    @CREDITTICKETTOTAL money = null output,
    @CREDITHASEVENTREGISTRATION bit = null output,
    @CREDITEVENTREGISTRATIONTOTAL money = null output,
    @CREDITHASMEMBERSHIP bit = null output,
    @CREDITMEMBERSHIPTOTAL money = null output,
    @CREDITHASADJUSTMENT bit = null output,
    @CREDITADJUSTMENTTOTAL money = null output,
    @HASINCOMPLETEREFUND bit = null output,
    @SALESORDERID uniqueidentifier = null output,
    @CREDITHASSECURITYDEPOSIT bit = null output,
    @CREDITHASMERCHANDISE bit = null output,
    @CREDITMERCHANDISETOTAL money = null output,
    @USERGRANTEDCREDITCARDRETRYOPERATION bit = null output,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @CREDITHASDONATION bit = null output,
    @CREDITDONATIONTOTAL money = null output,
    @CREDITHASMEMBERSHIPADDON bit = null output,
    @POSTSTATUSCODE tinyint = null output,
    @CREDITHASUNEARNEDREVENUE bit = null output
)
as
    set nocount on;

    set @DATALOADED = 0;

    -- Refund record data and totals by item type
    select 
        @DATALOADED = 1,
        @TRANSACTIONDATE = FT.DATE,
        @CREDITTOTAL = FT.TRANSACTIONAMOUNT,
        @POSTSTATUSCODE = FT.POSTSTATUSCODE,
        @CONSTITUENTNAME = dbo.UFN_CONSTITUENT_BUILDNAME(FT.CONSTITUENTID),
        @CONSTITUENTID = FT.CONSTITUENTID,
        @SALESORDERID = CREDIT_EXT.SALESORDERID,
        @CREDITTICKETTOTAL = dbo.UFN_CREDIT_REFUND_GETTICKETTOTAL2(FT.ID),
        @CREDITEVENTREGISTRATIONTOTAL = dbo.UFN_CREDIT_REFUND_GETEVENTREGISTRATIONTOTAL(FT.ID),
        @CREDITADJUSTMENTTOTAL = dbo.UFN_CREDIT_REFUND_GETADJUSTMENTTOTAL2(FT.ID),
        @CREDITMERCHANDISETOTAL = dbo.UFN_CREDIT_REFUND_GETMERCHANDISETOTAL2(FT.ID),
        @CREDITDONATIONTOTAL = dbo.UFN_CREDIT_REFUND_GETDONATIONTOTAL(FT.ID),
        @CREDITMEMBERSHIPTOTAL = dbo.UFN_CREDIT_REFUND_GETMEMBERSHIPANDADDONTOTAL(FT.ID)
    from dbo.FINANCIALTRANSACTION FT
    inner join dbo.CREDIT_EXT on CREDIT_EXT.ID = FT.ID
    where FT.ID = @ID;

    -- Existences by item type (don't check TOTAL>$0 because there may be an item refunded for $0)
    -- sorry about the pivot table; it's just rotating a list of counts by typecode into a single row.
    select
        @CREDITHASTICKET = case when [0] > 0 then 1 else 0 end,
        @CREDITHASMEMBERSHIP = case when [1] > 0 then 1 else 0 end,
        @CREDITHASDONATION = case when [2] > 0 then 1 else 0 end,
        @CREDITHASADJUSTMENT = case when [3]+[4] > 0 then 1 else 0 end,  -- fees and taxes
        @CREDITHASEVENTREGISTRATION = case when [6] > 0 then 1 else 0 end,
        @CREDITHASSECURITYDEPOSIT = case when [12] > 0 then 1 else 0 end,
        @CREDITHASMERCHANDISE = case when [14] > 0 then 1 else 0 end,
        @CREDITHASMEMBERSHIPADDON = case when [16] > 0 then 1 else 0 end,
        @CREDITHASUNEARNEDREVENUE = case when [255] > 0 then 1 else 0 end
    from
    (
        select EXT.ID, EXT.TYPECODE
        from dbo.CREDITITEM_EXT EXT
        inner join dbo.FINANCIALTRANSACTIONLINEITEM LI on EXT.ID = LI.ID
        where LI.FINANCIALTRANSACTIONID = @ID
            and LI.DELETEDON is null
    ) REFUNDEDITEMS
    pivot (
        count(REFUNDEDITEMS.ID)
        for TYPECODE in ([0], [1], [2], [3], [4], [6], [14], [12], [16], [255])
    ) REFUNDEDITEMSBYTYPE;

    if @DATALOADED = 1 begin
        set @USERGRANTEDCREDITCARDRETRYOPERATION = 0;

        if dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
            or exists (
                select * 
                from dbo.SYSTEMROLEPERM_RECORDOPERATION
                inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.SYSTEMROLEID = SYSTEMROLEPERM_RECORDOPERATION.SYSTEMROLEID
                where SYSTEMROLEPERM_RECORDOPERATION.RECORDOPERATIONCATALOGID = '7f1092b1-f365-4a65-8359-4c3959d83451'
                    and SYSTEMROLEAPPUSER.APPUSERID = @CURRENTAPPUSERID
            )
            set @USERGRANTEDCREDITCARDRETRYOPERATION = 1;
    end

    return 0;