pears.NetClientAddShiftsMultiWeek

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

CREATE PROCEDURE "pears"."NetClientAddShiftsMultiWeek"( IN "pWebUserID" CHAR(20),IN "pvacancyid" CHAR(20),IN "pstartdate" CHAR(25),
  IN "pExtraWeeks" CHAR(20) DEFAULT NULL,IN "pTheirRef" CHAR(50) DEFAULT NULL,IN "pOrderReason" CHAR(50) DEFAULT NULL,IN "pMonday" CHAR(20),
  IN "pMondayFrom" CHAR(25) DEFAULT NULL,IN "pMondayTo" CHAR(25) DEFAULT NULL,IN "pMondayBrk" CHAR(20) DEFAULT NULL,IN "pMondayQty" CHAR(20) DEFAULT NULL,IN "pMondayNote" CHAR(50) DEFAULT NULL,IN "pTuesday" CHAR(20),
  IN "pTuesdayFrom" CHAR(25) DEFAULT NULL,IN "pTuesdayTo" CHAR(25) DEFAULT NULL,IN "pTuesdayBrk" CHAR(20) DEFAULT NULL,IN "pTuesdayQty" CHAR(20) DEFAULT NULL,IN "pTuesdayNote" CHAR(50) DEFAULT NULL,IN "pWednesday" CHAR(20),
  IN "pWednesdayFrom" CHAR(25) DEFAULT NULL,IN "pWednesdayTo" CHAR(25) DEFAULT NULL,IN "pWednesdayBrk" CHAR(20) DEFAULT NULL,IN "pWednesdayQty" CHAR(20) DEFAULT NULL,IN "pWednesdayNote" CHAR(50) DEFAULT NULL,IN "pThursday" CHAR(20),
  IN "pThursdayFrom" CHAR(25) DEFAULT NULL,IN "pThursdayTo" CHAR(25) DEFAULT NULL,IN "pThursdayBrk" CHAR(20) DEFAULT NULL,IN "pThursdayQty" CHAR(20) DEFAULT NULL,IN "pThursdayNote" CHAR(50) DEFAULT NULL,IN "pFriday" CHAR(20),
  IN "pFridayFrom" CHAR(25) DEFAULT NULL,IN "pFridayTo" CHAR(25) DEFAULT NULL,IN "pFridayBrk" CHAR(20) DEFAULT NULL,IN "pFridayQty" CHAR(20) DEFAULT NULL,IN "pFridayNote" CHAR(50) DEFAULT NULL,IN "pSaturday" CHAR(20),
  IN "pSaturdayFrom" CHAR(25) DEFAULT NULL,IN "pSaturdayTo" CHAR(25) DEFAULT NULL,IN "pSaturdayBrk" CHAR(20) DEFAULT NULL,IN "pSaturdayQty" CHAR(20) DEFAULT NULL,IN "pSaturdayNote" CHAR(50) DEFAULT NULL,IN "pSunday" CHAR(20),
  IN "pSundayFrom" CHAR(25) DEFAULT NULL,IN "pSundayTo" CHAR(25) DEFAULT NULL,IN "pSundayBrk" CHAR(20) DEFAULT NULL,IN "pSundayQty" CHAR(20) DEFAULT NULL,IN "pSundayNote" CHAR(50) DEFAULT NULL ) 
RESULT( "pResult" CHAR(250) ) 
BEGIN
  DECLARE "swebusername" CHAR(50);
  DECLARE "ddate" DATE;
  DECLARE "dstart" DATE;
  DECLARE "dend" DATE;
  DECLARE "idow" INTEGER;
  DECLARE "CanAuthorise" SMALLINT;
  DECLARE "thelog" long VARCHAR;
  DECLARE LOCAL TEMPORARY TABLE "IDs"(
    "ID" CHAR(20) NULL,
    ) NOT transactional;
  INSERT INTO "IDs"( "ID" ) 
    SELECT DISTINCT "e"."companyid" FROM "iqxnetuserlink" AS "l" KEY JOIN "employment" AS "e" WHERE "l"."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",'ORDERJOBS') = 0 THEN
    SELECT '99:~Permission denied';
    RETURN
  END IF;
  SET "swebusername" = (SELECT "name" FROM "iqxnetuser" WHERE "iqxnetuserid" = "pwebuserid");
  SET "dstart" = "iqxnetstringtodate"("pstartdate");
  IF "dstart" IS NULL THEN
    SELECT '500:~Invalid start date';
    RETURN
  END IF;
  SET "CanAuthorise" = "IQXNetHasPermission"("pWebUserID",'AUTHORISEJOBS');
  SET "ddate" = "dstart";
  SET "dend" = "dateadd"("day",6+(7*"isnull"("iqxnetstringtointeger"("pextraweeks"),0)),"dstart");
  while "ddate" <= "dend" loop
    SET "idow" = "dow"("ddate");
    CASE "idow"
    WHEN 1 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "psunday","ptimefrom" = "psundayfrom","ptimeto" = "psundayto","pbreak" = "psundaybrk","pnote" = "psundaynote","pqty" = "psundayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 2 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "pmonday","ptimefrom" = "pmondayfrom","ptimeto" = "pmondayto","pbreak" = "pmondaybrk","pnote" = "pmondaynote","pqty" = "pmondayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 3 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "ptuesday","ptimefrom" = "ptuesdayfrom","ptimeto" = "ptuesdayto","pbreak" = "ptuesdaybrk","pnote" = "ptuesdaynote","pqty" = "ptuesdayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 4 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "pwednesday","ptimefrom" = "pwednesdayfrom","ptimeto" = "pwednesdayto","pbreak" = "pwednesdaybrk","pnote" = "pwednesdaynote","pqty" = "pwednesdayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 5 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "pthursday","ptimefrom" = "pthursdayfrom","ptimeto" = "pthursdayto","pbreak" = "pthursdaybrk","pnote" = "pthursdaynote","pqty" = "pthursdayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 6 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "pfriday","ptimefrom" = "pfridayfrom","ptimeto" = "pfridayto","pbreak" = "pfridaybrk","pnote" = "pfridaynote","pqty" = "pfridayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 7 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "psaturday","ptimefrom" = "psaturdayfrom","ptimeto" = "psaturdayto","pbreak" = "psaturdaybrk","pnote" = "psaturdaynote","pqty" = "psaturdayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    END CASE;
    SET "ddate" = "dateadd"("day",1,"ddate")
  END loop;
  IF "CanAuthorise" = 1 THEN
    CALL "IQXNetPopup"("pWebUserID",NULL,NULL,"pvacancyid",NULL,NULL,'ADDSHIFTS','New shift requirement(s) added',"thelog")
  END IF;
  SELECT '0:~Success'
END
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetClientAddShiftsMultiWeek" IS 
{CREATE PROCEDURE pears."NetClientAddShiftsMultiWeek"( IN "pWebUserID" CHAR(20),IN "pvacancyid" CHAR(20),IN "pstartdate" CHAR(25),
  IN "pExtraWeeks" CHAR(20) DEFAULT NULL,IN "pTheirRef" CHAR(50) DEFAULT NULL,IN "pOrderReason" CHAR(50) DEFAULT NULL,IN "pMonday" CHAR(20),
  IN "pMondayFrom" CHAR(25) DEFAULT NULL,IN "pMondayTo" CHAR(25) DEFAULT NULL,IN "pMondayBrk" CHAR(20) DEFAULT NULL,IN "pMondayQty" CHAR(20) DEFAULT NULL,IN "pMondayNote" CHAR(50) DEFAULT NULL,IN "pTuesday" CHAR(20),
  IN "pTuesdayFrom" CHAR(25) DEFAULT NULL,IN "pTuesdayTo" CHAR(25) DEFAULT NULL,IN "pTuesdayBrk" CHAR(20) DEFAULT NULL,IN "pTuesdayQty" CHAR(20) DEFAULT NULL,IN "pTuesdayNote" CHAR(50) DEFAULT NULL,IN "pWednesday" CHAR(20),
  IN "pWednesdayFrom" CHAR(25) DEFAULT NULL,IN "pWednesdayTo" CHAR(25) DEFAULT NULL,IN "pWednesdayBrk" CHAR(20) DEFAULT NULL,IN "pWednesdayQty" CHAR(20) DEFAULT NULL,IN "pWednesdayNote" CHAR(50) DEFAULT NULL,IN "pThursday" CHAR(20),
  IN "pThursdayFrom" CHAR(25) DEFAULT NULL,IN "pThursdayTo" CHAR(25) DEFAULT NULL,IN "pThursdayBrk" CHAR(20) DEFAULT NULL,IN "pThursdayQty" CHAR(20) DEFAULT NULL,IN "pThursdayNote" CHAR(50) DEFAULT NULL,IN "pFriday" CHAR(20),
  IN "pFridayFrom" CHAR(25) DEFAULT NULL,IN "pFridayTo" CHAR(25) DEFAULT NULL,IN "pFridayBrk" CHAR(20) DEFAULT NULL,IN "pFridayQty" CHAR(20) DEFAULT NULL,IN "pFridayNote" CHAR(50) DEFAULT NULL,IN "pSaturday" CHAR(20),
  IN "pSaturdayFrom" CHAR(25) DEFAULT NULL,IN "pSaturdayTo" CHAR(25) DEFAULT NULL,IN "pSaturdayBrk" CHAR(20) DEFAULT NULL,IN "pSaturdayQty" CHAR(20) DEFAULT NULL,IN "pSaturdayNote" CHAR(50) DEFAULT NULL,IN "pSunday" CHAR(20),
  IN "pSundayFrom" CHAR(25) DEFAULT NULL,IN "pSundayTo" CHAR(25) DEFAULT NULL,IN "pSundayBrk" CHAR(20) DEFAULT NULL,IN "pSundayQty" CHAR(20) DEFAULT NULL,IN "pSundayNote" CHAR(50) DEFAULT NULL ) 
RESULT( "pResult" CHAR(250) ) 
BEGIN
  DECLARE "swebusername" CHAR(50);
  DECLARE "ddate" DATE;
  DECLARE "dstart" DATE;
  DECLARE "dend" DATE;
  DECLARE "idow" INTEGER;
  DECLARE "CanAuthorise" SMALLINT;
  DECLARE "thelog" long VARCHAR;
  DECLARE LOCAL TEMPORARY TABLE "IDs"(
    "ID" CHAR(20) NULL,
    ) NOT transactional;
  INSERT INTO "IDs"( "ID" ) 
    SELECT DISTINCT "e"."companyid" FROM "iqxnetuserlink" AS "l" KEY JOIN "employment" AS "e" WHERE "l"."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",'ORDERJOBS') = 0 THEN
    SELECT '99:~Permission denied';
    RETURN
  END IF;
  SET "swebusername" = (SELECT "name" FROM "iqxnetuser" WHERE "iqxnetuserid" = "pwebuserid");
  SET "dstart" = "iqxnetstringtodate"("pstartdate");
  IF "dstart" IS NULL THEN
    SELECT '500:~Invalid start date';
    RETURN
  END IF;
  SET "CanAuthorise" = "IQXNetHasPermission"("pWebUserID",'AUTHORISEJOBS');
  SET "ddate" = "dstart";
  SET "dend" = "dateadd"("day",6+(7*"isnull"("iqxnetstringtointeger"("pextraweeks"),0)),"dstart");
  while "ddate" <= "dend" loop
    SET "idow" = "dow"("ddate");
    CASE "idow"
    WHEN 1 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "psunday","ptimefrom" = "psundayfrom","ptimeto" = "psundayto","pbreak" = "psundaybrk","pnote" = "psundaynote","pqty" = "psundayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 2 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "pmonday","ptimefrom" = "pmondayfrom","ptimeto" = "pmondayto","pbreak" = "pmondaybrk","pnote" = "pmondaynote","pqty" = "pmondayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 3 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "ptuesday","ptimefrom" = "ptuesdayfrom","ptimeto" = "ptuesdayto","pbreak" = "ptuesdaybrk","pnote" = "ptuesdaynote","pqty" = "ptuesdayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 4 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "pwednesday","ptimefrom" = "pwednesdayfrom","ptimeto" = "pwednesdayto","pbreak" = "pwednesdaybrk","pnote" = "pwednesdaynote","pqty" = "pwednesdayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 5 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "pthursday","ptimefrom" = "pthursdayfrom","ptimeto" = "pthursdayto","pbreak" = "pthursdaybrk","pnote" = "pthursdaynote","pqty" = "pthursdayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 6 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "pfriday","ptimefrom" = "pfridayfrom","ptimeto" = "pfridayto","pbreak" = "pfridaybrk","pnote" = "pfridaynote","pqty" = "pfridayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    WHEN 7 THEN CALL "NetClientAddShiftsOneDay"("pshifttemplateid" = "psaturday","ptimefrom" = "psaturdayfrom","ptimeto" = "psaturdayto","pbreak" = "psaturdaybrk","pnote" = "psaturdaynote","pqty" = "psaturdayqty","pwebuserid" = "pwebuserid","pvacancyid" = "pvacancyid","pcanauthorise" = "canauthorise","pdate" = "ddate","ptheirref" = "ptheirref","porderreason" = "porderreason","pwebusername" = "swebusername","plog" = "thelog")
    END CASE;
    SET "ddate" = "dateadd"("day",1,"ddate")
  END loop;
  IF "CanAuthorise" = 1 THEN
    CALL "IQXNetPopup"("pWebUserID",NULL,NULL,"pvacancyid",NULL,NULL,'ADDSHIFTS','New shift requirement(s) added',"thelog")
  END IF;
  SELECT '0:~Success'
END
}
  • database/procedures/pears_netclientaddshiftsmultiweek.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1