Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
CREATE FUNCTION "pears"."GetKeyShiftState"( /* Application Maintained Function / Procedure - DO NOT EDIT*/ IN "sid" CHAR(20),IN "ddate" DATE,IN "bperson" SMALLINT ) RETURNS CHAR(21) BEGIN DECLARE "rv" CHAR(21); DECLARE "id" CHAR(20); DECLARE "empid" CHAR(20); DECLARE "so" SMALLINT; DECLARE "wrkd" SMALLINT; SET "rv" = NULL; IF "bperson" = 1 THEN SELECT FIRST "state","tempshiftid", (CASE "state" WHEN 'P' THEN 0 WHEN 'C' THEN 1 WHEN 'B' THEN 2 WHEN 'W' THEN 3 WHEN 'H' THEN 4 WHEN 'U' THEN 5 ELSE 6 END) AS "sortorder" INTO "rv","id","so" FROM "tempshift" WHERE "personid" = "sid" AND "shiftdate" = "ddate" AND(NOT("state" = 'C' AND "tempconfirmed" = 1)) ORDER BY "sortorder" ASC; IF "rv" IS NULL OR "rv" = 'A' THEN SELECT FIRST "e"."employmentid","placementdayworked"("pl"."placementid","ddate") INTO "empid","wrkd" FROM "employment" AS "e" KEY LEFT OUTER JOIN "placement" AS "pl" WHERE "isnull"("e"."concurrent",0) = 0 AND "e"."personid" = "sid" AND "e"."startdate" <= "ddate" AND("e"."leavedate" IS NULL OR "e"."leavedate" >= "ddate") ORDER BY "wrkd" DESC; IF "empid" IS NOT NULL AND "wrkd" = 1 THEN RETURN 'E'+"empid" END IF END IF ELSE SELECT FIRST "state","tempshiftid", (CASE "state" WHEN 'U' THEN 1 WHEN 'P' THEN 2 WHEN 'B' THEN 3 ELSE 4 END) AS "sortorder" INTO "rv","id","so" FROM "tempshift" WHERE "vacancyid" = "sid" AND "shiftdate" = "ddate" AND "state" <> 'C' ORDER BY "sortorder" ASC END IF; IF "id" IS NOT NULL THEN SET "rv" = "rv" || "id" END IF; RETURN("rv") END