USP_DATAFORMTEMPLATE_EDIT_SETTLEMENTDATE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@SETTLEMENTDATE date IN
@TRANSACTIONS xml IN

Definition

Copy

          CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SETTLEMENTDATE
          (
            @ID uniqueidentifier,
            @CHANGEAGENTID uniqueidentifier = null,
            @SETTLEMENTDATE date,
            @TRANSACTIONS xml
          )
          as
            set nocount on;

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

            if @SETTLEMENTDATE is null
              begin
                raiserror('SETTLEMENTDATE_DATEREQUIRED', 13, 1);
                return 0;
              end

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

            declare @TRANSACTIONIDS table (
              ID uniqueidentifier
            );

            insert into @TRANSACTIONIDS (ID) 
              (select 
                T.c.value('(ID)[1]','uniqueidentifier') AS ID
                from @TRANSACTIONS.nodes('/TRANSACTIONS/ITEM') T(c)
              )

            -- these really need to be one table.
            update dbo.CREDITCARDPAYMENTMETHODDETAIL 
            set 
              SETTLEMENTTYPECODE = 1
              , SETTLEMENTDATE = @SETTLEMENTDATE
              , CHANGEDBYID = @CHANGEAGENTID
              , DATECHANGED = @CURRENTDATE
            from dbo.CREDITCARDPAYMENTMETHODDETAIL cpm
              inner join @TRANSACTIONIDS t on cpm.ID = t.ID

            update dbo.CREDITPAYMENT
            set 
              SETTLEMENTTYPECODE = 1
              , SETTLEMENTDATE = @SETTLEMENTDATE
              , CHANGEDBYID = @CHANGEAGENTID
              , DATECHANGED = @CURRENTDATE
            from dbo.CREDITPAYMENT cp
              inner join @TRANSACTIONIDS t on cp.ID = t.ID

          return 0;