pears.NetReportShiftHours

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

CREATE PROCEDURE "pears"."NetReportShiftHours"( IN "pWebUserID" CHAR(20),IN "From__D" CHAR(20),IN "To__D" CHAR(20) ) 
RESULT( "Title__Hr" CHAR(100),"Job__1S" CHAR(100),"Shift__2S" CHAR(100),"Hours__RMT" DOUBLE ) 
BEGIN
  DECLARE "pstart" DATE;
  DECLARE "pend" DATE;
  DECLARE "rTitle" CHAR(100);
  DECLARE LOCAL TEMPORARY TABLE "Cos"(
    "CompanyID" CHAR(20) NULL,
    "xDate" DATE NULL,
    ) NOT transactional;
  SET "pstart" = "iqxnetstringtodate"("From__D");
  SET "pend" = "iqxnetstringtodate"("To__D");
  SET "rTitle" = "dateformat"("pstart",'dd/mm/yyyy')+' - '+"dateformat"("pend",'dd/mm/yyyy');
  -- Get all the Companies the WebUser is Associated with
  INSERT INTO "Cos"( "CompanyID" ) 
    SELECT DISTINCT "companyid" FROM "employment" KEY JOIN "iqxnetuserlink" WHERE "iqxnetuserid" = "pWebUserID";
  UPDATE "Cos" SET "xDate" = "IQXNetCompanyStartDate"("companyid");
  SELECT "rTitle",
    "p"."description" AS "ShiftDesc",
    "string"(CASE "dow"("s"."shiftdate") WHEN 1 THEN 'Sunday ' WHEN 7 THEN 'Saturday '
    ELSE 'Weekday '
    END,"st"."description") AS "ShiftType",
    "sum"("getshiftlength"("s"."timefrom","s"."timeto","s"."breakminutes")) AS "ShiftHours"
    FROM "tempshift" AS "s" KEY JOIN "tempshiftplan" AS "p" KEY LEFT OUTER JOIN "tempshifttype" AS "st"
      ,"tempshiftplan" AS "p" KEY JOIN "vacancy" KEY JOIN "employment" JOIN "cos" ON "employment"."companyid" = "cos"."companyid"
    WHERE "s"."state" <> 'C' AND "s"."shiftdate" BETWEEN "pstart" AND "pend" AND "s"."shiftdate" >= "cos"."xDate"
    GROUP BY GROUPING sets((),("ShiftDesc"),("ShiftType"),(("ShiftDesc"),("ShiftType"),"rTitle"))
END
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetReportShiftHours" IS 
{CREATE PROCEDURE pears."NetReportShiftHours"(IN pWebUserID CHAR(20),IN From__D CHAR(20),IN To__D CHAR(20))
RESULT(Title__Hr CHAR(100),Job__1S CHAR(100),Shift__2S CHAR(100),Hours__RMT DOUBLE)
BEGIN
  DECLARE pstart DATE;
  DECLARE pend DATE;
  DECLARE rTitle CHAR(100);
  DECLARE LOCAL TEMPORARY TABLE Cos(
    CompanyID CHAR(20) NULL,
    xDate DATE NULL,
    ) NOT transactional;
  SET pstart=iqxnetstringtodate(From__D);
  SET pend=iqxnetstringtodate(To__D);
  SET rTitle=dateformat(pstart,'dd/mm/yyyy')+' - '+dateformat(pend,'dd/mm/yyyy');
  -- Get all the Companies the WebUser is Associated with
  INSERT INTO Cos( CompanyID) 
    SELECT DISTINCT companyid FROM employment KEY JOIN iqxnetuserlink WHERE iqxnetuserid = pWebUserID;
  UPDATE Cos SET xDate = IQXNetCompanyStartDate(companyid);
  SELECT rTitle,
    p.description AS ShiftDesc,
    string(CASE dow(s.shiftdate) WHEN 1 THEN 'Sunday ' WHEN 7 THEN 'Saturday '
    ELSE 'Weekday '
    END,st.description) AS ShiftType,
    SUM(getshiftlength(s.timefrom,s.timeto,s.breakminutes)) AS ShiftHours
    FROM tempshift AS s KEY JOIN tempshiftplan AS p KEY LEFT OUTER JOIN tempshifttype AS st
    ,tempshiftplan AS p KEY JOIN vacancy KEY JOIN employment JOIN cos ON employment.companyid = cos.companyid
    WHERE s.state <> 'C' AND s.shiftdate BETWEEN pstart AND pend AND s.shiftdate >= cos.xDate
    GROUP BY GROUPING sets((),(ShiftDesc),(ShiftType),(ShiftDesc,ShiftType,rTitle))
END
}
  • database/procedures/pears_netreportshifthours.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1