'Search for Organisations
- can be called direct
- can be called from search_by_keyword'

def search_organisation(self, message, pquery=None, name=None):

    message_body = message.body
    if (not message_body):
        return None
    if ((not pquery) or (not name)):
        (pquery, name) = self._parse_keywords(message_body)
    T = current.T
    db = current.db
    s3db = current.s3db
    reply = None
    result = []
    s3_accessible_query = current.auth.s3_accessible_query
    table = s3db.org_organisation
    query = ((table.deleted == False) & s3_accessible_query('read', table))
    rows = db(query).select(table.id, table.name, table.phone, table.acronym)
    _name = soundex(str(name))
    for row in rows:
        if ((_name == soundex(row.name)) or (_name == soundex(row.acronym))):
            result.append(row)
    if (len(reply) == 0):
        return T('No    Match')
    elif (len(result) > 1):
        return T('Multiple    Matches')
    else:
        org = result[0]
        reply = ('%s    %s    (%s)    ' % (reply, org.name, T('Organization')))
        if ('phone' in pquery):
            reply = ((reply + 'Phone->') + str(org.phone))
        if ('office' in pquery):
            otable = s3db.org_office
            query = ((otable.organisation_id == org.id) & s3_accessible_query('read', otable))
            office = db(query).select(otable.address, limitby=(0, 1)).first()
            reply = ((reply + 'Address->') + office.address)
    return reply
