UFN_MKTPACKAGE_GETINSERTCOSTFORDISTRIBUTION2
Returns the total cost, in organization or base currency, of all inserts for a given package with the distribution method specified.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PACKAGEID | uniqueidentifier | IN | |
@COSTDISTRIBUTIONMETHODCODE | tinyint | IN | |
@CURRENCYCODE | tinyint | IN |
Definition
Copy
CREATE function dbo.[UFN_MKTPACKAGE_GETINSERTCOSTFORDISTRIBUTION2]
(
@PACKAGEID uniqueidentifier,
@COSTDISTRIBUTIONMETHODCODE tinyint,
@CURRENCYCODE tinyint = 0 -- 0 is base, 1 is organization
)
returns money
as
begin
declare @COST money;
declare @PACKAGEPERTHOUSANDAMOUNT decimal(15,5) = 1000.0;
if @CURRENCYCODE = 0
set @COST =
isnull((select [MKTCREATIVE].[COST] from dbo.[MKTPACKAGE] inner join dbo.[MKTCREATIVE] on [MKTCREATIVE].[ID] = [MKTPACKAGE].[CREATIVEID] where [MKTPACKAGE].[ID] = @PACKAGEID and [MKTCREATIVE].[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE), 0) +
(select isnull(sum([MKTCREATIVE].[COST]), 0) from dbo.[MKTPACKAGECREATIVE] inner join dbo.[MKTCREATIVE] on [MKTCREATIVE].[ID] = [MKTPACKAGECREATIVE].[CREATIVEID] where [MKTPACKAGECREATIVE].[PACKAGEID] = @PACKAGEID and [MKTCREATIVE].[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE) +
(select isnull(sum([MKTDOCUMENT].[COST]), 0) from dbo.[MKTPACKAGEDOCUMENT] inner join dbo.[MKTDOCUMENT] on [MKTDOCUMENT].[ID] = [MKTPACKAGEDOCUMENT].[DOCUMENTID] where [MKTPACKAGEDOCUMENT].[PACKAGEID] = @PACKAGEID and [MKTDOCUMENT].[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE) +
(select isnull(sum([MKTMATERIAL].[COST]), 0) from dbo.[MKTPACKAGEMATERIAL] inner join dbo.[MKTMATERIAL] on [MKTMATERIAL].[ID] = [MKTPACKAGEMATERIAL].[MATERIALID] where [MKTPACKAGEMATERIAL].[PACKAGEID] = @PACKAGEID and [MKTMATERIAL].[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE) +
(select isnull(sum([MKTEXPENSE].[COST]), 0) from dbo.[MKTPACKAGEEXPENSE] inner join dbo.[MKTEXPENSE] on [MKTEXPENSE].[ID] = [MKTPACKAGEEXPENSE].[EXPENSEID] where [MKTPACKAGEEXPENSE].[PACKAGEID] = @PACKAGEID and [MKTEXPENSE].[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE)
else
set @COST =
isnull((select [MKTCREATIVE].[ORGANIZATIONCOST] from dbo.[MKTPACKAGE] inner join dbo.[MKTCREATIVE] on [MKTCREATIVE].[ID] = [MKTPACKAGE].[CREATIVEID] where [MKTPACKAGE].[ID] = @PACKAGEID and [MKTCREATIVE].[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE), 0) +
(select isnull(sum([MKTCREATIVE].[ORGANIZATIONCOST]), 0) from dbo.[MKTPACKAGECREATIVE] inner join dbo.[MKTCREATIVE] on [MKTCREATIVE].[ID] = [MKTPACKAGECREATIVE].[CREATIVEID] where [MKTPACKAGECREATIVE].[PACKAGEID] = @PACKAGEID and [MKTCREATIVE].[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE) +
(select isnull(sum([MKTDOCUMENT].[ORGANIZATIONCOST]), 0) from dbo.[MKTPACKAGEDOCUMENT] inner join dbo.[MKTDOCUMENT] on [MKTDOCUMENT].[ID] = [MKTPACKAGEDOCUMENT].[DOCUMENTID] where [MKTPACKAGEDOCUMENT].[PACKAGEID] = @PACKAGEID and [MKTDOCUMENT].[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE) +
(select isnull(sum([MKTMATERIAL].[ORGANIZATIONCOST]), 0) from dbo.[MKTPACKAGEMATERIAL] inner join dbo.[MKTMATERIAL] on [MKTMATERIAL].[ID] = [MKTPACKAGEMATERIAL].[MATERIALID] where [MKTPACKAGEMATERIAL].[PACKAGEID] = @PACKAGEID and [MKTMATERIAL].[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE) +
(select isnull(sum([MKTEXPENSE].[ORGANIZATIONCOST]), 0) from dbo.[MKTPACKAGEEXPENSE] inner join dbo.[MKTEXPENSE] on [MKTEXPENSE].[ID] = [MKTPACKAGEEXPENSE].[EXPENSEID] where [MKTPACKAGEEXPENSE].[PACKAGEID] = @PACKAGEID and [MKTEXPENSE].[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE)
--If per thousand cost, then divide cost by 1000 to get individual cost per piece.
if @COSTDISTRIBUTIONMETHODCODE = 4
set @COST = @COST/@PACKAGEPERTHOUSANDAMOUNT;
return @COST;
end