Example #1
0
def execute(filters=None):
	based_on = filters.based_on.replace(' ', '_').lower()
	validate_filters(filters)
	accounts = get_accounts_data(based_on, filters.company)
	data = get_data(accounts, filters, based_on)
	columns = get_columns(filters)
	return columns, data
def execute(filters=None):
    based_on = filters.based_on.replace(" ", "_").lower()
    validate_filters(filters)
    accounts = get_accounts_data(based_on, filters.company)
    data = get_data(accounts, filters, based_on)
    columns = get_columns(filters)
    return columns, data
Example #3
0
def execute(filters=None):
	if not filters.get('based_on'): filters["based_on"] = 'Cost Center'

	based_on = filters.based_on.replace(' ', '_').lower()
	validate_filters(filters)
	accounts = get_accounts_data(based_on, filters.get("company"))
	data = get_data(accounts, filters, based_on)
	columns = get_columns(filters)
	return columns, data
Example #4
0
def execute(filters=None):
    validate_filters(filters)

    show_party_name = is_party_name_visible(filters)

    columns = get_columns(filters, show_party_name)
    data = get_data(filters, show_party_name)

    return columns, data
def execute(filters=None):
	if not filters.get('based_on'): filters["based_on"] = 'Cost Center'

	based_on = filters.based_on.replace(' ', '_').lower()
	validate_filters(filters)
	accounts = get_accounts_data(based_on, filters.get("company"))
	data = get_data(accounts, filters, based_on)
	columns = get_columns(filters)
	return columns, data
Example #6
0
def execute(filters=None):
	validate_filters(filters)
	
	show_party_name = is_party_name_visible(filters)
	
	columns = get_columns(filters, show_party_name)
	data = get_data(filters, show_party_name)

	return columns, data
def execute(filters=None):

    validate_filters(filters)
    dimension_list = get_dimensions(filters)

    if not dimension_list:
        return [], []

    columns = get_columns(dimension_list)
    data = get_data(filters, dimension_list)

    return columns, data
def execute(filters=None):
    validate_filters(filters)
    dimension_items_list = get_dimension_items_list(filters.dimension,
                                                    filters.company)

    if not dimension_items_list:
        return [], []

    dimension_items_list = [''.join(d) for d in dimension_items_list]
    columns = get_columns(dimension_items_list)
    data = get_data(filters, dimension_items_list)

    return columns, data
Example #9
0
def execute(filters=None):
    data = []
    validate_filters(filters)
    party_filters = {}
    parties = frappe.get_all('Party Type',
                             fields=["name", "party_name_field"],
                             filters=party_filters,
                             order_by="name")
    # parties=['Customer', 'Supplier','Shareholder','Employee','Employee Account']
    for party in parties:
        show_party_name = True
        party_name_field = party.party_name_field or 'name'

        cond = ""
        dim = []

        if filters.get(frappe.scrub(party.name)):
            cond = """ where name in (%s)""" % (", ".join(
                ["%s"] * len(filters.get(frappe.scrub(party.name)))))
            dim = filters.get(frappe.scrub(party.name))
        party_filters = {"name": party.name} if filters.get("party") else {}
        party_parties = frappe.db.sql("""
				select
					name,{party_name_field}
				from
					`tab{tab}` {cond}
			""".format(tab=party.name, party_name_field=party_name_field, cond=cond),
                                      tuple(dim),
                                      as_dict=True)
        # parties = frappe.get_all(party, fields = ["name",party_name_field],
        # 	filters=party_filters,order_by="name")
        filters.party_type = party.name

        data += get_data(filters,
                         show_party_name,
                         party_name_field=party_name_field,
                         parties=party_parties)

    columns = get_columns(filters, show_party_name)
    # data = get_data(filters, show_party_name)

    return columns, data
Example #10
0
def execute(filters=None):

    validate_filters(filters)
    show_party_name = is_party_name_visible(filters)
    columns = get_columns(filters, show_party_name)

    opening_balances = get_opening_balances1(filters)
    print "opening_balances----------------", opening_balances

    balances_within_period = get_balances_within_period1(filters)
    print "balances_within_period----------------", balances_within_period

    final_result = []
    opening_balance_map = {}
    total_credit = 0.0
    total_debit = 0.0
    total_opening_debit = 0.0
    total_opening_credit = 0.0
    total_closing_debit = 0.0
    total_closing_credit = 0.0
    party_list = []
    company_currency = frappe.db.get_value("Company", filters.company,
                                           "default_currency")
    party_name_field = "{0}_name".format(
        frappe.scrub(filters.get('party_type')))
    party_filters1 = {
        "name": filters.get("party")
    } if filters.get("party") else {}
    parties1 = frappe.get_all(filters.get("party_type"),
                              fields=["name", party_name_field],
                              filters=party_filters1,
                              order_by="name")
    for opening_balance in opening_balances:
        credit = 0.0
        debit = 0.0
        key = opening_balance['name']
        credit = opening_balance['credit']
        debit = opening_balance['credit']
        if key not in opening_balance_map:
            opening_balance_map[key] = frappe._dict({
                "opening_credit": credit,
                "opening_debit": debit
            })

    for balances in balances_within_period:
        opening_debit = 0.0
        opening_credit = 0.0
        closing_credit = 0.0
        closing_debit = 0.0
        name = balances['name']
        party = balances['party']
        account = balances['account']
        debit = balances['debit']
        credit = balances['credit']

        if name in opening_balance_map:
            balance_entry = opening_balance_map[name]
            opening_debit, opening_credit = toggle_debit_credit(
                balance_entry.opening_debit, balance_entry.opening_credit)
            balances['opening_credit'] = opening_credit
            balances['opening_debit'] = opening_debit
        else:
            balances['opening_credit'] = opening_credit
            balances['opening_debit'] = opening_debit

        closing_debit, closing_credit = toggle_debit_credit(
            balances['opening_debit'] + debit,
            balances['opening_credit'] + credit)

        balances['closing_credit'] = closing_credit
        balances['closing_debit'] = closing_debit

        total_credit = total_credit + credit
        total_debit = total_debit + debit

        total_opening_debit = total_opening_debit + balances['opening_debit']
        total_opening_credit = total_opening_credit + balances['opening_credit']

        total_closing_debit = total_closing_debit + balances['closing_debit']
        total_closing_credit = total_closing_credit + balances['closing_credit']

        party_list.append(party)

        final_result.append([
            party, account, balances['opening_debit'],
            balances['opening_credit'], debit, credit,
            balances['closing_debit'], balances['closing_credit'],
            company_currency
        ])

    if filters.get("show_zero_values") == 1:
        name = ""
        unique_party_list = list(set(party_list))
        if filters.get("party_type") == "Customer":
            name = "customer_name"
        elif filters.get("party_type") == "Supplier":
            name = "supplier_name"
        elif filters.get("party_type") == "Employee":
            name = "name"
        for party_names in parties1:
            if party_names[name] not in unique_party_list:
                final_result.append([
                    party_names[name], "", "", "", "", "", "", "",
                    company_currency
                ])

    final_result.append([
        "Totals", "", total_opening_debit, total_opening_credit, total_debit,
        total_credit, total_closing_debit, total_closing_credit,
        company_currency
    ])
    print "final_result----------------", final_result

    return columns, final_result