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=*;
 
*/
}