====== pears.NetSearchJobs ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."NetSearchJobs"( in "pWebUserID" char(20),in "pVacancyType" char(1) default null,in "pMinPay" decimal(7,2) default 0,in "pMaxPay" decimal(7,2) default 1000000,in "pLocation" char(30) default '%',in "pKeywordSearch" char(50),in "pPageNo" integer default 1,in "pPageSize" integer default 20 )
result( "vacancyid" char(20),"position" char(60),"VacType" char(20),"OurRef" char(10),"TempRate" char(10),"AnnualisedPay" integer )
-- 20150929 Job search for Change
begin
declare "SearchLocation" char(30);
declare "PayThresholdHourly" decimal(7,2);
declare "PayThresholdDaily" decimal(7,2);
declare "AnnualisationFactorHourly" real;
declare "AnnualisationFactorDaily" real;
declare "AnnualisationFactorYearly" real;
declare "StartRecord" integer;
declare "SampleSize" integer;
set "SearchLocation" = "isnull"("pLocation",'%');
set "PayThresholdHourly" = 60;
set "PayThresholdDaily" = 2000;
set "AnnualisationFactorHourly" = 35*52;
set "AnnualisationFactorDaily" = 240;
set "AnnualisationFactorYearly" = 1;
set "StartRecord" = ("isnull"("pPageNo",1)-1)*"pPageSize"+1;
set "SampleSize" = "isnull"("pPageSize",20);
select top "SampleSize" start at "StartRecord"
"v"."vacancyid",
"v"."position",
(if "v"."temp" = 1 then 'temporary/interim'
else 'permanent'
endif) as "VacancyType",
"v"."refcode",
(if "v"."temp" = 1 then cast("GetTempRate"('P','V',"vacancyid") as decimal(7,2)) else null endif) as "TempRate",
"isnull"("v"."salary",("TempRate"*"SearchPayFactor"),0) as "PayAnnualised",
(if "TempRate" < "PayThresholdHourly" then "AnnualisationFactorHourly"
else if "TempRate" > "PayThresholdDaily" then "AnnualisationFactorYearly"
else "AnnualisationFactorDaily"
endif
endif) as "SearchPayFactor",
"v"."whenentered"
from "vacancy" as "v"
where cast("v"."temp" as char(1)) like "isnull"("pVacancyType",'%')
and "PayAnnualised" between "isnull"("pMinPay",0) and "isnull"("pMaxPay",1000000)
and("isnull"("v"."town",'%') like "SearchLocation" or "isnull"("v"."county",'%') like "SearchLocation" or "isnull"("v"."country",'%') like "SearchLocation")
and "isnull"("notes",'%%') like '%'+"pKeywordSearch"+'%'
order by "v"."whenentered" asc
end
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetSearchJobs" IS
{create PROCEDURE pears."NetSearchJobs"( in "pWebUserID" char(20),in "pVacancyType" char(1) default null,in "pMinPay" decimal(7,2) default 0,in "pMaxPay" decimal(7,2) default 1000000,in "pLocation" char(30) default '%',in "pKeywordSearch" char(50),in "pPageNo" integer default 1,in "pPageSize" integer default 20 )
result( "vacancyid" char(20),"position" char(60),"VacType" char(20),"OurRef" char(10),"TempRate" char(10),"AnnualisedPay" integer )
-- 20150929 Job search for Change
begin
declare "SearchLocation" char(30);
declare "PayThresholdHourly" decimal(7,2);
declare "PayThresholdDaily" decimal(7,2);
declare "AnnualisationFactorHourly" real;
declare "AnnualisationFactorDaily" real;
declare "AnnualisationFactorYearly" real;
declare "StartRecord" integer;
declare "SampleSize" integer;
set "SearchLocation" = "isnull"("pLocation",'%');
set "PayThresholdHourly" = 60;
set "PayThresholdDaily" = 2000;
set "AnnualisationFactorHourly" = 35*52;
set "AnnualisationFactorDaily" = 240;
set "AnnualisationFactorYearly" = 1;
set "StartRecord" = ("isnull"("pPageNo",1)-1)*"pPageSize"+1;
set "SampleSize" = "isnull"("pPageSize",20);
select top "SampleSize" start at "StartRecord"
"v"."vacancyid",
"v"."position",
(if "v"."temp" = 1 then 'temporary/interim'
else 'permanent'
endif) as "VacancyType",
"v"."refcode",
(if "v"."temp" = 1 then cast("GetTempRate"('P','V',"vacancyid") as decimal(7,2)) else null endif) as "TempRate",
"isnull"("v"."salary",("TempRate"*"SearchPayFactor"),0) as "PayAnnualised",
(if "TempRate" < "PayThresholdHourly" then "AnnualisationFactorHourly"
else if "TempRate" > "PayThresholdDaily" then "AnnualisationFactorYearly"
else "AnnualisationFactorDaily"
endif
endif) as "SearchPayFactor",
"v"."whenentered"
from "vacancy" as "v"
where cast("v"."temp" as char(1)) like "isnull"("pVacancyType",'%')
and "PayAnnualised" between "isnull"("pMinPay",0) and "isnull"("pMaxPay",1000000)
and("isnull"("v"."town",'%') like "SearchLocation" or "isnull"("v"."county",'%') like "SearchLocation" or "isnull"("v"."country",'%') like "SearchLocation")
and "isnull"("notes",'%%') like '%'+"pKeywordSearch"+'%'
order by "v"."whenentered" asc
end
}