Пример #1
0
def get_data(filters):
	accounts = frappe.db.sql("""select name, parent_account, account_name, root_type, report_type, lft, rgt
		from `tabAccount` where company=%s order by lft""", filters.company, as_dict=True)
	company_currency = erpnext.get_company_currency(filters.company)

	if not accounts:
		return None

	accounts, accounts_by_name, parent_children_map = filter_accounts(accounts)

	min_lft, max_rgt = frappe.db.sql("""select min(lft), max(rgt) from `tabAccount`
		where company=%s""", (filters.company,))[0]

	gl_entries_by_account = {}

	set_gl_entries_by_account(filters.company, filters.from_date,
		filters.to_date, min_lft, max_rgt, filters, gl_entries_by_account, ignore_closing_entries=not flt(filters.with_period_closing_entry))

	opening_balances = get_opening_balances(filters)

	total_row = calculate_values(accounts, gl_entries_by_account, opening_balances, filters, company_currency)
	accumulate_values_into_parents(accounts, accounts_by_name)

	data = prepare_data(accounts, filters, total_row, parent_children_map, company_currency)
	data = filter_out_zero_value_rows(data, parent_children_map, 
		show_zero_values=filters.get("show_zero_values"))
		
	return data
Пример #2
0
def get_data(filters):
	accounts = frappe.db.sql("""select name, parent_account, account_name, root_type, report_type, lft, rgt
		from `tabAccount` where company=%s order by lft""", filters.company, as_dict=True)

	if not accounts:
		return None

	accounts, accounts_by_name, parent_children_map = filter_accounts(accounts)

	min_lft, max_rgt = frappe.db.sql("""select min(lft), max(rgt) from `tabAccount`
		where company=%s""", (filters.company,))[0]

	gl_entries_by_account = {}

	set_gl_entries_by_account(filters.company, filters.from_date,
		filters.to_date, min_lft, max_rgt, filters, gl_entries_by_account, ignore_closing_entries=not flt(filters.with_period_closing_entry))

	opening_balances = get_opening_balances(filters)

	total_row = calculate_values(accounts, gl_entries_by_account, opening_balances, filters)
	accumulate_values_into_parents(accounts, accounts_by_name)

	data = prepare_data(accounts, filters, total_row, parent_children_map)
	data = filter_out_zero_value_rows(data, parent_children_map, 
		show_zero_values=filters.get("show_zero_values"))
		
	return data
def get_data(company,
             root_type,
             balance_must_be,
             period_list,
             grouper,
             filters=None,
             accumulated_values=1,
             only_current_fiscal_year=True,
             ignore_closing_entries=False,
             ignore_accumulated_values_for_fy=False,
             total=True):
    accounts = get_accounts(company, root_type)

    if not accounts:
        return None

    accounts, accounts_by_name, parent_children_map = filter_accounts(accounts)

    company_currency = get_appropriate_currency(company, filters)

    gl_entries_by_account = {}

    for root in frappe.db.sql("""select lft, rgt from tabAccount
			where root_type=%s and ifnull(parent_account, '') = ''""",
                              root_type,
                              as_dict=1):
        set_gl_entries_by_account(
            company,
            period_list[0]["year_start_date"]
            if only_current_fiscal_year else None,
            period_list[-1]["to_date"],
            root.lft,
            root.rgt,
            filters,
            gl_entries_by_account,
            ignore_closing_entries=ignore_closing_entries)
    calculate_values(accounts_by_name, gl_entries_by_account, period_list,
                     accumulated_values, ignore_accumulated_values_for_fy)

    grouper.update(accounts_by_name)

    accumulate_values_into_parents(accounts, accounts_by_name, period_list,
                                   accumulated_values)

    out = prepare_data(accounts, balance_must_be, period_list,
                       company_currency)

    out = filter_out_zero_value_rows(out, parent_children_map)

    if out and total:
        add_total_row(out, root_type, balance_must_be, period_list,
                      company_currency)

    return out
Пример #4
0
def get_data(filters):

    accounts = frappe.db.sql(
        """select name, account_number, parent_account, account_name, root_type, report_type, lft, rgt

		from `tabAccount` where company=%s order by lft""",
        filters.company,
        as_dict=True,
    )
    company_currency = filters.presentation_currency or erpnext.get_company_currency(
        filters.company)

    if not accounts:
        return None

    accounts, accounts_by_name, parent_children_map = filter_accounts(accounts)

    min_lft, max_rgt = frappe.db.sql(
        """select min(lft), max(rgt) from `tabAccount`
		where company=%s""",
        (filters.company, ),
    )[0]

    gl_entries_by_account = {}

    opening_balances = get_opening_balances(filters)

    # add filter inside list so that the query in financial_statements.py doesn't break
    if filters.project:
        filters.project = [filters.project]

    set_gl_entries_by_account(
        filters.company,
        filters.from_date,
        filters.to_date,
        min_lft,
        max_rgt,
        filters,
        gl_entries_by_account,
        ignore_closing_entries=not flt(filters.with_period_closing_entry),
    )

    total_row = calculate_values(accounts, gl_entries_by_account,
                                 opening_balances, filters, company_currency)
    accumulate_values_into_parents(accounts, accounts_by_name)

    data = prepare_data(accounts, filters, total_row, parent_children_map,
                        company_currency)
    data = filter_out_zero_value_rows(
        data,
        parent_children_map,
        show_zero_values=filters.get("show_zero_values"))

    return data