def get_children(doctype, parent, company, is_root=False): from erpnext.accounts.report.financial_statements import sort_accounts parent_fieldname = 'parent_' + doctype.lower().replace(' ', '_') fields = [ 'name as value', 'is_group as expandable' ] filters = [['docstatus', '<', 2]] filters.append(['ifnull(`{0}`,"")'.format(parent_fieldname), '=', '' if is_root else parent]) if is_root: fields += ['root_type', 'report_type', 'account_currency'] if doctype == 'Account' else [] filters.append(['company', '=', company]) else: fields += ['root_type', 'account_currency'] if doctype == 'Account' else [] fields += [parent_fieldname + ' as parent'] acc = frappe.get_list(doctype, fields=fields, filters=filters) if doctype == 'Account': sort_accounts(acc, is_root, key="value") company_currency = frappe.get_cached_value('Company', company, "default_currency") for each in acc: each["company_currency"] = company_currency each["balance"] = flt(get_balance_on(each.get("value"), in_account_currency=False, company=company)) if each.account_currency != company_currency: each["balance_in_account_currency"] = flt(get_balance_on(each.get("value"), company=company)) return acc
def get_children(doctype, parent, company, is_root=False): from erpnext.accounts.report.financial_statements import sort_accounts parent_fieldname = 'parent_' + doctype.lower().replace(' ', '_') fields = [ 'name as value', 'is_group as expandable' ] filters = [['docstatus', '<', 2]] filters.append(['ifnull(`{0}`,"")'.format(parent_fieldname), '=', '' if is_root else parent]) if is_root: fields += ['root_type', 'report_type', 'account_currency'] if doctype == 'Account' else [] filters.append(['company', '=', company]) else: fields += ['root_type', 'account_currency'] if doctype == 'Account' else [] fields += [parent_fieldname + ' as parent'] acc = frappe.get_list(doctype, fields=fields, filters=filters) if doctype == 'Account': sort_accounts(acc, is_root, key="value") return acc
def get_children(doctype, parent, company, is_root=False): from erpnext.accounts.report.financial_statements import sort_accounts parent_fieldname = 'parent_' + doctype.lower().replace(' ', '_') fields = [ 'name as value', 'is_group as expandable' ] filters = [['docstatus', '<', 2]] filters.append(['ifnull(`{0}`,"")'.format(parent_fieldname), '=', '' if is_root else parent]) if is_root: fields += ['root_type', 'report_type', 'account_currency'] if doctype == 'Account' else [] filters.append(['company', '=', company]) else: fields += ['account_currency'] if doctype == 'Account' else [] fields += [parent_fieldname + ' as parent'] acc = frappe.get_list(doctype, fields=fields, filters=filters) if doctype == 'Account': sort_accounts(acc, is_root, key="value") company_currency = frappe.get_cached_value('Company', company, "default_currency") for each in acc: each["company_currency"] = company_currency each["balance"] = flt(get_balance_on(each.get("value"), in_account_currency=False)) if each.account_currency != company_currency: each["balance_in_account_currency"] = flt(get_balance_on(each.get("value"))) return acc
def add_to_list(parent, level): if level < depth: children = parent_children_map.get(parent) or [] sort_accounts(children, is_root=True if parent==None else False) for child in children: child.indent = level filtered_accounts.append(child) add_to_list(child.name, level + 1)
def add_to_list(parent, level): if level < depth: children = parent_children_map.get(parent) or [] sort_accounts(children, is_root=True if parent==None else False) for child in children: child.indent = level filtered_accounts.append(child) add_to_list(child.name, level + 1)
def get_children(doctype, parent, company, is_root=False): from erpnext.accounts.report.financial_statements import sort_accounts fieldname = frappe.db.escape(doctype.lower().replace(' ','_')) doctype = frappe.db.escape(doctype) # root if is_root: fields = ", root_type, report_type, account_currency" if doctype=="Account" else "" acc = frappe.db.sql(""" select name as value, is_group as expandable {fields} from `tab{doctype}` where ifnull(`parent_{fieldname}`,'') = '' and `company` = %s and docstatus<2 order by name""".format(fields=fields, fieldname = fieldname, doctype=doctype), company, as_dict=1) else: # other fields = ", account_currency" if doctype=="Account" else "" acc = frappe.db.sql("""select name as value, is_group as expandable, parent_{fieldname} as parent {fields} from `tab{doctype}` where ifnull(`parent_{fieldname}`,'') = %s and docstatus<2 order by name""".format(fields=fields, fieldname=fieldname, doctype=doctype), parent, as_dict=1) if doctype == 'Account': sort_accounts(acc, is_root, key="value") company_currency = frappe.db.get_value("Company", company, "default_currency") for each in acc: each["company_currency"] = company_currency each["balance"] = flt(get_balance_on(each.get("value"), in_account_currency=False)) if each.account_currency != company_currency: each["balance_in_account_currency"] = flt(get_balance_on(each.get("value"))) return acc
def get_children(doctype, parent, company, is_root=False): from erpnext.accounts.report.financial_statements import sort_accounts parent_fieldname = "parent_" + doctype.lower().replace(" ", "_") fields = ["name as value", "is_group as expandable"] filters = [["docstatus", "<", 2]] filters.append(['ifnull(`{0}`,"")'.format(parent_fieldname), "=", "" if is_root else parent]) if is_root: fields += ["root_type", "report_type", "account_currency"] if doctype == "Account" else [] filters.append(["company", "=", company]) else: fields += ["root_type", "account_currency"] if doctype == "Account" else [] fields += [parent_fieldname + " as parent"] acc = frappe.get_list(doctype, fields=fields, filters=filters) if doctype == "Account": sort_accounts(acc, is_root, key="value") return acc