====== pears.GetPersonAvailPercentage ====== Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace. ===== Original SQL ===== 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 }