pears.GetShiftStateDescription

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

Original SQL

CREATE FUNCTION "pears"."GetShiftStateDescription"( 
  /* Application Maintained Function / Procedure - DO NOT EDIT*/
  IN "sid" CHAR(20),IN "ddate" DATE,IN "bperson" SMALLINT ) 
RETURNS CHAR(70)
BEGIN
  DECLARE "rv" CHAR(70);
  DECLARE "t" CHAR(70);
  DECLARE "tt" CHAR(70);
  DECLARE "s" CHAR(20);
  DECLARE "s1" CHAR(1);
  -- bperson=2 means same as 1 but full description for Available and Unavailable
  IF "bperson" = -1 THEN
    RETURN "getshiftstatedescriptionPlus"("sid","ddate")
  ELSE IF "bperson" >= 1 THEN
      SET "rv" = "getkeyshiftstate"("sid","ddate",1)
    ELSE
      SET "rv" = "getkeyshiftplanstate"("sid","ddate","bperson")
    END IF END IF;
  SET "s1" = "left"("rv",1);
  IF "length"("rv") > 1 AND "s1" IN( 'P','B','W','E','X','Y' ) THEN
    SET "s" = "stuff"("rv",1,1,NULL);
    SET "t" = NULL;
    IF "bperson" >= 1 THEN
      IF "s1" = 'E' THEN -- Employment NOT Shift record
        SELECT "company"."name" INTO "t" FROM "employment" KEY JOIN "company" WHERE "employment"."employmentid" = "s"
      ELSE
        IF "s1" IN( 'X','Y' ) THEN -- Plan - Y indicates cascaded
          SELECT "isnull"("person"."name","company"."name") INTO "t" FROM "tempshiftplan" KEY JOIN "vacancy" KEY JOIN "employment" KEY JOIN "company","vacancy" KEY LEFT OUTER JOIN "person" WHERE "tempshiftplan"."tempshiftplanid" = "s"
        ELSE
          SELECT "isnull"("person"."name","company"."name") INTO "t" FROM "tempshift" KEY JOIN "vacancy" KEY JOIN "employment" KEY JOIN "company","vacancy" KEY LEFT OUTER JOIN "person" WHERE "tempshift"."tempshiftid" = "s"
        END IF
      END IF
    ELSE IF "s1" NOT IN( 'X','Y' ) THEN
        SELECT "gettempname"("tempshift"."personid") INTO "t" FROM "tempshift" WHERE "tempshift"."tempshiftid" = "s"
      END IF END IF;
    SET "rv" = "string"("s1","t")
  END IF;
  IF "s1" IN( 'A','U' ) AND "bperson" >= 1 THEN
    SET "s" = "nullif"("stuff"("rv",1,1,NULL),'');
    IF "s1" = 'A' THEN
      SELECT "string"('Available ',"a"."availtemplateid"),"string"('A: ',"a"."name",' ',"dateformat"("a"."timefrom",'hh:nn'),'-',"dateformat"("a"."timeto",'hh:nn'))
        INTO "t","tt" FROM "tempshift" AS "sh" KEY JOIN "availabilitytemplate" AS "a" WHERE "sh"."tempshiftid" = "s";
      SET "t" = "isnull"("t",'Available')
    ELSE
      SET "t" = 'Unavailable';
      SELECT "string"('U: ',"u"."name") INTO "tt" FROM "tempshift" AS "sh" KEY JOIN "tempshiftunavailablereason" AS "u" WHERE "bperson" = 2 AND "sh"."tempshiftid" = "s"
    END IF;
    IF "bperson" = 2 AND "tt" IS NOT NULL THEN
      SET "rv" = "tt"
    ELSE
      SET "rv" = "t"
    END IF END IF;
  RETURN "rv"
END