Example #1
0
def get_filters_cond(doctype, filters, conditions, ignore_permissions=None, with_match_conditions=False):
	if isinstance(filters, string_types):
		filters = json.loads(filters)

	if filters:
		flt = filters
		if isinstance(filters, dict):
			filters = filters.items()
			flt = []
			for f in filters:
				if isinstance(f[1], string_types) and f[1][0] == '!':
					flt.append([doctype, f[0], '!=', f[1][1:]])
				elif isinstance(f[1], (list, tuple)) and \
					f[1][0] in (">", "<", ">=", "<=", "!=", "like", "not like", "in", "not in", "between"):

					flt.append([doctype, f[0], f[1][0], f[1][1]])
				else:
					flt.append([doctype, f[0], '=', f[1]])

		query = DatabaseQuery(doctype)
		query.filters = flt
		query.conditions = conditions

		if with_match_conditions:
			query.build_match_conditions()

		query.build_filter_conditions(flt, conditions, ignore_permissions)

		cond = ' and ' + ' and '.join(query.conditions)
	else:
		cond = ''
	return cond
Example #2
0
def get_filters_cond(doctype, filters, conditions, ignore_permissions=None, with_match_conditions=False):
	if isinstance(filters, basestring):
		filters = json.loads(filters)

	if filters:
		flt = filters
		if isinstance(filters, dict):
			filters = filters.items()
			flt = []
			for f in filters:
				if isinstance(f[1], basestring) and f[1][0] == '!':
					flt.append([doctype, f[0], '!=', f[1][1:]])
				else:
					flt.append([doctype, f[0], '=', f[1]])

		query = DatabaseQuery(doctype)
		query.filters = flt
		query.conditions = conditions

		if with_match_conditions:
			query.build_match_conditions()

		query.build_filter_conditions(flt, conditions, ignore_permissions)

		cond = ' and ' + ' and '.join(query.conditions)
	else:
		cond = ''
	return cond
Example #3
0
def get_filters_cond(doctype, filters, conditions, ignore_permissions=None, with_match_conditions=False):
	if isinstance(filters, string_types):
		filters = json.loads(filters)

	if filters:
		flt = filters
		if isinstance(filters, dict):
			filters = filters.items()
			flt = []
			for f in filters:
				if isinstance(f[1], string_types) and f[1][0] == '!':
					flt.append([doctype, f[0], '!=', f[1][1:]])
				elif isinstance(f[1], (list, tuple)) and \
					f[1][0] in (">", "<", ">=", "<=", "like", "not like", "in", "not in", "between"):

					flt.append([doctype, f[0], f[1][0], f[1][1]])
				else:
					flt.append([doctype, f[0], '=', f[1]])

		query = DatabaseQuery(doctype)
		query.filters = flt
		query.conditions = conditions

		if with_match_conditions:
			query.build_match_conditions()

		query.build_filter_conditions(flt, conditions, ignore_permissions)

		cond = ' and ' + ' and '.join(query.conditions)
	else:
		cond = ''
	return cond
Example #4
0
def get_filters_cond(doctype, filters, conditions):
    if filters:
        if isinstance(filters, dict):
            filters = filters.items()
            flt = []
            for f in filters:
                if isinstance(f[1], basestring) and f[1][0] == '!':
                    flt.append([doctype, f[0], '!=', f[1][1:]])
                else:
                    flt.append([doctype, f[0], '=', f[1]])

        query = DatabaseQuery(doctype)
        query.filters = flt
        query.conditions = conditions
        query.build_filter_conditions(flt, conditions)

        cond = ' and ' + ' and '.join(query.conditions)
    else:
        cond = ''
    return cond
Example #5
0
def get_filters_cond(doctype, filters, conditions):
	if filters:
		if isinstance(filters, dict):
			filters = filters.items()
			flt = []
			for f in filters:
				if isinstance(f[1], basestring) and f[1][0] == '!':
					flt.append([doctype, f[0], '!=', f[1][1:]])
				else:
					flt.append([doctype, f[0], '=', f[1]])

		query = DatabaseQuery(doctype)
		query.filters = flt
		query.conditions = conditions
		query.build_filter_conditions(flt, conditions)

		cond = ' and ' + ' and '.join(query.conditions)
	else:
		cond = ''
	return cond
Example #6
0
def get_filters_cond(doctype, filters, conditions):
    if filters:
        flt = filters
        if isinstance(filters, dict):
            filters = filters.items()
            flt = []
            for f in filters:
                if isinstance(f[1], basestring) and f[1][0] == "!":
                    flt.append([doctype, f[0], "!=", f[1][1:]])
                else:
                    flt.append([doctype, f[0], "=", f[1]])

        query = DatabaseQuery(doctype)
        query.filters = flt
        query.conditions = conditions
        query.build_filter_conditions(flt, conditions)

        cond = " and " + " and ".join(query.conditions)
    else:
        cond = ""
    return cond
Example #7
0
def get_filters_cond(doctype, filters, conditions, ignore_permissions=None):
    if filters:
        flt = filters
        if isinstance(filters, dict):
            filters = filters.items()
            flt = []
            for f in filters:
                if isinstance(f[1], basestring) and f[1][0] == '!':
                    flt.append([doctype, f[0], '!=', f[1][1:]])
                else:
                    value = frappe.db.escape(f[1]) if isinstance(
                        f[1], basestring) else f[1]
                    flt.append([doctype, f[0], '=', value])

        query = DatabaseQuery(doctype)
        query.filters = flt
        query.conditions = conditions
        query.build_filter_conditions(flt, conditions, ignore_permissions)

        cond = ' and ' + ' and '.join(query.conditions)
    else:
        cond = ''
    return cond