UFN_MEMBERSHIPLEVEL_ISUPGRADEABLE

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@MEMBERSHIPLEVELTERMID uniqueidentifier IN

Definition

Copy


      CREATE function dbo.UFN_MEMBERSHIPLEVEL_ISUPGRADEABLE(@MEMBERSHIPLEVELTERMID uniqueidentifier)
      returns bit
      as begin
      declare @ISUPGRADEABLE bit = 0

      select 
          @ISUPGRADEABLE = case when (ML.ID IS NULL) or (MLT.ID IS NULL and UML.ID IS NULL) then 0 else 1 end
      from 
          MEMBERSHIPLEVELTERM MYTERM
          inner join MEMBERSHIPLEVEL ML on ML.ID = MYTERM.LEVELID
          left join MEMBERSHIPLEVELTERM MLT on MLT.ID = MYTERM.ID and dbo.UFN_MEMBERSHIPLEVELTERM_ISUPGRADEABLE(MLT.ID) = 1 --any upgradeable terms at current level

          left join (select ML2.* from MEMBERSHIPLEVEL ML2                                                                  --any upgradeable levels above current level  

                             inner join MEMBERSHIPLEVELTERM MLT2 on ML2.ID = MLT2.LEVELID and MLT2.ISACTIVE = 1
                   where ML2.ISACTIVE = 1) UML
                       on ML.MEMBERSHIPPROGRAMID = UML.MEMBERSHIPPROGRAMID and ML.SEQUENCE < UML.SEQUENCE

      where
          MYTERM.ID = @MEMBERSHIPLEVELTERMID

      return @ISUPGRADEABLE;
      end