UFN_BILLINGITEM_GETBILLINGITEMPRICE

Returns the billing item price

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@BILLINGITEMID uniqueidentifier IN
@CHARGEDATE date IN
@STUDENTID uniqueidentifier IN
@SCHOOLID uniqueidentifier IN
@GRADELEVELID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_BILLINGITEM_GETBILLINGITEMPRICE
(
    @BILLINGITEMID uniqueidentifier=null,
    @CHARGEDATE    date=null,
    @STUDENTID uniqueidentifier=null,
    @SCHOOLID uniqueidentifier=null,
    @GRADELEVELID uniqueidentifier=null
)
returns money
with execute as caller
as begin
    declare @PRICE money
    declare @TYPECODE tinyint

    if not @CHARGEDATE is null
    begin
        select @TYPECODE=PRICETYPECODE from dbo.BILLINGITEM where ID=@BILLINGITEMID

        if @TYPECODE=1
        begin
            select @PRICE=PRICE from dbo.BILLINGITEMPRICE where BILLINGITEMID=@BILLINGITEMID and (DATERANGETYPECODE=0 or (STARTDATE<=@CHARGEDATE and (ENDDATE>=@CHARGEDATE or ENDDATE is null)))
        end

        if @TYPECODE=2
        begin
            SELECT @PRICE=BIP.PRICE from dbo.BILLINGITEMDATES BID inner join dbo.BILLINGITEMPRICEBYGRADELEVEL BIP on BID.ID=BIP.BILLINGITEMDATESID 
            where BID.BILLINGITEMID=@BILLINGITEMID and (BID.DATERANGETYPECODE=0 or (BID.STARTDATE<=@CHARGEDATE and (BID.ENDDATE>=@CHARGEDATE or BID.ENDDATE is null))) and BIP.GRADELEVELID=@GRADELEVELID 
        end

        if @TYPECODE=3
        begin
            select @PRICE=BIP.PRICE 
            from 
                dbo.BILLINGITEMDATES BID 
            inner join dbo.BILLINGITEMPRICEBYSCHOOL BIP on BID.ID=BIP.BILLINGITEMDATESID 
            where (BID.BILLINGITEMID=@BILLINGITEMID) and 
                (BID.DATERANGETYPECODE=0 or (BID.STARTDATE<=@CHARGEDATE and 
                (BID.ENDDATE>=@CHARGEDATE or BID.ENDDATE is null))) and 
                (BIP.SCHOOLID=@SCHOOLID)
        end
    end
    return @PRICE 
end