USP_DATAFORMTEMPLATE_ADD_DAILYSALESQUICKMEMBERSHIP_RENEW

The save procedure used by the add dataform template "Daily Sales Quick Membership Renew 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
@MEMBERSHIPPROGRAMID uniqueidentifier IN
@MEMBERSHIPLEVELID uniqueidentifier IN
@MEMBERSHIPLEVELTERMID uniqueidentifier IN
@MEMBERSHIPLEVELTYPECODEID uniqueidentifier IN
@NUMBEROFCHILDREN int IN
@GIVENBYID uniqueidentifier IN

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DAILYSALESQUICKMEMBERSHIP_RENEW
                (
                    @ID uniqueidentifier = null output,
                    @SALESORDERID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @MEMBERSHIPID uniqueidentifier = null,
                    -- adding these for constraint catching, they will be determined from the MEMBERSHIPID
                    @MEMBERSHIPPROGRAMID uniqueidentifier = null,
                    @MEMBERSHIPLEVELID uniqueidentifier = null,
                    @MEMBERSHIPLEVELTERMID uniqueidentifier = null,
                    @MEMBERSHIPLEVELTYPECODEID uniqueidentifier = null,
                    @NUMBEROFCHILDREN integer = 0,
                    @GIVENBYID uniqueidentifier = null
                )
                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),
                        @EXPIRATIONDATE datetime

                select
                    @MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAMID,
                    @MEMBERSHIPLEVELID = MEMBERSHIPLEVELID,
                    @MEMBERSHIPLEVELTERMID = MEMBERSHIPLEVELTERMID,
                    @MEMBERSHIPLEVELTYPECODEID = MEMBERSHIPLEVELTYPECODEID,
                    @NUMBEROFCHILDREN = NUMBEROFCHILDREN,
                    @COMMENTS = '',
                    @EXPIRATIONDATE =
                        case
                            when MEMBERSHIP.STATUSCODE in (0,3,4) and dateadd(month,  (select AFTEREXPIRATION from dbo.MEMBERSHIPLEVEL where ID = MEMBERSHIP.MEMBERSHIPLEVELID), MEMBERSHIP.EXPIRATIONDATE) >= @CURRENTDATE then
                                dbo.UFN_MEMBERSHIP_CALCULATERENEWALEXPIRATION_2(MEMBERSHIP.EXPIRATIONDATE, MEMBERSHIP.MEMBERSHIPLEVELTERMID)
                            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,
                        @GIVENBYID;


                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR
                    return 1
                end catch

                return 0