pears.NetVacancyConfirm

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

CREATE PROCEDURE "pears"."NetVacancyConfirm"( IN "pWebUserID" CHAR(20),IN "pvacancyid" CHAR(20),IN "pshiftplanid" CHAR(20) ) 
RESULT( "pResult" CHAR(250) ) 
BEGIN
  DECLARE "spopup" CHAR(100);
  DECLARE LOCAL TEMPORARY TABLE "IDs"(
    "ID" CHAR(20) NULL,
    ) NOT transactional;
  INSERT INTO "IDs"( "ID" ) 
    SELECT DISTINCT "e"."companyid" FROM "employment" AS "e" KEY JOIN "iqxnetuserlink" AS "i" WHERE "i"."iqxnetuserid" = "pWebUserID";
  IF NOT "pvacancyid" = any(SELECT "v"."vacancyid" FROM "vacancy" AS "v" KEY JOIN "employment" AS "e" JOIN "IDs" ON "e"."CompanyID" = "IDs"."ID") THEN
    SELECT '99:~Permission denied';
    RETURN
  END IF;
  IF "IQXNetHasPermission"("pWebUserID",'AUTHORISEJOBS') = 0 THEN
    SELECT '99:~Permission denied';
    RETURN
  END IF;
  SET "pshiftplanid" = "nullif"("trim"("pshiftplanid"),'');
  IF "pshiftplanid" IS NULL THEN
    UPDATE "vacancy" SET "status" = 'C' WHERE "status" = ']' AND "vacancyid" = "pvacancyid";
    UPDATE "vacancy" KEY JOIN "employment" JOIN "params" ON "params"."secondarycascade" = 1
      SET "vacancy"."CascadeDateTime" = "GetCascadeTime"("employment"."CompanyID","vacancy"."VacancyID",CURRENT TIMESTAMP,"vacancy"."startdate",CURRENT TIMESTAMP,0)
      WHERE "vacancy"."vacancyid" = "pvacancyid"
  ELSE
    DELETE FROM "tempshift" WHERE "tempshiftplanid" = "pshiftplanid" AND "vacancyid" = "pvacancyid" AND "state" = 'C' AND "cancelreason" = '~';
    UPDATE "TempShiftPlan" AS "p" KEY JOIN "vacancy" KEY JOIN "employment" JOIN "params" ON "params"."secondarycascade" = 1
      SET "p"."CascadeDateTime" = "GetCascadeTime"("employment"."CompanyID","vacancy"."VacancyID",CURRENT TIMESTAMP,"p"."ShiftDate"+"p"."TimeFrom",CURRENT TIMESTAMP,0)
      WHERE "p"."TempShiftPlanID" = "pshiftplanid"
  END IF;
  IF @@rowcount = 0 THEN
    SELECT '1:~Confirmation failed';
    RETURN
  END IF;
  IF "pshiftplanid" IS NOT NULL THEN
    SET "spopup" = 'New shift requirement confirmed '+"dateformat"((SELECT FIRST "shiftdate" FROM "tempshiftplan" WHERE "tempshiftplanid" = "pshiftplanid"),'Ddd dd/mm/yyyy')
  ELSE
    SET "spopup" = 'New vacancy requirement confirmed'
  END IF;
  CALL "IQXNetPopup"("pWebUserID",NULL,NULL,"pvacancyid",NULL,NULL,'ADDVACANCY',"spopup",NULL);
  SELECT '0:~Success'
END
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetVacancyConfirm" IS 
{CREATE PROCEDURE pears."NetVacancyConfirm"( IN "pWebUserID" CHAR(20),IN "pvacancyid" CHAR(20),IN "pshiftplanid" CHAR(20) ) 
RESULT( "pResult" CHAR(250) ) 
BEGIN
  DECLARE "spopup" CHAR(100);
  DECLARE LOCAL TEMPORARY TABLE "IDs"(
    "ID" CHAR(20) NULL,
    ) NOT transactional;
  INSERT INTO "IDs"( "ID" ) 
    SELECT DISTINCT "e"."companyid" FROM "employment" AS "e" KEY JOIN "iqxnetuserlink" AS "i" WHERE "i"."iqxnetuserid" = "pWebUserID";
  IF NOT "pvacancyid" = any(SELECT "v"."vacancyid" FROM "vacancy" AS "v" KEY JOIN "employment" AS "e" JOIN "IDs" ON "e"."CompanyID" = "IDs"."ID") THEN
    SELECT '99:~Permission denied';
    RETURN
  END IF;
  IF "IQXNetHasPermission"("pWebUserID",'AUTHORISEJOBS') = 0 THEN
    SELECT '99:~Permission denied';
    RETURN
  END IF;
  SET "pshiftplanid" = "nullif"("trim"("pshiftplanid"),'');
  IF "pshiftplanid" IS NULL THEN
    UPDATE "vacancy" SET "status" = 'C' WHERE "status" = ']' AND "vacancyid" = "pvacancyid";
    UPDATE "vacancy" KEY JOIN "employment" JOIN "params" ON "params"."secondarycascade" = 1
      SET "vacancy"."CascadeDateTime" = "GetCascadeTime"("employment"."CompanyID","vacancy"."VacancyID",CURRENT TIMESTAMP,"vacancy"."startdate",CURRENT TIMESTAMP,0)
      WHERE "vacancy"."vacancyid" = "pvacancyid"
  ELSE
    DELETE FROM "tempshift" WHERE "tempshiftplanid" = "pshiftplanid" AND "vacancyid" = "pvacancyid" AND "state" = 'C' AND "cancelreason" = '~';
    UPDATE "TempShiftPlan" AS "p" KEY JOIN "vacancy" KEY JOIN "employment" JOIN "params" ON "params"."secondarycascade" = 1
      SET "p"."CascadeDateTime" = "GetCascadeTime"("employment"."CompanyID","vacancy"."VacancyID",CURRENT TIMESTAMP,"p"."ShiftDate"+"p"."TimeFrom",CURRENT TIMESTAMP,0)
      WHERE "p"."TempShiftPlanID" = "pshiftplanid"
  END IF;
  IF @@rowcount = 0 THEN
    SELECT '1:~Confirmation failed';
    RETURN
  END IF;
  IF "pshiftplanid" IS NOT NULL THEN
    SET "spopup" = 'New shift requirement confirmed '+"dateformat"((SELECT FIRST "shiftdate" FROM "tempshiftplan" WHERE "tempshiftplanid" = "pshiftplanid"),'Ddd dd/mm/yyyy')
  ELSE
    SET "spopup" = 'New vacancy requirement confirmed'
  END IF;
  CALL "IQXNetPopup"("pWebUserID",NULL,NULL,"pvacancyid",NULL,NULL,'ADDVACANCY',"spopup",NULL);
  SELECT '0:~Success'
END
}
  • database/procedures/pears_netvacancyconfirm.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1