-- retrieve the callerid for a given user/phoneline/department/company combination
CREATE or REPLACE FUNCTION  calleridnum(varchar,integer,integer,integer) RETURNS varchar AS '
   DECLARE
       cid varchar;
       cidn varchar;
       id_phoneline ALIAS for $1;
       id_contact ALIAS for $2;
       id_department ALIAS for $3;
       id_company ALIAS for $4;
   BEGIN
       SELECT INTO cid, cidn cidnum, cidname from phoneline         where extension = id_phoneline and company = id_company and status <> ''deleted'';
       IF cid <> '''' THEN
          RETURN cid || ''#'' || cidn;
       END IF;
       SELECT INTO cid, cidn cidnum, cidname from contact where id = id_contact;
       IF cid <> '''' THEN
          RETURN cid || ''#'' || cidn;
       END IF;
       SELECT INTO cid, cidn cidnum, cidname from department where id = id_department;
       IF cid <> '''' THEN
          RETURN cid || ''#'' || cidn;
       END IF;
       SELECT INTO cid, cidn cidnum, cidname from company where id = id_company;
       IF cid <> '''' THEN
          RETURN cid || ''#'' || cidn;
       END IF;
       return '''';
   END;
' LANGUAGE plpgsql;
