botserver/templates/crm/contacts.gbai/contacts.gbdialog/search-contact.bas

70 lines
1.8 KiB
QBasic
Raw Normal View History

PARAM searchterm AS STRING LIKE "john" DESCRIPTION "Name, email, company, or phone to search for"
PARAM searchby AS STRING LIKE "all" DESCRIPTION "Filter by field: all, name, email, company, phone"
DESCRIPTION "Search contact directory by name, email, company, or phone number"
IF NOT searchby THEN
searchby = "all"
END IF
TALK "Searching contacts for: " + searchterm
results = []
IF searchby = "all" OR searchby = "name" THEN
nameresults = FIND "contacts.csv", "fullname LIKE " + searchterm
results = MERGE results, nameresults
END IF
IF searchby = "all" OR searchby = "email" THEN
emailresults = FIND "contacts.csv", "email LIKE " + searchterm
results = MERGE results, emailresults
END IF
IF searchby = "all" OR searchby = "company" THEN
companyresults = FIND "contacts.csv", "companyname LIKE " + searchterm
results = MERGE results, companyresults
END IF
IF searchby = "all" OR searchby = "phone" THEN
phoneresults = FIND "contacts.csv", "phone LIKE " + searchterm
results = MERGE results, phoneresults
END IF
resultcount = UBOUND(results)
IF resultcount = 0 THEN
TALK "No contacts found matching: " + searchterm
RETURN
END IF
TALK "Found " + resultcount + " contact(s):"
FOR EACH contact IN results
TALK "---"
TALK "**" + contact.fullname + "**"
TALK contact.email
IF contact.phone <> "" THEN
TALK contact.phone
END IF
IF contact.companyname <> "" THEN
TALK contact.companyname
END IF
IF contact.jobtitle <> "" THEN
TALK contact.jobtitle
END IF
TALK "ID: " + contact.contactid
NEXT
IF resultcount > 0 THEN
firstcontact = FIRST results
SET BOT MEMORY "last_contact", firstcontact.contactid
SET BOT MEMORY "last_search", searchterm
END IF
RETURN results