USP_EVENT_GIFT_ADDPAYMENT

Add revenue payment for gifts in FAF events, varied from USP_GIFT_ADDPAYMENT

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@CURRENTDATE datetime IN
@CONSTITUENTID uniqueidentifier IN
@TRANSACTIONDATE UDT_FUZZYDATE IN
@AMOUNT money IN
@PAYMENTMETHODCODE tinyint IN
@CHECKDATE UDT_FUZZYDATE IN
@CHECKNUMBER nvarchar(20) IN
@REFERENCEDATE UDT_FUZZYDATE IN
@REFERENCENUMBER nvarchar(20) IN
@CARDHOLDERNAME nvarchar(255) IN
@CREDITCARDNUMBER nvarchar(4) IN
@CREDITTYPECODEID uniqueidentifier IN
@AUTHORIZATIONCODE nvarchar(20) IN
@EXPIRESON UDT_FUZZYDATE IN
@CONSTITUENTACCOUNTID uniqueidentifier IN
@SOURCECODE nvarchar(50) IN
@APPEALID uniqueidentifier IN
@DESIGNATIONID uniqueidentifier IN
@EVENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_EVENT_GIFT_ADDPAYMENT
(
    @ID uniqueidentifier = null output,  
    @CHANGEAGENTID uniqueidentifier,  
    @CURRENTDATE datetime,      
    @CONSTITUENTID uniqueidentifier,       
    @TRANSACTIONDATE dbo.UDT_FUZZYDATE = '00000000',  
    @AMOUNT money = 0,  
    @PAYMENTMETHODCODE tinyint = 1,  
    @CHECKDATE dbo.UDT_FUZZYDATE = '00000000',  
    @CHECKNUMBER nvarchar(20) = '',  
    @REFERENCEDATE dbo.UDT_FUZZYDATE = '00000000',  
    @REFERENCENUMBER nvarchar(20) = '',  
    @CARDHOLDERNAME nvarchar(255) = '',  
    @CREDITCARDNUMBER nvarchar(4) = '',  
    @CREDITTYPECODEID uniqueidentifier = null,  
    @AUTHORIZATIONCODE nvarchar(20) = '',  
    @EXPIRESON dbo.UDT_FUZZYDATE = '00000000',  
--    @ISSUER nvarchar(100) = '',  

--    @NUMBEROFUNITS integer = 0,  

--    @SYMBOL nvarchar(4) = '',  

--   @MEDIANPRICE decimal(19,4) = 0,  

--    @GIFTINKINDSUBTYPECODEID uniqueidentifier = null,  

--    @PROPERTYSUBTYPECODEID uniqueidentifier = null,  

--    @RECEIPTAMOUNT money = 0,  

    @CONSTITUENTACCOUNTID uniqueidentifier = null,  
--    @REVENUESTREAMS xml = null,  

--    @POSTSTATUSCODE tinyint = 1,  

--    @POSTDATE datetime = null,  

--    @FINDERNUMBER bigint = null,  

    @SOURCECODE nvarchar(50) = null,  
    @APPEALID uniqueidentifier = null,  
    @DESIGNATIONID uniqueidentifier = null
--    @TRIBUTEID uniqueidentifier = null,  

--    @BENEFITS xml = null,  

--    @BENEFITSWAIVED bit = 0,  

--    @GIVENANONYMOUSLY bit = null,  

--    @MAILINGID uniqueidentifier = null,  

--    @LETTERCODEID uniqueidentifier = null,  

--    @CHANNELCODEID uniqueidentifier = null,  

--    @DONOTACKNOWLEDGE bit = 0,  

--    @DONOTRECEIPT bit = 0,  

--    @OTHERPAYMENTMETHODCODEID uniqueidentifier = null,  

--    @REFERENCE nvarchar(255) = null,  

--    @DIRECTDEBITRESULTCODE nvarchar(10) = '',  

--    @LOWPRICE money = 0,  

--    @HIGHPRICE money = 0


    @EVENTID uniqueidentifier
)
as
begin
    -- parameters from usp_payment_addbase

  -- 1. Add Revenue

  -- 2. Add Revenue Split

  -- 3. Deal with EVENTDONOR table?


   if @ID is null  
    set @ID = newid(); --revenue ID   


   DECLARE @TYPECODE tinyint
   set @TYPECODE = 0;  --Donation


   if @CHANGEAGENTID is null  
     exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;  

   if @CURRENTDATE is null  
     set @CURRENTDATE = GetDate();   

   if @APPEALID IS NULL
     SELECT @APPEALID = APPEALID
     FROM dbo.EVENT 
     WHERE ID = @EVENTID;

     -- If the system has set that households can't be donors, verify that constituent isn't a household  

   if dbo.UFN_INSTALLATIONINFO_GETHOUSEHOLDSCANBEDONORS() = 0 and dbo.UFN_CONSTITUENT_ISHOUSEHOLD(@CONSTITUENTID) = 1  
      raiserror('HOUSEHOLDSCANNOTBEDONORS', 13, 1);  

    -- if the group type can't be a donor, raise an error  

   if exists(select GD.ID from dbo.GROUPDATA GD inner join dbo.GROUPTYPE GT on GD.GROUPTYPEID = GT.ID where GD.ID = @CONSTITUENTID and GT.CANBEDONOR = 0)  
      raiserror('GROUPCANNOTBEDONOR', 13, 1);  

   BEGIN TRY
    BEGIN TRAN

    --Add new Revenue Transaction  

    insert into dbo.REVENUE 
    (
    ID, 
    CONSTITUENTID, 
    DATE
    AMOUNT, 
    TRANSACTIONTYPECODE,
    SOURCECODE, 
    APPEALID, 
    ADDEDBYID, 
    CHANGEDBYID, 
    DATEADDED, 
    DATECHANGED)  
    values 
    (
    @ID
    @CONSTITUENTID
    @TRANSACTIONDATE
    @AMOUNT
    0
    @SOURCECODE
    @APPEALID,
    @CHANGEAGENTID
    @CHANGEAGENTID
    @CURRENTDATE
    @CURRENTDATE);  

    declare @REVENUEPAYMETHODID uniqueidentifier  

    set @REVENUEPAYMETHODID = newid();  

    insert into dbo.REVENUEPAYMENTMETHOD (ID,REVENUEID, PAYMENTMETHODCODE, AMOUNT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)  
     values (@REVENUEPAYMETHODID,@ID,@PAYMENTMETHODCODE,@AMOUNT, @CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE)  ;

    -- update the payment information for each revenue record in the transaction  

    exec dbo.USP_REVENUE_UPDATEPAYMENTDETAILS @REVENUEPAYMETHODID, @PAYMENTMETHODCODE, @CHECKDATE, @CHECKNUMBER, @CONSTITUENTACCOUNTID, @REFERENCEDATE, @REFERENCENUMBER, @CARDHOLDERNAME, @CREDITCARDNUMBER, @CREDITTYPECODEID, @AUTHORIZATIONCODE, @EXPIRESON
    , NULL, NULL, NULL, NULL, NULL, NULL, null, null, null, null, null, @CHANGEAGENTID,@CURRENTDATE, 0, NULL, NULL, NULL, NULL, @AMOUNT, @ORIGINALPAYMENTMETHODCODE=@PAYMENTMETHODCODE;  

    --create revenueSplit

    insert into dbo.REVENUESPLIT(ID, REVENUEID, APPLICATIONCODE, TYPECODE, AMOUNT, DESIGNATIONID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)  
    select  
     newid(),  
     @ID,  
     @TYPECODE,  
     'Gift',  
     @AMOUNT,  
     @DESIGNATIONID,  
     @CHANGEAGENTID,  
     @CHANGEAGENTID,  
     @CURRENTDATE,  
     @CURRENTDATE;

    COMMIT TRAN;     

   END TRY
   BEGIN CATCH
    IF (XACT_STATE() <>0)
          Rollback Tran;
   END CATCH;

end