USP_DATAFORMTEMPLATE_ADD_SPONSORSHIPBATCHROW
The save procedure used by the add dataform template "Sponsorship Batch Add Form".
Parameters
| Parameter | Parameter Type | Mode | Description |
|---|---|---|---|
| @ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
| @CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
| @BATCHID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
| @SEQUENCE | int | IN | Sequence |
| @CONSTITUENTID | uniqueidentifier | IN | Corresponding sponsor |
| @DONORID | uniqueidentifier | IN | Financial sponsor |
| @PLANNEDENDDATE | datetime | IN | Expiration date |
| @SPONSORSHIPPROGRAMID | uniqueidentifier | IN | Sponsorship program |
| @SPONSORSHIPLOCATIONID | uniqueidentifier | IN | Location |
| @GENDERCODE | int | IN | Gender |
| @SPROPPAGERANGEID | uniqueidentifier | IN | Age range |
| @ISHIVPOSITIVECODE | int | IN | HIV positive |
| @HASCONDITIONCODE | int | IN | Disability/Illness |
| @ISORPHANEDCODE | int | IN | Orphaned |
| @SPROPPPROJECTCATEGORYCODEID | uniqueidentifier | IN | Category |
| @SPONSORSHIPOPPORTUNITYIDCHILD | uniqueidentifier | IN | Child |
| @SPONSORSHIPOPPORTUNITYIDPROJECT | uniqueidentifier | IN | Project |
| @SPONSORSHIPOPPORTUNITYTYPECODE | tinyint | IN | Sponsorship Opportunity Type |
| @ISSOLESPONSORSHIP | bit | IN | Sole sponsorship |
| @STARTDATE | datetime | IN | Start Date |
| @ENDDATE | datetime | IN | End Date |
| @AMOUNT | money | IN | Amount |
| @PAYMENTMETHODCODE | tinyint | IN | Payment method |
| @FREQUENCYCODE | tinyint | IN | Frequency |
| @AUTOPAY | bit | IN | Pay installments automatically |
| @REFERENCEDATE | UDT_FUZZYDATE | IN | Reference date |
| @REFERENCENUMBER | nvarchar(20) | IN | Reference no. |
| @CARDHOLDERNAME | nvarchar(255) | IN | Name on card |
| @CREDITCARDNUMBER | nvarchar(20) | IN | Card number |
| @CREDITTYPECODEID | uniqueidentifier | IN | Card type |
| @EXPIRESON | UDT_FUZZYDATE | IN | Expires on |
| @CONSTITUENTACCOUNTID | uniqueidentifier | IN | Account |
| @REVENUESCHEDULEENDDATE | datetime | IN | Payment end date |
| @REVENUESCHEDULESTARTDATE | datetime | IN | Payment start date |
| @CREDITCARDTOKEN | uniqueidentifier | IN | Credit card token |
| @ISTRANSIENTCARD | bit | IN | Is transient credit card |
| @RESERVATIONKEYID | uniqueidentifier | IN | Reservation key |
| @RESERVEDOPPORTUNITYID | uniqueidentifier | IN | Reserved child |
| @SENDREMINDER | bit | IN | Send reminders |
| @FINDERNUMBER | bigint | IN | Finder number |
| @SOURCECODE | nvarchar(50) | IN | Source code |
| @APPEALID | uniqueidentifier | IN | Appeal |
| @MAILINGID | uniqueidentifier | IN | Effort |
| @CHANNELCODEID | uniqueidentifier | IN | Inbound channel |
| @REFERENCE | nvarchar(255) | IN | Reference |
| @REVENUECATEGORYCODEID | uniqueidentifier | IN | Revenue category |
| @ISGIFTSPONSORSHIP | bit | IN | Is gift sponsorship |
| @EXPIRATIONREASONID | uniqueidentifier | IN | Expiration reason |
| @BID | uniqueidentifier | IN | Batch helper id |
| @FINANCIALSPONSORLOOKUPID | uniqueidentifier | IN | Financial sponsor ID |
| @CORRESPONDINGSPONSORLOOKUPID | uniqueidentifier | IN | Corresponding sponsor ID |
| @PARTIALCREDITCARDNUMBER | nvarchar(4) | IN | Partial card number |
| @NEWCONSTITUENT | xml | IN | New corresponding sponsor |
| @NEWDONORCONSTITUENT | xml | IN | New financial sponsor |
| @TRANSACTIONCURRENCYID | uniqueidentifier | IN | Transaction currency |
| @BASECURRENCYID | uniqueidentifier | IN | Base currency |
| @BASEEXCHANGERATEID | uniqueidentifier | IN | Base exchange rate |
| @EXCHANGERATE | decimal(20, 8) | IN | Exchange rate |
| @CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
| @COMMITMENTID | nvarchar(100) | IN | Commitment ID |
| @SEPAMANDATEID | uniqueidentifier | IN | |
| @ADDSEPAMANDATE | bit | IN | |
| @SEPAMANDATECUSTOMIDENTIFIER | nvarchar(35) | IN | |
| @SEPAMANDATESIGNATUREDATE | date | IN | |
| @SEPAMANDATETYPECODE | tinyint | IN | |
| @OTHERPAYMENTMETHODCODEID | uniqueidentifier | IN | |
| @IMPORT | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SPONSORSHIPBATCHROW
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@BATCHID uniqueidentifier,
@SEQUENCE int,
@CONSTITUENTID uniqueidentifier = null,
@DONORID uniqueidentifier = null,
@PLANNEDENDDATE datetime = null,
@SPONSORSHIPPROGRAMID uniqueidentifier = null,
@SPONSORSHIPLOCATIONID uniqueidentifier = null,
@GENDERCODE int = 0,
@SPROPPAGERANGEID uniqueidentifier = null,
@ISHIVPOSITIVECODE int = 0,
@HASCONDITIONCODE int = 0,
@ISORPHANEDCODE int = 0,
@SPROPPPROJECTCATEGORYCODEID uniqueidentifier = null,
@SPONSORSHIPOPPORTUNITYIDCHILD uniqueidentifier = null,
@SPONSORSHIPOPPORTUNITYIDPROJECT uniqueidentifier = null,
@SPONSORSHIPOPPORTUNITYTYPECODE tinyint = null,
@ISSOLESPONSORSHIP bit = 0,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@AMOUNT money = null,
@PAYMENTMETHODCODE tinyint = 2,
@FREQUENCYCODE tinyint = 3,
@AUTOPAY bit = 1,
@REFERENCEDATE dbo.UDT_FUZZYDATE = '00000000',
@REFERENCENUMBER nvarchar(20) = '',
@CARDHOLDERNAME nvarchar(255) = '',
@CREDITCARDNUMBER nvarchar(20) = '',
@CREDITTYPECODEID uniqueidentifier = null,
@EXPIRESON dbo.UDT_FUZZYDATE = null,
@CONSTITUENTACCOUNTID uniqueidentifier = null,
@REVENUESCHEDULEENDDATE datetime = null,
@REVENUESCHEDULESTARTDATE datetime = null,
@CREDITCARDTOKEN uniqueidentifier = null,
@ISTRANSIENTCARD bit = null,
@RESERVATIONKEYID uniqueidentifier = null,
@RESERVEDOPPORTUNITYID uniqueidentifier = null,
@SENDREMINDER bit = 0,
@FINDERNUMBER bigint = null,
@SOURCECODE nvarchar(50) = '',
@APPEALID uniqueidentifier = null,
@MAILINGID uniqueidentifier = null,
@CHANNELCODEID uniqueidentifier = null,
@REFERENCE nvarchar(255) = '',
@REVENUECATEGORYCODEID uniqueidentifier = null,
@ISGIFTSPONSORSHIP bit = 0,
@EXPIRATIONREASONID uniqueidentifier = null,
@BID uniqueidentifier = null,
@FINANCIALSPONSORLOOKUPID uniqueidentifier = null,
@CORRESPONDINGSPONSORLOOKUPID uniqueidentifier = null,
@PARTIALCREDITCARDNUMBER nvarchar(4) = '',
@NEWCONSTITUENT xml = null,
@NEWDONORCONSTITUENT xml = null,
@TRANSACTIONCURRENCYID uniqueidentifier = null,
@BASECURRENCYID uniqueidentifier = null,
@BASEEXCHANGERATEID uniqueidentifier = null,
@EXCHANGERATE decimal(20,8) = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@COMMITMENTID nvarchar(100) = '',
@SEPAMANDATEID uniqueidentifier = null,
@ADDSEPAMANDATE bit = 0,
@SEPAMANDATECUSTOMIDENTIFIER nvarchar(35) = '',
@SEPAMANDATESIGNATUREDATE date = null,
@SEPAMANDATETYPECODE tinyint = 0,
@OTHERPAYMENTMETHODCODEID uniqueidentifier = null,
@IMPORT bit = 1
)
as
set nocount on;
if @ID is null
set @ID = newid()
set @BID = @ID
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
-- handle inserting the data
declare @SPONSORSHIPOPPORTUNITYID uniqueidentifier;
declare @TYPECODE tinyint=0;
declare @CREDITCARDID uniqueidentifier
declare @NEWCOUNT int = 0;
if @FINDERNUMBER is null
set @FINDERNUMBER = 0;
if @SOURCECODE is null
set @SOURCECODE = '';
if @ADDSEPAMANDATE is null
set @ADDSEPAMANDATE = 0;
-- Corresponding sponsor
select @NEWCOUNT = count(*) from @NEWCONSTITUENT.nodes('/NEWCONSTITUENT/ITEM') T(c)
if @NEWCOUNT > 0
begin
declare @NEWCONSTITUENTID uniqueidentifier;
if not exists(select ID from dbo.CONSTITUENT where ID = @CONSTITUENTID)
begin
exec USP_SPONSORSHIPBATCH_ADDNEWCONSTITUENTFROMXML @NEWCONSTITUENT, @CHANGEAGENTID, @NEWCONSTITUENTID output;
set @CONSTITUENTID = @NEWCONSTITUENTID;
end;
end;
if @CONSTITUENTID is null
set @CONSTITUENTID = @CORRESPONDINGSPONSORLOOKUPID
/* Lookup and set all possible marketing data (via output params) from the data that was specified. */
exec dbo.[USP_REVENUEBATCH_GETMARKETINGDATA]
@FINDERNUMBER = @FINDERNUMBER,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTAPPUSERID = @CURRENTAPPUSERID,
@SOURCECODE = @SOURCECODE output,
@MAILINGID = @MAILINGID output,
@APPEALID = @APPEALID output,
@CONSTITUENTID = @DONORID output,
@BATCHID = @BATCHID,
@IMPORT = @IMPORT;
-- Financial sponsor
select @NEWCOUNT = count(*) from @NEWDONORCONSTITUENT.nodes('/NEWDONORCONSTITUENT/ITEM') T(c)
if @NEWCOUNT > 0
begin
declare @NEWDONORCONSTITUENTID uniqueidentifier;
if not exists(select ID from dbo.CONSTITUENT where ID = @DONORID)
begin
exec USP_SPONSORSHIPBATCH_ADDNEWCONSTITUENTFROMXML @NEWDONORCONSTITUENT, @CHANGEAGENTID, @NEWDONORCONSTITUENTID output;
set @DONORID = @NEWDONORCONSTITUENTID;
end;
end;
if @DONORID is null
set @DONORID = @FINANCIALSPONSORLOOKUPID
if @DONORID is null
raiserror('BBERR_FINANCIALSPONSORREQUIRED',13,1)
--set the corresponding sponsor id if it's not filled in.
if @CONSTITUENTID is null and @ISGIFTSPONSORSHIP=0
set @CONSTITUENTID = @DONORID
if @CONSTITUENTID is null and @ISGIFTSPONSORSHIP=1
raiserror('BBERR_CORRESPONDINGSPONSORREQUIRED',13,1)
if @SPONSORSHIPOPPORTUNITYIDCHILD is not null and @SPONSORSHIPOPPORTUNITYIDPROJECT is not null
raiserror('BBERR_CHILDANDPROJECTSPECIFIED',13,1)
if @SPONSORSHIPOPPORTUNITYIDCHILD is not null
begin
set @TYPECODE=1
set @SPONSORSHIPOPPORTUNITYID = @SPONSORSHIPOPPORTUNITYIDCHILD
end
if @SPONSORSHIPOPPORTUNITYIDPROJECT is not null
begin
set @TYPECODE=2
set @SPONSORSHIPOPPORTUNITYID = @SPONSORSHIPOPPORTUNITYIDPROJECT
end
if @RESERVEDOPPORTUNITYID is not null
begin
set @TYPECODE=1
set @SPONSORSHIPOPPORTUNITYID = @RESERVEDOPPORTUNITYID
end
if @SPONSORSHIPPROGRAMID is not null and @TYPECODE = 0
set @TYPECODE = (select SPONSORSHIPOPPORTUNITYTYPECODE
from SPONSORSHIPOPPORTUNITYGROUP SG
inner join SPONSORSHIPPROGRAM SP on SP.SPONSORSHIPOPPORTUNITYGROUPID = SG.ID
where SP.ID = @SPONSORSHIPPROGRAMID)
if coalesce(@PARTIALCREDITCARDNUMBER, '') <> ''
set @CREDITCARDNUMBER = @PARTIALCREDITCARDNUMBER
if coalesce(@CREDITCARDNUMBER, '') <> '' or coalesce(@CARDHOLDERNAME, '') <> '' or @CREDITTYPECODEID is not null or coalesce(@EXPIRESON, '00000000') <> '00000000'
begin
if coalesce(@CREDITCARDNUMBER, '') = ''
raiserror('BBERR_CREDITCARDNUMBERREQUIRED', 13, 1)
if coalesce(@CARDHOLDERNAME, '') = ''
raiserror('BBERR_CARDHOLDERREQUIRED', 13, 1)
if coalesce(@EXPIRESON, '00000000') = '00000000'
raiserror('BBERR_EXPIRESONREQUIRED', 13, 1)
if @PAYMENTMETHODCODE = 2 -- Credit Card
begin
exec dbo.USP_CREDITCARD_SAVE
@ID = @CREDITCARDID output,
@CREDITCARDTOKEN = @CREDITCARDTOKEN,
@CARDHOLDERNAME = @CARDHOLDERNAME,
@CREDITCARDPARTIALNUMBER = @CREDITCARDNUMBER,
@CREDITTYPECODEID = @CREDITTYPECODEID,
@EXPIRESON = @EXPIRESON,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTDATE = @CURRENTDATE,
@ISTRANSIENT = @ISTRANSIENTCARD
end
end
-- if @amount is not on the batch assign program amount by default
if @AMOUNT = 0 or @AMOUNT is null
select @AMOUNT = AMOUNT from dbo.SPONSORSHIPPROGRAM
where ID = @SPONSORSHIPPROGRAMID
and AMOUNT <> 0
if @BASECURRENCYID is null
begin
set @BASECURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID)
end
if @EXCHANGERATE is null
set @EXCHANGERATE = 0;
if @STARTDATE is null
set @STARTDATE = @CURRENTDATE;
exec dbo.USP_REVENUEBATCH_SEPAMANDATE_VALIDATEORCREATE
@SEPAMANDATEID output,
@CHANGEAGENTID,
@CURRENTDATE,
@ADDSEPAMANDATE,
@SEPAMANDATECUSTOMIDENTIFIER,
@SEPAMANDATESIGNATUREDATE,
@SEPAMANDATETYPECODE,
@PAYMENTMETHODCODE,
@CONSTITUENTACCOUNTID,
null,
@TRANSACTIONCURRENCYID;
--Clear the credit card fields before inserting them into the batch table if the payment method is not credit card - last 4 digits (98)
--They only need to be saved to the BATCHSPONSORSHIP table if the payment method is 98 - Credit card - last 4 digits only
if @PAYMENTMETHODCODE <> 98
begin
set @CARDHOLDERNAME = '';
set @CREDITTYPECODEID = null;
set @CREDITCARDNUMBER = '';
set @EXPIRESON = '00000000';
end
insert into dbo.BATCHSPONSORSHIP (
ID,
BATCHID,
SEQUENCE,
CONSTITUENTID,
DONORID,
PLANNEDENDDATE,
SPONSORSHIPPROGRAMID,
SPONSORSHIPOPPORTUNITYID,
SPONSORSHIPOPPORTUNITYTYPECODE,
STARTDATE,
ENDDATE,
SPONSORSHIPLOCATIONID,
CHILDGENDERCODE,
ISHIVPOSITIVECODE,
HASCONDITIONCODE,
ISORPHANEDCODE,
SPROPPPROJECTCATEGORYCODEID,
ISSOLESPONSORSHIP,
SPONSORSHIPOPPORTUNITYAGERANGEID,
AMOUNT,
PAYMENTMETHODCODE,
FREQUENCYCODE,
AUTOPAY,
REFERENCEDATE,
REFERENCENUMBER,
CREDITCARDID,
CONSTITUENTACCOUNTID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
RESERVATIONKEYID,
RESERVEDOPPORTUNITYID,
SENDREMINDER,
FINDERNUMBER,
SOURCECODE,
APPEALID,
CHANNELCODEID,
MAILINGID,
REFERENCE,
REVENUECATEGORYID,
ISGIFTSPONSORSHIP,
EXPIRATIONREASONID,
REVENUESCHEDULEENDDATE,
REVENUESCHEDULESTARTDATE,
BASECURRENCYID,
TRANSACTIONCURRENCYID,
BASEEXCHANGERATEID,
EXCHANGERATE,
COMMITMENTID,
SEPAMANDATEID,
CARDHOLDERNAME,
CREDITTYPECODEID,
CREDITCARDPARTIALNUMBER,
EXPIRESON,
OTHERPAYMENTMETHODCODEID
) values (
@ID,
@BATCHID,
@SEQUENCE,
@CONSTITUENTID,
@DONORID,
@PLANNEDENDDATE,
@SPONSORSHIPPROGRAMID,
@SPONSORSHIPOPPORTUNITYID,
@TYPECODE,
@STARTDATE,
@ENDDATE,
@SPONSORSHIPLOCATIONID,
@GENDERCODE,
@ISHIVPOSITIVECODE,
@HASCONDITIONCODE,
@ISORPHANEDCODE,
@SPROPPPROJECTCATEGORYCODEID,
@ISSOLESPONSORSHIP,
@SPROPPAGERANGEID,
@AMOUNT,
@PAYMENTMETHODCODE,
@FREQUENCYCODE,
@AUTOPAY,
@REFERENCEDATE,
@REFERENCENUMBER,
@CREDITCARDID,
@CONSTITUENTACCOUNTID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@RESERVATIONKEYID,
@RESERVEDOPPORTUNITYID,
@SENDREMINDER,
@FINDERNUMBER,
@SOURCECODE,
@APPEALID,
@CHANNELCODEID,
@MAILINGID,
@REFERENCE,
@REVENUECATEGORYCODEID,
@ISGIFTSPONSORSHIP,
@EXPIRATIONREASONID,
@REVENUESCHEDULEENDDATE,
@REVENUESCHEDULESTARTDATE,
@BASECURRENCYID,
coalesce(@TRANSACTIONCURRENCYID,@BASECURRENCYID),
@BASEEXCHANGERATEID,
@EXCHANGERATE,
coalesce(rtrim(ltrim(@COMMITMENTID)),''),
@SEPAMANDATEID,
@CARDHOLDERNAME,
@CREDITTYPECODEID,
@CREDITCARDNUMBER,
@EXPIRESON,
@OTHERPAYMENTMETHODCODEID
)
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;