pears.GetTempRateExtra

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

Original SQL

CREATE FUNCTION "pears"."GetTempRateExtra"( 
  /* Application Maintained Function / Procedure - DO NOT EDIT*/
  IN "FName" CHAR(20),IN "PlacOrVac" CHAR(1),IN "ID" CHAR(20) ) 
RETURNS DOUBLE
BEGIN
  DECLARE "rv" DOUBLE;
  DECLARE "pvacid" CHAR(20);
  DECLARE "ppersid" CHAR(20);
  DECLARE "pplacid" CHAR(20);
  DECLARE "pjobtypeid" CHAR(20);
  DECLARE "pdirectengagement" SMALLINT;
  IF("fname" = 'P') OR("fname" = 'V') THEN
    SET "rv" = "GetTempRateCustom"("FName","PlacOrVac","ID");
    IF "rv" IS NOT NULL THEN RETURN "rv" END IF
  END IF;
  IF "placorvac" = 'P' THEN
    SET "pplacid" = "id";
    SELECT "pl"."vacancyid","em"."personid","v"."tempjobtypeid","isnull"("pl"."directengagement",0) INTO "pvacid","ppersid","pjobtypeid","pdirectengagement" FROM "placement" AS "pl" KEY JOIN("employment" AS "em","vacancy" AS "v") WHERE "pl"."placementid" = "pplacid";
    FOR "PRATEFOR" AS "PRATECUR" no scroll cursor FOR
      SELECT "vacancytemprate"("pvacid","temppayband"."temppayBandID","tempjobrate"."grade","tempjobrate"."filter1","tempjobrate"."filter2","tempjobrate"."filter3","tempjobrate"."Startdate","tempjobrate"."Enddate") AS "VacRateID",
        "mastertemprate"("pJobTypeID","temppayband"."temppayBandID","tempjobrate"."grade","tempjobrate"."filter1","tempjobrate"."filter2","tempjobrate"."filter3","tempjobrate"."Startdate","tempjobrate"."Enddate") AS "MasterID",
        "temppayband"."sortorder",
        "temppayband"."description",
        "tempjobrate"."Startdate" AS "StartDate",
        "tempjobrate"."Enddate" AS "EndDate",
        "tempjobrate"."Grade",
        "tempjobrate"."filter3",
        "isnull"("tempjobrate"."filter2",'Z') AS "soltd",
        "isnull"("tempjobrate"."filter1",'Z') AS "soawr",
        "tempjobrate"."TempJobRateID",
        "temppayband"."TempPayBandID",
        "tempjobrate"."PayRate" AS "SavedPayRate",
        (SELECT FIRST "payrate" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid") AS "MasterPayRate",
        "isnull"((SELECT FIRST "payrate" FROM "tempjobrate" WHERE "tempjobrateid" = "vacrateid"),"MasterPayRate") AS "OrigPayRate",
        "ModifiedTempRate"('P',"pvacid","ppersid","pplacid","temppayband"."temppaybandid","OrigPayRate") AS "ModifiedPayRate",
        "isnull"("SavedPayRate","ModifiedPayRate") AS "PayRate",
        "tempjobrate"."ChargeRate" AS "SavedChargeRate",
        (SELECT FIRST "chargerate" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid") AS "MasterChargeRate",
        "isnull"((SELECT FIRST "chargerate" FROM "tempjobrate" WHERE "tempjobrateid" = "vacrateid"),"MasterChargeRate") AS "OrigChargeRate",
        "round"("origchargerate"-("isnull"((SELECT FIRST "discount" FROM "vacancy" WHERE "vacancyid" = "pvacid"),0)*"origchargerate"/100),2) AS "DiscountedCharge",
        "ModifiedTempRate"('C',"pvacid","ppersid","pplacid","temppayband"."temppaybandid","DiscountedCharge") AS "ModifiedChargeRate",
        "isnull"("SavedChargeRate","ModifiedChargeRate") AS "ChargeRate",
        "isnull"("tempjobrate"."extrarate1",(SELECT FIRST "extrarate1" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid")) AS "extrarate1",
        "isnull"("tempjobrate"."extrarate2",(SELECT FIRST "extrarate2" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid")) AS "extrarate2",
        "isnull"("tempjobrate"."extrarate3",(SELECT FIRST "extrarate3" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid")) AS "extrarate3",
        "isnull"("temppayband"."IsExpenses",0) AS "IsExpenses"
        FROM "tempjobrate" KEY JOIN "temppayband"
        WHERE "tempjobrate"."placementid" = "pplacid"
        AND("startdate" IS NULL OR "startdate" <= CURRENT DATE) AND("enddate" IS NULL OR "enddate" >= CURRENT DATE)
        AND("tempjobrate"."grade" IS NULL OR "tempjobrate"."grade" LIKE "isnull"("entitygrade"("pvacid","ppersid","pplacid",NULL),'%'))
        AND("tempjobrate"."filter1" IS NULL OR "tempjobrate"."filter1" LIKE "isnull"("entityratefilter"(1,NULL,"pvacid","ppersid","pplacid",NULL),'%'))
        AND("tempjobrate"."filter2" IS NULL OR "tempjobrate"."filter2" LIKE "isnull"("entityratefilter"(2,NULL,"pvacid","ppersid","pplacid",NULL),'%'))
        AND("tempjobrate"."filter3" IS NULL OR "tempjobrate"."filter3" LIKE "isnull"("entityratefilter"(3,NULL,"pvacid","ppersid","pplacid",NULL),'%')) UNION ALL
      SELECT "tempjobrate"."TempJobRateID" AS "VacRateID",
        "mastertemprate"("pJobTypeID","temppayband"."temppayBandID","tempjobrate"."grade","tempjobrate"."filter1","tempjobrate"."filter2","tempjobrate"."filter3","tempjobrate"."Startdate","tempjobrate"."Enddate") AS "MasterID",
        "temppayband"."sortorder",
        "temppayband"."description",
        "tempjobrate"."Startdate" AS "StartDate",
        "tempjobrate"."Enddate" AS "EndDate",
        "tempjobrate"."Grade",
        "tempjobrate"."filter3",
        "isnull"("tempjobrate"."filter2",'Z') AS "soltd",
        "isnull"("tempjobrate"."filter1",'Z') AS "soawr",
        CAST(NULL AS CHAR(20)) AS "TempJobRateID",
        "temppayband"."TempPayBandID",
        CAST(NULL AS DOUBLE) AS "SavedPayRate",
        (SELECT FIRST "payrate" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid") AS "MasterPayRate",
        "isnull"("tempjobrate"."payrate","MasterPayRate") AS "OrigPayRate",
        "ModifiedTempRate"('P',"pvacid","ppersid","pplacid","temppayband"."temppaybandid","OrigPayRate") AS "ModifiedPayRate",
        "ModifiedPayRate" AS "PayRate",
        CAST(NULL AS DOUBLE) AS "SavedChargeRate",
        (SELECT FIRST "chargerate" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid") AS "MasterChargeRate",
        "isnull"("tempjobrate"."chargerate","MasterChargeRate") AS "OrigChargeRate",
        "round"("origchargerate"-("isnull"((SELECT FIRST "discount" FROM "vacancy" WHERE "vacancyid" = "pvacid"),0)*"origchargerate"/100),2) AS "DiscountedCharge",
        "ModifiedTempRate"('C',"pvacid","ppersid","pplacid","temppayband"."temppaybandid","DiscountedCharge") AS "ModifiedChargeRate",
        "ModifiedChargeRate" AS "ChargeRate",
        "isnull"("tempjobrate"."extrarate1",(SELECT FIRST "extrarate1" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid")) AS "extrarate1",
        "isnull"("tempjobrate"."extrarate2",(SELECT FIRST "extrarate2" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid")) AS "extrarate2",
        "isnull"("tempjobrate"."extrarate3",(SELECT FIRST "extrarate3" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid")) AS "extrarate3",
        "isnull"("temppayband"."IsExpenses",0) AS "IsExpenses"
        FROM "tempjobrate" KEY JOIN "temppayband"
        WHERE "tempjobrate"."vacancyid" = "pvacid" AND "pdirectengagement" = 0
        AND "OverrideTempRate"(NULL,"pplacid","temppayband"."temppaybandid","tempjobrate"."Grade","tempjobrate"."filter1","tempjobrate"."filter2","tempjobrate"."filter3","tempjobrate"."Startdate","tempjobrate"."Enddate") IS NULL
        AND("startdate" IS NULL OR "startdate" <= CURRENT DATE) AND("enddate" IS NULL OR "enddate" >= CURRENT DATE)
        AND("tempjobrate"."grade" IS NULL OR "tempjobrate"."grade" LIKE "isnull"("entitygrade"("pvacid","ppersid","pplacid",NULL),'%'))
        AND("tempjobrate"."filter1" IS NULL OR "tempjobrate"."filter1" LIKE "isnull"("entityratefilter"(1,NULL,"pvacid","ppersid","pplacid",NULL),'%'))
        AND("tempjobrate"."filter2" IS NULL OR "tempjobrate"."filter2" LIKE "isnull"("entityratefilter"(2,NULL,"pvacid","ppersid","pplacid",NULL),'%'))
        AND("tempjobrate"."filter3" IS NULL OR "tempjobrate"."filter3" LIKE "isnull"("entityratefilter"(3,NULL,"pvacid","ppersid","pplacid",NULL),'%')) UNION ALL
      SELECT CAST(NULL AS CHAR(20)) AS "VacRateID",
        "tempjobratemaster"."tempjobratemasterid" AS "masterid",
        "temppayband"."sortorder",
        "temppayband"."description",
        "tempjobratemaster"."Startdate" AS "StartDate",
        "tempjobratemaster"."Enddate" AS "EndDate",
        "tempjobratemaster"."Grade",
        "tempjobratemaster"."filter3",
        "isnull"("tempjobratemaster"."filter2",'Z') AS "soltd",
        "isnull"("tempjobratemaster"."filter1",'Z') AS "soawr",
        CAST(NULL AS CHAR(20)) AS "TempJobRateID",
        "temppayband"."TempPayBandID",
        CAST(NULL AS DOUBLE) AS "SavedPayRate",
        "tempjobratemaster"."payrate" AS "MasterPayRate",
        "MasterPayRate" AS "OrigPayRate",
        "ModifiedTempRate"('P',"pvacid","ppersid","pplacid","temppayband"."temppaybandid","OrigPayRate") AS "ModifiedPayRate",
        "ModifiedPayRate" AS "PayRate",
        CAST(NULL AS DOUBLE) AS "SavedChargeRate",
        "tempjobratemaster"."chargerate" AS "MasterChargeRate",
        "MasterChargeRate" AS "OrigChargeRate",
        "round"("origchargerate"-("isnull"((SELECT FIRST "Discount" FROM "vacancy" WHERE "vacancyid" = "pvacid"),0)*"origchargerate"/100),2) AS "DiscountedCharge",
        "ModifiedTempRate"('C',"pvacid","ppersid","pplacid","temppayband"."temppaybandid","DiscountedCharge") AS "ModifiedChargeRate",
        "ModifiedChargeRate" AS "ChargeRate",
        "tempjobratemaster"."extrarate1",
        "tempjobratemaster"."extrarate2",
        "tempjobratemaster"."extrarate3",
        "isnull"("temppayband"."IsExpenses",0) AS "IsExpenses"
        FROM "tempjobratemaster" KEY JOIN("tempjobtype","temppayband")
        WHERE "tempjobtype"."tempjobtypeid" = "pjobtypeid" AND "pdirectengagement" = 0
        AND "OverrideTempRate"("pvacid","pplacid","temppayband"."temppaybandid","tempjobratemaster"."Grade","tempjobratemaster"."filter1","tempjobratemaster"."filter2",
        "tempjobratemaster"."filter3","tempjobratemaster"."Startdate","tempjobratemaster"."Enddate") IS NULL
        AND("startdate" IS NULL OR "startdate" <= CURRENT DATE) AND("enddate" IS NULL OR "enddate" >= CURRENT DATE)
        AND("tempjobratemaster"."grade" IS NULL OR "tempjobratemaster"."grade" LIKE "isnull"("entitygrade"("pvacid","ppersid","pplacid",NULL),'%'))
        AND("tempjobratemaster"."filter1" IS NULL OR "tempjobratemaster"."filter1" LIKE "isnull"("entityratefilter"(1,NULL,"pvacid","ppersid","pplacid",NULL),'%'))
        AND("tempjobratemaster"."filter2" IS NULL OR "tempjobratemaster"."filter2" LIKE "isnull"("entityratefilter"(2,NULL,"pvacid","ppersid","pplacid",NULL),'%'))
        AND("tempjobratemaster"."filter3" IS NULL OR "tempjobratemaster"."filter3" LIKE "isnull"("entityratefilter"(3,NULL,"pvacid","ppersid","pplacid",NULL),'%'))
        AND "tempjobtype"."dynamic" = 1
        ORDER BY "IsExpenses" ASC,"startdate" ASC,"grade" ASC,"filter3" ASC,"soLtd" ASC,"soAWR" ASC,"sortorder" ASC FOR READ ONLY do
      CASE "FName"
      WHEN 'P' THEN SET "rv" = "payrate"
      WHEN 'V' THEN SET "rv" = "discountedcharge"
      WHEN 'ExtraRate1' THEN SET "rv" = "ExtraRate1"
      WHEN 'ExtraRate2' THEN SET "rv" = "ExtraRate2"
      WHEN 'ExtraRate3' THEN SET "rv" = "ExtraRate3"
      END CASE;
      RETURN "rv"
    END FOR
  ELSE SET "pvacid" = "id";
    SET "ppersid" = NULL;
    SET "pplacid" = NULL;
    SELECT "tempjobtypeid" INTO "pjobtypeid" FROM "vacancy" WHERE "vacancyid" = "pvacid";
    FOR "VRATEFOR" AS "VRATECUR" no scroll cursor FOR
      SELECT "mastertemprate"("pJobTypeID","temppayband"."temppayBandID","tempjobrate"."grade","tempjobrate"."filter1","tempjobrate"."filter2","tempjobrate"."filter3","tempjobrate"."Startdate","tempjobrate"."Enddate") AS "MasterID",
        "temppayband"."sortorder",
        "temppayband"."description",
        "tempjobrate"."Startdate" AS "StartDate",
        "tempjobrate"."Enddate" AS "EndDate",
        "tempjobrate"."Grade",
        "tempjobrate"."filter3",
        "isnull"("tempjobrate"."filter2",'Z') AS "soltd",
        "isnull"("tempjobrate"."filter1",'Z') AS "soawr",
        "tempjobrate"."VacancyID",
        "tempjobrate"."TempJobRateID",
        "temppayband"."TempPayBandID",
        "tempjobrate"."PayRate" AS "SavedPayRate",
        (SELECT FIRST "payrate" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid") AS "OrigPayRate",
        "isnull"("SavedPayRate","OrigPayRate") AS "PayRate",
        "tempjobrate"."ChargeRate" AS "SavedChargeRate",
        (SELECT FIRST "chargerate" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid") AS "OrigChargeRate",
        "isnull"("SavedChargeRate","OrigChargeRate") AS "ChargeRate",
        "round"("chargerate"-("isnull"("vacancy"."discount",0)*"chargerate"/100),2) AS "DiscountedCharge",
        "isnull"("tempjobrate"."extrarate1",(SELECT FIRST "extrarate1" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid")) AS "extrarate1",
        "isnull"("tempjobrate"."extrarate2",(SELECT FIRST "extrarate2" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid")) AS "extrarate2",
        "isnull"("tempjobrate"."extrarate3",(SELECT FIRST "extrarate3" FROM "tempjobratemaster" WHERE "tempjobratemasterid" = "masterid")) AS "extrarate3",
        "isnull"("temppayband"."IsExpenses",0) AS "IsExpenses"
        FROM "tempjobrate" KEY JOIN("vacancy","temppayband")
        WHERE "vacancy"."vacancyid" = "pvacid"
        AND("startdate" IS NULL OR "startdate" <= CURRENT DATE) AND("enddate" IS NULL OR "enddate" >= CURRENT DATE)
        AND("tempjobrate"."grade" IS NULL OR "tempjobrate"."grade" LIKE "isnull"("entitygrade"("pvacid",NULL,NULL,NULL),'%'))
        AND("tempjobrate"."filter1" IS NULL OR "tempjobrate"."filter1" LIKE "isnull"("entityratefilter"(1,NULL,"pvacid",NULL,NULL,NULL),'%'))
        AND("tempjobrate"."filter2" IS NULL OR "tempjobrate"."filter2" LIKE "isnull"("entityratefilter"(2,NULL,"pvacid",NULL,NULL,NULL),'%'))
        AND("tempjobrate"."filter3" IS NULL OR "tempjobrate"."filter3" LIKE "isnull"("entityratefilter"(3,NULL,"pvacid",NULL,NULL,NULL),'%')) UNION ALL
      SELECT "tempjobratemaster"."tempjobratemasterid" AS "masterid",
        "temppayband"."sortorder",
        "temppayband"."description",
        "tempjobratemaster"."Startdate" AS "StartDate",
        "tempjobratemaster"."Enddate" AS "EndDate",
        "tempjobratemaster"."Grade",
        "tempjobratemaster"."filter3",
        "isnull"("tempjobratemaster"."filter2",'Z') AS "soltd",
        "isnull"("tempjobratemaster"."filter1",'Z') AS "soawr",
        CAST("pvacid" AS CHAR(20)) AS "VacancyID",
        CAST(NULL AS CHAR(20)) AS "TempJobRateID",
        "temppayband"."TempPayBandID",
        CAST(NULL AS DOUBLE) AS "SavedPayRate",
        "tempjobratemaster"."payrate" AS "OrigPayRate",
        "OrigPayRate" AS "PayRate",
        CAST(NULL AS DOUBLE) AS "SavedChargeRate",
        "tempjobratemaster"."chargerate" AS "OrigChargeRate",
        "OrigChargeRate" AS "ChargeRate",
        "round"("chargerate"-("isnull"((SELECT "Discount" FROM "vacancy" WHERE "vacancyid" = "pvacid"),0)*"chargerate"/100),2) AS "DiscountedCharge",
        "tempjobratemaster"."extrarate1",
        "tempjobratemaster"."extrarate2",
        "tempjobratemaster"."extrarate3",
        "isnull"("temppayband"."IsExpenses",0) AS "IsExpenses"
        FROM "tempjobratemaster" KEY JOIN("tempjobtype","temppayband")
        WHERE "tempjobtype"."tempjobtypeid" = "pjobtypeid"
        AND "OverrideTempRate"("pvacid",NULL,"temppayband"."temppaybandid","tempjobratemaster"."Grade","tempjobratemaster"."filter1","tempjobratemaster"."filter2",
        "tempjobratemaster"."filter3","tempjobratemaster"."Startdate","tempjobratemaster"."Enddate") IS NULL
        AND("startdate" IS NULL OR "startdate" <= CURRENT DATE) AND("enddate" IS NULL OR "enddate" >= CURRENT DATE)
        AND("tempjobratemaster"."grade" IS NULL OR "tempjobratemaster"."grade" LIKE "isnull"("entitygrade"("pvacid",NULL,NULL,NULL),'%'))
        AND("tempjobratemaster"."filter1" IS NULL OR "tempjobratemaster"."filter1" LIKE "isnull"("entityratefilter"(1,NULL,"pvacid",NULL,NULL,NULL),'%'))
        AND("tempjobratemaster"."filter2" IS NULL OR "tempjobratemaster"."filter2" LIKE "isnull"("entityratefilter"(2,NULL,"pvacid",NULL,NULL,NULL),'%'))
        AND("tempjobratemaster"."filter3" IS NULL OR "tempjobratemaster"."filter3" LIKE "isnull"("entityratefilter"(3,NULL,"pvacid",NULL,NULL,NULL),'%'))
        AND "tempjobtype"."dynamic" = 1
        ORDER BY "IsExpenses" ASC,"startdate" ASC,"grade" ASC,"filter3" ASC,"soLtd" ASC,"soAWR" ASC,"sortorder" ASC FOR READ ONLY do
      CASE "FName"
      WHEN 'P' THEN SET "rv" = "payrate"
      WHEN 'V' THEN SET "rv" = "discountedcharge"
      WHEN 'ExtraRate1' THEN SET "rv" = "ExtraRate1"
      WHEN 'ExtraRate2' THEN SET "rv" = "ExtraRate2"
      WHEN 'ExtraRate3' THEN SET "rv" = "ExtraRate3"
      END CASE;
      RETURN "rv"
    END FOR END IF;
  RETURN "rv"
END