USP_DATAFORMTEMPLATE_VIEW_RESERVEDORDER

The load procedure used by the view dataform template "Reserved Order View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@ORDERSTATUS int INOUT Status
@HASINVALIDSALESORDERITEMMEMBERSHIP bit INOUT HASINVALIDSALESORDERITEMMEMBERSHIP
@NEEDTOCHANGEEVENTREGISTRATIONTOTAL bit INOUT NEEDTOCHANGEEVENTREGISTRATIONTOTAL

Definition

Copy

            CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_RESERVEDORDER
            (
                @ID uniqueidentifier,
                @DATALOADED bit = 0 output,
                @ORDERSTATUS int = null output,
                @HASINVALIDSALESORDERITEMMEMBERSHIP bit = null output,
                @NEEDTOCHANGEEVENTREGISTRATIONTOTAL bit = null output
            )
            as
                set nocount on;

                set @DATALOADED = 0

                select 
                    @DATALOADED = 1,
                    @ORDERSTATUS = SALESORDER.STATUSCODE
                from
                    dbo.SALESORDER
                where
                    SALESORDER.ID = @ID;

                if @ORDERSTATUS = 6 
                    begin
                        if exists( select MEMBER.ID
                                      from dbo.MEMBER 
                                          inner join dbo.SALESORDERITEMMEMBERSHIP on SALESORDERITEMMEMBERSHIP.MEMBERSHIPID = MEMBER.MEMBERSHIPID
                                          inner join dbo.MEMBERSHIP on MEMBER.MEMBERSHIPID = MEMBERSHIP.ID
                                          inner join dbo.MEMBERSHIPPROGRAM on MEMBERSHIP.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID 
                                          inner join dbo.SALESORDERITEM on SALESORDERITEM.ID = SALESORDERITEMMEMBERSHIP.ID
                                          inner join dbo.SALESORDER on SALESORDERITEM.SALESORDERID = SALESORDER.ID 
                                      where
                                          MEMBERSHIPPROGRAM.ALLOWMULTIPLEMEMBERSHIPS = 0
                                          and MEMBERSHIP.STATUSCODE <> 1
                                          and MEMBER.ISDROPPED <> 1
                                          and MEMBER.CONSTITUENTID in (
                                              select SOM.CONSTITUENTID 
                                              from dbo.SALESORDERITEMMEMBER SOM 
                                              inner join dbo.SALESORDERITEMMEMBERSHIP SOMP on SOM.SALESORDERITEMMEMBERSHIPID = SOMP.ID
                                              where SOMP.ID = SALESORDERITEMMEMBERSHIP.ID 
                                              and dbo.UFN_MEMBERSHIPTRANSACTION_DETERMINEACTIONCODE(SALESORDERITEMMEMBERSHIP.MEMBERSHIPID, SOMP.MEMBERSHIPLEVELID, getdate()) = 0
                                          )
                                          and SALESORDERITEM.SALESORDERID = @ID
                                          and SALESORDER.STATUSCODE = 6
                                      )
                            set @HASINVALIDSALESORDERITEMMEMBERSHIP = 1
                      else
                            set @HASINVALIDSALESORDERITEMMEMBERSHIP = 0


              if exists ( select SALESORDERITEM.ID 
                            from dbo.[SALESORDERITEM]
                                inner join dbo.[SALESORDER] on [SALESORDER].[ID] = [SALESORDERITEM].[SALESORDERID]
                                inner join dbo.[SALESORDERITEMEVENTREGISTRATION] on [SALESORDERITEM].[ID] = [SALESORDERITEMEVENTREGISTRATION].[ID]
                                inner join dbo.[REGISTRANT] on [SALESORDERITEMEVENTREGISTRATION].[REGISTRANTID] = [REGISTRANT].[ID]
                                inner join dbo.[EVENT] on [REGISTRANT].[EVENTID] = [EVENT].[ID]
                            where
                                [SALESORDER].[ID] = @ID and
                                dbo.UFN_EVENTREGISTRANT_GETBALANCE(REGISTRANT.ID) < SALESORDERITEM.TOTAL)
                            set @NEEDTOCHANGEEVENTREGISTRATIONTOTAL = 1
                      else
                            set @NEEDTOCHANGEEVENTREGISTRATIONTOTAL = 0

        end

                return 0;