pears.NetCandidateDiaryMultiAdd
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
Original SQL
CREATE PROCEDURE "pears"."NetCandidateDiaryMultiAdd"( IN "pWebUserID" CHAR(20),IN "pShiftType" CHAR(10),IN "pDateFrom" CHAR(50),IN "pMonTick" CHAR(3) DEFAULT 'off', IN "pTimeFromMon" CHAR(25) DEFAULT NULL,IN "pTimeToMon" CHAR(25) DEFAULT NULL,IN "pTueTick" CHAR(3) DEFAULT 'off', IN "pTimeFromTue" CHAR(25) DEFAULT NULL,IN "pTimeToTue" CHAR(25) DEFAULT NULL,IN "pWedTick" CHAR(3) DEFAULT 'off', IN "pTimeFromWed" CHAR(25) DEFAULT NULL,IN "pTimeToWed" CHAR(25) DEFAULT NULL,IN "pThuTick" CHAR(3) DEFAULT 'off', IN "pTimeFromThu" CHAR(25) DEFAULT NULL,IN "pTimeToThu" CHAR(25) DEFAULT NULL,IN "pFriTick" CHAR(3) DEFAULT 'off', IN "pTimeFromFri" CHAR(25) DEFAULT NULL,IN "pTimeToFri" CHAR(25) DEFAULT NULL,IN "pSatTick" CHAR(3) DEFAULT 'off', IN "pTimeFromSat" CHAR(25) DEFAULT NULL,IN "pTimeToSat" CHAR(25) DEFAULT NULL,IN "pSunTick" CHAR(3) DEFAULT 'off', IN "pTimeFromSun" CHAR(25) DEFAULT NULL,IN "pTimeToSun" CHAR(25) DEFAULT NULL,IN "pPersonID" CHAR(20) DEFAULT NULL ) RESULT( "pResult" CHAR(250) ) // IQXWeb BEGIN DECLARE "dstart" DATE; DECLARE "ddate" DATE; DECLARE "dend" DATE; DECLARE "tFrom" TIME; DECLARE "tTo" TIME; DECLARE "CanAuthorise" SMALLINT; DECLARE "pvacancyid" CHAR(20); DECLARE "thelog" CHAR(20); SET "pPersonID" = "NetCandidateValidPersonID"("pWebUserID","pPersonID"); IF "pPersonID" IS NULL THEN SELECT '99:~Unique candidate link required'; RETURN END IF; SET "dstart" = "iqxnetstringtodate"("pDateFrom"); IF "dstart" IS NULL THEN SELECT '500:~Invalid start date'; RETURN END IF; IF "substring"("pDateFrom",0,3) <> 'Mon' THEN SELECT '500:~Start date must be a Monday'; RETURN END IF; IF "pshifttype" NOT IN( 'H','A','U' ) THEN //Holiday/Available/Unavailable SELECT '101:~invalid shift type'; RETURN END IF; SET "CanAuthorise" = "IQXNetHasPermission"("pWebUserID",'AUTHORISEJOBS'); SET "ddate" = "dstart"; IF "pMonTick" = 'on' THEN SET "tFrom" = "iqxnetstringtotime"("pTimeFromMon"); SET "tTo" = "iqxnetstringtotime"("pTimeToMon"); INSERT INTO "tempshift"( "tempshiftid","personid","shiftdate","timefrom","timeto","state" ) VALUES( "uniquekey"("ddate"),"pPersonID","ddate","tFrom","tTo","pshifttype" ) END IF; SET "ddate" = "ddate"+1; IF "pTueTick" = 'on' THEN SET "tFrom" = "iqxnetstringtotime"("pTimeFromTue"); SET "tTo" = "iqxnetstringtotime"("pTimeToTue"); INSERT INTO "tempshift"( "tempshiftid","personid","shiftdate","timefrom","timeto","state" ) VALUES( "uniquekey"("ddate"),"pPersonID","ddate","tFrom","tTo","pshifttype" ) END IF; SET "ddate" = "ddate"+1; IF "pWedTick" = 'on' THEN SET "tFrom" = "iqxnetstringtotime"("pTimeFromWed"); SET "tTo" = "iqxnetstringtotime"("pTimeToWed"); INSERT INTO "tempshift"( "tempshiftid","personid","shiftdate","timefrom","timeto","state" ) VALUES( "uniquekey"("ddate"),"pPersonID","ddate","tFrom","tTo","pshifttype" ) END IF; SET "ddate" = "ddate"+1; IF "pThuTick" = 'on' THEN SET "tFrom" = "iqxnetstringtotime"("pTimeFromThu"); SET "tTo" = "iqxnetstringtotime"("pTimeToThu"); INSERT INTO "tempshift"( "tempshiftid","personid","shiftdate","timefrom","timeto","state" ) VALUES( "uniquekey"("ddate"),"pPersonID","ddate","tFrom","tTo","pshifttype" ) END IF; SET "ddate" = "ddate"+1; IF "pFriTick" = 'on' THEN SET "tFrom" = "iqxnetstringtotime"("pTimeFromFri"); SET "tTo" = "iqxnetstringtotime"("pTimeToFri"); INSERT INTO "tempshift"( "tempshiftid","personid","shiftdate","timefrom","timeto","state" ) VALUES( "uniquekey"("ddate"),"pPersonID","ddate","tFrom","tTo","pshifttype" ) END IF; SET "ddate" = "ddate"+1; IF "pSatTick" = 'on' THEN SET "tFrom" = "iqxnetstringtotime"("pTimeFromSat"); SET "tTo" = "iqxnetstringtotime"("pTimeToSat"); INSERT INTO "tempshift"( "tempshiftid","personid","shiftdate","timefrom","timeto","state" ) VALUES( "uniquekey"("ddate"),"pPersonID","ddate","tFrom","tTo","pshifttype" ) END IF; SET "ddate" = "ddate"+1; IF "pSunTick" = 'on' THEN SET "tFrom" = "iqxnetstringtotime"("pTimeFromSun"); SET "tTo" = "iqxnetstringtotime"("pTimeToSun"); INSERT INTO "tempshift"( "tempshiftid","personid","shiftdate","timefrom","timeto","state" ) VALUES( "uniquekey"("ddate"),"pPersonID","ddate","tFrom","tTo","pshifttype" ) END IF; IF "CanAuthorise" = 1 THEN CALL "IQXNetPopup"("pWebUserID","pPersonID",NULL,"pvacancyid",NULL,NULL,'ADDSHIFTS','New shift requirement(s) added',"thelog") END IF; SELECT '0:~Success' END /* DOC 2016-12-02 PC does not appear to be used by IQXWeb 2018-10-10 MHS IW-456 multi-cand fix */ /* TEST */ GO COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetCandidateDiaryMultiAdd" IS {CREATE PROCEDURE pears."NetCandidateDiaryMultiAdd"(IN pWebUserID CHAR(20),IN pShiftType CHAR(10),IN pDateFrom CHAR(50),IN pMonTick CHAR(3) DEFAULT 'off',IN pTimeFromMon CHAR(25) DEFAULT NULL,IN pTimeToMon CHAR(25) DEFAULT NULL,IN pTueTick CHAR(3) DEFAULT 'off',IN pTimeFromTue CHAR(25) DEFAULT NULL,IN pTimeToTue CHAR(25) DEFAULT NULL,IN pWedTick CHAR(3) DEFAULT 'off',IN pTimeFromWed CHAR(25) DEFAULT NULL,IN pTimeToWed CHAR(25) DEFAULT NULL,IN pThuTick CHAR(3) DEFAULT 'off',IN pTimeFromThu CHAR(25) DEFAULT NULL,IN pTimeToThu CHAR(25) DEFAULT NULL,IN pFriTick CHAR(3) DEFAULT 'off',IN pTimeFromFri CHAR(25) DEFAULT NULL,IN pTimeToFri CHAR(25) DEFAULT NULL,IN pSatTick CHAR(3) DEFAULT 'off',IN pTimeFromSat CHAR(25) DEFAULT NULL,IN pTimeToSat CHAR(25) DEFAULT NULL,IN pSunTick CHAR(3) DEFAULT 'off',IN pTimeFromSun CHAR(25) DEFAULT NULL,IN pTimeToSun CHAR(25) DEFAULT NULL, IN pPersonID CHAR(20) DEFAULT NULL) RESULT(pResult CHAR(250)) // IQXWeb BEGIN DECLARE dstart DATE; DECLARE ddate DATE; DECLARE dend DATE; DECLARE tFrom TIME; DECLARE tTo TIME; DECLARE CanAuthorise SMALLINT; DECLARE pvacancyid CHAR(20); DECLARE thelog CHAR(20); SET pPersonID=NetCandidateValidPersonID(pWebUserID,pPersonID); IF pPersonID IS NULL THEN SELECT '99:~Unique candidate link required'; RETURN; END IF; SET dstart=iqxnetstringtodate(pDateFrom); IF dstart IS NULL THEN SELECT '500:~Invalid start date'; RETURN END IF; IF SUBSTRING(pDateFrom,0,3) <> 'Mon' THEN SELECT '500:~Start date must be a Monday'; RETURN END IF; IF pshifttype NOT IN( 'H','A','U') THEN //Holiday/Available/Unavailable SELECT '101:~invalid shift type'; RETURN END IF; SET CanAuthorise=IQXNetHasPermission(pWebUserID,'AUTHORISEJOBS'); SET ddate=dstart; IF pMonTick = 'on' THEN SET tFrom=iqxnetstringtotime(pTimeFromMon); SET tTo=iqxnetstringtotime(pTimeToMon); INSERT INTO tempshift( tempshiftid,personid,shiftdate,timefrom,timeto,state) VALUES( uniquekey(ddate),pPersonID,ddate,tFrom,tTo,pshifttype) END IF; SET ddate=ddate+1; IF pTueTick = 'on' THEN SET tFrom=iqxnetstringtotime(pTimeFromTue); SET tTo=iqxnetstringtotime(pTimeToTue); INSERT INTO tempshift( tempshiftid,personid,shiftdate,timefrom,timeto,state) VALUES( uniquekey(ddate),pPersonID,ddate,tFrom,tTo,pshifttype) END IF; SET ddate=ddate+1; IF pWedTick = 'on' THEN SET tFrom=iqxnetstringtotime(pTimeFromWed); SET tTo=iqxnetstringtotime(pTimeToWed); INSERT INTO tempshift( tempshiftid,personid,shiftdate,timefrom,timeto,state) VALUES( uniquekey(ddate),pPersonID,ddate,tFrom,tTo,pshifttype) END IF; SET ddate=ddate+1; IF pThuTick = 'on' THEN SET tFrom=iqxnetstringtotime(pTimeFromThu); SET tTo=iqxnetstringtotime(pTimeToThu); INSERT INTO tempshift( tempshiftid,personid,shiftdate,timefrom,timeto,state) VALUES( uniquekey(ddate),pPersonID,ddate,tFrom,tTo,pshifttype) END IF; SET ddate=ddate+1; IF pFriTick = 'on' THEN SET tFrom=iqxnetstringtotime(pTimeFromFri); SET tTo=iqxnetstringtotime(pTimeToFri); INSERT INTO tempshift( tempshiftid,personid,shiftdate,timefrom,timeto,state) VALUES( uniquekey(ddate),pPersonID,ddate,tFrom,tTo,pshifttype) END IF; SET ddate=ddate+1; IF pSatTick = 'on' THEN SET tFrom=iqxnetstringtotime(pTimeFromSat); SET tTo=iqxnetstringtotime(pTimeToSat); INSERT INTO tempshift( tempshiftid,personid,shiftdate,timefrom,timeto,state) VALUES( uniquekey(ddate),pPersonID,ddate,tFrom,tTo,pshifttype) END IF; SET ddate=ddate+1; IF pSunTick = 'on' THEN SET tFrom=iqxnetstringtotime(pTimeFromSun); SET tTo=iqxnetstringtotime(pTimeToSun); INSERT INTO tempshift( tempshiftid,personid,shiftdate,timefrom,timeto,state) VALUES( uniquekey(ddate),pPersonID,ddate,tFrom,tTo,pshifttype) END IF; IF CanAuthorise = 1 THEN CALL IQXNetPopup(pWebUserID,pPersonID,NULL,pvacancyid,NULL,NULL,'ADDSHIFTS','New shift requirement(s) added',thelog) END IF; SELECT '0:~Success' END /* DOC 2016-12-02 PC does not appear to be used by IQXWeb 2018-10-10 MHS IW-456 multi-cand fix */ /* TEST */ }