====== pears.FormatSiteAddress ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create function "pears"."FormatSiteAddress"(
/* Application Maintained Function / Procedure - DO NOT EDIT*/
in "reqVacancyid" char(20),in "Capitalise" smallint,in "Style" char(1) )
returns char(300)
begin
declare "FormattedAddress" char(380);
declare "addr1" char(40);
declare "addr2" char(40);
declare "addr3" char(40);
declare "town" char(30);
declare "county" char(30);
declare "country" char(30);
declare "postcode" char(30);
declare "Separator" char(2);
declare "PrePostCodeSeparator" char(2);
/*
Set the seperator for block or line
*/
if "style" = 'B' then
set "Separator" = "char"(13)+"char"(10);
set "PrePostCodeSeparator" = "Separator"
else set "Separator" = ', ';
set "PrePostCodeSeparator" = ' '
end if;
/*
Fetch address fields
*/
select "vacancy"."addr1","vacancy"."addr2","vacancy"."addr3","vacancy"."town","vacancy"."county","vacancy"."country","vacancy"."postcode" into "addr1",
"addr2","addr3","town","county","country","postcode" from "vacancy"
where "vacancyid" = "reqvacancyid";
/*
If capitalise option is set, capitalise town.
*/
if "Capitalise" = 1 then set "town" = "upper"("Town")
end if;
/*
Build Formatted Address
*/
if "isnull"("addr1",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "trim"("addr1")
end if;
if "isnull"("FormattedAddress",'') <> '' and "isnull"("addr2",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "Separator"
end if;
if "isnull"("addr2",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "trim"("addr2")
end if;
if "isnull"("FormattedAddress",'') <> '' and "isnull"("addr3",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "Separator"
end if;
if "isnull"("addr3",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "trim"("addr3")
end if;
if "isnull"("FormattedAddress",'') <> '' and "isnull"("town",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "Separator"
end if;
if "isnull"("town",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "trim"("town")
end if;
if "isnull"("FormattedAddress",'') <> '' and "isnull"("county",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "Separator"
end if;
if "isnull"("county",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "trim"("county")
end if;
if "isnull"("FormattedAddress",'') <> '' and "isnull"("country",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "Separator"
end if;
if "isnull"("country",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "trim"("country")
end if;
if "isnull"("FormattedAddress",'') <> '' and "isnull"("postcode",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "PrePostCodeSeparator"
end if;
if "isnull"("postcode",'') <> '' then set "FormattedAddress" = "FormattedAddress" || "trim"("postcode")
end if;
return "FormattedAddress"
end