bottemplates/crm/contacts.gbai/contacts.gbdialog/search-contact.bas

70 lines
1.8 KiB
QBasic
Raw Normal View History

2025-12-15 16:33:32 -03:00
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