pears.NetCandidateDocumentsFiltered

Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.

CREATE PROCEDURE "pears"."NetCandidateDocumentsFiltered"( IN "pWebUserID" CHAR(20),IN "pPersonID" CHAR(20) DEFAULT NULL,IN "pExcludeList" CHAR(100) DEFAULT NULL,IN "pHidePhoto" INTEGER DEFAULT 0 ) 
RESULT( "DocType" CHAR(50),"DocDescription" CHAR(50),"LastUpdate" TIMESTAMP,"SpecialType" CHAR(50),"DocumentID" CHAR(20),"PersonID" CHAR(20),"PublishToWeb" CHAR(8),"SortOrder" INTEGER ) 
-- 20111013 modified to ignore Reference document type
-- 20111205 modified to accept Candidate data from Candidate details popup on Client/Current Requirements tab, Filled By column
-- 20120612 remove photo if agency.
-- 20130618 download link disappears if PublishToWeb not set
-- 20130813 modified to ignore parameterised list of doc types
BEGIN
  DECLARE "userClass" CHAR(20);
  DECLARE "isCandorAgency" SMALLINT;
  DECLARE LOCAL TEMPORARY TABLE "expandedExcludeList"(
    "DocType" CHAR(20) NULL,
    ) ON commit DELETE ROWS;
  DECLARE "TableIndex" INTEGER;
  DECLARE "TempString" CHAR(100);
  DECLARE "LoopCounter" INTEGER;
  DECLARE "StringFragment" CHAR(20);
  SET "TempString" = "pExcludeList";
  SET "LoopCounter" = 0;
  SET "TableIndex" = "length"("TempString");
  while "TableIndex" > 0 AND "LoopCounter" < 10 loop
    SET "TableIndex" = "charindex"(':',"TempString");
    IF "TableIndex" = 0 THEN SET "TableIndex" = "length"("TempString")+1;
      SET "LoopCounter" = 11
    END IF;
    SET "StringFragment" = "substring"("TempString",0,"TableIndex"-1);
    INSERT INTO "expandedExcludeList"( "DocType" ) VALUES( "StringFragment" ) ;
    SET "TempString" = "substring"("TempString","TableIndex"+1);
    SET "LoopCounter" = "LoopCounter"+1
  END loop;
  IF "iqxnethaspermission"("pwebuserid",'DOCCANDDOWNLOAD') = 0 THEN
    SET "pPersonID" = NULL
  ELSE
    SET "userClass" = (SELECT FIRST "iqxnetuserclassid" FROM "iqxnetuser" WHERE "iqxnetuserid" = "pWebUserID");
    IF "userClass" = 'CANDIDATE' THEN
      SET "isCandorAgency" = 1;
      SET "pPersonID" = "NetCandidateValidPersonID"("pWebUserID","pPersonID")
    ELSE IF "userClass" = 'AGENCY' THEN
        SET "isCandorAgency" = 1;
        SET "pPersonID" = (SELECT FIRST "pay_employee"."personid"
            FROM "pay_employee" KEY JOIN "company" AS "agcomp" KEY JOIN "employment" AS "agemp" KEY JOIN "iqxnetuserlink"
            WHERE "pay_employee"."personid" = "ppersonid" AND "iqxnetuserlink"."iqxnetuserid" = "pwebuserid")
      ELSE IF "userClass" = 'Client' THEN
          SET "isCandorAgency" = 2
        ELSE
          SET "isCandorAgency" = 0
        END IF END IF END IF END IF;
  SELECT "documenttype"."description",
    "oledocument"."description",
    "isnull"("blobstore"."changedat","blobstore"."createdat"),'',
    "oledocument"."oledocumentid",
    "oledocument"."ownerid",
    (IF "blobstore"."publishtoweb" <> 0 THEN 'Download' endif),
    100+"isnull"("documenttype"."sortorder",0) AS "ord"
    FROM "oledocument"
      JOIN "blobstore" ON "blobstore"."id" = "oledocument"."oledocumentid" AND "blobstore"."class" = 'O',"oledocument"
      KEY JOIN "documenttype"
    WHERE "oledocument"."ownertype" = 'P'
    AND "oledocument"."ownerid" = "ppersonid"
    AND("oledocument"."rawfile" = 1 OR "blobstore"."zipped" = 2)
    AND(("isCandorAgency" = 1 OR "blobstore"."publishtoweb" = 1) OR("isCandorAgency" = 2 AND "blobstore"."publishtoweb" = 1))
    AND NOT "documenttype"."description" = any(SELECT "DocType" FROM "expandedExcludeList") UNION ALL
  SELECT 'Primary','CV',
    "isnull"("blobstore"."changedat","blobstore"."createdat"),'PRIMARY_CV',
    NULL,
    "blobstore"."id",
    (IF "blobstore"."publishtoweb" <> 0 THEN 'Download' endif),
    1 AS "ord"
    FROM "blobstore"
    WHERE "blobstore"."class" = 'V'
    AND "blobstore"."id" = "pPersonID"
    AND "blobstore"."zipped" = 2
    AND(("isCandorAgency" = 1 OR "blobstore"."publishtoweb" = 1) OR("isCandorAgency" = 2 AND "blobstore"."publishtoweb" = 1)) UNION ALL
  SELECT 'Primary','Photo',
    "isnull"("blobstore"."changedat","blobstore"."createdat"),'PRIMARY_PHOTO',
    NULL,
    "blobstore"."id",
    (IF "blobstore"."publishtoweb" <> 0 THEN 'Download' endif),
    2 AS "ord"
    FROM "blobstore"
    WHERE "blobstore"."class" = 'J'
    AND "blobstore"."id" = "pPersonID"
    AND(("userClass" = 'AGENCY' AND "blobstore"."publishtoweb" = 1 AND "pHidePhoto" = 0) OR("userClass" = 'CANDIDATE') OR("userClass" = 'Client' AND "blobstore"."publishtoweb" = 1))
    ORDER BY "ord" ASC
END /* DOC
2018-10-22 MHS IW-456 multi-cand fix and tests
*/
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetCandidateDocumentsFiltered" IS 
{CREATE PROCEDURE pears."NetCandidateDocumentsFiltered"( IN "pWebUserID" CHAR(20),IN "pPersonID" CHAR(20) DEFAULT NULL,IN "pExcludeList" CHAR(100) DEFAULT NULL,IN "pHidePhoto" INTEGER DEFAULT 0 ) 
RESULT( "DocType" CHAR(50),"DocDescription" CHAR(50),"LastUpdate" TIMESTAMP,"SpecialType" CHAR(50),"DocumentID" CHAR(20),"PersonID" CHAR(20),"PublishToWeb" CHAR(8),"SortOrder" INTEGER ) 
-- 20111013 modified to ignore Reference document type
-- 20111205 modified to accept Candidate data from Candidate details popup on Client/Current Requirements tab, Filled By column
-- 20120612 remove photo if agency.
-- 20130618 download link disappears if PublishToWeb not set
-- 20130813 modified to ignore parameterised list of doc types
BEGIN
  DECLARE "userClass" CHAR(20);
  DECLARE "isCandorAgency" SMALLINT;
  DECLARE LOCAL TEMPORARY TABLE "expandedExcludeList"(
    "DocType" CHAR(20) NULL,
    ) ON commit DELETE ROWS;
  DECLARE "TableIndex" INTEGER;
  DECLARE "TempString" CHAR(100);
  DECLARE "LoopCounter" INTEGER;
  DECLARE "StringFragment" CHAR(20);
  SET "TempString" = "pExcludeList";
  SET "LoopCounter" = 0;
  SET "TableIndex" = "length"("TempString");
  while "TableIndex" > 0 AND "LoopCounter" < 10 loop
    SET "TableIndex" = "charindex"(':',"TempString");
    IF "TableIndex" = 0 THEN SET "TableIndex" = "length"("TempString")+1;
      SET "LoopCounter" = 11
    END IF;
    SET "StringFragment" = "substring"("TempString",0,"TableIndex"-1);
    INSERT INTO "expandedExcludeList"( "DocType" ) VALUES( "StringFragment" ) ;
    SET "TempString" = "substring"("TempString","TableIndex"+1);
    SET "LoopCounter" = "LoopCounter"+1
  END loop;
  IF "iqxnethaspermission"("pwebuserid",'DOCCANDDOWNLOAD') = 0 THEN
    SET "pPersonID" = NULL
  ELSE
    SET "userClass" = (SELECT FIRST "iqxnetuserclassid" FROM "iqxnetuser" WHERE "iqxnetuserid" = "pWebUserID");
    IF "userClass" = 'CANDIDATE' THEN
      SET "isCandorAgency" = 1;
      SET pPersonID=NetCandidateValidPersonID(pWebUserID,pPersonID);
    ELSE IF "userClass" = 'AGENCY' THEN
        SET "isCandorAgency" = 1;
        SET "pPersonID" = (SELECT FIRST "pay_employee"."personid"
            FROM "pay_employee" KEY JOIN "company" AS "agcomp" KEY JOIN "employment" AS "agemp" KEY JOIN "iqxnetuserlink"
            WHERE "pay_employee"."personid" = "ppersonid" AND "iqxnetuserlink"."iqxnetuserid" = "pwebuserid")
      ELSE IF "userClass" = 'Client' THEN
          SET "isCandorAgency" = 2
        ELSE
          SET "isCandorAgency" = 0
        END IF
      END IF END IF END IF;
  SELECT "documenttype"."description",
    "oledocument"."description",
    "isnull"("blobstore"."changedat","blobstore"."createdat"),'',
    "oledocument"."oledocumentid",
    "oledocument"."ownerid",
    (IF "blobstore"."publishtoweb" <> 0 THEN 'Download' endif),
    100+"isnull"("documenttype"."sortorder",0) AS "ord"
    FROM "oledocument"
      JOIN "blobstore" ON "blobstore"."id" = "oledocument"."oledocumentid" AND "blobstore"."class" = 'O',"oledocument"
      KEY JOIN "documenttype"
    WHERE "oledocument"."ownertype" = 'P'
    AND "oledocument"."ownerid" = "ppersonid"
    AND("oledocument"."rawfile" = 1 OR "blobstore"."zipped" = 2)
    AND(("isCandorAgency" = 1 OR "blobstore"."publishtoweb" = 1) OR("isCandorAgency" = 2 AND "blobstore"."publishtoweb" = 1))
    AND NOT "documenttype"."description" = any(SELECT "DocType" FROM "expandedExcludeList") UNION ALL
  SELECT 'Primary','CV',
    "isnull"("blobstore"."changedat","blobstore"."createdat"),'PRIMARY_CV',
    NULL,
    "blobstore"."id",
    (IF "blobstore"."publishtoweb" <> 0 THEN 'Download' endif),
    1 AS "ord"
    FROM "blobstore"
    WHERE "blobstore"."class" = 'V'
    AND "blobstore"."id" = "pPersonID"
    AND "blobstore"."zipped" = 2
    AND(("isCandorAgency" = 1 OR "blobstore"."publishtoweb" = 1) OR("isCandorAgency" = 2 AND "blobstore"."publishtoweb" = 1)) UNION ALL
  SELECT 'Primary','Photo',
    "isnull"("blobstore"."changedat","blobstore"."createdat"),'PRIMARY_PHOTO',
    NULL,
    "blobstore"."id",
    (IF "blobstore"."publishtoweb" <> 0 THEN 'Download' endif),
    2 AS "ord"
    FROM "blobstore"
    WHERE "blobstore"."class" = 'J'
    AND "blobstore"."id" = "pPersonID"
    AND(("userClass" = 'AGENCY' AND "blobstore"."publishtoweb" = 1 AND "pHidePhoto" = 0) OR("userClass" = 'CANDIDATE') OR("userClass" = 'Client' AND "blobstore"."publishtoweb" = 1))
    ORDER BY "ord" ASC
END
 
/* DOC
2018-10-22 MHS IW-456 multi-cand fix and tests
*/
}
  • database/procedures/pears_netcandidatedocumentsfiltered.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1