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;