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
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
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
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
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