USP_CREDITCARDPROCESSINGHISTORY_UPDATEORCREATE

Updates the credit card processing record with the specified business process status identifier or creates one if no such record exists.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@BUSINESSPROCESSSTATUSID uniqueidentifier IN
@BATCHNUMBER nvarchar(100) IN

Definition

Copy


            create procedure dbo.USP_CREDITCARDPROCESSINGHISTORY_UPDATEORCREATE
            (
                @ID uniqueidentifier = null output,
                @CHANGEAGENTID uniqueidentifier = null,
                @BUSINESSPROCESSSTATUSID uniqueidentifier = null,
                @BATCHNUMBER nvarchar(100) = null
            )
            as
            set nocount on;

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

            declare @CURRENTDATE datetime;
            set @CURRENTDATE = getdate();

            begin try
                update dbo.CREDITCARDPROCESSINGHISTORY
                set BUSINESSPROCESSSTATUSID = @BUSINESSPROCESSSTATUSID,
                    BATCHNUMBER = @BATCHNUMBER
                where BUSINESSPROCESSSTATUSGUID = @BUSINESSPROCESSSTATUSID;

                if @@ROWCOUNT > 0
                    select @ID = ID
                    from dbo.CREDITCARDPROCESSINGHISTORY
                    where BUSINESSPROCESSSTATUSGUID = @BUSINESSPROCESSSTATUSID;
                else
                begin
                    if @ID is null
                        set @ID = newid();

                    insert into dbo.CREDITCARDPROCESSINGHISTORY(ID, BUSINESSPROCESSSTATUSGUID, BUSINESSPROCESSSTATUSID, BATCHNUMBER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values(@ID, @BUSINESSPROCESSSTATUSID, @BUSINESSPROCESSSTATUSID, @BATCHNUMBER, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
                end                    
            end try
            begin catch
                exec dbo.USP_RAISE_ERROR;
                return 1;
            end catch

            return 0;