96 lines
1.8 KiB
Python
96 lines
1.8 KiB
Python
import frappe
|
|
|
|
|
|
@frappe.whitelist()
|
|
def get_users():
|
|
users = frappe.qb.get_query(
|
|
"User",
|
|
fields=[
|
|
"name",
|
|
"email",
|
|
"enabled",
|
|
"user_image",
|
|
"first_name",
|
|
"last_name",
|
|
"full_name",
|
|
"user_type",
|
|
],
|
|
order_by="full_name asc",
|
|
distinct=True,
|
|
).run(as_dict=1)
|
|
|
|
for user in users:
|
|
if frappe.session.user == user.name:
|
|
user.session_user = True
|
|
|
|
user.is_manager = "Sales Manager" in frappe.get_roles(user.name) or user.name == "Administrator"
|
|
|
|
user.is_agent = frappe.db.exists("CRM Telephony Agent", {"user": user.name})
|
|
|
|
return users
|
|
|
|
|
|
@frappe.whitelist()
|
|
def get_contacts():
|
|
contacts = frappe.get_all(
|
|
"Contact",
|
|
fields=[
|
|
"name",
|
|
"salutation",
|
|
"first_name",
|
|
"last_name",
|
|
"full_name",
|
|
"gender",
|
|
"address",
|
|
"designation",
|
|
"image",
|
|
"email_id",
|
|
"mobile_no",
|
|
"phone",
|
|
"company_name",
|
|
"modified",
|
|
],
|
|
order_by="first_name asc",
|
|
distinct=True,
|
|
)
|
|
|
|
for contact in contacts:
|
|
contact["email_ids"] = frappe.get_all(
|
|
"Contact Email",
|
|
filters={"parenttype": "Contact", "parent": contact.name},
|
|
fields=["name", "email_id", "is_primary"],
|
|
)
|
|
|
|
contact["phone_nos"] = frappe.get_all(
|
|
"Contact Phone",
|
|
filters={"parenttype": "Contact", "parent": contact.name},
|
|
fields=["name", "phone", "is_primary_phone", "is_primary_mobile_no"],
|
|
)
|
|
|
|
return contacts
|
|
|
|
|
|
@frappe.whitelist()
|
|
def get_lead_contacts():
|
|
lead_contacts = frappe.get_all(
|
|
"CRM Lead",
|
|
fields=["name", "lead_name", "mobile_no", "phone", "image", "modified"],
|
|
filters={"converted": 0},
|
|
order_by="lead_name asc",
|
|
distinct=True,
|
|
)
|
|
|
|
return lead_contacts
|
|
|
|
|
|
@frappe.whitelist()
|
|
def get_organizations():
|
|
organizations = frappe.qb.get_query(
|
|
"CRM Organization",
|
|
fields=["*"],
|
|
order_by="name asc",
|
|
distinct=True,
|
|
).run(as_dict=1)
|
|
|
|
return organizations
|