USP_DATAFORMTEMPLATE_EDIT_MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE_MINIMAL_MULTIPLE
The save procedure used by the edit dataform template "Marketing Acknowledgement Template Multiple Rule Minimal Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | nvarchar(max) | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@ASKLADDER | xml | IN | Ask ladder |
@ASKLADDERLOADED | bit | IN | Ask ladder loaded |
@PACKAGEID | uniqueidentifier | IN | Package |
@PACKAGECODE | nvarchar(10) | IN | Package code |
@PACKAGELOADED | bit | IN | Package loaded |
@RESPONSERATE | decimal(5, 2) | IN | Response rate |
@RESPONSERATELOADED | bit | IN | Response rate loaded |
@GIFTAMOUNT | money | IN | Gift amount |
@GIFTAMOUNTLOADED | bit | IN | Gift amount loaded |
@MAXDAYS | int | IN | Maximum days |
@MAXDAYSCHECKED | bit | IN | Process transactions within |
@MAXDAYSLOADED | bit | IN | Max days loaded |
@MINQUANTITY | int | IN | Minimum quantity |
@MINQUANTITYCHECKED | bit | IN | Process when the number of transactions reaches |
@MINQUANTITYLOADED | bit | IN | Min quantity loaded |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE_MINIMAL_MULTIPLE]
(
@ID nvarchar(max),
@CHANGEAGENTID uniqueidentifier = null,
@ASKLADDER xml,
@ASKLADDERLOADED bit,
@PACKAGEID uniqueidentifier,
@PACKAGECODE nvarchar(10),
@PACKAGELOADED bit,
@RESPONSERATE decimal(5,2),
@RESPONSERATELOADED bit,
@GIFTAMOUNT money,
@GIFTAMOUNTLOADED bit,
@MAXDAYS int,
@MAXDAYSCHECKED bit,
@MAXDAYSLOADED bit,
@MINQUANTITY int,
@MINQUANTITYCHECKED bit,
@MINQUANTITYLOADED bit
)
as
set nocount on;
declare @RULESTABLE table([ID] uniqueidentifier);
declare @START int;
declare @POS int;
declare @RULEID uniqueidentifier;
declare @CURRENTDATE datetime;
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = GetDate();
/* Parse out the multiple rule IDs */
set @START = 0;
select @POS = charindex(',', @ID, @START)
while (@POS <> 0)
begin
insert into @RULESTABLE
select substring(@ID, @START, @POS - @START);
set @START = @POS + 1;
select @POS = charindex(',', @ID, @START);
end;
if len(@ID) > 0
insert into @RULESTABLE
select substring(@ID, @START, 37);
declare RULECURSOR cursor local fast_forward for
select [ID] from @RULESTABLE;
open RULECURSOR;
fetch next from RULECURSOR into @RULEID;
while (@@FETCH_STATUS = 0)
begin
/* Save the rule */
update dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] set
[ASKLADDERID] = (case when @ASKLADDERLOADED = 1 then (select T.c.value('(ASKLADDERID)[1]','uniqueidentifier') AS 'ASKLADDERID' from @ASKLADDER.nodes('/ASKLADDER/ITEM') T(c)) else [ASKLADDERID] end),
[PACKAGEID] = (case when @PACKAGELOADED = 1 then @PACKAGEID else [PACKAGEID] end),
[RESPONSERATE] = (case when @RESPONSERATELOADED = 1 then @RESPONSERATE else [RESPONSERATE] end),
[GIFTAMOUNT] = (case when @GIFTAMOUNTLOADED = 1 then @GIFTAMOUNT else [GIFTAMOUNT] end),
[MAXDAYSCHECKED] = (case when @MAXDAYSLOADED = 1 then @MAXDAYSCHECKED else [MAXDAYSCHECKED] end),
[MAXDAYS] = (case when @MAXDAYSLOADED = 1 then @MAXDAYS else [MAXDAYS] end),
[MINQUANTITYCHECKED] = (case when @MINQUANTITYLOADED = 1 then @MINQUANTITYCHECKED else [MINQUANTITYCHECKED] end),
[MINQUANTITY] = (case when @MINQUANTITYLOADED = 1 then @MINQUANTITY else [MINQUANTITY] end),
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @RULEID;
fetch next from RULECURSOR into @RULEID;
end;
close RULECURSOR;
deallocate RULECURSOR;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;