USP_DATAFORMTEMPLATE_ADD_MEMBERSHIPPROGRAM
The save procedure used by the add dataform template "Membership Program Add Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@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 |
@ALLOWMULTIPLEMEMBERSHIPS | bit | IN | Allow multiple memberships |
@CARDFORMAT | nvarchar(255) | IN | Card format |
@EXPIRESONCODE | tinyint | IN | Expiration date |
@BACKDATEMEMBERSHIPS | bit | IN | |
@CUTOFFDAY | tinyint | IN | Cutoff date |
@CUTOFFDATEFORYEAR | UDT_MONTHDAY | 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_ADD_MEMBERSHIPPROGRAM
(
@ID uniqueidentifier = null output,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100) =null,
@DESCRIPTION nvarchar(255)=null,
@SITEID uniqueidentifier = null,
@ALLOWMULTIPLEMEMBERSHIPS bit = null,
@CARDFORMAT nvarchar(255) = null,
@EXPIRESONCODE tinyint = 1,
@BACKDATEMEMBERSHIPS bit = null,
@CUTOFFDAY tinyint = null,
@CUTOFFDATEFORYEAR dbo.UDT_MONTHDAY = 0000,
@EXPIRATIONDATES xml = null,
@LETTERTEMPLATEID uniqueidentifier = null,
@ALLOWADDONADULT bit = null,
@ADDONADULTPRICE money = null,
@ALLOWADDONGUEST bit = null,
@ADDONGUESTPRICE money = null,
@REPORTCATALOGID uniqueidentifier = null
)
as
set nocount on;
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
if @id is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CUTOFFDAY is null
set @CUTOFFDAY = 0;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
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 =
(select CURRENCYSET.BASECURRENCYID from dbo.CURRENCYSET where ID = dbo.UFN_CURRENCYSET_GETAPPUSERCURRENCYSET(@CURRENTAPPUSERID))
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
begin try
insert into dbo.MEMBERSHIPPROGRAM
(
ID,
NAME,
DESCRIPTION,
SITEID,
ISACTIVE,
ALLOWMULTIPLEMEMBERSHIPS,
CARDFORMAT,
EXPIRESONCODE,
BACKDATEMEMBERSHIPS,
CUTOFFDAY,
CUTOFFDATEFORYEAR,
LETTERTEMPLATEID,
BASECURRENCYID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
ALLOWADDONADULT,
ADDONADULTPRICE,
ALLOWADDONGUEST,
ADDONGUESTPRICE,
ORGANIZATIONEXCHANGERATEID,
ORGANIZATIONADDONADULTPRICE,
ORGANIZATIONADDONGUESTPRICE,
REPORTCATALOGID
)
values
(
@ID,
@NAME,
@DESCRIPTION,
@SITEID,
1,
@ALLOWMULTIPLEMEMBERSHIPS,
@CARDFORMAT,
@EXPIRESONCODE,
@BACKDATEMEMBERSHIPS,
@CUTOFFDAY,
@CUTOFFDATEFORYEAR,
@LETTERTEMPLATEID,
@BASECURRENCYID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
0,
0,
0,
0,
@ORGANIZATIONEXCHANGERATEID,
0,
0,
@REPORTCATALOGID
);
if not @EXPIRATIONDATES is null
exec dbo.USP_MEMBERSHIPPROGRAM_GETENDDATE_ADDFROMXML @ID, @EXPIRATIONDATES, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPPROGRAM_CREATEQUERY @ID, @NAME, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;