Show pageOld revisionsBacklinksExport to PDFFold/unfold allBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== pears.NetClientAddShiftsWeek ====== <WRAP center round info> Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace. </WRAP> ===== Original SQL ===== <code sql> create procedure "pears"."NetClientAddShiftsWeek"( in "pWebUserID" char(20),in "pvacancyid" char(20),in "pshifttemplateid" char(20),in "pstartdate" char(25),in "penddate" char(25) default '', in "ptimefrom" char(25) default null,in "ptimeto" char(25) default null,in "pBreak" char(20) default null,in "pTheirRef" char(50) default null, in "pDescription" long varchar default null,in "pSkills" char(100) default null,in "pGrade" char(50) default null,in "pNote" char(50) default null, in "pTitle" char(100) default null,in "pMonday" char(10) default null,in "pTuesday" char(10) default null,in "pWednesday" char(10) default null,in "pThursday" char(10) default null, in "pFriday" char(10) default null,in "pSaturday" char(10) default null,in "pSunday" char(10) default null, in "pOrderReason" char(50) default null ) result( "pResult" char(250) ) begin declare "swebusername" char(50); declare "sid" char(20); declare "cnt" integer; declare "idow" integer; declare "ddate" date; declare "dstart" date; declare "dend" date; declare "tfrom" time; declare "tto" time; declare "ibreak" integer; declare "CanAuthorise" smallint; 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 "dend" = "iqxnetstringtodate"("penddate"); if "dend" is null then set "dend" = "dstart"+6 end if; set "tfrom" = "iqxnetstringtotime"("ptimefrom"); if "tfrom" is null then select '500:~Invalid start time'; return end if; set "tto" = "iqxnetstringtotime"("ptimeto"); if "tto" is null then select '500:~Invalid end time'; return end if; set "ibreak" = "isnull"("iqxnetstringtointeger"("pbreak"),0); set "CanAuthorise" = "IQXNetHasPermission"("pWebUserID",'AUTHORISEJOBS'); set "ddate" = "dstart"; while "ddate" <= "dend" loop set "idow" = "dow"("ddate"); case "idow" when 1 then set "cnt" = "isnull"("iqxnetstringtointeger"("psunday"),0) when 2 then set "cnt" = "isnull"("iqxnetstringtointeger"("pmonday"),0) when 3 then set "cnt" = "isnull"("iqxnetstringtointeger"("ptuesday"),0) when 4 then set "cnt" = "isnull"("iqxnetstringtointeger"("pwednesday"),0) when 5 then set "cnt" = "isnull"("iqxnetstringtointeger"("pthursday"),0) when 6 then set "cnt" = "isnull"("iqxnetstringtointeger"("pfriday"),0) when 7 then set "cnt" = "isnull"("iqxnetstringtointeger"("psaturday"),0) end case; while "cnt" > 0 loop set "sid" = "uniquekey"("cnt"); insert into "tempshiftplan"( "TempShiftPlanID","VacancyID","TimeFrom","TimeTo","BreakMinutes","ShiftDate","Moveable","Description","ClientNote","EssentialSkill","EssentialSkillChoiceList","EssentialSkillGradeID","ReferenceCode","ReferenceRequired","ClientMustConfirm","TempMustConfirm","OrderedBy","TempShiftTypeID","AnalysisCode","RecoveryHours","TempShiftOrderReasonID" ) select "sid","pvacancyid","tfrom","tto","ibreak","ddate","Moveable","pDescription","pNote","string"("taglocation",';',"tagid",';',"tagchoiceid",';',"gradetagid"),"replace"("pskills","char"(9),';'),"pgrade","ucase"("pTheirRef"),"ReferenceRequired","ClientMustConfirm","TempMustConfirm","sWebUserName","TempShiftTypeID","AnalysisCode","RecoveryHours","nullif"("pOrderReason",'') from "tempshifttemplate" where "tempshifttemplateid" = "pshifttemplateid"; call "NetSetShiftPlanCascade"("sid"); if "CanAuthorise" = 0 then insert into "tempshift"( "tempshiftid","vacancyid","shiftdate","timefrom","timeto","state","tempshiftplanid","cancelreason" ) values ( "sid","pvacancyid","ddate","tfrom","tto",'C',"sid",'~' ) end if; set "cnt" = "cnt"-1 end loop; 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',null) end if; select '0:~Success' end go COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetClientAddShiftsWeek" IS {create procedure pears."NetClientAddShiftsWeek"( in "pWebUserID" char(20),in "pvacancyid" char(20),in "pshifttemplateid" char(20),in "pstartdate" char(25),in "penddate" char(25) default '', in "ptimefrom" char(25) default null,in "ptimeto" char(25) default null,in "pBreak" char(20) default null,in "pTheirRef" char(50) default null, in "pDescription" long varchar default null,in "pSkills" char(100) default null,in "pGrade" char(50) default null,in "pNote" char(50) default null, in "pTitle" char(100) default null,in "pMonday" char(10) default null,in "pTuesday" char(10) default null,in "pWednesday" char(10) default null,in "pThursday" char(10) default null, in "pFriday" char(10) default null,in "pSaturday" char(10) default null,in "pSunday" char(10) default null, in "pOrderReason" char(50) default null ) result( "pResult" char(250) ) begin declare "swebusername" char(50); declare "sid" char(20); declare "cnt" integer; declare "idow" integer; declare "ddate" date; declare "dstart" date; declare "dend" date; declare "tfrom" time; declare "tto" time; declare "ibreak" integer; declare "CanAuthorise" smallint; 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 "dend" = "iqxnetstringtodate"("penddate"); if "dend" is null then set "dend" = "dstart"+6 end if; set "tfrom" = "iqxnetstringtotime"("ptimefrom"); if "tfrom" is null then select '500:~Invalid start time'; return end if; set "tto" = "iqxnetstringtotime"("ptimeto"); if "tto" is null then select '500:~Invalid end time'; return end if; set "ibreak" = "isnull"("iqxnetstringtointeger"("pbreak"),0); set "CanAuthorise" = "IQXNetHasPermission"("pWebUserID",'AUTHORISEJOBS'); set "ddate" = "dstart"; while "ddate" <= "dend" loop set "idow" = "dow"("ddate"); case "idow" when 1 then set "cnt" = "isnull"("iqxnetstringtointeger"("psunday"),0) when 2 then set "cnt" = "isnull"("iqxnetstringtointeger"("pmonday"),0) when 3 then set "cnt" = "isnull"("iqxnetstringtointeger"("ptuesday"),0) when 4 then set "cnt" = "isnull"("iqxnetstringtointeger"("pwednesday"),0) when 5 then set "cnt" = "isnull"("iqxnetstringtointeger"("pthursday"),0) when 6 then set "cnt" = "isnull"("iqxnetstringtointeger"("pfriday"),0) when 7 then set "cnt" = "isnull"("iqxnetstringtointeger"("psaturday"),0) end case; while "cnt" > 0 loop set "sid" = "uniquekey"("cnt"); insert into "tempshiftplan"( "TempShiftPlanID","VacancyID","TimeFrom","TimeTo","BreakMinutes","ShiftDate","Moveable","Description","ClientNote","EssentialSkill","EssentialSkillChoiceList","EssentialSkillGradeID","ReferenceCode","ReferenceRequired","ClientMustConfirm","TempMustConfirm","OrderedBy","TempShiftTypeID","AnalysisCode","RecoveryHours","TempShiftOrderReasonID" ) select "sid","pvacancyid","tfrom","tto","ibreak","ddate","Moveable","pDescription","pNote","string"("taglocation",';',"tagid",';',"tagchoiceid",';',"gradetagid"),"replace"("pskills","char"(9),';'),"pgrade","ucase"("pTheirRef"),"ReferenceRequired","ClientMustConfirm","TempMustConfirm","sWebUserName","TempShiftTypeID","AnalysisCode","RecoveryHours","nullif"("pOrderReason",'') from "tempshifttemplate" where "tempshifttemplateid" = "pshifttemplateid"; call "NetSetShiftPlanCascade"("sid"); if "CanAuthorise" = 0 then insert into "tempshift"( "tempshiftid","vacancyid","shiftdate","timefrom","timeto","state","tempshiftplanid","cancelreason" ) values ( "sid","pvacancyid","ddate","tfrom","tto",'C',"sid",'~' ) end if; set "cnt" = "cnt"-1 end loop; 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',null) end if; select '0:~Success' end } </code> database/procedures/pears_netclientaddshiftsweek.txt Last modified: 2026/08/07 19:24by 127.0.0.1