USP_SALESORDER_COMPLETEPAYONARRIVALORDER

Executes the "Sales Order Pay On Arrival Record Operation" 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_SALESORDER_COMPLETEPAYONARRIVALORDER
      (
          @ID uniqueidentifier,
          @CHANGEAGENTID uniqueidentifier
      )
      as begin
                set nocount on;
                exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @SALESORDERID = @ID, @EXCLUDEGROUPSALES = 1;

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

                declare @CURRENTDATE datetime
                set @CURRENTDATE = getdate()

                declare @CONSTITUENTID uniqueidentifier
                declare @SALESMETHODTYPECODE tinyint

                select
                    @CONSTITUENTID = CONSTITUENTID,
                    @SALESMETHODTYPECODE = SALESMETHODTYPECODE
                from dbo.SALESORDER
                where ID = @ID;

                if (@SALESMETHODTYPECODE = 1 or @SALESMETHODTYPECODE = 3) and @CONSTITUENTID is null
                begin
                    raiserror('BBERR_CONSTITUENTREQUIRED.', 13, 1);
                    return 1;
                end

                begin try
          -- set order status to reserved

                  update dbo.SALESORDER
                      set STATUSCODE = 6
                      --TRANSACTIONDATE = @CURRENTDATE,

                      TRANSACTIONDATE = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEFROMUTC(getutcdate()),
                      CHANGEDBYID = @CHANGEAGENTID,
                      DATECHANGED = @CURRENTDATE
                  where ID = @ID;                

                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR
                    return 1
                end catch                

                return 0                    
      end