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;