USP_DATAFORMTEMPLATE_EDITLOAD_ORDERPATRONCONTACTINFO
The load procedure used by the edit dataform template "Order Patron Contact Info Edit Data 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. |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@ADDRESS_ID | uniqueidentifier | INOUT | Address ID |
@ADDRESS_ADDRESSTYPECODEID | uniqueidentifier | INOUT | Address type |
@ADDRESS_COUNTRYID | uniqueidentifier | INOUT | Country |
@ADDRESS_STATEID | uniqueidentifier | INOUT | State |
@ADDRESS_ADDRESSBLOCK | nvarchar(150) | INOUT | Address |
@ADDRESS_CITY | nvarchar(50) | INOUT | City |
@ADDRESS_POSTCODE | nvarchar(12) | INOUT | ZIP |
@PHONE_ID | uniqueidentifier | INOUT | Phone ID |
@PHONE_PHONETYPECODEID | uniqueidentifier | INOUT | Phone type |
@PHONE_NUMBER | nvarchar(100) | INOUT | Phone number |
@EMAILADDRESS_ID | uniqueidentifier | INOUT | Email address ID |
@EMAILADDRESS_EMAILADDRESSTYPECODEID | uniqueidentifier | INOUT | Email type |
@EMAILADDRESS_EMAILADDRESS | UDT_EMAILADDRESS | INOUT | Email address |
@CONSTITUENTID | uniqueidentifier | INOUT | Constituent ID |
@ISHOUSEHOLDMEMBER | bit | INOUT | |
@UPDATEMATCHINGHOUSEHOLDADDRESSES | bit | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_ORDERPATRONCONTACTINFO
(
@ID uniqueidentifier, --Order ID
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@ADDRESS_ID uniqueidentifier = null output,
@ADDRESS_ADDRESSTYPECODEID uniqueidentifier = null output,
@ADDRESS_COUNTRYID uniqueidentifier = null output,
@ADDRESS_STATEID uniqueidentifier = null output,
@ADDRESS_ADDRESSBLOCK nvarchar(150) = null output,
@ADDRESS_CITY nvarchar(50) = null output,
@ADDRESS_POSTCODE nvarchar(12) = null output,
@PHONE_ID uniqueidentifier = null output,
@PHONE_PHONETYPECODEID uniqueidentifier = null output,
@PHONE_NUMBER nvarchar(100) = null output,
@EMAILADDRESS_ID uniqueidentifier = null output,
@EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null output,
@EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = null output,
@CONSTITUENTID uniqueidentifier = null output,
@ISHOUSEHOLDMEMBER bit = null output,
@UPDATEMATCHINGHOUSEHOLDADDRESSES bit = null output
) as
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
declare @ADDRESS_TSLONG bigint;
set @ADDRESS_TSLONG = 0;
declare @PHONE_TSLONG bigint;
set @PHONE_TSLONG = 0;
declare @EMAILADDRESS_TSLONG bigint;
set @EMAILADDRESS_TSLONG = 0;
select @CONSTITUENTID = [CONSTITUENTID] from dbo.[SALESORDER] where [ID] = @ID;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
select
@DATALOADED = 1,
@TSLONG = CONSTITUENT.TSLONG,
@ADDRESS_ID = ADDRESS.ID,
@ADDRESS_TSLONG = ADDRESS.TSLONG,
@ADDRESS_ADDRESSTYPECODEID = ADDRESS.ADDRESSTYPECODEID,
@ADDRESS_COUNTRYID = ADDRESS.COUNTRYID,
@ADDRESS_STATEID = ADDRESS.STATEID,
@ADDRESS_ADDRESSBLOCK = ADDRESS.ADDRESSBLOCK,
@ADDRESS_CITY = ADDRESS.CITY,
@ADDRESS_POSTCODE = ADDRESS.POSTCODE,
@PHONE_ID = PHONE.ID,
@PHONE_TSLONG = PHONE.TSLONG,
@PHONE_PHONETYPECODEID = PHONE.PHONETYPECODEID,
@PHONE_NUMBER = PHONE.NUMBER,
@EMAILADDRESS_ID = EMAILADDRESS.ID,
@EMAILADDRESS_TSLONG = EMAILADDRESS.TSLONG,
@EMAILADDRESS_EMAILADDRESSTYPECODEID = EMAILADDRESS.EMAILADDRESSTYPECODEID,
@EMAILADDRESS_EMAILADDRESS = EMAILADDRESS.EMAILADDRESS
from
dbo.CONSTITUENT
left outer join
dbo.ADDRESS on CONSTITUENT.ID = ADDRESS.CONSTITUENTID and ADDRESS.ISPRIMARY = 1
left outer join
dbo.PHONE on CONSTITUENT.ID = PHONE.CONSTITUENTID and PHONE.ISPRIMARY = 1
left outer join
dbo.EMAILADDRESS on CONSTITUENT.ID = EMAILADDRESS.CONSTITUENTID and EMAILADDRESS.ISPRIMARY = 1
where
CONSTITUENT.ID = @CONSTITUENTID;
if @ADDRESS_ID is null
exec @ADDRESS_COUNTRYID = dbo.UFN_COUNTRY_GETDEFAULT;
-- set @TSLONG to the max value of the child records
if @ADDRESS_TSLONG > @TSLONG
set @TSLONG = @ADDRESS_TSLONG;
if @PHONE_TSLONG > @TSLONG
set @TSLONG = @PHONE_TSLONG;
if @EMAILADDRESS_TSLONG > @TSLONG
set @TSLONG = @EMAILADDRESS_TSLONG;
set @ISHOUSEHOLDMEMBER = case when exists (
select 1
from dbo.GROUPMEMBER GM
left outer join dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GM.ID
left outer join dbo.GROUPDATA GD on GD.ID = GM.GROUPID
where GM.MEMBERID = @CONSTITUENTID
and GD.GROUPTYPECODE = 0
and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE))
or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE))
) then 1 else 0 end;
set @UPDATEMATCHINGHOUSEHOLDADDRESSES = @ISHOUSEHOLDMEMBER;
return 0;