pears.GetPersonAvailPercentage

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

COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."GetPersonAvailPercentage" IS 
{CREATE FUNCTION GetPersonAvailPercentage 
 
/* Application Maintained Function / Procedure - DO NOT EDIT*/
 
(IN sid CHAR(20),IN frdate DATE,IN todate DATE)
RETURNS DOUBLE
BEGIN
  DECLARE rv DOUBLE;
  DECLARE bonly SMALLINT;
  DECLARE cavail CHAR(1);
  DECLARE ndays DOUBLE;
  DECLARE navail DOUBLE;
  SET rv=0;
  IF frdate IS NULL THEN
    RETURN NULL
  END IF;
  IF todate IS NULL THEN
    SET todate=dateadd(DAY,30,frdate)
  END IF;
  IF frdate > todate THEN
    RETURN 100
  END IF;
  SET ndays=0;
  SET navail=0;
  SELECT FIRST onlymatchifknownavailable INTO bonly FROM person WHERE personid = sid;
  SET bonly=isnull(bonly,0);
  while frdate <= todate loop
    SET ndays=ndays+1;
    SELECT FIRST getpersonavailstate(sid,frdate) INTO cavail;
    IF cavail = 'A' OR(cavail IS NULL AND bonly = 0) THEN
      SET navail=navail+1
    END IF;
    SET frdate=dateadd(DAY,1,frdate)
  END loop;
  RETURN(navail/ndays)*100
END
}
  • database/procedures/pears_getpersonavailpercentage.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1