UFN_BILLINGITEM_GETALLVALIDDATES

Get all dates in code history for a given billing item.

Return

Return Type
varchar(8000)

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


    CREATE function dbo.UFN_BILLINGITEM_GETALLVALIDDATES
    (
        @ID uniqueidentifier    
    )
returns varchar(8000)
as begin
    -- do work here and return a value

    declare @retval varchar(8000)
    declare @PriceType tinyint    

    select @PriceType=PriceTypeCode from dbo.BILLINGITEM where ID=@ID

    if @PriceType=1
    begin
        if (exists (select BIP.ID from dbo.BILLINGITEMPRICE BIP where (BIP.DATERANGETYPECODE=0) and (BIP.BILLINGITEMID = @ID)))
            set @retval = 'All dates'
        else
        begin
            select @retval=Coalesce(@retval + ', ','') + convert(varchar, BIP.STARTDATE, 101) + ' - ' + COALESCE(convert(varchar, BIP.ENDDATE, 101),'Present')
            from dbo.BILLINGITEMPRICE BIP where (BIP.DATERANGETYPECODE<>0) and (BIP.BILLINGITEMID = @ID) AND (BIP.DATERANGETYPECODE=1)

            select @retval=Coalesce(@retval + ', ','') + dbo.UFN_BILLINGITEM_GETACADEMICYEARBYDATES(BIP.STARTDATE, BIP.ENDDATE)
            from dbo.BILLINGITEMPRICE BIP where (BIP.DATERANGETYPECODE<>0) and (BIP.BILLINGITEMID = @ID) AND (BIP.DATERANGETYPECODE=2)
        end                    
    end
    else
    begin
        if (exists (select BID.ID from dbo.BILLINGITEMDATES BID where (BID.DATERANGETYPECODE=0) and (BID.BILLINGITEMID = @ID)))
            set @retval = 'All dates'
        else
        begin
            select @retval=Coalesce(@retval + ', ','')  + convert(varchar, BID.STARTDATE, 101) + ' - ' + COALESCE(convert(varchar, BID.ENDDATE, 101), 'Present')
            from dbo.BILLINGITEMDATES BID where (BID.DATERANGETYPECODE<>0) and (BID.BILLINGITEMID = @ID) AND (BID.DATERANGETYPECODE=1
            group by BID.STARTDATE, BID.ENDDATE

            select @retval=Coalesce(@retval + ', ','')  + dbo.UFN_BILLINGITEM_GETACADEMICYEARBYDATES(BID.STARTDATE, BID.ENDDATE)
            from dbo.BILLINGITEMDATES BID where (BID.DATERANGETYPECODE<>0) and (BID.BILLINGITEMID = @ID) AND (BID.DATERANGETYPECODE=2
            group by BID.STARTDATE, BID.ENDDATE
        end                    
    end

    return @retval
end