USP_RECORDOPERATION_MERCHANTACCOUNTMARKDEFAULTCARDPRESENTACCOUNT

Executes the "Merchant Account: Mark Default Card Present Account" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being updated.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the update.

Definition

Copy


                    CREATE procedure dbo.USP_RECORDOPERATION_MERCHANTACCOUNTMARKDEFAULTCARDPRESENTACCOUNT
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null
                    )
                    as
                        set nocount on

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

                        declare @CURRENTDATE datetime
                        set @CURRENTDATE = getdate()

                        begin try
                            -- Clear any other merchant accounts that may have been marked as the default

                            update dbo.MERCHANTACCOUNT set
                                ISDEFAULTCARDPRESENTACCOUNT = 0,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where 
                                ID <> @ID and 
                                ISDEFAULTCARDPRESENTACCOUNT = 1

                            update dbo.MERCHANTACCOUNT set
                                ISDEFAULTCARDPRESENTACCOUNT = 1,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where 
                                ID = @ID;

                            -- The merchant account may not be in the DB yet so insert it if needed

                            if @@ROWCOUNT = 0
                                insert into dbo.MERCHANTACCOUNT 
                                (
                                    ID,
                                    ISDEFAULTCARDPRESENTACCOUNT,
                                    DATEADDED,
                                    DATECHANGED,
                                    ADDEDBYID,
                                    CHANGEDBYID
                                )
                                values
                                (
                                    @ID,
                                    1,
                                    @CURRENTDATE,
                                    @CURRENTDATE,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID
                                )

                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch                            

                        return 0