DROP FUNCTION operatorext(integer);

-- get operator extension number.
-- getoperatorext(companyid, function, lookupid)
CREATE or REPLACE FUNCTION  getoperatorext(integer, varchar, integer) RETURNS varchar AS '
   DECLARE
       ext varchar;
       phoneline_id integer;
       department_id integer;
   BEGIN
       phoneline_id = 1;
       IF $2 = ''contact''
       THEN
           SELECT INTO department_id department FROM contact_department WHERE contact = $3 limit 1;
       END IF;
       IF $2 = ''queue''
       THEN
           SELECT INTO department_id department FROM queue WHERE id = $3 limit 1;
       END IF;
       -- RAISE NOTICE ''department id = %'', department_id;

       IF department_id > 1
       THEN
           SELECT INTO phoneline_id receptionist from department where id = department_id;
       END IF;

       IF phoneline_id = 1
       THEN
           SELECT INTO phoneline_id receptionist from company where id = $1;
       END IF;
       -- RAISE NOTICE ''phoneline id = %'', phoneline_id;

       IF phoneline_id > 1
       THEN
           SELECT INTO ext extension FROM phoneline WHERE id = phoneline_id;
       END IF;
       return ext;
   END;
' LANGUAGE plpgsql;

