USP_REVENUEPAYMENT_EDIT

Stored procedure to save a revenue payment.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@DATE datetime 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
@ISSUER nvarchar(100) IN
@NUMBEROFUNITS decimal(20, 3) IN
@SYMBOL nvarchar(25) IN
@MEDIANPRICE decimal(19, 4) IN
@GIFTINKINDSUBTYPECODEID uniqueidentifier IN
@PROPERTYSUBTYPECODEID uniqueidentifier IN
@CONSTITUENTACCOUNTID uniqueidentifier IN
@GIVENANONYMOUSLY bit IN
@DONOTRECEIPT bit IN
@CHANGEDATE datetime IN
@OTHERPAYMENTMETHODCODEID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_REVENUEPAYMENT_EDIT
            (
                @ID uniqueidentifier,
                @CURRENTAPPUSERID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier,
                @DATE datetime,
                @PAYMENTMETHODCODE tinyint,
                @CHECKDATE dbo.UDT_FUZZYDATE,
                @CHECKNUMBER nvarchar(20),
                @REFERENCEDATE dbo.UDT_FUZZYDATE,
                @REFERENCENUMBER nvarchar(20),
                @CARDHOLDERNAME nvarchar(255),
                @CREDITCARDNUMBER nvarchar(4),
                @CREDITTYPECODEID uniqueidentifier,
                @AUTHORIZATIONCODE nvarchar(20),
                @EXPIRESON dbo.UDT_FUZZYDATE,
                @ISSUER nvarchar(100),
                @NUMBEROFUNITS decimal(20,3),
                @SYMBOL nvarchar(25),
                @MEDIANPRICE decimal(19,4),
                @GIFTINKINDSUBTYPECODEID uniqueidentifier,
                @PROPERTYSUBTYPECODEID uniqueidentifier,
                @CONSTITUENTACCOUNTID uniqueidentifier,
                @GIVENANONYMOUSLY bit,
                @DONOTRECEIPT bit,
                @CHANGEDATE datetime = null,
                @OTHERPAYMENTMETHODCODEID uniqueidentifier = null
            )
            as
            set nocount on;

            declare @ORIGINALPAYMETHODCODE tinyint;
            declare @ORIGINALPAYMETHODID uniqueidentifier;
            declare @SALEDATE datetime;
            declare @SALEAMOUNT money;
            declare @BROKERFEE money;
            declare @SALEPOSTDATE datetime;
            declare @SALEPOSTSTATUSCODE tinyint;
            declare @REVENUEID uniqueidentifier;
            declare @AMOUNT money;

            if @CHANGEDATE is null  
                set @CHANGEDATE = getdate();

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

            declare @REVENUEPAYMENTMETHODID uniqueidentifier
            select top 1 
                @AMOUNT = AMOUNT,
                @REVENUEPAYMENTMETHODID = ID,
                @ORIGINALPAYMETHODID = ID,
                @ORIGINALPAYMETHODCODE = PAYMENTMETHODCODE 
            from dbo.REVENUEPAYMENTMETHOD
            where REVENUEID = @ID

            if @PAYMENTMETHODCODE = 5
                select top 1
                    @SALEDATE = SALEDATE,
                    @SALEAMOUNT = SALEAMOUNT,
                    @BROKERFEE = BROKERFEE,
                    @SALEPOSTDATE = SALEPOSTDATE,
                    @SALEPOSTSTATUSCODE = SALEPOSTSTATUSCODE
                from dbo.PROPERTYDETAIL
                where 
                    ID = @ORIGINALPAYMETHODID and
                    PROPERTYDETAIL.ISSOLD = 1 -- Make sure the property has sold


            declare @FIELDSCHANGED bit;
            set @FIELDSCHANGED = 0;

            -- check to see if date changed

            if (select count(REVENUE.ID) from dbo.REVENUE where REVENUE.ID = @REVENUEID and DATE = @DATE) = 0
                set @FIELDSCHANGED = 1;

            update dbo.REVENUE
            set    GIVENANONYMOUSLY = @GIVENANONYMOUSLY
                DATE = @DATE,
                DONOTRECEIPT = @DONOTRECEIPT,
                CHANGEDBYID = @CHANGEAGENTID
                DATECHANGED = @CHANGEDATE 
            where ID = @ID;

            if @FIELDSCHANGED = 1
                exec dbo.USP_REVENUE_UPDATERERECEIPTS @REVENUEID, @CHANGEAGENTID, @CHANGEDATE;

            if @ORIGINALPAYMETHODID is null
            begin
                set @ORIGINALPAYMETHODID = newid();
                insert into dbo.REVENUEPAYMENTMETHOD
                    (ID, REVENUEID, PAYMENTMETHODCODE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                    values (@ORIGINALPAYMETHODID, @ID, @PAYMENTMETHODCODE, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);
            end
            else
                update dbo.REVENUEPAYMENTMETHOD
                set    PAYMENTMETHODCODE = @PAYMENTMETHODCODE,
                    CHANGEDBYID = @CHANGEAGENTID
                    DATECHANGED = @CHANGEDATE 
                where ID = @ORIGINALPAYMETHODID;


            exec dbo.USP_REVENUE_UPDATEPAYMENTDETAILS @ORIGINALPAYMETHODID, @PAYMENTMETHODCODE, @CHECKDATE, @CHECKNUMBER, @CONSTITUENTACCOUNTID, @REFERENCEDATE, @REFERENCENUMBER, @CARDHOLDERNAME, @CREDITCARDNUMBER, @CREDITTYPECODEID, @AUTHORIZATIONCODE, @EXPIRESON, @ISSUER, @NUMBEROFUNITS, @SYMBOL, @MEDIANPRICE, @PROPERTYSUBTYPECODEID, @GIFTINKINDSUBTYPECODEID, @SALEDATE, @SALEAMOUNT, @BROKERFEE, @SALEPOSTDATE, @SALEPOSTSTATUSCODE, @CHANGEAGENTID,@CHANGEDATE, 0, @OTHERPAYMENTMETHODCODEID, '', 0, 0, @AMOUNT,@ORIGINALPAYMENTMETHODCODE=@ORIGINALPAYMETHODCODE;

            return 0;