====== pears.FuzeLookUpPhone ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."FuzeLookUpPhone"(
/* Application Maintained Function / Procedure - DO NOT EDIT*/
in @Number char(100) )
result(
"RecordType" char(1),
"RecordTypeDescription" char(20),
"RecordID" char(20),
"NumberType" char(25),
"RecordName" varchar(93),
"AddressLine1" char(40),
"Town" char(30),
"EmailAddress" long varchar,
"SortName" char(100),
"CompanyID" char(20),
"Position" char(50),
"TotalRows" integer )
begin
select "RecordType","RecordTypeDescription","RecordID","NumberType","RecordName","AddressLine1","Town","EmailAddress","SortName","CompanyID","Position","count"() over() as "TotalRows"
from(select 'C' as "RecordType",
(select "CompanyName" from "Params") as "RecordTypeDescription",
"Phone"."WhoID" as "RecordID",
"isnull"("DisplayName","PhoneType"."Name") as "NumberType",
"Company"."Name" as "RecordName",
"Company"."Addr1" as "AddressLine1",
"Company"."Town" as "Town",
null as "EmailAddress",
"Company"."KeyName" as "SortName",
null as "CompanyID",
null as "Position"
from "Phone"
key join "PhoneType"
join "Company" on "Company"."CompanyID" = "Phone"."WhoID"
join "DivisionsAllowed" on "Company"."DivisionID" = "DivisionsAllowed"."DivisionID"
where "length"("Phone"."NumberDigits") > 10
and "Phone"."Who" = 'C'
and "locate"("PhoneType"."Capabilities",'D') > 0
and "phone"."NumberDialable" = @Number union all
select 'P' as "RecordType",
(select "ApplicantName" from "Params") as "RecordTypeDescription",
"PersonID" as "RecordID",
"isnull"("PhoneType"."DisplayName","PhoneType"."Name") as "NumberType",
"Person"."Name" as "RecordName",
"Person"."Addr1" as "AddressLine1",
"Person"."Town" as "Town",
(select "nullif"("list"("ep"."Number"),'') from "Phone" as "ep" key join "PhoneType" as "ept" where "ep"."Who" = 'P' and "ep"."WhoID" = "RecordID" and "ept"."Capabilities" like '%E%') as "EmailAddress",
"Person"."KeyName" as "SortName",
null as "CompanyID",
(select "Status"."Name" from "Status" where "Status"."Type" = 'P' and "Status"."Status" = "Person"."Status") as "Position"
from "Phone"
key join "PhoneType"
join "Person" on "Person"."PersonID" = "Phone"."WhoID"
join "DivisionsAllowed" on "Person"."DivisionID" = "DivisionsAllowed"."DivisionID"
where "length"("Phone"."NumberDigits") > 10
and "Phone"."Who" = 'P'
and "locate"("PhoneType"."Capabilities",'D') > 0
and "Phone"."NumberDialable" = @Number union all
select 'E' as "RecordType",
(select "CoPersonName" from "Params") as "RecordTypeDescription",
"Employment"."EmploymentID" as "RecordID",
"isnull"("PhoneType"."DisplayName","PhoneType"."Name") as "NumberType",
"string"("Company"."Name",' - ',"Person"."Name") as "RecordName",
"Company"."Addr1" as "AddressLine1",
"Company"."Town" as "Town",
(select "nullif"("list"("ep"."Number"),'') from "Phone" as "ep" key join "PhoneType" as "ept" where "ep"."Who" = 'CP' and "ep"."WhoID" = "RecordID" and "ept"."Capabilities" like '%E%') as "EmailAddress",
"Company"."KeyName" as "SortName",
"Company"."CompanyID",
"Employment"."Position" as "Position"
from "Phone"
key join "PhoneType"
join "Employment" on "Phone"."WhoID" = "Employment"."EmploymentID"
key join("Person","Company")
join "DivisionsAllowed" on "Company"."DivisionID" = "DivisionsAllowed"."DivisionID"
where "length"("Phone"."NumberDigits") > 10
and "Phone"."Who" = 'CP'
and "locate"("PhoneType"."Capabilities",'D') > 0
and "Phone"."NumberDialable" = @Number union all
select 'S' as "RecordType",
'Staff' as "RecordTypeDescription",
"Staff"."StaffID" as "RecordID",
'Mobile / Direct' as "NumberType",
"Staff"."Name" as "RecordName",
null as "AddressLine1",
null as "Town",
"Staff"."Email" as "EmailAddress",
"Staff"."KeyName" as "SortName",
null as "CompanyID",
"Staff"."Title" as "Position"
from "Staff"
where("Staff"."Mobile" = @Number
or "Staff"."ExtensionNumber" = @Number)) as "Q"
order by "Q"."SortName" asc
end
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."FuzeLookUpPhone" IS
{create procedure FuzeLookUpPhone
/* Application Maintained Function / Procedure - DO NOT EDIT*/
(IN @Number char(100))
RESULT
(
RecordType char(1),
RecordTypeDescription char(20),
RecordID char(20),
NumberType char(25),
RecordName varchar(93),
AddressLine1 char(40),
Town char(30),
EmailAddress long varchar,
SortName char(100),
CompanyID char(20),
Position char(50),
TotalRows int
)
BEGIN
SELECT
RecordType, RecordTypeDescription, RecordID, NumberType, RecordName, AddressLine1, Town, EmailAddress, SortName, CompanyID, Position, count(*) OVER () as TotalRows FROM
(
SELECT
'C' as RecordType,
(select CompanyName from Params) as RecordTypeDescription,
Phone.WhoID as RecordID,
isnull(DisplayName,PhoneType.[Name]) as NumberType,
Company.[Name] as RecordName,
Company.Addr1 as AddressLine1,
Company.Town as Town,
null as EmailAddress,
Company.KeyName as SortName,
null as CompanyID,
null as Position
FROM
Phone key join
PhoneType join
Company on Company.CompanyID = Phone.WhoID join
DivisionsAllowed on Company.DivisionID = DivisionsAllowed.DivisionID
WHERE
length(Phone.NumberDigits) > 10 and
Phone.Who='C' and
locate(PhoneType.Capabilities,'D') > 0 and
phone.NumberDialable = @Number
UNION ALL
SELECT
'P' as RecordType,
(select ApplicantName from Params) as RecordTypeDescription,
PersonID as RecordID,
isnull(PhoneType.DisplayName,PhoneType.[Name]) as NumberType,
Person.[Name] as RecordName,
Person.Addr1 as AddressLine1,
Person.Town as Town,
(select nullif(list(ep.Number),'') from Phone ep key join PhoneType ept where ep.Who = 'P' and ep.WhoID = RecordID and ept.Capabilities like '%E%' ) as EmailAddress,
Person.KeyName as SortName,
null as CompanyID,
(select Status.[Name] from Status where Status.[Type] = 'P' and Status.Status = Person.Status) as Position
FROM
Phone key join
PhoneType join
Person on Person.PersonID = Phone.WhoID join
DivisionsAllowed on Person.DivisionID = DivisionsAllowed.DivisionID
WHERE
length(Phone.NumberDigits) > 10 and
Phone.Who='P' and
locate(PhoneType.Capabilities,'D') > 0 and
Phone.NumberDialable = @Number
UNION ALL
SELECT
'E' as RecordType,
(select CoPersonName from Params) as RecordTypeDescription,
Employment.EmploymentID as RecordID,
isnull(PhoneType.DisplayName,PhoneType.[Name]) as NumberType,
string(Company.[Name],' - ',Person.[Name]) as RecordName,
Company.Addr1 as AddressLine1,
Company.Town as Town,
(select nullif(list(ep.Number),'') from Phone ep key join PhoneType ept where ep.Who = 'CP' and ep.WhoID = RecordID and ept.Capabilities like '%E%' ) as EmailAddress,
Company.KeyName as SortName,
Company.CompanyID,
Employment.Position as Position
FROM
Phone key join
PhoneType join
Employment on Phone.WhoID = Employment.EmploymentID key join
(Person,Company) join
DivisionsAllowed on Company.DivisionID = DivisionsAllowed.DivisionID
WHERE
length(Phone.NumberDigits)>10 and
Phone.Who='CP' and
locate(PhoneType.Capabilities,'D') > 0 and
Phone.NumberDialable = @Number
UNION ALL
SELECT
'S' as RecordType,
'Staff' as RecordTypeDescription,
Staff.StaffID as RecordID,
'Mobile / Direct' as NumberType,
Staff.[Name] as RecordName,
null as AddressLine1,
null as Town,
Staff.Email as EmailAddress,
Staff.KeyName as SortName,
null as CompanyID,
Staff.Title As Position
FROM
Staff
WHERE
(Staff.Mobile = @Number
OR
Staff.ExtensionNumber = @Number)
) Q
ORDER BY Q.SortName;
END
}