def get_issue_list(doctype, txt, filters, limit_start, limit_page_length=20, order_by=None): from frappe.www.list import get_list user = frappe.session.user contact = frappe.db.get_value('Contact', {'user': user}, 'name') customer = None if contact: contact_doc = frappe.get_doc('Contact', contact) customer = contact_doc.get_link_for('Customer') ignore_permissions = False if is_website_user(): if not filters: filters = [] filters.append(("Issue", "customer", "=", customer)) if customer else filters.append( ("Issue", "raised_by", "=", user)) ignore_permissions = True return get_list(doctype, txt, filters, limit_start, limit_page_length, ignore_permissions=ignore_permissions)
def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_page_length=20): from frappe.templates.pages.list import get_list user = frappe.session.user key = None if not filters: filters = [] filters.append((doctype, "docstatus", "=", 1)) if user != "Guest" and is_website_user(): parties_doctype = 'RFQ Supplier' if doctype == 'Request for Quotation' else doctype # find party for this contact customers, suppliers = get_customers_suppliers(parties_doctype, user) key, parties = get_party_details(customers, suppliers) if doctype == 'Request for Quotation': if key == 'customer': frappe.throw(_("Not Permitted"), frappe.PermissionError) return rfq_transaction_list(parties_doctype, doctype, parties, limit_start, limit_page_length) filters.append((doctype, key, "in", parties)) if key: return post_process(doctype, get_list(doctype, txt, filters=filters, fields = "name", limit_start=limit_start, limit_page_length=limit_page_length, ignore_permissions=True, order_by = "modified desc")) else: return [] return post_process(doctype, get_list(doctype, txt, filters, limit_start, limit_page_length, fields="name", order_by = "modified desc"))
def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_page_length=20, order_by="modified", custom=False): user = frappe.session.user ignore_permissions = False if not filters: filters = [] if doctype in ['Supplier Quotation', 'Purchase Invoice']: filters.append((doctype, 'docstatus', '<', 2)) else: filters.append((doctype, 'docstatus', '=', 1)) if (user != 'Guest' and is_website_user()) or doctype == 'Request for Quotation': parties_doctype = 'Request for Quotation Supplier' if doctype == 'Request for Quotation' else doctype # find party for this contact customers, suppliers = get_customers_suppliers(parties_doctype, user) if customers: if doctype == 'Quotation': filters.append(('quotation_to', '=', 'Customer')) filters.append(('party_name', 'in', customers)) else: filters.append(('customer', 'in', customers)) elif suppliers: filters.append(('supplier', 'in', suppliers)) elif not custom: return [] if doctype == 'Request for Quotation': parties = customers or suppliers return rfq_transaction_list(parties_doctype, doctype, parties, limit_start, limit_page_length) # Since customers and supplier do not have direct access to internal doctypes ignore_permissions = True if not customers and not suppliers and custom: ignore_permissions = False filters = [] transactions = get_list_for_transactions( doctype, txt, filters, limit_start, limit_page_length, fields='name', ignore_permissions=ignore_permissions, order_by='modified desc') if custom: return transactions return post_process(doctype, transactions)
def get_bookings_list(doctype, txt, filters, limit_start, limit_page_length=20, order_by=None): from frappe.www.list import get_list user = frappe.session.user contact = frappe.db.get_value('Contact', {'user': user}, 'name') customer = None if contact: contact_doc = frappe.get_doc('Contact', contact) customer = contact_doc.get_link_for('Customer') if is_website_user(): if not filters: filters = [] or_filters = [] or_filters.append({"user": user, "party_name": customer}) return get_list(doctype, txt, filters, limit_start, limit_page_length, ignore_permissions=False, or_filters=or_filters)
def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_page_length=20): from frappe.templates.pages.list import get_list user = frappe.session.user if user != "Guest" and is_website_user(): # find party for this contact customers, suppliers = get_customers_suppliers(doctype, user) if customers: return post_process( get_list(doctype, txt, filters=[(doctype, "customer", "in", customers)], limit_start=limit_start, limit_page_length=limit_page_length, ignore_permissions=True)) elif suppliers: return post_process( get_list(doctype, txt, filters=[(doctype, "supplier", "in", suppliers)], limit_start=limit_start, limit_page_length=limit_page_length, ignore_permissions=True)) else: return [] return post_process( get_list(doctype, txt, filters, limit_start, limit_page_length))
def get_issue_list(doctype, txt, filters, limit_start, limit_page_length=20, order_by=None): from frappe.www.list import get_list user = frappe.session.user contact = frappe.db.get_value("Contact", {"user": user}, "name") customer = None if contact: contact_doc = frappe.get_doc("Contact", contact) customer = contact_doc.get_link_for("Customer") ignore_permissions = False if is_website_user(): if not filters: filters = {} if customer: filters["customer"] = customer else: filters["raised_by"] = user ignore_permissions = True return get_list(doctype, txt, filters, limit_start, limit_page_length, ignore_permissions=ignore_permissions)
def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_page_length=20): from frappe.templates.pages.list import get_list user = frappe.session.user key = None if not filters: filters = [] filters.append((doctype, "docstatus", "=", 1)) if user != "Guest" and is_website_user(): parties_doctype = 'Request for Quotation Supplier' if doctype == 'Request for Quotation' else doctype # find party for this contact customers, suppliers = get_customers_suppliers(parties_doctype, user) if not customers and not suppliers: return [] key, parties = get_party_details(customers, suppliers) if doctype == 'Request for Quotation': return rfq_transaction_list(parties_doctype, doctype, parties, limit_start, limit_page_length) filters.append((doctype, key, "in", parties)) if key: return post_process(doctype, get_list(doctype, txt, filters=filters, fields = "name", limit_start=limit_start, limit_page_length=limit_page_length, ignore_permissions=True, order_by = "modified desc")) else: return [] return post_process(doctype, get_list(doctype, txt, filters, limit_start, limit_page_length, fields="name", order_by = "modified desc"))
def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_page_length=20): from frappe.templates.pages.list import get_list user = frappe.session.user key = None if not filters: filters = [] filters.append((doctype, "docstatus", "=", 1)) if user != "Guest" and is_website_user(): # find party for this contact customers, suppliers = get_customers_suppliers(doctype, user) if customers: key, parties = "customer", customers elif suppliers: key, parties = "supplier", suppliers else: key, parties = "customer", [] filters.append((doctype, key, "in", parties)) if key: return post_process(doctype, get_list(doctype, txt, filters=filters, fields = "name", limit_start=limit_start, limit_page_length=limit_page_length, ignore_permissions=True, order_by = "modified desc")) else: return [] return post_process(doctype, get_list(doctype, txt, filters, limit_start, limit_page_length, fields="name", order_by = "modified desc"))
def get_address_list(doctype, txt, filters, limit_start, limit_page_length = 20, order_by = None): from frappe.www.list import get_list user = frappe.session.user ignore_permissions = False if is_website_user(): if not filters: filters = [] add_name = [] contact = frappe.db.sql(""" select address.name from `tabDynamic Link` as link join `tabAddress` as address on link.parent = address.name where link.parenttype = 'Address' and link_name in( select link.link_name from `tabContact` as contact join `tabDynamic Link` as link on contact.name = link.parent where contact.user = %s)""",(user)) for c in contact: add_name.append(c[0]) filters.append(("Address", "name", "in", add_name)) ignore_permissions = True return get_list(doctype, txt, filters, limit_start, limit_page_length, ignore_permissions=ignore_permissions)
def get_address_list(doctype, txt, filters, limit_start, limit_page_length=20): from frappe.www.list import get_list user = frappe.session.user ignore_permissions = False if is_website_user(): if not filters: filters = [] filters.append(("Address", "owner", "=", user)) ignore_permissions = True return get_list(doctype, txt, filters, limit_start, limit_page_length, ignore_permissions=ignore_permissions)
def get_issue_list(doctype, txt, filters, limit_start, limit_page_length=20, order_by=None): from frappe.www.list import get_list user = frappe.session.user ignore_permissions = False if is_website_user(): if not filters: filters = [] filters.append(("Issue", "raised_by", "=", user)) ignore_permissions = True return get_list(doctype, txt, filters, limit_start, limit_page_length, ignore_permissions=ignore_permissions)
def get_issue_list(doctype, txt, filters, limit_start, limit_page_length=20): from frappe.templates.pages.list import get_list user = frappe.session.user ignore_permissions = False if is_website_user(): if not filters: filters = [] filters.append(("Issue", "raised_by", "=", user)) ignore_permissions = True return get_list(doctype, txt, filters, limit_start, limit_page_length, ignore_permissions=ignore_permissions)
def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_page_length=20, order_by="modified"): user = frappe.session.user key = None if not filters: filters = [] if doctype == 'Supplier Quotation': filters.append((doctype, "docstatus", "<", 2)) else: filters.append((doctype, "docstatus", "=", 1)) if (user != "Guest" and is_website_user()) or doctype == 'Request for Quotation': parties_doctype = 'Request for Quotation Supplier' if doctype == 'Request for Quotation' else doctype # find party for this contact customers, suppliers = get_customers_suppliers(parties_doctype, user) if not customers and not suppliers: return [] key, parties = get_party_details(customers, suppliers) if doctype == 'Request for Quotation': return rfq_transaction_list(parties_doctype, doctype, parties, limit_start, limit_page_length) filters.append((doctype, key, "in", parties)) if key: return post_process( doctype, get_list_for_transactions(doctype, txt, filters=filters, fields="name", limit_start=limit_start, limit_page_length=limit_page_length, ignore_permissions=True, order_by="modified desc")) else: return [] return post_process( doctype, get_list_for_transactions(doctype, txt, filters, limit_start, limit_page_length, fields="name", order_by="modified desc"))
def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_page_length=20): from frappe.templates.pages.list import get_list user = frappe.session.user key = None if not filters: filters = [] filters.append((doctype, "docstatus", "=", 1)) if user != "Guest" and is_website_user(): # find party for this contact customers, suppliers = get_customers_suppliers(doctype, user) if customers: key, parties = "customer", customers elif suppliers: key, parties = "supplier", suppliers else: key, parties = "customer", [] filters.append((doctype, key, "in", parties)) if key: return post_process( doctype, get_list(doctype, txt, filters=filters, fields="name", limit_start=limit_start, limit_page_length=limit_page_length, ignore_permissions=True, order_by="modified desc")) else: return [] return post_process( doctype, get_list(doctype, txt, filters, limit_start, limit_page_length, fields="name", order_by="modified desc"))
def get_issue_list(doctype, txt, filters, limit_start, limit_page_length=20, order_by=None): from frappe.www.list import get_list user = frappe.session.user contact = frappe.db.get_value('Contact', {'user': user}, 'name') customer = None if contact: contact_doc = frappe.get_doc('Contact', contact) customer = contact_doc.get_link_for('Customer') ignore_permissions = False if is_website_user(): if not filters: filters = [] filters.append(("Issue", "customer", "=", customer)) if customer else filters.append(("Issue", "raised_by", "=", user)) ignore_permissions = True return get_list(doctype, txt, filters, limit_start, limit_page_length, ignore_permissions=ignore_permissions)
def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_page_length=20): from frappe.templates.pages.list import get_list user = frappe.session.user if user != "Guest" and is_website_user(user): # find party for this contact customers, suppliers = get_customers_suppliers(doctype, user) if customers: return post_process(get_list(doctype, txt, filters=[(doctype, "customer", "in", customers)], limit_start=limit_start, limit_page_length=limit_page_length, ignore_permissions=True)) elif suppliers: return post_process(get_list(doctype, txt, filters=[(doctype, "supplier", "in", suppliers)], limit_start=limit_start, limit_page_length=limit_page_length, ignore_permissions=True)) else: return [] return post_process(get_list(doctype, txt, filters, limit_start, limit_page_length))
def get_transaction_list( doctype, txt=None, filters=None, limit_start=0, limit_page_length=20, order_by="modified", custom=False, ): user = frappe.session.user ignore_permissions = False if not filters: filters = [] if doctype in ["Supplier Quotation", "Purchase Invoice"]: filters.append((doctype, "docstatus", "<", 2)) else: filters.append((doctype, "docstatus", "=", 1)) if (user != "Guest" and is_website_user()) or doctype == "Request for Quotation": parties_doctype = ("Request for Quotation Supplier" if doctype == "Request for Quotation" else doctype) # find party for this contact customers, suppliers = get_customers_suppliers(parties_doctype, user) if customers: if doctype == "Quotation": filters.append(("quotation_to", "=", "Customer")) filters.append(("party_name", "in", customers)) else: filters.append(("customer", "in", customers)) elif suppliers: filters.append(("supplier", "in", suppliers)) elif not custom: return [] if doctype == "Request for Quotation": parties = customers or suppliers return rfq_transaction_list(parties_doctype, doctype, parties, limit_start, limit_page_length) # Since customers and supplier do not have direct access to internal doctypes ignore_permissions = True if not customers and not suppliers and custom: ignore_permissions = False filters = [] transactions = get_list_for_transactions( doctype, txt, filters, limit_start, limit_page_length, fields="name", ignore_permissions=ignore_permissions, order_by="modified desc", ) if custom: return transactions return post_process(doctype, transactions)