pears.IQXNetPopup

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

CREATE PROCEDURE "pears"."IQXNetPopup"( 
  /* Application Maintained Function / Procedure - DO NOT EDIT*/
  IN "pWebUserID" CHAR(20),IN "pPersonID" CHAR(20),IN "pEmploymentID" CHAR(20),IN "pVacancyID" CHAR(20),IN "pPlacementID" CHAR(20),IN "pProgressID" CHAR(20),IN "ptype" CHAR(20),IN "ptitle" CHAR(100),IN "pdescription" long VARCHAR ) 
BEGIN
  DECLARE "qstaffid" CHAR(20);
  DECLARE "qpersonid" CHAR(20);
  DECLARE "qemploymentid" CHAR(20);
  DECLARE "qcompanyid" CHAR(20);
  DECLARE "qvacancyid" CHAR(20);
  DECLARE "qdivisionid" CHAR(20);
  DECLARE "qdepartmentid" CHAR(2);
  DECLARE "qlink" CHAR(100);
  DECLARE "cnt" INTEGER;
  SET "ptype" = "nullif"("trim"("ptype"),'');
  SET "ppersonid" = "nullif"("trim"("ppersonid"),'');
  SET "pemploymentid" = "nullif"("trim"("pemploymentid"),'');
  SET "pvacancyid" = "nullif"("trim"("pvacancyid"),'');
  SET "pplacementid" = "nullif"("trim"("pplacementid"),'');
  SET "pprogressid" = "nullif"("trim"("pprogressid"),'');
  IF "pPlacementID" IS NOT NULL THEN
    SELECT "l"."staffid","pe"."personid","e"."employmentid","e"."companyid","l"."vacancyid","isnull"("p"."divisionid","c"."divisionid"),"v"."departmentid","string"('placement/',"pPlacementID")
      INTO "qstaffid","qpersonid","qemploymentid","qcompanyid","qvacancyid","qdivisionid","qdepartmentid","qlink"
      FROM "placement" AS "l" KEY JOIN "vacancy" AS "v" KEY JOIN "employment" AS "e" KEY JOIN "company" AS "c","placement" AS "l" KEY JOIN "employment" AS "pe" KEY JOIN "person" AS "p" WHERE "l"."placementid" = "pPlacementID"
  ELSE IF "pProgressID" IS NOT NULL THEN
      SELECT "r"."staffid","r"."personid","e"."employmentid","e"."companyid","r"."vacancyid","isnull"("p"."divisionid","c"."divisionid"),"v"."departmentid","string"('progress/',"pProgressID")
        INTO "qstaffid","qpersonid","qemploymentid","qcompanyid","qvacancyid","qdivisionid","qdepartmentid","qlink"
        FROM "progress" AS "r" KEY JOIN "vacancy" AS "v" KEY JOIN "employment" AS "e" KEY JOIN "company" AS "c","progress" AS "r" KEY JOIN "person" AS "p" WHERE "r"."progressid" = "pProgressID"
    ELSE IF "pVacancyID" IS NOT NULL THEN
        SELECT "v"."staffid","e"."employmentid","e"."companyid","v"."vacancyid","c"."divisionid","v"."departmentid","string"('vacancy/',"pVacancyID")
          INTO "qstaffid","qemploymentid","qcompanyid","qvacancyid","qdivisionid","qdepartmentid","qlink"
          FROM "vacancy" AS "v" KEY JOIN "employment" AS "e" KEY JOIN "company" AS "c" WHERE "v"."vacancyid" = "pVacancyID"
      ELSE IF "pPersonID" IS NOT NULL THEN
          SELECT "staffid","divisionid","string"('person/',"pPersonID")
            INTO "qstaffid","qdivisionid","qlink"
            FROM "person" WHERE "personid" = "pPersonID"
        END IF END IF END IF END IF;
  SET "ppersonid" = "isnull"("ppersonid","qpersonid");
  SET "pemploymentid" = "isnull"("pemploymentid","qemploymentid");
  SET "pvacancyid" = "isnull"("pvacancyid","qvacancyid");
  IF "ppersonid" IS NULL AND "pemploymentid" IS NULL THEN
    SET "pemploymentid" = (SELECT FIRST "employmentid" FROM "iqxnetuserlink" WHERE "iqxnetuserid" = "pwebuserid");
    IF "pemploymentid" IS NULL THEN
      SET "ppersonid" = (SELECT FIRST "personid" FROM "iqxnetuserlink" WHERE "iqxnetuserid" = "pwebuserid");
      IF "ppersonid" IS NULL THEN
        RETURN
      END IF END IF END IF;
  IF "ptype" IS NOT NULL THEN
    CALL "RequestEmailStaffNotification"("ptype","string"("ptitle",'<br/>',"pdescription"),"qLink","qDepartmentID","qDivisionID")
  END IF;
  IF "qcompanyid" IS NOT NULL THEN
    SET "cnt" = 0;
    FOR "fetchfor" AS "fetchcursor" no scroll cursor FOR
      SELECT "staffid" AS "xstaffid","isnull"("trim"("MessageType"),'') AS "xtype" FROM "IQXNetMessageCompanyRecipient" WHERE "companyid" = "qcompanyid" AND("xtype" = '' OR "xtype" = "ptype") FOR READ ONLY do
      INSERT INTO "diary"( "diaryid","staffid","personid","employmentid","vacancyid","placementid","progressid","diaryfrom","description","notes","durationtype","popupminutes" ) VALUES
        ( "uniquekey"("xstaffid"),"xstaffid","pPersonID","pEmploymentID","pVacancyID","pPlacementID","pProgressID",CURRENT TIMESTAMP,"ptitle","pdescription",'R',0 ) ;
      SET "cnt" = "cnt"+1 END FOR;
    IF "cnt" > 0 THEN
      RETURN
    END IF END IF;
  IF "ptype" IS NOT NULL THEN
    SET "qstaffid" = "isnull"((SELECT FIRST "staffid" FROM "IQXNetMessageRecipient" WHERE "MessageType" = "ptype"),"qstaffid")
  END IF;
  IF "qstaffid" IS NULL THEN
    RETURN
  END IF;
  INSERT INTO "diary"( "diaryid","staffid","personid","employmentid","vacancyid","placementid","progressid","diaryfrom","description","notes","durationtype","popupminutes" ) VALUES
    ( "uniquekey"(''),"qstaffid","pPersonID","pEmploymentID","pVacancyID","pPlacementID","pProgressID",CURRENT TIMESTAMP,"ptitle","pdescription",'R',0 ) 
END
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."IQXNetPopup" IS 
{CREATE PROCEDURE IQXNetPopup 
 
/* Application Maintained Function / Procedure - DO NOT EDIT*/
 
( IN pWebUserID CHAR(20),IN pPersonID CHAR(20),IN pEmploymentID CHAR(20),IN pVacancyID CHAR(20),IN pPlacementID CHAR(20),IN pProgressID CHAR(20),IN ptype CHAR(20),IN ptitle CHAR(100),IN pdescription long VARCHAR ) 
BEGIN
  DECLARE qstaffid CHAR(20);
  DECLARE qpersonid CHAR(20);
  DECLARE qemploymentid CHAR(20);
  DECLARE qcompanyid CHAR(20);
  DECLARE qvacancyid CHAR(20);
  DECLARE qdivisionid CHAR(20);
  DECLARE qdepartmentid CHAR(2);
  DECLARE qlink CHAR(100);
  DECLARE cnt INTEGER;
  SET ptype = NULLIF(TRIM(ptype),'');
  SET ppersonid = NULLIF(TRIM(ppersonid),'');
  SET pemploymentid = NULLIF(TRIM(pemploymentid),'');
  SET pvacancyid = NULLIF(TRIM(pvacancyid),'');
  SET pplacementid = NULLIF(TRIM(pplacementid),'');
  SET pprogressid = NULLIF(TRIM(pprogressid),'');
  IF pPlacementID IS NOT NULL THEN
    SELECT l.staffid,pe.personid,e.employmentid,e.companyid,l.vacancyid,isnull(p.divisionid,c.divisionid),v.departmentid,string('placement/',pPlacementID)
      INTO qstaffid,qpersonid,qemploymentid,qcompanyid,qvacancyid,qdivisionid,qdepartmentid,qlink
      FROM placement AS l KEY JOIN vacancy AS v KEY JOIN employment AS e KEY JOIN company AS c,placement AS l KEY JOIN employment AS pe KEY JOIN person AS p WHERE l.placementid = pPlacementID
  ELSE IF pProgressID IS NOT NULL THEN
      SELECT r.staffid,r.personid,e.employmentid,e.companyid,r.vacancyid,isnull(p.divisionid,c.divisionid),v.departmentid,string('progress/',pProgressID)
        INTO qstaffid,qpersonid,qemploymentid,qcompanyid,qvacancyid,qdivisionid,qdepartmentid,qlink
        FROM progress AS r KEY JOIN vacancy AS v KEY JOIN employment AS e KEY JOIN company AS c,progress AS r KEY JOIN person AS p WHERE r.progressid = pProgressID
    ELSE IF pVacancyID IS NOT NULL THEN
        SELECT v.staffid,e.employmentid,e.companyid,v.vacancyid,c.divisionid,v.departmentid,string('vacancy/',pVacancyID)
          INTO qstaffid,qemploymentid,qcompanyid,qvacancyid,qdivisionid,qdepartmentid,qlink
          FROM vacancy AS v KEY JOIN employment AS e KEY JOIN company AS c WHERE v.vacancyid = pVacancyID
      ELSE IF pPersonID IS NOT NULL THEN
          SELECT staffid,divisionid,string('person/',pPersonID)
            INTO qstaffid,qdivisionid,qlink
            FROM person WHERE personid = pPersonID
        END IF
      END IF
    END IF END IF;
  SET ppersonid = isnull(ppersonid,qpersonid);
  SET pemploymentid = isnull(pemploymentid,qemploymentid);
  SET pvacancyid = isnull(pvacancyid,qvacancyid);
  IF ppersonid IS NULL AND pemploymentid IS NULL THEN
    SET pemploymentid = (SELECT FIRST employmentid FROM iqxnetuserlink WHERE iqxnetuserid = pwebuserid);
    IF pemploymentid IS NULL THEN
      SET ppersonid = (SELECT FIRST personid FROM iqxnetuserlink WHERE iqxnetuserid = pwebuserid);
      IF ppersonid IS NULL THEN
        RETURN
      END IF
    END IF END IF;
  IF ptype IS NOT NULL THEN
    CALL RequestEmailStaffNotification(ptype,string(ptitle,'<br/>',pdescription),qLink,qDepartmentID,qDivisionID)
  END IF;
  IF qcompanyid IS NOT NULL THEN
    SET cnt = 0;
    FOR fetchfor AS fetchcursor no scroll cursor FOR
      SELECT staffid AS xstaffid,isnull(TRIM(MessageType),'') AS xtype FROM IQXNetMessageCompanyRecipient WHERE companyid = qcompanyid AND(xtype = '' OR xtype = ptype) FOR READ ONLY do
      INSERT INTO diary( diaryid,staffid,personid,employmentid,vacancyid,placementid,progressid,diaryfrom,description,notes,durationtype,popupminutes ) VALUES
        ( uniquekey(xstaffid),xstaffid,pPersonID,pEmploymentID,pVacancyID,pPlacementID,pProgressID,CURRENT TIMESTAMP,ptitle,pdescription,'R',0 ) ;
      SET cnt = cnt+1 END FOR;
    IF cnt > 0 THEN
      RETURN
    END IF END IF;
  IF ptype IS NOT NULL THEN
    SET qstaffid = isnull((SELECT FIRST staffid FROM IQXNetMessageRecipient WHERE MessageType = ptype),qstaffid)
  END IF;
  IF qstaffid IS NULL THEN
    RETURN
  END IF;
  INSERT INTO diary( diaryid,staffid,personid,employmentid,vacancyid,placementid,progressid,diaryfrom,description,notes,durationtype,popupminutes ) VALUES
    ( uniquekey(''),qstaffid,pPersonID,pEmploymentID,pVacancyID,pPlacementID,pProgressID,CURRENT TIMESTAMP,ptitle,pdescription,'R',0 ) 
END
}
  • database/procedures/pears_iqxnetpopup.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1