USP_DATAFORMTEMPLATE_VIEW_BILLINGINDIVIDUALSUMMARYOVERVIEW

The load procedure used by the view dataform template "Billing Individual Summary Overview Data Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@CONSTITUENTID uniqueidentifier INOUT CONSTITUENTID
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@BILLINGCYCLEID uniqueidentifier INOUT Billing for
@BILLINGSTARTDATE datetime INOUT BILLINGSTARTDATE
@BILLINGENDDATE datetime INOUT BILLINGENDDATE
@TOTALBILLED money INOUT Total billed
@BALANCE money INOUT Balance in full
@LASTPAYMENTID uniqueidentifier INOUT LASTPAYMENTID
@LASTPAYMENTAMOUNT nvarchar(100) INOUT Last payment
@LASTPAYMENTDATE datetime INOUT LASTPAYMENTDATE
@LASTPAYMENTPAYERID uniqueidentifier INOUT LASTPAYMENTPAYERID
@LASTPAYMENTPAYERNAME nvarchar(200) INOUT LASTPAYMENTPAYERNAME
@LASTPAYMENTPAYERNAMESTUDENT nvarchar(200) INOUT LASTPAYMENTPAYERNAMESTUDENT
@LASTPAYMENTMETHODCODE tinyint INOUT LASTPAYMENTMETHODCODE
@LASTPAYMENTMETHOD nvarchar(50) INOUT LASTPAYMENTMETHOD
@LASTPAYMENTMETHODINFO nvarchar(50) INOUT LASTPAYMENTMETHODINFO
@AGINGBUCKET1LABEL nvarchar(100) INOUT AGINGBUCKET1LABEL
@AGINGBUCKET1AMOUNT money INOUT AGINGBUCKET1AMOUNT
@AGINGBUCKET2LABEL nvarchar(100) INOUT AGINGBUCKET2LABEL
@AGINGBUCKET2AMOUNT money INOUT AGINGBUCKET2AMOUNT
@AGINGBUCKET3LABEL nvarchar(100) INOUT AGINGBUCKET3LABEL
@AGINGBUCKET3AMOUNT money INOUT AGINGBUCKET3AMOUNT
@AGINGBUCKET4LABEL nvarchar(100) INOUT AGINGBUCKET4LABEL
@AGINGBUCKET4AMOUNT money INOUT AGINGBUCKET4AMOUNT
@OPENCHARGESAMOUNT money INOUT OPENCHARGESAMOUNT
@OPENCHARGES xml INOUT OPENCHARGES
@OPENCHARGESINCLUDEPASTYEARS bit INOUT OPENCHARGESINCLUDEPASTYEARS
@OPENCHARGESINCLUDEFUTUREPAYMENTSCREDITS bit INOUT OPENCHARGESINCLUDEFUTUREPAYMENTSCREDITS
@PASTDUECHARGESAMOUNT money INOUT PASTDUECHARGESAMOUNT
@PASTDUECHARGES xml INOUT PASTDUECHARGES
@PASTDUECHARGESINCLUDEFUTUREPAYMENTSCREDITS bit INOUT PASTDUECHARGESINCLUDEFUTUREPAYMENTSCREDITS
@UNNAPLIEDPAYMENTSCREDITSEXIST bit INOUT UNNAPLIEDPAYMENTSCREDITSEXIST
@ACCOUNTINGMETHODCODE int INOUT ACCOUNTINGMETHODCODE

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_BILLINGINDIVIDUALSUMMARYOVERVIEW
                (
                    @ID uniqueidentifier,
                    @CONSTITUENTID uniqueidentifier = null output,
                    @DATALOADED bit = 0 output,
                    @BILLINGCYCLEID uniqueidentifier = null output,
                    @BILLINGSTARTDATE datetime = null output,
                    @BILLINGENDDATE datetime = null output,
                    @TOTALBILLED money = null output,
                    @BALANCE money = null output,
                    @LASTPAYMENTID uniqueidentifier = null output,
                    @LASTPAYMENTAMOUNT nvarchar(100) = null output,
                    @LASTPAYMENTDATE datetime = null output,
                    @LASTPAYMENTPAYERID uniqueidentifier = null output,
                    @LASTPAYMENTPAYERNAME nvarchar(200) = null output,
                    @LASTPAYMENTPAYERNAMESTUDENT nvarchar(200) = null output,
                    @LASTPAYMENTMETHODCODE tinyint = null output,
                    @LASTPAYMENTMETHOD nvarchar(50) = null output,
                    @LASTPAYMENTMETHODINFO nvarchar(50) = null output,
                    @AGINGBUCKET1LABEL nvarchar(100) = null output,
                    @AGINGBUCKET1AMOUNT money = null output,
                    @AGINGBUCKET2LABEL nvarchar(100) = null output,
                    @AGINGBUCKET2AMOUNT money = null output,
                    @AGINGBUCKET3LABEL nvarchar(100) = null output,
                    @AGINGBUCKET3AMOUNT money = null output,
                    @AGINGBUCKET4LABEL nvarchar(100) = null output,
                    @AGINGBUCKET4AMOUNT money = null output,
                    @OPENCHARGESAMOUNT money = null output,
                    @OPENCHARGES xml = null output,
                    @OPENCHARGESINCLUDEPASTYEARS bit = null output,
                    @OPENCHARGESINCLUDEFUTUREPAYMENTSCREDITS bit = null output,
                    @PASTDUECHARGESAMOUNT money = null output,
                    @PASTDUECHARGES xml = null output,
                    @PASTDUECHARGESINCLUDEFUTUREPAYMENTSCREDITS bit = null output,
                    @UNNAPLIEDPAYMENTSCREDITSEXIST bit = null output,
                    @ACCOUNTINGMETHODCODE int = null output
                )
                as
                    set nocount on;

                    set @DATALOADED = 0;

                    -- Get the basic information based on billing cycle ID

                    exec dbo.USP_BILLINGINDIVIDUALSUMMARYOVERVIEW @ID
                                                                    @BILLINGCYCLEID output,
                                                                    @BILLINGSTARTDATE output,
                                                                    @BILLINGENDDATE output,
                                                                    @TOTALBILLED output,
                                                                    @BALANCE output,
                                                                    @LASTPAYMENTID output,
                                                                    @LASTPAYMENTAMOUNT output,
                                                                    @LASTPAYMENTDATE output,
                                                                    @LASTPAYMENTPAYERID output,
                                                                    @LASTPAYMENTPAYERNAME output,
                                                                    @LASTPAYMENTPAYERNAMESTUDENT output,
                                                                    @LASTPAYMENTMETHODCODE output,
                                                                    @LASTPAYMENTMETHOD output,
                                                                    @LASTPAYMENTMETHODINFO output;

                    set @CONSTITUENTID = @ID;

                    -- Get the aging bucket information

                    declare @AGINGBUCKETS table
                    (
                        SEQUENCE int,
                        LABEL nvarchar(100),
                        AMOUNT money
                    );

                    insert into @AGINGBUCKETS
                        (SEQUENCE, LABEL, AMOUNT)
                    select SEQUENCE, LABEL, AMOUNT 
                    from dbo.UFN_BILLINGINDIVIDUALAGING(@ID, null);

                    select @AGINGBUCKET1LABEL = LABEL,
                            @AGINGBUCKET1AMOUNT = AMOUNT
                    from @AGINGBUCKETS
                    where SEQUENCE = 1;

                    select @AGINGBUCKET2LABEL = LABEL,
                            @AGINGBUCKET2AMOUNT = AMOUNT
                    from @AGINGBUCKETS
                    where SEQUENCE = 2;

                    select @AGINGBUCKET3LABEL = LABEL,
                            @AGINGBUCKET3AMOUNT = AMOUNT
                    from @AGINGBUCKETS
                    where SEQUENCE = 3;

                    select @AGINGBUCKET4LABEL = LABEL,
                            @AGINGBUCKET4AMOUNT = AMOUNT
                    from @AGINGBUCKETS
                    where SEQUENCE = 4;

                    -- Get open charge and past due charge information

                    select @DATALOADED = 1,
                           @OPENCHARGESAMOUNT = dbo.UFN_BILLINGBALANCEINDIVIDUAL(@ID, null, getdate()),
                           @OPENCHARGES = dbo.UFN_BILLINGINDIVIDUALOPENCHARGES_TOITEMLISTXML(@ID, null),
                           @PASTDUECHARGESAMOUNT = dbo.UFN_BILLINGPASTDUEBALANCEINDIVIDUAL(@ID, null, getdate()),
                           @PASTDUECHARGES = dbo.UFN_BILLINGINDIVIDUALPASTDUECHARGES_TOITEMLISTXML(@ID, null),
                           @ACCOUNTINGMETHODCODE = dbo.UFN_APPLICATIONRULES_GETACCOUNTINGMETHODCODE();

                    -- Setup to get the unapplied payment/credit amount

                    declare @UNAPPLIEDPAYMENTCREDITAMOUNT money;
                    set @UNAPPLIEDPAYMENTCREDITAMOUNT = dbo.UFN_BILLINGTRANSACTIONTYPETOTAL(105, @ID, null, getdate(), 1, 0, 0) + dbo.UFN_BILLINGTRANSACTIONTYPETOTAL(106, @ID, null, getdate(), 1, 0, 0);

                    -- Check if unapplied payments or credits exist

                    set @UNNAPLIEDPAYMENTSCREDITSEXIST = case when (@UNAPPLIEDPAYMENTCREDITAMOUNT > 0) then
                                                                1
                                                            else
                                                                0
                                                            end;

                    -- If the total of the past due charge balance plus unapplied payments is greater than the 

                    --  total of the open charges then the open charges must include future payments.

                    set @PASTDUECHARGESINCLUDEFUTUREPAYMENTSCREDITS = case when ((@PASTDUECHARGESAMOUNT + @UNAPPLIEDPAYMENTCREDITAMOUNT) > (select sum(isnull(PASTDUECHARGEAMOUNTS.AMOUNTREMAINING, 0))
                                                                                                                                            from (select T.c.value('(AMOUNTREMAINING)[1]','money') as AMOUNTREMAINING
                                                                                                                                                    from @PASTDUECHARGES.nodes('/PASTDUECHARGES/ITEM') T(c)) as PASTDUECHARGEAMOUNTS)) then
                                                                            1
                                                                        else
                                                                            0
                                                                        end;

                    -- If the past due charges include future payments and credits than the open charges must as well,

                    --   since any past due charges must also be open.

                    if (@PASTDUECHARGESINCLUDEFUTUREPAYMENTSCREDITS = 1)
                    begin
                        set @OPENCHARGESINCLUDEFUTUREPAYMENTSCREDITS = 1;
                    end
                    else
                    begin
                        -- If the past due charges do not contain future payments we will have to check the open charges.


                        -- If the total of the open charge balance plus unapplied payments is greater than the 

                        --  total of the open charges then the open charges must include future payments.                            

                        set @OPENCHARGESINCLUDEFUTUREPAYMENTSCREDITS = case when ((@OPENCHARGESAMOUNT + @UNAPPLIEDPAYMENTCREDITAMOUNT) > (select sum(isnull(OPENCHARGEAMOUNTS.AMOUNTREMAINING, 0))
                                                                                                                                            from (select T.c.value('(AMOUNTREMAINING)[1]','money') as AMOUNTREMAINING
                                                                                                                                                    from @OPENCHARGES.nodes('/OPENCHARGES/ITEM') T(c)) as OPENCHARGEAMOUNTS)) then
                                                                                1
                                                                            else
                                                                                0
                                                                            end;
                    end

                    -- Get the open charge min and max dates.

                    select @OPENCHARGESINCLUDEPASTYEARS = case when (not @BILLINGCYCLEID is null) and
                                                                        (@BILLINGCYCLEID != '00000000-0000-0000-0000-000000000000') and
                                                                        (@BILLINGCYCLEID != '00000000-0000-0000-0000-000000000001') and
                                                                        (exists (select OPENCHARGEDATES.DATE 
                                                                                from (select T.c.value('(DATE)[1]','datetime') as DATE
                                                                                        from @OPENCHARGES.nodes('/OPENCHARGES/ITEM') T(c)) as OPENCHARGEDATES
                                                                                where OPENCHARGEDATES.DATE < @BILLINGSTARTDATE
                                                                            )) then
                                                            1
                                                          else
                                                            0
                                                          end;



                    return 0;