USP_MKTPACKAGE_UPDATECODE
Updates the package code everywhere that uses the package.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PACKAGEID | uniqueidentifier | IN | |
@PACKAGECODE | nvarchar(10) | IN | |
@PACKAGECODEVALUEID | uniqueidentifier | IN | |
@CHANNELSOURCECODE | nvarchar(10) | IN | |
@CHANNELSOURCECODEVALUEID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTPACKAGE_UPDATECODE]
(
@PACKAGEID uniqueidentifier,
@PACKAGECODE nvarchar(10),
@PACKAGECODEVALUEID uniqueidentifier,
@CHANNELSOURCECODE nvarchar(10),
@CHANNELSOURCECODEVALUEID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on;
/* Update the package with the selected code */
declare @OLDCODE nvarchar(10);
declare @OLDCODEVALUEID uniqueidentifier;
declare @OLDCHANNELSOURCECODE nvarchar(10);
declare @OLDCHANNELSOURCECODEVALUEID uniqueidentifier;
declare @UPDATEPACKAGECODE bit;
declare @UPDATECHANNELSOURCECODE bit;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
select
@OLDCODE = coalesce([CODE], ''),
@OLDCODEVALUEID = [PARTDEFINITIONVALUESID],
@OLDCHANNELSOURCECODE = [CHANNELSOURCECODE] ,
@OLDCHANNELSOURCECODEVALUEID = [CHANNELPARTDEFINITIONVALUESID]
from dbo.[MKTPACKAGE]
where [ID] = @PACKAGEID;
set @UPDATEPACKAGECODE = case when @PACKAGECODEVALUEID is not null and (@OLDCODEVALUEID is null or not (@OLDCODE = @PACKAGECODE and @OLDCODEVALUEID = @PACKAGECODEVALUEID)) then 1 else 0 end;
set @UPDATECHANNELSOURCECODE = case when @CHANNELSOURCECODEVALUEID is not null and (@OLDCHANNELSOURCECODEVALUEID is null or not (@OLDCHANNELSOURCECODE = @CHANNELSOURCECODE and @OLDCHANNELSOURCECODEVALUEID = @CHANNELSOURCECODEVALUEID)) then 1 else 0 end;
if @UPDATEPACKAGECODE = 1
set @UPDATEPACKAGECODE = dbo.[UFN_MKTPACKAGE_APPUSER_GRANTED_EDITFORM](@PACKAGEID, @CURRENTAPPUSERID);
if @UPDATECHANNELSOURCECODE = 1
set @UPDATECHANNELSOURCECODE = dbo.[UFN_MKTPACKAGE_APPUSER_GRANTED_EDITFORM](@PACKAGEID, @CURRENTAPPUSERID);
/* Update the packagecode if the old code value ID is nothing and the package code value ID is supplied */
if @UPDATEPACKAGECODE = 1
update dbo.[MKTPACKAGE] set
[CODE] = @PACKAGECODE,
[PARTDEFINITIONVALUESID] = @PACKAGECODEVALUEID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @PACKAGEID;
/* Update the package with the new channel source code */
if @UPDATECHANNELSOURCECODE = 1
update dbo.[MKTPACKAGE] set
[CHANNELSOURCECODE] = @CHANNELSOURCECODE,
[CHANNELPARTDEFINITIONVALUESID] = @CHANNELSOURCECODEVALUEID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @PACKAGEID;
return 0;