UFN_DAILYSALEITEM_BUILDCOMBINATIONBUTTONTEXT
Returns the text for a daily sales combination button.
Return
Return Type |
---|
nvarchar(65) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CURRENCYSYMBOL | nchar | IN |
Definition
Copy
CREATE function dbo.UFN_DAILYSALEITEM_BUILDCOMBINATIONBUTTONTEXT
(
@ID uniqueidentifier,
@CURRENCYSYMBOL nchar(1)
)
returns nvarchar(65)
with execute as caller
as begin
declare @LINESEPARATOR nchar(1) = char(10)
declare @DESCRIPTIONTYPECODE1 tinyint
declare @DESCRIPTIONTYPECODE2 tinyint
declare @DESCRIPTIONTYPECODE3 tinyint
declare @DESCRIPTION1 nvarchar(20)
declare @DESCRIPTION2 nvarchar(20)
declare @DESCRIPTION3 nvarchar(20)
select
@DESCRIPTIONTYPECODE1 = DESCRIPTIONFIELD1TYPECODE,
@DESCRIPTIONTYPECODE2 = DESCRIPTIONFIELD2TYPECODE,
@DESCRIPTIONTYPECODE3 = DESCRIPTIONFIELD3TYPECODE,
@DESCRIPTION1 = DESCRIPTIONFIELD1,
@DESCRIPTION2 = DESCRIPTIONFIELD2,
@DESCRIPTION3 = DESCRIPTIONFIELD3
from dbo.DAILYSALEITEM
where ID = @ID
select @DESCRIPTION1 =
case @DESCRIPTIONTYPECODE1
when 3 then PTC.DESCRIPTION
when 4 then @CURRENCYSYMBOL +
(
select convert(nvarchar(20), sum([PROGRAMGROUPPRICE].[FACEPRICE]))
from dbo.[PROGRAMGROUPPRICE]
inner join dbo.[PROGRAMGROUP]
on [PROGRAMGROUPPRICE].[PROGRAMGROUPID] = [PROGRAMGROUP].[ID]
inner join dbo.[COMBINATIONPRICETYPE]
on [C].[ID] = [COMBINATIONPRICETYPE].[COMBINATIONID]
where
[PROGRAMGROUP].[COMBINATIONID] = [C].[ID] and
[PROGRAMGROUPPRICE].[COMBINATIONPRICETYPEID] = [COMBINATIONPRICETYPE].[ID] and
[COMBINATIONPRICETYPE].[PRICETYPECODEID] = PTC.ID
)
when 19 then C.NAME
else @DESCRIPTION1
end
from dbo.DAILYSALEITEMCOMBINATION DSIC
inner join dbo.COMBINATION C on DSIC.COMBINATIONID = C.ID
inner join dbo.PRICETYPECODE PTC on DSIC.PRICETYPECODEID = PTC.ID
where DSIC.ID = @ID;
select @DESCRIPTION2 =
case @DESCRIPTIONTYPECODE2
when 3 then PTC.DESCRIPTION
when 4 then @CURRENCYSYMBOL +
(
select convert(nvarchar(20), sum([PROGRAMGROUPPRICE].[FACEPRICE]))
from dbo.[PROGRAMGROUPPRICE]
inner join dbo.[PROGRAMGROUP]
on [PROGRAMGROUPPRICE].[PROGRAMGROUPID] = [PROGRAMGROUP].[ID]
inner join dbo.[COMBINATIONPRICETYPE]
on [C].[ID] = [COMBINATIONPRICETYPE].[COMBINATIONID]
where
[PROGRAMGROUP].[COMBINATIONID] = [C].[ID] and
[PROGRAMGROUPPRICE].[COMBINATIONPRICETYPEID] = [COMBINATIONPRICETYPE].[ID] and
[COMBINATIONPRICETYPE].[PRICETYPECODEID] = PTC.ID
)
when 19 then C.NAME
else @DESCRIPTION2
end
from dbo.DAILYSALEITEMCOMBINATION DSIC
inner join dbo.COMBINATION C on DSIC.COMBINATIONID = C.ID
inner join dbo.PRICETYPECODE PTC on DSIC.PRICETYPECODEID = PTC.ID
where DSIC.ID = @ID;
select @DESCRIPTION3 =
case @DESCRIPTIONTYPECODE3
when 3 then PTC.DESCRIPTION
when 4 then @CURRENCYSYMBOL +
(
select convert(nvarchar(20), sum([PROGRAMGROUPPRICE].[FACEPRICE]))
from dbo.[PROGRAMGROUPPRICE]
inner join dbo.[PROGRAMGROUP]
on [PROGRAMGROUPPRICE].[PROGRAMGROUPID] = [PROGRAMGROUP].[ID]
inner join dbo.[COMBINATIONPRICETYPE]
on [C].[ID] = [COMBINATIONPRICETYPE].[COMBINATIONID]
where
[PROGRAMGROUP].[COMBINATIONID] = [C].[ID] and
[PROGRAMGROUPPRICE].[COMBINATIONPRICETYPEID] = [COMBINATIONPRICETYPE].[ID] and
[COMBINATIONPRICETYPE].[PRICETYPECODEID] = PTC.ID
)
when 19 then C.NAME
else @DESCRIPTION3
end
from dbo.DAILYSALEITEMCOMBINATION DSIC
inner join dbo.COMBINATION C on DSIC.COMBINATIONID = C.ID
inner join dbo.PRICETYPECODE PTC on DSIC.PRICETYPECODEID = PTC.ID
where DSIC.ID = @ID;
return coalesce(@DESCRIPTION1, '') + @LINESEPARATOR + coalesce(@DESCRIPTION2, '') + @LINESEPARATOR + coalesce(@DESCRIPTION3, '')
end