USP_EVENTSALESMETHOD_ONLINE_ENABLE

Executes the "Microsite Programming Event Online" 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_EVENTSALESMETHOD_ONLINE_ENABLE
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier
)
as begin
    begin try
        declare @ONLINESALESMETHOD uniqueidentifier = dbo.UFN_SALESMETHOD_GETIDFROMTYPECODE(2);--2 = online


        if not exists(select 1 from EVENTSALESMETHOD where (EVENTID = @ID) and (SALESMETHODID = @ONLINESALESMETHOD)) 
            begin
                declare @PROGRAMID uniqueidentifier
                declare @EVENTSTARTDATE date
                select @PROGRAMID = PROGRAMID, @EVENTSTARTDATE = STARTDATE from dbo.EVENT where dbo.EVENT.ID = @ID

                if @PROGRAMID is not null
                begin
                    DECLARE @ONSALEDATE date
                    DECLARE @ONSALETIME UDT_HOURMINUTE
                        Declare @CURRENTSYSTEMDEFAULTDATE datetime = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEFROMUTC(getutcdate())  

                          set @ONSALEDATE = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEFROMUTC(@CURRENTSYSTEMDEFAULTDATE)  
                          set @ONSALETIME = dbo.UFN_HOURMINUTE_GETFROMDATE(@CURRENTSYSTEMDEFAULTDATE)

                    --reference [USP_EVENT_INSERT]

                    select
                    @ONSALEDATE = 
                        case ONSALETYPECODE
                            when 0 then @ONSALEDATE
                            when 1 then ONSALEDATE
                            when 2 then dateadd(day, -1 * ONSALETIMEBEFORE, @EVENTSTARTDATE)
                            when 3 then dateadd(week, -1 * ONSALETIMEBEFORE, @EVENTSTARTDATE)
                            when 4 then dateadd(month, -1 * ONSALETIMEBEFORE, @EVENTSTARTDATE)
                        end,
                    @ONSALETIME =
                        case ONSALETYPECODE
                            when 0 then @ONSALETIME
                            else ONSALETIME
                        end
                    from dbo.PROGRAMSALESMETHOD
                    where (PROGRAMID = @PROGRAMID)
                    and (SALESMETHODID = @ONLINESALESMETHOD
                    declare @EVENTSALESMETHODID uniqueidentifier = NEWID()

                    DECLARE @RC int
                    EXECUTE @RC = [dbo].[USP_EVENTSALESMETHOD_INSERT] 
                       @EVENTSALESMETHODID 
                      ,@ID -- event ID

                      ,@ONLINESALESMETHOD
                      ,@ONSALEDATE
                      ,@ONSALETIME
                      ,@CHANGEAGENTID
                end
            end                         
    end try
    begin catch
        --exec dbo.USP_RAISE_ERROR

        --return 1

    end catch

    return 0;
end