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
Example #3
0
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
Example #5
0
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