====== pears.NetOwnerRequirementShortListPlaced ====== Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace. ===== Original SQL ===== create procedure "pears"."NetOwnerRequirementShortListPlaced"( in "pWebUserID" char(20),in "pRowID" char(20),in "IsShift" char(1) ) result( "PersonName" char(60),"PersonID" char(20),"PersonStatus" char(50) ) // IQXWeb begin declare "VacID" char(20); if "IsShift" = 0 then set "VacID" = "pRowID" end if; if "IsShift" = 1 then set "VacID" = (select "VacancyID" from "TempShiftPlan" where "tempshiftplanid" = "pRowID") end if; select distinct "pe"."name", "pe"."personid", "s"."name" as "PersonStatus" from "placement" as "p" key join "employment" as "e" key join "person" as "pe" left outer join "status" as "s" on "pe"."status" = "s"."status" and "s"."type" = 'P' where "p"."vacancyid" = "VacID" order by "pe"."name" asc end /* DOC 2016-11-30 PC add doc and test 2017-11-01 PC RC2 modify to refer to placement table directly, include state and make available for all consultants. Also check count and return 'no data' if no records 2018-09-02 PC IW-685 simplify status column Inputs: pWebUserID pRowID IsShift Outputs: PersonName PersonID PersonStatus Tests: invalid pWebUserID valid pWebUserID, invalid Rowid valid pWebUserID, Rowid invalid IsShift valid pWebUserID, Rowid, IsShift=0 valid pWebUserID, Rowid, IsShift=1 */ /* TEST call NetTestSetup(''); update iqxnetuserlink set employmentid=null where IQXNetUserLinkID in ('test.client','test.agency','test.candidate','test.owner'); update iqxnetuserlink set employmentid='TEST' where IQXNetUserLinkID='test.owner'; update iqxnetuser set staffid=null where staffid='TEST'; update iqxnetuser set staffid='TEST' where iqxnetuserid='TEST.OWNER'; insert into progress (progressid,vacancyid,personid,status,staffid) on existing skip values ('TEST','TEST','TEST','#','TEST'); update vacancy set staffid='TEST' where vacancyid='TEST'; select * from NetOwnerRequirementShortListPlaced(null,null,null); expect EOF; select * from NetOwnerRequirementShortListPlaced('test.owner',null,0); expect EOF; select * from NetOwnerRequirementShortListPlaced('test.owner','zz',0); expect EOF; select * from NetOwnerRequirementShortListPlaced('test.owner','TEST',0); expect PersonName=test,PersonID=TEST,PersonStatus=*; update person set status='X' where personid='test'; select * from NetOwnerRequirementShortListPlaced('test.owner','TEST',1); expect PersonName=test,PersonID=TEST,PersonStatus=*; update person set status=null where personid='test'; insert into tempshiftprogress (tempshiftprogressid,tempshiftplanid,personid,status,staffid) on existing skip values ('TEST','TEST','TEST','#','TEST'); select * from NetOwnerRequirementShortListPlaced('test.owner','TEST',1); expect PersonName=test,PersonID=TEST,PersonStatus=*; */ go COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetOwnerRequirementShortListPlaced" IS {create PROCEDURE pears."NetOwnerRequirementShortListPlaced"(in pWebUserID char(20),in pRowID char(20),in IsShift char(1)) RESULT(PersonName char(60),PersonID char(20),PersonStatus char(50)) // IQXWeb BEGIN declare VacID char(20); if IsShift=0 then set VacID=pRowID; end if; if IsShift=1 then set "VacID" = (select VacancyID from "TempShiftPlan" where "tempshiftplanid" = pRowID); end if; select distinct pe.name, pe.personid, s.name as PersonStatus from placement p key join employment e key join person pe left join status s on pe.status=s.status and s.type='P' where p.vacancyid=VacID order BY pe.name asc END /* DOC 2016-11-30 PC add doc and test 2017-11-01 PC RC2 modify to refer to placement table directly, include state and make available for all consultants. Also check count and return 'no data' if no records 2018-09-02 PC IW-685 simplify status column Inputs: pWebUserID pRowID IsShift Outputs: PersonName PersonID PersonStatus Tests: invalid pWebUserID valid pWebUserID, invalid Rowid valid pWebUserID, Rowid invalid IsShift valid pWebUserID, Rowid, IsShift=0 valid pWebUserID, Rowid, IsShift=1 */ /* TEST call NetTestSetup(''); update iqxnetuserlink set employmentid=null where IQXNetUserLinkID in ('test.client','test.agency','test.candidate','test.owner'); update iqxnetuserlink set employmentid='TEST' where IQXNetUserLinkID='test.owner'; update iqxnetuser set staffid=null where staffid='TEST'; update iqxnetuser set staffid='TEST' where iqxnetuserid='TEST.OWNER'; insert into progress (progressid,vacancyid,personid,status,staffid) on existing skip values ('TEST','TEST','TEST','#','TEST'); update vacancy set staffid='TEST' where vacancyid='TEST'; select * from NetOwnerRequirementShortListPlaced(null,null,null); expect EOF; select * from NetOwnerRequirementShortListPlaced('test.owner',null,0); expect EOF; select * from NetOwnerRequirementShortListPlaced('test.owner','zz',0); expect EOF; select * from NetOwnerRequirementShortListPlaced('test.owner','TEST',0); expect PersonName=test,PersonID=TEST,PersonStatus=*; update person set status='X' where personid='test'; select * from NetOwnerRequirementShortListPlaced('test.owner','TEST',1); expect PersonName=test,PersonID=TEST,PersonStatus=*; update person set status=null where personid='test'; insert into tempshiftprogress (tempshiftprogressid,tempshiftplanid,personid,status,staffid) on existing skip values ('TEST','TEST','TEST','#','TEST'); select * from NetOwnerRequirementShortListPlaced('test.owner','TEST',1); expect PersonName=test,PersonID=TEST,PersonStatus=*; */ }