CREATE or REPLACE FUNCTION getcallerinfo(integer, varchar) RETURNS VARCHAR AS '
   DECLARE
     _id VARCHAR;
     _name VARCHAR;
     _contacttypeid VARCHAR;
     _contacttype VARCHAR;
     _contact1 VARCHAR;
     _contact2 VARCHAR;
     _contact3 VARCHAR;
     _customerid VARCHAR;
     _address VARCHAR;
     _zipcode VARCHAR;
     _city VARCHAR;
     _country VARCHAR;
     _field1 VARCHAR;
     _field2 VARCHAR;
     _field3 VARCHAR;
     _field4 VARCHAR;
     _field5 VARCHAR;
   BEGIN
     select into _id, _name, _contacttypeid, _contacttype, _address, _zipcode, _city, _country, _customerid,
                _contact1, _contact2, _contact3, _field1, _field2, _field3, _field4, _field5
                fastdial_contact.id, fastdial_contact.name, fastdial_contact.contacttype, contacttype.name, address, zipcode, city, country,
                customerid, contact1, contact2, contact3, field1, field2, field3, field4, field5
                from  fastdial_contact
                left join contacttype on contacttype.id = fastdial_contact.contacttype
                left join contact on contact.id = fastdial_contact.contact
                where contact.company = $1 and
             /*   where fastdial_contact.company = $1 and */
                (number = $2 OR $2 like number OR  number = (''00'' || $2) OR (''00'' || $2) like number)
                order by number desc limit 1;
     IF FOUND THEN
      return _id || ''#'' || _name || ''#'' || _contacttypeid || ''#'' || _contacttype || ''#''|| _address || ''#'' || _zipcode || ''#'' ||
             _city || ''#'' || _country || ''#'' || _customerid || ''#'' ||
             _contact1  || ''#'' || _contact2  || ''#'' || _contact3  || ''#'' ||
             _field1 || ''#'' || _field2 || ''#'' || _field3 || ''#'' || _field4 || ''#'' || _field5 || ''#'';
     END IF;

     select into _id, _name, _contacttypeid, _contacttype, _address, _zipcode, _city, _country, _customerid,
                 _contact1, _contact2, _contact3, _field1, _field2, _field3, _field4, _field5
                 fastdial_company.id, fastdial_company.name, fastdial_company.contacttype, contacttype.name, address, zipcode, city, country, customerid,
                 contact1, contact2, contact3, field1, field2, field3, field4, field5
       from  fastdial_company
             left join contacttype on contacttype.id = fastdial_company.contacttype
 where fastdial_company.company = $1 and
             (number = $2 OR $2 like number OR  number = (''00'' || $2) OR (''00'' || $2) like number)
       order by number desc limit 1;
     IF NOT FOUND THEN
       return ''###############'';
     END IF;
     return _id || ''#'' || _name || ''#'' || _contacttypeid || ''#'' || _contacttype || ''#''|| _address || ''#'' || _zipcode || ''#'' ||
            _city || ''#'' || _country || ''#'' || _customerid || ''#'' ||
            _contact1  || ''#'' || _contact2  || ''#'' || _contact3  || ''#'' ||
            _field1 || ''#'' || _field2 || ''#'' || _field3 || ''#'' || _field4 || ''#'' || _field5 || ''#'';
   END;
' LANGUAGE plpgsql;

