====== pears.NetOwnerCandidateAppointments ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."NetOwnerCandidateAppointments"( in "pWebUserID" char(20),in "pPersonID" char(20),in "pFromDate" char(10) default null,in "pToDate" char(10) default null )
result( "CandidateName" char(60),"DiaryDescription" char(255),"DiaryNotes" long varchar,"DiaryFrom" char(25),"DiaryTo" char(25) )
begin
// IQXWeb
declare "pStartDate" char(10);
declare "pFinishDate" char(10);
set "pStartDate" = "isnull"("IQXNetStringToDate"("pFromDate"),"pFromDate",current date-31);
set "pFinishDate" = "isnull"("IQXNetStringToDate"("pToDate"),"pToDate",current date+31);
if not exists(select "iqxnetuserid" from "iqxnetuser" where "iqxnetuserid" = "pWebUserID" and "IQXNetUserClassID" = 'OWNER') then
return
end if;
if not exists(select "personid" from "person" where "personid" = "pPersonID") then
return
end if;
select "p"."name",
"d"."description" as "DiaryDescription",
"d"."notes" as "DiaryNotes",
"d"."diaryFrom",
"d"."DiaryTo"
from "diary" as "d"
key join "person" as "p"
where "p"."personid" = "pPersonID"
and "DurationType" <> 'R'
and "diaryTo" >= "pStartDate"
and "diaryFrom" <= "pFinishDate"
end /* DOC
2018-10-23 PC IW-693 Consultant portal. Able to see candidates diary when logged in as a consultant
*/
/* TEST
set userstaffid='test';
insert into diary (diaryid,staffid,personid,diaryfrom,diaryto,description,notes,durationtype,duration,whenentered,whoentered) on existing update values('TEST1','TEST','TEST',current date,dateadd(dd,1,current date),'DanTester','BookedTest','H',30,current date,'TEST');
insert into diary (diaryid,staffid,personid,diaryfrom,diaryto,description,notes,durationtype,duration,whenentered,whoentered) on existing update values('TEST2','TEST','TEST',current date,dateadd(dd,1,current date),'DanTester','BookedTest','R',0,current date,'TEST');
select * from NetOwnerCandidateAppointments('test.client','test',current date+3,null);
expect EOF;
select * from NetOwnerCandidateAppointments('test.owner','test',null,null);
expect CandidateName=test,DiaryDescription=DanTester,DiaryNotes=BookedTest;
select * from NetOwnerCandidateAppointments('test.owner','test',current date+3,null);
expect EOF;
select * from NetOwnerCandidateAppointments('test.owner','test',null,current date-3);
expect EOF;
select * from NetOwnerCandidateAppointments('test.owner','test',current date-3,current date+3);
expect CandidateName=test,DiaryDescription=DanTester,DiaryNotes=BookedTest;
*/
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetOwnerCandidateAppointments" IS
{create PROCEDURE pears."NetOwnerCandidateAppointments"(in pWebUserID char(20),in pPersonID char(20), in pFromDate char(10) default null, pToDate char(10) default null)
RESULT(CandidateName char(60),DiaryDescription char(255),DiaryNotes long varchar,DiaryFrom char(25),DiaryTo char(25))
BEGIN
// IQXWeb
declare pStartDate char(10);
declare pFinishDate char(10);
set pStartDate=isnull(IQXNetStringToDate(pFromDate),pFromDate,current date-31);
set pFinishDate=isnull(IQXNetStringToDate(pToDate),pToDate,current date+31);
if not exists (select iqxnetuserid from iqxnetuser where iqxnetuserid=pWebUserID and IQXNetUserClassID='OWNER') then
return;
end if;
if not exists (select personid from person where personid=pPersonID) then
return;
end if;
select
p.name,
d.description as DiaryDescription,
d.notes as DiaryNotes,
d.diaryFrom,
d.DiaryTo
from
diary d
key join person p
where
p.personid=pPersonID
and DurationType != 'R'
and diaryTo >= pStartDate
and diaryFrom <= pFinishDate
END
/* DOC
2018-10-23 PC IW-693 Consultant portal. Able to see candidates diary when logged in as a consultant
*/
/* TEST
set userstaffid='test';
insert into diary (diaryid,staffid,personid,diaryfrom,diaryto,description,notes,durationtype,duration,whenentered,whoentered) on existing update values('TEST1','TEST','TEST',current date,dateadd(dd,1,current date),'DanTester','BookedTest','H',30,current date,'TEST');
insert into diary (diaryid,staffid,personid,diaryfrom,diaryto,description,notes,durationtype,duration,whenentered,whoentered) on existing update values('TEST2','TEST','TEST',current date,dateadd(dd,1,current date),'DanTester','BookedTest','R',0,current date,'TEST');
select * from NetOwnerCandidateAppointments('test.client','test',current date+3,null);
expect EOF;
select * from NetOwnerCandidateAppointments('test.owner','test',null,null);
expect CandidateName=test,DiaryDescription=DanTester,DiaryNotes=BookedTest;
select * from NetOwnerCandidateAppointments('test.owner','test',current date+3,null);
expect EOF;
select * from NetOwnerCandidateAppointments('test.owner','test',null,current date-3);
expect EOF;
select * from NetOwnerCandidateAppointments('test.owner','test',current date-3,current date+3);
expect CandidateName=test,DiaryDescription=DanTester,DiaryNotes=BookedTest;
*/
}