def get_conditions(filters): conditions = { 'docstatus': 1 } status = filters.status date_field = frappe.scrub(filters.date_based_on or "Purchase Date") if filters.get('company'): conditions["company"] = filters.company if filters.filter_based_on == "Date Range": conditions[date_field] = ["between", [filters.from_date, filters.to_date]] if filters.filter_based_on == "Fiscal Year": fiscal_year = get_fiscal_year_data(filters.from_fiscal_year, filters.to_fiscal_year) validate_fiscal_year(fiscal_year, filters.from_fiscal_year, filters.to_fiscal_year) filters.year_start_date = getdate(fiscal_year.year_start_date) filters.year_end_date = getdate(fiscal_year.year_end_date) conditions[date_field] = ["between", [filters.year_start_date, filters.year_end_date]] if filters.get('is_existing_asset'): conditions["is_existing_asset"] = filters.get('is_existing_asset') if filters.get('asset_category'): conditions["asset_category"] = filters.get('asset_category') if filters.get('cost_center'): conditions["cost_center"] = filters.get('cost_center') # In Store assets are those that are not sold or scrapped operand = 'not in' if status not in 'In Location': operand = 'in' conditions['status'] = (operand, ['Sold', 'Scrapped']) return conditions
def execute(filters=None): columns, data, message, chart = [], [], [], [] if not filters.get('company'): return columns, data, message, chart fiscal_year = get_fiscal_year_data(filters.get('from_fiscal_year'), filters.get('to_fiscal_year')) companies_column, companies = get_companies(filters) columns = get_columns(companies_column) if filters.get('report') == "Balance Sheet": data, message, chart = get_balance_sheet_data(fiscal_year, companies, columns, filters) elif filters.get('report') == "Profit and Loss Statement": data, message, chart = get_profit_loss_data(fiscal_year, companies, columns, filters) else: if cint( frappe.db.get_single_value('Accounts Settings', 'use_custom_cash_flow')): from erpnext.accounts.report.cash_flow.custom_cash_flow import execute as execute_custom return execute_custom(filters=filters) data = get_cash_flow_data(fiscal_year, companies, filters) return columns, data, message, chart
def get_conditions(filters): conditions = { 'docstatus': 1 } status = filters.status date_field = frappe.scrub(filters.date_based_on or "Purchase Date") if filters.get('company'): filters.company = frappe.parse_json(filters.get('company')) conditions['company'] = ('in', filters.company) # if filters.get('location'): # if not filters.get('location') == '--Select a Location--': # conditions["location"] = filters.location if filters.get('location'): filters.location = frappe.parse_json(filters.get('location')) conditions['location'] = ('in', filters.location) if filters.get('asset_category'): filters.asset_category = frappe.parse_json(filters.get('asset_category')) conditions['asset_category'] = ('in', filters.asset_category) if filters.get('physical_status'): if not filters.get('physical_status') == '--Select a Physical Status--': conditions["physical_status"] = filters.physical_status if filters.filter_based_on == "Date Range": conditions[date_field] = ["between", [filters.from_date, filters.to_date]] if filters.filter_based_on == "Fiscal Year": fiscal_year = get_fiscal_year_data(filters.from_fiscal_year, filters.to_fiscal_year) validate_fiscal_year(fiscal_year, filters.from_fiscal_year, filters.to_fiscal_year) filters.year_start_date = getdate(fiscal_year.year_start_date) filters.year_end_date = getdate(fiscal_year.year_end_date) conditions[date_field] = ["between", [filters.year_start_date, filters.year_end_date]] if filters.get('is_existing_asset'): conditions["is_existing_asset"] = filters.get('is_existing_asset') # if filters.get('asset_category'): # conditions["asset_category"] = filters.get('asset_category') if filters.get('cost_center'): conditions["cost_center"] = filters.get('cost_center') # In Store assets are those that are not sold or scrapped operand = 'not in' if status not in 'In Location': operand = 'in' conditions['status'] = (operand, ['Sold', 'Scrapped']) return conditions
def execute(filters=None): columns, data, message, chart = [], [], [], [] if not filters.get('company'): return columns, data, message, chart fiscal_year = get_fiscal_year_data(filters.get('from_fiscal_year'), filters.get('to_fiscal_year')) companies_column, companies = get_companies(filters) columns = get_columns(companies_column) if filters.get('report') == "Balance Sheet": data, message, chart = get_balance_sheet_data(fiscal_year, companies, columns, filters) elif filters.get('report') == "Profit and Loss Statement": data, message, chart = get_profit_loss_data(fiscal_year, companies, columns, filters) else: if cint(frappe.db.get_single_value('Accounts Settings', 'use_custom_cash_flow')): from erpnext.accounts.report.cash_flow.custom_cash_flow import execute as execute_custom return execute_custom(filters=filters) data = get_cash_flow_data(fiscal_year, companies, filters) return columns, data, message, chart
def get_conditions(filters): conditions = {"docstatus": 1} status = filters.status date_field = frappe.scrub(filters.date_based_on or "Purchase Date") if filters.get("company"): conditions["company"] = filters.company if filters.filter_based_on == "Date Range": conditions[date_field] = [ "between", [filters.from_date, filters.to_date] ] if filters.filter_based_on == "Fiscal Year": fiscal_year = get_fiscal_year_data(filters.from_fiscal_year, filters.to_fiscal_year) validate_fiscal_year(fiscal_year, filters.from_fiscal_year, filters.to_fiscal_year) filters.year_start_date = getdate(fiscal_year.year_start_date) filters.year_end_date = getdate(fiscal_year.year_end_date) conditions[date_field] = [ "between", [filters.year_start_date, filters.year_end_date] ] if filters.get("is_existing_asset"): conditions["is_existing_asset"] = filters.get("is_existing_asset") if filters.get("asset_category"): conditions["asset_category"] = filters.get("asset_category") if filters.get("cost_center"): conditions["cost_center"] = filters.get("cost_center") if status: # In Store assets are those that are not sold or scrapped operand = "not in" if status not in "In Location": operand = "in" conditions["status"] = (operand, ["Sold", "Scrapped"]) return conditions