USP_DATAFORMTEMPLATE_ADD_DAILYSALESQUICKMEMBERSHIP_UPGRADE

The save procedure used by the add dataform template "Daily Sales Quick Membership Upgrade Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@SALESORDERID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@MEMBERSHIPID uniqueidentifier IN
@MEMBERSHIPLEVELID uniqueidentifier IN
@MEMBERSHIPLEVELTERMID uniqueidentifier IN
@MEMBERSHIPPROGRAMID uniqueidentifier IN
@MEMBERSHIPLEVELTYPECODEID uniqueidentifier IN
@NUMBEROFCHILDREN int IN

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DAILYSALESQUICKMEMBERSHIP_UPGRADE
                (
                    @ID uniqueidentifier = null output,
                    @SALESORDERID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @MEMBERSHIPID uniqueidentifier = null,
                    @MEMBERSHIPLEVELID uniqueidentifier = null,
                    @MEMBERSHIPLEVELTERMID uniqueidentifier = null,
                    -- adding these for constraint catching, they will be determined from the MEMBERSHIPID
                    @MEMBERSHIPPROGRAMID uniqueidentifier = null,
                    @MEMBERSHIPLEVELTYPECODEID uniqueidentifier = null,
                    @NUMBEROFCHILDREN integer = 0
                )
                as

                set nocount on;

                if @ID is null
                    set @ID = newid()

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

                declare @CURRENTDATE datetime
                set @CURRENTDATE = getdate()

                declare @COMMENTS nvarchar(1000) = null,
                        @EXPIRATIONDATE datetime;

                select
                    @MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAMID,
                    @NUMBEROFCHILDREN = NUMBEROFCHILDREN,
                    @COMMENTS = '',
                    @EXPIRATIONDATE = case

                        when MEMBERSHIP.STATUSCODE = 0 and dateadd(month,  (select AFTEREXPIRATION from dbo.MEMBERSHIPLEVEL where ID = MEMBERSHIP.MEMBERSHIPLEVELID), MEMBERSHIP.EXPIRATIONDATE) >= @CURRENTDATE 
                            then dbo.UFN_MEMBERSHIP_CALCULATEEXPIRATIONDATEBYLEVEL(MEMBERSHIPLEVELID, MEMBERSHIPLEVELTERMID, MEMBERSHIP.EXPIRATIONDATE)

                        else dbo.UFN_MEMBERSHIP_CALCULATEEXPIRATIONDATEBYLEVEL(MEMBERSHIPLEVELID, MEMBERSHIPLEVELTERMID, @CURRENTDATE)

                    end
                from dbo.MEMBERSHIP 
                where ID = @MEMBERSHIPID

                begin try

                    exec dbo.USP_DATAFORMTEMPLATE_ADD_DAILYSALESORDER_MEMBERSHIPRENEW
                        @ID output,
                        @CHANGEAGENTID,
                        @SALESORDERID,
                        @MEMBERSHIPID,
                        @MEMBERSHIPPROGRAMID,
                        @MEMBERSHIPLEVELID,
                        @MEMBERSHIPLEVELTERMID,
                        @MEMBERSHIPLEVELTYPECODEID,
                        @NUMBEROFCHILDREN,
                        @COMMENTS,
                        @EXPIRATIONDATE;

                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR
                    return 1
                end catch

                return 0