pears.PersonAvailableAtTime
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
Original SQL
CREATE FUNCTION "pears"."PersonAvailableAtTime"( /* Application Maintained Function / Procedure - DO NOT EDIT*/ IN "sPersonid" CHAR(20),IN "dShiftDate" DATE,IN "tShiftFrom" TIME,IN "tShiftTo" TIME,IN "iCheckExplicitlyAvailable" SMALLINT ) RETURNS CHAR(1) BEGIN DECLARE "foundState" CHAR(1); SET "foundstate" = NULL; -- If we return null, we have found no explicit unavailability or availability -- First check for all day unavailability SELECT FIRST "state" INTO "foundstate" FROM "tempshift" WHERE "state" NOT IN( 'A','C' ) AND "personid" = "spersonid" AND "shiftdate" = "dshiftdate" AND("timefrom" IS NULL OR "timeto" IS NULL); IF "foundstate" IS NULL THEN -- Look for non-concurrent employments SELECT FIRST 'W' INTO "foundstate" FROM "employment" WHERE "isnull"("concurrent",0) = 0 AND "personid" = "spersonid" AND "startdate" <= "dshiftdate" AND("leavedate" IS NULL OR "leavedate" >= "dshiftdate") END IF; IF "foundstate" IS NULL THEN SET "foundstate" = "personavailableforplaniterate"("spersonid","dshiftdate","tshiftfrom","tshiftto","icheckexplicitlyavailable",'') END IF; RETURN "foundstate" END