コード例 #1
0
def get_value(doctype,
              fieldname,
              filters=None,
              as_dict=True,
              debug=False,
              parent=None):
    """Returns a value form a document

	:param doctype: DocType to be queried
	:param fieldname: Field to be returned (default `name`)
	:param filters: dict or string for identifying the record"""
    if frappe.is_table(doctype):
        check_parent_permission(parent, doctype)

    if not frappe.has_permission(doctype):
        frappe.throw(
            _("No permission for {0}").format(doctype), frappe.PermissionError)

    filters = get_safe_filters(filters)
    if isinstance(filters, string_types):
        filters = {"name": filters}

    try:
        fields = frappe.parse_json(fieldname)
    except (TypeError, ValueError):
        # name passed, not json
        fields = [fieldname]

    # check whether the used filters were really parseable and usable
    # and did not just result in an empty string or dict
    if not filters:
        filters = None

    if frappe.get_meta(doctype).issingle:
        value = frappe.db.get_values_from_single(fields,
                                                 filters,
                                                 doctype,
                                                 as_dict=as_dict,
                                                 debug=debug)
    else:
        value = get_list(
            doctype,
            filters=filters,
            fields=fields,
            debug=debug,
            limit_page_length=1,
            parent=parent,
            as_dict=as_dict,
        )

    if as_dict:
        return value[0] if value else {}

    if not value:
        return

    return value[0] if len(fields) > 1 else value[0][0]
コード例 #2
0
ファイル: client.py プロジェクト: jryandechavez/erpnext12
def get_value(doctype,
              fieldname,
              filters=None,
              as_dict=True,
              debug=False,
              parent=None):
    '''Returns a value form a document

	:param doctype: DocType to be queried
	:param fieldname: Field to be returned (default `name`)
	:param filters: dict or string for identifying the record'''
    if frappe.is_table(doctype):
        check_parent_permission(parent, doctype)

    if not frappe.has_permission(doctype):
        frappe.throw(_("No permission for {0}".format(doctype)),
                     frappe.PermissionError)

    filters = get_safe_filters(filters)

    try:
        fieldname = json.loads(fieldname)
    except (TypeError, ValueError):
        # name passed, not json
        pass

    # check whether the used filters were really parseable and usable
    # and did not just result in an empty string or dict
    if not filters:
        filters = None

    return frappe.db.get_value(doctype,
                               filters,
                               fieldname,
                               as_dict=as_dict,
                               debug=debug)
コード例 #3
0
ファイル: client.py プロジェクト: jryandechavez/erpnext12
def get_count(doctype, filters=None, debug=False, cache=False):
    return frappe.db.count(doctype, get_safe_filters(filters), debug, cache)