USP_DATAFORMTEMPLATE_VIEW_RESERVATION_FINALPAYMENT

The load procedure used by the view dataform template "Reservation Final Payment Due Date 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.
@FINALPAYMENTDUEDATE date INOUT Due date
@FINALPAYMENTPASTDUE bit INOUT FINALPAYMENTPASTDUE
@FINALPAYMENTRECEIVED bit INOUT FINALPAYMENTRECEIVED
@FINALPAYMENTDATE date INOUT Received
@RESERVATIONTOTAL money INOUT Total
@AMOUNTDUE money INOUT Balance
@DAYSPASTDUE int INOUT Days past due
@ORDERBALANCESENT bit INOUT ORDERBALANCESENT
@ORDERBALANCESENTDATE date INOUT Sent

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_RESERVATION_FINALPAYMENT
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @FINALPAYMENTDUEDATE date = null output,
    @FINALPAYMENTPASTDUE bit = null output,
    @FINALPAYMENTRECEIVED bit = null output,
    @FINALPAYMENTDATE date = null output,
    @RESERVATIONTOTAL money = null output,
    @AMOUNTDUE money = null output,
    @DAYSPASTDUE integer = null output,
    @ORDERBALANCESENT bit = null output,
    @ORDERBALANCESENTDATE date = null output
)
as
    set nocount on;

    declare @DEPOSIT money;
    declare @CURRENTDATE date;
    set @CURRENTDATE = getdate();

    set @DATALOADED = 0;

    select
        @DATALOADED = 1,
        @FINALPAYMENTDUEDATE = RESERVATION.FINALDUEDATE,
        @DEPOSIT = case RESERVATION.DEPOSITREQUIRED when 1 then RESERVATION.DEPOSITAMOUNT else 0 end,
        @RESERVATIONTOTAL = TOTALS.TOTAL,
        @AMOUNTDUE = TOTALS.BALANCE,
        @ORDERBALANCESENT = [RESERVATION].[ORDERBALANCESENT]
    from
        dbo.[RESERVATION]
    outer apply
        dbo.UFN_SALESORDER_TOTALS(RESERVATION.ID) as TOTALS
    where
        RESERVATION.ID = @ID

    select top 1 @ORDERBALANCESENTDATE = [STATUSDATE]
    from dbo.[RESERVATIONSTATUSHISTORY] 
    where 
        [RESERVATIONID] = @ID and
        [STATUSCODE] = 12
    order by [STATUSDATE] desc

    set @FINALPAYMENTPASTDUE = dbo.UFN_RESERVATION_FINALPAYMENTPASTDUE(@ID, @CURRENTDATE)

    set @DAYSPASTDUE = datediff(day, @FINALPAYMENTDUEDATE, @CURRENTDATE)

    select top 1 @FINALPAYMENTDATE = [REVENUE].[DATE]
    from dbo.[REVENUE]
    inner join dbo.[SALESORDERPAYMENT]
        on [REVENUE].[ID] = [SALESORDERPAYMENT].[PAYMENTID]
    where [SALESORDERPAYMENT].[SALESORDERID] = @ID
    order by [REVENUE].[DATE] desc

    set @FINALPAYMENTRECEIVED = 0
    if @AMOUNTDUE <= 0 and @FINALPAYMENTDATE is not null
        set @FINALPAYMENTRECEIVED = 1

    return 0;