USP_DATAFORMTEMPLATE_EDITLOAD_MEMBERSHIPPROGRAMDUESBASEDRULES

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@DATALOADED bit INOUT
@TSLONG bigint INOUT
@DUESTREATEDASCONTRIBUTION bit INOUT
@DUESONEPAYMENTEACHTERM bit INOUT
@DUESMULTIPLEPAYMENTSEACHTERM bit INOUT
@DESIGNATIONSFORCONTRIBUTEDPORTION xml INOUT
@MEMBERSHIPLEVELDESIGNATIONS xml INOUT
@PROGRAMTYPECODE tinyint INOUT
@DISCOUNTSFORPROGRAM xml INOUT
@BASECURRENCYID uniqueidentifier INOUT
@CURRENTAPPUSERID uniqueidentifier IN
@DEDUCTIBILITYCODE tinyint INOUT
@DUESINSTALLMENTPOSTSTATUSCODE tinyint INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_MEMBERSHIPPROGRAMDUESBASEDRULES
(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @TSLONG bigint = 0 output,
  @DUESTREATEDASCONTRIBUTION bit = null output,
  @DUESONEPAYMENTEACHTERM bit = null output,
  @DUESMULTIPLEPAYMENTSEACHTERM bit = null output,
  @DESIGNATIONSFORCONTRIBUTEDPORTION xml = null output,
  @MEMBERSHIPLEVELDESIGNATIONS xml = null output,
  @PROGRAMTYPECODE tinyint = null output,
  @DISCOUNTSFORPROGRAM xml = null output,
  @BASECURRENCYID uniqueidentifier = null output,
  @CURRENTAPPUSERID uniqueidentifier = null,
  @DEDUCTIBILITYCODE tinyint = null output,
  @DUESINSTALLMENTPOSTSTATUSCODE tinyint = null output
)
as

  set nocount on;

  -- be sure to set these, in case the select returns no rows

  set @DATALOADED = 0;
  set @TSLONG = 0;
  set @BASECURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);

  -- populate the output parameters, which correspond to fields on the form.  Note that

  -- we set @DATALOADED = 1 to indicate that the load was successful.  Otherwise, the system

  -- will display a "no data loaded" message.  Also note that we fetch the TSLONG so that concurrency

  -- can be considered.


  select
    @DATALOADED = 1,
    @TSLONG = TSLONG,
    @DUESTREATEDASCONTRIBUTION = DUESTREATEDASCONTRIBUTION,
    @DUESONEPAYMENTEACHTERM = ONEPAYMENTEACHTERM,
    @DUESMULTIPLEPAYMENTSEACHTERM = MULTIPLEPAYMENTSEACHTERM,
    @PROGRAMTYPECODE = PROGRAMTYPECODE,
    @DEDUCTIBILITYCODE = DEDUCTIBILITYCODE,
    @DUESINSTALLMENTPOSTSTATUSCODE = INSTALLMENTPOSTSTATUSCODE
  from dbo.MEMBERSHIPPROGRAM
  where ID = @ID;

  set @DESIGNATIONSFORCONTRIBUTEDPORTION = (
    select
      ID,
      DESIGNATIONID,
      [PERCENT]
    from dbo.MEMBERSHIPPROGRAMDESIGNATION
    where MEMBERSHIPPROGRAMID = @ID
    for xml raw ('ITEM'), type, elements, root('DESIGNATIONSFORCONTRIBUTEDPORTION'), BINARY BASE64);

  set @MEMBERSHIPLEVELDESIGNATIONS = (
    select
      MEMBERSHIPLEVELDESIGNATION.ID,
      MEMBERSHIPLEVEL.ID as LEVELID,
      MEMBERSHIPLEVELDESIGNATION.DESIGNATIONID,
      MEMBERSHIPLEVELDESIGNATION.[PERCENT],
      0 as USERMODIFIED
    from dbo.MEMBERSHIPLEVEL
      left outer join dbo.MEMBERSHIPLEVELDESIGNATION on MEMBERSHIPLEVEL.ID = MEMBERSHIPLEVELDESIGNATION.MEMBERSHIPLEVELID
    where
      MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = @ID
    for xml raw ('ITEM'), type, elements, root('MEMBERSHIPLEVELDESIGNATIONS'), BINARY BASE64);

  set @DISCOUNTSFORPROGRAM = (
    select
      MEMBERSHIPPROMO.ID,
      MEMBERSHIPPROMOAVAILABILITY.ID as MEMBERSHIPPROMOAVAILABILITYID,
      case when MEMBERSHIPPROMOAVAILABILITY.ID is not NULL then 1 else 0 end as APPLY,
      MEMBERSHIPPROMO.NAME,
      MEMBERSHIPPROMO.DISCOUNTCALCULATIONTYPECODE,
      MEMBERSHIPPROMO.EXTENSIONCALCULATIONTYPECODE,
      MEMBERSHIPPROMO.PROMOTIONTYPECODE,
      MEMBERSHIPPROMO.AMOUNT,
      MEMBERSHIPPROMO.[PERCENT],
      MEMBERSHIPPROMO.EXTENSIONVALUE,
      MEMBERSHIPPROMO.BASECURRENCYID,
      MEMBERSHIPPROMO.FORMATTEDVALUE
    from dbo.MEMBERSHIPPROMO
      left outer join dbo.MEMBERSHIPPROMOAVAILABILITY on MEMBERSHIPPROMO.ID = MEMBERSHIPPROMOAVAILABILITY.MEMBERSHIPPROMOID and MEMBERSHIPPROMOAVAILABILITY.MEMBERSHIPPROGRAMID = @ID
    where
      (
        @PROGRAMTYPECODE = 0 or
        MEMBERSHIPPROMO.PROMOTIONTYPECODE = 0
      )
      and MEMBERSHIPPROMO.APPLICATIONTYPECODE = 0
      and (MEMBERSHIPPROMO.ISACTIVE = 1 or MEMBERSHIPPROMOAVAILABILITY.ID is not null)
    for xml raw('ITEM'),type,elements,root('DISCOUNTSFORPROGRAM'),BINARY BASE64
  );

  return 0;