USP_DATAFORMTEMPLATE_VIEW_BILLINGITEM
The load procedure used by the view dataform template "Billing item profile view"
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. |
@NAME | nvarchar(100) | INOUT | Name |
@DESCRIPTION | nvarchar(255) | INOUT | Description |
@ISINACTIVE | bit | INOUT | Status |
@PRICETYPECODE | tinyint | INOUT | Price type |
@CURRENTCOST | nvarchar(4000) | INOUT | Current cost |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_BILLINGITEM
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@NAME nvarchar(100) = null output,
@DESCRIPTION nvarchar(255) = null output,
@ISINACTIVE bit = null output,
@PRICETYPECODE tinyint = null output,
@CURRENTCOST nvarchar(4000) = null output
)
as
set nocount on;
declare @CURRENTDATE date;
set @CURRENTDATE = getdate();
set @CURRENTCOST=null;
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 0;
-- populate the output parameters, which correspond to fields on the form. Note that
-- we set @DATALOADED = 1 to indicate that the load was successful. Otherwise, the system
-- will display a "no data loaded" message.
select @DATALOADED = 1,
@NAME = NAME,
@DESCRIPTION = DESCRIPTION,
@ISINACTIVE = ISINACTIVE,
@PRICETYPECODE = PRICETYPECODE
from dbo.BILLINGITEM
where BILLINGITEM.ID = @ID
if @PRICETYPECODE=1
begin
select TOP 1 @CURRENTCOST = '$' + convert(varchar,PRICE,1) from dbo.BILLINGITEMPRICE where BILLINGITEMID=@ID and (DATERANGETYPECODE=0 OR (STARTDATE<=@CURRENTDATE and (ENDDATE>=@CURRENTDATE or ENDDATE IS NULL))) order by STARTDATE asc
if @CURRENTCOST is null
select TOP 1 @CURRENTCOST = '$' + convert(varchar,PRICE,1) from dbo.BILLINGITEMPRICE where BILLINGITEMID=@ID order by STARTDATE desc
end
else if @PRICETYPECODE=2
begin
select @CURRENTCOST = Coalesce(@CURRENTCOST + char(13),'') + G.ABBREVIATION + ' - ' + G.DESCRIPTION + ': $' + convert(varchar, BIPG.PRICE, 1) from dbo.BILLINGITEMPRICEBYGRADELEVEL BIPG inner join dbo.GRADELEVEL G on BIPG.GRADELEVELID=G.ID
where BIPG.PRICE>0 AND BIPG.BILLINGITEMDATESID in (select TOP 1 BID.ID from dbo.BILLINGITEMDATES BID where BID.BILLINGITEMID=@ID and (BID.DATERANGETYPECODE=0 OR (BID.STARTDATE<=@CURRENTDATE and (BID.ENDDATE>=@CURRENTDATE or BID.ENDDATE IS NULL))) order by STARTDATE asc) order by G.SEQUENCE asc
if @CURRENTCOST is null
select @CURRENTCOST = Coalesce(@CURRENTCOST + char(13),'') + G.ABBREVIATION + ' - ' + G.DESCRIPTION + ': $' + convert(varchar, BIPG.PRICE, 1) from dbo.BILLINGITEMPRICEBYGRADELEVEL BIPG inner join dbo.GRADELEVEL G on BIPG.GRADELEVELID=G.ID
where BIPG.PRICE>0 AND BIPG.BILLINGITEMDATESID in (select TOP 1 BID.ID from dbo.BILLINGITEMDATES BID where BID.BILLINGITEMID=@ID order by STARTDATE desc) order by G.SEQUENCE asc
end
else if @PRICETYPECODE=3
begin
select @CURRENTCOST = Coalesce(@CURRENTCOST + char(13),'') + C.KEYNAME + ': $' + convert(varchar, BIPS.PRICE, 1) from dbo.BILLINGITEMPRICEBYSCHOOL BIPS inner join dbo.CONSTITUENT C on BIPS.SCHOOLID=C.ID
where BIPS.PRICE>0 AND BIPS.BILLINGITEMDATESID in (select TOP 1 BID.ID from dbo.BILLINGITEMDATES BID where BID.BILLINGITEMID=@ID and (BID.DATERANGETYPECODE=0 OR (BID.STARTDATE<=@CURRENTDATE and (BID.ENDDATE>=@CURRENTDATE or BID.ENDDATE IS NULL))) order by STARTDATE asc) order by C.KEYNAME asc
if @CURRENTCOST is null
select @CURRENTCOST = Coalesce(@CURRENTCOST + char(13),'') + C.KEYNAME + ': $' + convert(varchar, BIPS.PRICE, 1) from dbo.BILLINGITEMPRICEBYSCHOOL BIPS inner join dbo.CONSTITUENT C on BIPS.SCHOOLID=C.ID
where BIPS.PRICE>0 AND BIPS.BILLINGITEMDATESID in (select TOP 1 BID.ID from dbo.BILLINGITEMDATES BID where BID.BILLINGITEMID=@ID order by STARTDATE desc) order by C.KEYNAME asc
end
return 0;