USP_DATAFORMTEMPLATE_EDIT_MEMBERSHIPPROGRAM_3
The save procedure used by the edit dataform template "Membership Program Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@SITEID | uniqueidentifier | IN | Site |
@CARDFORMAT | nvarchar(255) | IN | Card format |
@EXPIRESONCODE | tinyint | IN | Expiration date |
@BACKDATEMEMBERSHIPS | bit | IN | |
@ALLOWMULTIPLEMEMBERSHIPS | bit | IN | Allow multiple memberships |
@CUTOFFDAY | tinyint | IN | Cutoff date |
@CUTOFFDATEFORYEAR | char(4) | IN | Cutoff date |
@EXPIRATIONDATES | xml | IN | Expiration dates |
@LETTERTEMPLATEID | uniqueidentifier | IN | Letter template to use |
@ALLOWADDONADULT | bit | IN | Allow additional members |
@ADDONADULTPRICE | money | IN | Price |
@ALLOWADDONGUEST | bit | IN | Allow guests |
@ADDONGUESTPRICE | money | IN | Price |
@REPORTCATALOGID | uniqueidentifier | IN | Report to use |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_MEMBERSHIPPROGRAM_3 (
@ID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@SITEID uniqueidentifier,
@CARDFORMAT nvarchar(255),
@EXPIRESONCODE tinyint,
@BACKDATEMEMBERSHIPS bit,
@ALLOWMULTIPLEMEMBERSHIPS bit,
@CUTOFFDAY tinyint,
@CUTOFFDATEFORYEAR char(4),
@EXPIRATIONDATES xml,
@LETTERTEMPLATEID uniqueidentifier,
@ALLOWADDONADULT bit,
@ADDONADULTPRICE money,
@ALLOWADDONGUEST bit,
@ADDONGUESTPRICE money,
@REPORTCATALOGID uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
if @CUTOFFDAY is null
set @CUTOFFDAY = 0;
if @SITEID is null
begin
if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1
begin
raiserror('Site is required.',13,1)
return
end
end
if @EXPIRESONCODE != 4
set @EXPIRATIONDATES = null
else
begin
if @EXPIRATIONDATES is null
raiserror('Please enter at least one expiration date.', 13, 1);
end
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @OLDNAME nvarchar(100);
select @OLDNAME = NAME from dbo.MEMBERSHIPPROGRAM where ID = @ID;
if @OLDNAME <> @NAME
begin
declare @QUERYNAME nvarchar(255);
select @QUERYNAME = 'V_QUERY_MEMBERSHIP_' + upper(REPLACE(CONVERT(nvarchar(36), @ID), '-', ''))
declare @ADHOCNAME nvarchar(255);
select @ADHOCNAME = dbo.[UFN_ADHOCQUERY_FIELDISINUSEBY](@QUERYNAME, '')
if len(@ADHOCNAME) > 0
begin
raiserror('Cannot modify the name value. The generated query is used by an ad hoc query as a filter or output field.', 13, 1);
return 1;
end
end
declare @BASECURRENCYID uniqueidentifier;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @ORGANIZATIONADDONADULTPRICE money = @ADDONADULTPRICE;
declare @ORGANIZATIONADDONGUESTPRICE money = @ADDONGUESTPRICE;
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
select
@BASECURRENCYID = BASECURRENCYID
from
dbo.MEMBERSHIPPROGRAM
where
ID = @ID;
if (@ORGANIZATIONCURRENCYID <> @BASECURRENCYID)
begin
set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
set @ORGANIZATIONADDONADULTPRICE = dbo.UFN_CURRENCY_CONVERT(@ADDONADULTPRICE, @ORGANIZATIONEXCHANGERATEID);
set @ORGANIZATIONADDONGUESTPRICE = dbo.UFN_CURRENCY_CONVERT(@ADDONGUESTPRICE, @ORGANIZATIONEXCHANGERATEID);
end
if (coalesce(@CARDFORMAT, '') <> '') and @LETTERTEMPLATEID is null
begin
declare @CARDCATALOGID uniqueidentifier
select top 1 @CARDCATALOGID = ID from dbo.REPORTCATALOG where NAME = @CARDFORMAT
if not @CARDCATALOGID is null
set @REPORTCATALOGID = @CARDCATALOGID
end
else
begin
set @REPORTCATALOGID = null
set @CARDFORMAT = ''
end
if (@REPORTCATALOGID is null) and (coalesce(@CARDFORMAT, '') <> '')
begin
select top 1 @REPORTCATALOGID = ID from dbo.REPORTCATALOG where NAME = @CARDFORMAT
end
-- handle updating the data
update dbo.MEMBERSHIPPROGRAM set
NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
SITEID = @SITEID,
CARDFORMAT = @CARDFORMAT,
EXPIRESONCODE = @EXPIRESONCODE,
BACKDATEMEMBERSHIPS = @BACKDATEMEMBERSHIPS,
ALLOWMULTIPLEMEMBERSHIPS = @ALLOWMULTIPLEMEMBERSHIPS,
CUTOFFDAY = @CUTOFFDAY,
CUTOFFDATEFORYEAR = @CUTOFFDATEFORYEAR,
LETTERTEMPLATEID = @LETTERTEMPLATEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
ALLOWADDONADULT = @ALLOWADDONADULT,
ADDONADULTPRICE = @ADDONADULTPRICE,
ALLOWADDONGUEST = @ALLOWADDONGUEST,
ADDONGUESTPRICE = @ADDONGUESTPRICE,
ORGANIZATIONADDONADULTPRICE = @ORGANIZATIONADDONADULTPRICE,
ORGANIZATIONADDONGUESTPRICE = @ORGANIZATIONADDONGUESTPRICE,
REPORTCATALOGID = @REPORTCATALOGID
where ID = @ID;
if not @EXPIRATIONDATES is null
exec dbo.USP_MEMBERSHIPPROGRAM_GETENDDATE_UPDATEFROMXML @ID, @EXPIRATIONDATES, @CHANGEAGENTID;
else
delete from dbo.MEMBERSHIPPROGRAMENDDATE where MEMBERSHIPPROGRAMID = @ID;
if @OLDNAME <> @NAME
begin
declare @QUERYID uniqueidentifier;
select @QUERYID = ID from dbo.QUERYVIEWCATALOG where OBJECTNAME = @QUERYNAME;
delete from dbo.QUERYVIEWRELATIONSHIP where RELATEDQUERYVIEWID = @QUERYID;
delete from dbo.QUERYVIEWRELATIONSHIP where ROOTQUERYVIEWID = @QUERYID;
delete from dbo.QUERYVIEWCATALOG where ID = @QUERYID;
exec dbo.USP_MEMBERSHIPPROGRAM_CREATEQUERY @ID, @NAME, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;