USP_DATAFORMTEMPLATE_EDITLOAD_MEMBERSHIPPROGRAMRENEWAL
Parameters
| Parameter | Parameter Type | Mode | Description |
|---|---|---|---|
| @ID | uniqueidentifier | IN | |
| @DATALOADED | bit | INOUT | |
| @TSLONG | bigint | INOUT | |
| @MEMBERSHIPTERMTYPE | tinyint | INOUT | |
| @DUESBASEDEXPIRATIONDATETYPE | tinyint | INOUT | |
| @EXPIRATIONENDOFPRIORMONTH | bit | INOUT | |
| @EXPIRATIONENDOFPRIORMONTHCUTOFF | tinyint | INOUT | |
| @RENEWALWINDOWSTART | tinyint | INOUT | |
| @RENEWALWINDOWEND | tinyint | INOUT | |
| @AUTOMATICRENEWALRADIO | tinyint | INOUT | |
| @AUTOMATICRENEWALTIMETYPE | tinyint | INOUT | |
| @RENEWALWINDOWSTARTCUTOFFDAY | tinyint | INOUT | |
| @AFTEREXPIRATIONTIMEPERIOD1 | tinyint | INOUT | |
| @AFTEREXPIRATIONCLASSIFICATION1 | tinyint | INOUT | |
| @AFTEREXPIRATIONTIMEPERIOD2 | tinyint | INOUT | |
| @AFTEREXPIRATIONCLASSIFICATION2 | tinyint | INOUT | |
| @AFTEREXPIRATIONTIMEPERIOD3 | tinyint | INOUT | |
| @AFTEREXPIRATIONCLASSIFICATION3 | tinyint | INOUT | |
| @CLASSIFICATIONAFTERRENEWALWINDOWTYPE | tinyint | INOUT | |
| @REVENUEAFTERRENEWALWINDOWTYPE | tinyint | INOUT | |
| @DUESBASEDEXPIRATIONDATE | UDT_MONTHDAY | INOUT | |
| @AUTOMATICRENEWALNUMBERDAY | tinyint | INOUT | |
| @AUTOMATICRENEWALNUMBERMONTH | tinyint | INOUT | |
| @AUTOMATICRENEWALDAYOFMONTH | int | INOUT | |
| @PROGRAMBASEDONCODE | tinyint | INOUT | |
| @EXPIRATIONDATES | xml | INOUT | |
| @ELIGIBLEFORSPECIFICDATES | bit | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_MEMBERSHIPPROGRAMRENEWAL(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@MEMBERSHIPTERMTYPE tinyint = null output,
@DUESBASEDEXPIRATIONDATETYPE tinyint = null output,
@EXPIRATIONENDOFPRIORMONTH bit = null output,
@EXPIRATIONENDOFPRIORMONTHCUTOFF tinyint = null output,
@RENEWALWINDOWSTART tinyint = null output,
@RENEWALWINDOWEND tinyint = null output,
@AUTOMATICRENEWALRADIO tinyint = null output,
@AUTOMATICRENEWALTIMETYPE tinyint = null output,
@RENEWALWINDOWSTARTCUTOFFDAY tinyint = null output,
@AFTEREXPIRATIONTIMEPERIOD1 tinyint = null output,
@AFTEREXPIRATIONCLASSIFICATION1 tinyint = null output,
@AFTEREXPIRATIONTIMEPERIOD2 tinyint = null output,
@AFTEREXPIRATIONCLASSIFICATION2 tinyint = null output,
@AFTEREXPIRATIONTIMEPERIOD3 tinyint = null output,
@AFTEREXPIRATIONCLASSIFICATION3 tinyint = null output,
@CLASSIFICATIONAFTERRENEWALWINDOWTYPE tinyint = null output,
@REVENUEAFTERRENEWALWINDOWTYPE tinyint = null output,
@DUESBASEDEXPIRATIONDATE dbo.UDT_MONTHDAY = null output,
@AUTOMATICRENEWALNUMBERDAY tinyint = null output,
@AUTOMATICRENEWALNUMBERMONTH tinyint = null output,
@AUTOMATICRENEWALDAYOFMONTH int = null output,
@PROGRAMBASEDONCODE tinyint = null output,
@EXPIRATIONDATES xml = null output,
@ELIGIBLEFORSPECIFICDATES bit = null output
)
as
set nocount on;
-- be sure to set these, in case the select returns no rows
set @DATALOADED = 0
set @TSLONG = 0
-- 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.
set @EXPIRATIONDATES = dbo.UFN_MEMBERSHIPPROGRAM_GETENDDATE_TOITEMLISTXML(@ID);
SELECT
@DATALOADED = 1,
@TSLONG = MP.TSLONG,
@MEMBERSHIPTERMTYPE = ML.MEMBERSHIPTERMTYPECODE,
@DUESBASEDEXPIRATIONDATETYPE = MP.EXPIRESONCODE,
@EXPIRATIONENDOFPRIORMONTH = MP.BACKDATEMEMBERSHIPS,
@EXPIRATIONENDOFPRIORMONTHCUTOFF = MP.CUTOFFDAY,
@RENEWALWINDOWSTART = ML.BEFOREEXPIRATION,
@RENEWALWINDOWEND = ML.AFTEREXPIRATION,
@AUTOMATICRENEWALRADIO = ML.RENEWALWINDOWSTARTTYPECODE,
@AUTOMATICRENEWALTIMETYPE = ML.RENEWALWINDOWSTARTINTERVALCODE,
@RENEWALWINDOWSTARTCUTOFFDAY = ML.RENEWALWINDOWSTARTCUTOFFDAY,
@AFTEREXPIRATIONTIMEPERIOD1 = MLR1.INTERVALCODE,
@AFTEREXPIRATIONCLASSIFICATION1 = MLR1.STATUSCODE,
@AFTEREXPIRATIONTIMEPERIOD2 = MLR2.INTERVALCODE,
@AFTEREXPIRATIONCLASSIFICATION2 = MLR2.STATUSCODE,
@AFTEREXPIRATIONTIMEPERIOD3 = MLR3.INTERVALCODE,
@AFTEREXPIRATIONCLASSIFICATION3 = MLR3.STATUSCODE,
@CLASSIFICATIONAFTERRENEWALWINDOWTYPE = ML.NONRENEWALACTIONTYPECODE,
@REVENUEAFTERRENEWALWINDOWTYPE = ML.RENEWALWINDOWREVENUETYPECODE,
@AUTOMATICRENEWALNUMBERDAY = case when ML.RENEWALWINDOWSTARTINTERVALCODE = 0 then ML.RENEWALWINDOWSTARTTIMECODE else null end,
@AUTOMATICRENEWALNUMBERMONTH = case when ML.RENEWALWINDOWSTARTINTERVALCODE = 0 then null else ML.RENEWALWINDOWSTARTTIMECODE end,
@AUTOMATICRENEWALDAYOFMONTH = ML.RENEWALWINDOWSTARTTIMECODE,
@PROGRAMBASEDONCODE = MP.PROGRAMBASEDONCODE
FROM dbo.MEMBERSHIPPROGRAM MP
INNER JOIN MEMBERSHIPLEVEL ML ON ML.MEMBERSHIPPROGRAMID = MP.ID
LEFT JOIN MEMBERSHIPLEVELRENEWAL MLR1 ON ML.MEMBERSHIPLEVELRENEWAL1ID = MLR1.ID
LEFT JOIN MEMBERSHIPLEVELRENEWAL MLR2 ON ML.MEMBERSHIPLEVELRENEWAL2ID = MLR2.ID
LEFT JOIN MEMBERSHIPLEVELRENEWAL MLR3 ON ML.MEMBERSHIPLEVELRENEWAL3ID = MLR3.ID
WHERE MP.ID = @ID
-- This program cannot use specific date expiration with monthly terms
if exists
(
select 1
from dbo.MEMBERSHIPLEVELTERM inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIPLEVELTERM.LEVELID = MEMBERSHIPLEVEL.ID
where MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = @ID and TERMLENGTHCODE <> 1 -- Years
)
begin
set @ELIGIBLEFORSPECIFICDATES = 0
end
else
begin
set @ELIGIBLEFORSPECIFICDATES = 1
end
return 0;