====== pears.PlacementDayHours ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create function "pears"."PlacementDayHours"(
/* Application Maintained Function / Procedure - DO NOT EDIT*/
in "bProcess" tinyint,in "placid" char(20),in "pdate" date,in "startdate" date,in "enddate" date )
returns char(10)
begin
declare "bcanc" tinyint;
declare "scancid" char(10);
declare "nhrs" real;
declare "d" smallint;
declare "bdayticked" tinyint;
if "isnull"("bProcess",0) = 0 then
return ''
end if;
if "pdate" < "startdate" then
return ''
end if;
if "pdate" > "enddate" then
return ''
end if;
select first "v"."WorkCancelled","isnull"("r"."shortcode","v"."TempShiftCancelReasonID"),"v"."WorkHours" into "bcanc","scancid",
"nhrs" from "PlacementDayVariation" as "v" key left outer join "tempshiftcancelreason" as "r"
where "v"."placementid" = "placid" and "v"."VariationDate" = "pdate";
if "bcanc" = 1 then
return "isnull"("scancid",'C')
end if;
if "nhrs" is not null then
return "nhrs"
end if;
set "d" = "dow"("pdate")-1;
select(case "d" when 0 then "worksunday" when 1 then "workmonday" when 2 then "worktuesday" when 3 then "workwednesday" when 4 then "workthursday" when 5 then "workfriday" when 6 then "worksaturday" end),
"worknormalhours" into "bdayticked","nhrs" from "placement" where "placementid" = "placid";
if "bdayticked" = 1 then
return "nhrs"
end if;
return ''
end