Merge branch 'develop' into mapped_doc_fix
This commit is contained in:
commit
4aed7cc310
@ -8,6 +8,7 @@ frappe.query_reports["Accounts Payable"] = {
|
|||||||
"label": __("Company"),
|
"label": __("Company"),
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"options": "Company",
|
"options": "Company",
|
||||||
|
"reqd": 1,
|
||||||
"default": frappe.defaults.get_user_default("Company")
|
"default": frappe.defaults.get_user_default("Company")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -8,6 +8,7 @@ frappe.query_reports["Accounts Receivable"] = {
|
|||||||
"label": __("Company"),
|
"label": __("Company"),
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"options": "Company",
|
"options": "Company",
|
||||||
|
"reqd": 1,
|
||||||
"default": frappe.defaults.get_user_default("Company")
|
"default": frappe.defaults.get_user_default("Company")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -541,10 +541,11 @@ class ReceivablePayableReport(object):
|
|||||||
conditions.append("""cost_center in (select name from `tabCost Center` where
|
conditions.append("""cost_center in (select name from `tabCost Center` where
|
||||||
lft >= {0} and rgt <= {1})""".format(lft, rgt))
|
lft >= {0} and rgt <= {1})""".format(lft, rgt))
|
||||||
|
|
||||||
accounts = [d.name for d in frappe.get_all("Account",
|
if self.filters.company:
|
||||||
filters={"account_type": account_type, "company": self.filters.company})]
|
accounts = [d.name for d in frappe.get_all("Account",
|
||||||
conditions.append("account in (%s)" % ','.join(['%s'] *len(accounts)))
|
filters={"account_type": account_type, "company": self.filters.company})]
|
||||||
values += accounts
|
conditions.append("account in (%s)" % ','.join(['%s'] *len(accounts)))
|
||||||
|
values += accounts
|
||||||
|
|
||||||
return " and ".join(conditions), values
|
return " and ".join(conditions), values
|
||||||
|
|
||||||
|
|||||||
@ -10,4 +10,10 @@ frappe.require("assets/erpnext/js/financial_statements.js", function() {
|
|||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"default": 1
|
"default": 1
|
||||||
});
|
});
|
||||||
|
|
||||||
|
frappe.query_reports["Balance Sheet"]["filters"].push({
|
||||||
|
"fieldname": "include_default_book_entries",
|
||||||
|
"label": __("Include Default Book Entries"),
|
||||||
|
"fieldtype": "Check"
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -15,4 +15,10 @@ frappe.require("assets/erpnext/js/financial_statements.js", function() {
|
|||||||
"label": __("Accumulated Values"),
|
"label": __("Accumulated Values"),
|
||||||
"fieldtype": "Check"
|
"fieldtype": "Check"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
frappe.query_reports["Cash Flow"]["filters"].push({
|
||||||
|
"fieldname": "include_default_book_entries",
|
||||||
|
"label": __("Include Default Book Entries"),
|
||||||
|
"fieldtype": "Check"
|
||||||
|
});
|
||||||
});
|
});
|
||||||
@ -14,8 +14,8 @@ def execute(filters=None):
|
|||||||
if cint(frappe.db.get_single_value('Accounts Settings', 'use_custom_cash_flow')):
|
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
|
from erpnext.accounts.report.cash_flow.custom_cash_flow import execute as execute_custom
|
||||||
return execute_custom(filters=filters)
|
return execute_custom(filters=filters)
|
||||||
|
|
||||||
period_list = get_period_list(filters.from_fiscal_year, filters.to_fiscal_year,
|
period_list = get_period_list(filters.from_fiscal_year, filters.to_fiscal_year,
|
||||||
filters.periodicity, filters.accumulated_values, filters.company)
|
filters.periodicity, filters.accumulated_values, filters.company)
|
||||||
|
|
||||||
cash_flow_accounts = get_cash_flow_accounts()
|
cash_flow_accounts = get_cash_flow_accounts()
|
||||||
@ -25,18 +25,18 @@ def execute(filters=None):
|
|||||||
accumulated_values=filters.accumulated_values, ignore_closing_entries=True, ignore_accumulated_values_for_fy= True)
|
accumulated_values=filters.accumulated_values, ignore_closing_entries=True, ignore_accumulated_values_for_fy= True)
|
||||||
expense = get_data(filters.company, "Expense", "Debit", period_list, filters=filters,
|
expense = get_data(filters.company, "Expense", "Debit", period_list, filters=filters,
|
||||||
accumulated_values=filters.accumulated_values, ignore_closing_entries=True, ignore_accumulated_values_for_fy= True)
|
accumulated_values=filters.accumulated_values, ignore_closing_entries=True, ignore_accumulated_values_for_fy= True)
|
||||||
|
|
||||||
net_profit_loss = get_net_profit_loss(income, expense, period_list, filters.company)
|
net_profit_loss = get_net_profit_loss(income, expense, period_list, filters.company)
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
company_currency = frappe.get_cached_value('Company', filters.company, "default_currency")
|
company_currency = frappe.get_cached_value('Company', filters.company, "default_currency")
|
||||||
|
|
||||||
for cash_flow_account in cash_flow_accounts:
|
for cash_flow_account in cash_flow_accounts:
|
||||||
section_data = []
|
section_data = []
|
||||||
data.append({
|
data.append({
|
||||||
"account_name": cash_flow_account['section_header'],
|
"account_name": cash_flow_account['section_header'],
|
||||||
"parent_account": None,
|
"parent_account": None,
|
||||||
"indent": 0.0,
|
"indent": 0.0,
|
||||||
"account": cash_flow_account['section_header']
|
"account": cash_flow_account['section_header']
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -44,18 +44,18 @@ def execute(filters=None):
|
|||||||
# add first net income in operations section
|
# add first net income in operations section
|
||||||
if net_profit_loss:
|
if net_profit_loss:
|
||||||
net_profit_loss.update({
|
net_profit_loss.update({
|
||||||
"indent": 1,
|
"indent": 1,
|
||||||
"parent_account": cash_flow_accounts[0]['section_header']
|
"parent_account": cash_flow_accounts[0]['section_header']
|
||||||
})
|
})
|
||||||
data.append(net_profit_loss)
|
data.append(net_profit_loss)
|
||||||
section_data.append(net_profit_loss)
|
section_data.append(net_profit_loss)
|
||||||
|
|
||||||
for account in cash_flow_account['account_types']:
|
for account in cash_flow_account['account_types']:
|
||||||
account_data = get_account_type_based_data(filters.company,
|
account_data = get_account_type_based_data(filters.company,
|
||||||
account['account_type'], period_list, filters.accumulated_values)
|
account['account_type'], period_list, filters.accumulated_values, filters)
|
||||||
account_data.update({
|
account_data.update({
|
||||||
"account_name": account['label'],
|
"account_name": account['label'],
|
||||||
"account": account['label'],
|
"account": account['label'],
|
||||||
"indent": 1,
|
"indent": 1,
|
||||||
"parent_account": cash_flow_account['section_header'],
|
"parent_account": cash_flow_account['section_header'],
|
||||||
"currency": company_currency
|
"currency": company_currency
|
||||||
@ -63,7 +63,7 @@ def execute(filters=None):
|
|||||||
data.append(account_data)
|
data.append(account_data)
|
||||||
section_data.append(account_data)
|
section_data.append(account_data)
|
||||||
|
|
||||||
add_total_row_account(data, section_data, cash_flow_account['section_footer'],
|
add_total_row_account(data, section_data, cash_flow_account['section_footer'],
|
||||||
period_list, company_currency)
|
period_list, company_currency)
|
||||||
|
|
||||||
add_total_row_account(data, data, _("Net Change in Cash"), period_list, company_currency)
|
add_total_row_account(data, data, _("Net Change in Cash"), period_list, company_currency)
|
||||||
@ -105,13 +105,15 @@ def get_cash_flow_accounts():
|
|||||||
# combine all cash flow accounts for iteration
|
# combine all cash flow accounts for iteration
|
||||||
return [operation_accounts, investing_accounts, financing_accounts]
|
return [operation_accounts, investing_accounts, financing_accounts]
|
||||||
|
|
||||||
def get_account_type_based_data(company, account_type, period_list, accumulated_values):
|
def get_account_type_based_data(company, account_type, period_list, accumulated_values, filters):
|
||||||
data = {}
|
data = {}
|
||||||
total = 0
|
total = 0
|
||||||
for period in period_list:
|
for period in period_list:
|
||||||
start_date = get_start_date(period, accumulated_values, company)
|
start_date = get_start_date(period, accumulated_values, company)
|
||||||
|
|
||||||
amount = get_account_type_based_gl_data(company, start_date, period['to_date'], account_type)
|
amount = get_account_type_based_gl_data(company, start_date,
|
||||||
|
period['to_date'], account_type, filters)
|
||||||
|
|
||||||
if amount and account_type == "Depreciation":
|
if amount and account_type == "Depreciation":
|
||||||
amount *= -1
|
amount *= -1
|
||||||
|
|
||||||
@ -121,14 +123,24 @@ def get_account_type_based_data(company, account_type, period_list, accumulated_
|
|||||||
data["total"] = total
|
data["total"] = total
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def get_account_type_based_gl_data(company, start_date, end_date, account_type):
|
def get_account_type_based_gl_data(company, start_date, end_date, account_type, filters):
|
||||||
|
cond = ""
|
||||||
|
|
||||||
|
if filters.finance_book:
|
||||||
|
cond = " and finance_book = %s" %(frappe.db.escape(filters.finance_book))
|
||||||
|
if filters.include_default_book_entries:
|
||||||
|
company_fb = frappe.db.get_value("Company", company, 'default_finance_book')
|
||||||
|
|
||||||
|
cond = """ and finance_book in (%s, %s)
|
||||||
|
""" %(frappe.db.escape(filters.finance_book), frappe.db.escape(company_fb))
|
||||||
|
|
||||||
gl_sum = frappe.db.sql_list("""
|
gl_sum = frappe.db.sql_list("""
|
||||||
select sum(credit) - sum(debit)
|
select sum(credit) - sum(debit)
|
||||||
from `tabGL Entry`
|
from `tabGL Entry`
|
||||||
where company=%s and posting_date >= %s and posting_date <= %s
|
where company=%s and posting_date >= %s and posting_date <= %s
|
||||||
and voucher_type != 'Period Closing Voucher'
|
and voucher_type != 'Period Closing Voucher'
|
||||||
and account in ( SELECT name FROM tabAccount WHERE account_type = %s)
|
and account in ( SELECT name FROM tabAccount WHERE account_type = %s) {cond}
|
||||||
""", (company, start_date, end_date, account_type))
|
""".format(cond=cond), (company, start_date, end_date, account_type))
|
||||||
|
|
||||||
return gl_sum[0] if gl_sum and gl_sum[0] else 0
|
return gl_sum[0] if gl_sum and gl_sum[0] else 0
|
||||||
|
|
||||||
@ -154,7 +166,7 @@ def add_total_row_account(out, data, label, period_list, currency, consolidated
|
|||||||
key = period if consolidated else period['key']
|
key = period if consolidated else period['key']
|
||||||
total_row.setdefault(key, 0.0)
|
total_row.setdefault(key, 0.0)
|
||||||
total_row[key] += row.get(key, 0.0)
|
total_row[key] += row.get(key, 0.0)
|
||||||
|
|
||||||
total_row.setdefault("total", 0.0)
|
total_row.setdefault("total", 0.0)
|
||||||
total_row["total"] += row["total"]
|
total_row["total"] += row["total"]
|
||||||
|
|
||||||
|
|||||||
@ -55,5 +55,10 @@ frappe.query_reports["Consolidated Financial Statement"] = {
|
|||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"default": 0
|
"default": 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "include_default_book_entries",
|
||||||
|
"label": __("Include Default Book Entries"),
|
||||||
|
"fieldtype": "Check"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -356,7 +356,8 @@ def set_gl_entries_by_account(from_date, to_date, root_lft, root_rgt, filters, g
|
|||||||
"lft": root_lft,
|
"lft": root_lft,
|
||||||
"rgt": root_rgt,
|
"rgt": root_rgt,
|
||||||
"company": d.name,
|
"company": d.name,
|
||||||
"finance_book": filters.get("finance_book")
|
"finance_book": filters.get("finance_book"),
|
||||||
|
"company_fb": frappe.db.get_value("Company", d.name, 'default_finance_book')
|
||||||
},
|
},
|
||||||
as_dict=True)
|
as_dict=True)
|
||||||
|
|
||||||
@ -387,7 +388,10 @@ def get_additional_conditions(from_date, ignore_closing_entries, filters):
|
|||||||
additional_conditions.append("gl.posting_date >= %(from_date)s")
|
additional_conditions.append("gl.posting_date >= %(from_date)s")
|
||||||
|
|
||||||
if filters.get("finance_book"):
|
if filters.get("finance_book"):
|
||||||
additional_conditions.append("ifnull(finance_book, '') in (%(finance_book)s, '')")
|
if filters.get("include_default_book_entries"):
|
||||||
|
additional_conditions.append("finance_book in (%(finance_book)s, %(company_fb)s)")
|
||||||
|
else:
|
||||||
|
additional_conditions.append("finance_book in (%(finance_book)s)")
|
||||||
|
|
||||||
return " and {}".format(" and ".join(additional_conditions)) if additional_conditions else ""
|
return " and {}".format(" and ".join(additional_conditions)) if additional_conditions else ""
|
||||||
|
|
||||||
|
|||||||
@ -355,6 +355,10 @@ def set_gl_entries_by_account(
|
|||||||
"to_date": to_date,
|
"to_date": to_date,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if filters.get("include_default_book_entries"):
|
||||||
|
gl_filters["company_fb"] = frappe.db.get_value("Company",
|
||||||
|
company, 'default_finance_book')
|
||||||
|
|
||||||
for key, value in filters.items():
|
for key, value in filters.items():
|
||||||
if value:
|
if value:
|
||||||
gl_filters.update({
|
gl_filters.update({
|
||||||
@ -399,7 +403,10 @@ def get_additional_conditions(from_date, ignore_closing_entries, filters):
|
|||||||
additional_conditions.append("cost_center in %(cost_center)s")
|
additional_conditions.append("cost_center in %(cost_center)s")
|
||||||
|
|
||||||
if filters.get("finance_book"):
|
if filters.get("finance_book"):
|
||||||
additional_conditions.append("ifnull(finance_book, '') in (%(finance_book)s, '')")
|
if filters.get("include_default_book_entries"):
|
||||||
|
additional_conditions.append("finance_book in (%(finance_book)s, %(company_fb)s)")
|
||||||
|
else:
|
||||||
|
additional_conditions.append("finance_book in (%(finance_book)s)")
|
||||||
|
|
||||||
if accounting_dimensions:
|
if accounting_dimensions:
|
||||||
for dimension in accounting_dimensions:
|
for dimension in accounting_dimensions:
|
||||||
|
|||||||
@ -151,6 +151,11 @@ frappe.query_reports["General Ledger"] = {
|
|||||||
"label": __("Show Opening Entries"),
|
"label": __("Show Opening Entries"),
|
||||||
"fieldtype": "Check"
|
"fieldtype": "Check"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "include_default_book_entries",
|
||||||
|
"label": __("Include Default Book Entries"),
|
||||||
|
"fieldtype": "Check"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -131,6 +131,10 @@ def get_gl_entries(filters):
|
|||||||
sum(debit_in_account_currency) as debit_in_account_currency,
|
sum(debit_in_account_currency) as debit_in_account_currency,
|
||||||
sum(credit_in_account_currency) as credit_in_account_currency"""
|
sum(credit_in_account_currency) as credit_in_account_currency"""
|
||||||
|
|
||||||
|
if filters.get("include_default_book_entries"):
|
||||||
|
filters['company_fb'] = frappe.db.get_value("Company",
|
||||||
|
filters.get("company"), 'default_finance_book')
|
||||||
|
|
||||||
gl_entries = frappe.db.sql(
|
gl_entries = frappe.db.sql(
|
||||||
"""
|
"""
|
||||||
select
|
select
|
||||||
@ -186,7 +190,10 @@ def get_conditions(filters):
|
|||||||
conditions.append("project in %(project)s")
|
conditions.append("project in %(project)s")
|
||||||
|
|
||||||
if filters.get("finance_book"):
|
if filters.get("finance_book"):
|
||||||
conditions.append("ifnull(finance_book, '') in (%(finance_book)s, '')")
|
if filters.get("include_default_book_entries"):
|
||||||
|
conditions.append("finance_book in (%(finance_book)s, %(company_fb)s)")
|
||||||
|
else:
|
||||||
|
conditions.append("finance_book in (%(finance_book)s)")
|
||||||
|
|
||||||
from frappe.desk.reportview import build_match_conditions
|
from frappe.desk.reportview import build_match_conditions
|
||||||
match_conditions = build_match_conditions("GL Entry")
|
match_conditions = build_match_conditions("GL Entry")
|
||||||
|
|||||||
@ -19,6 +19,11 @@ frappe.require("assets/erpnext/js/financial_statements.js", function() {
|
|||||||
"fieldname": "accumulated_values",
|
"fieldname": "accumulated_values",
|
||||||
"label": __("Accumulated Values"),
|
"label": __("Accumulated Values"),
|
||||||
"fieldtype": "Check"
|
"fieldtype": "Check"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "include_default_book_entries",
|
||||||
|
"label": __("Include Default Book Entries"),
|
||||||
|
"fieldtype": "Check"
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -105,7 +105,7 @@ def get_rootwise_opening_balances(filters, report_type):
|
|||||||
if filters.finance_book:
|
if filters.finance_book:
|
||||||
fb_conditions = " and finance_book = %(finance_book)s"
|
fb_conditions = " and finance_book = %(finance_book)s"
|
||||||
if filters.include_default_book_entries:
|
if filters.include_default_book_entries:
|
||||||
fb_conditions = " and (finance_book in (%(finance_book)s, %(company_fb)s) or finance_book is null)"
|
fb_conditions = " and (finance_book in (%(finance_book)s, %(company_fb)s))"
|
||||||
|
|
||||||
additional_conditions += fb_conditions
|
additional_conditions += fb_conditions
|
||||||
|
|
||||||
|
|||||||
@ -291,16 +291,19 @@ class Asset(AccountsController):
|
|||||||
|
|
||||||
def validate_expected_value_after_useful_life(self):
|
def validate_expected_value_after_useful_life(self):
|
||||||
for row in self.get('finance_books'):
|
for row in self.get('finance_books'):
|
||||||
accumulated_depreciation_after_full_schedule = max([d.accumulated_depreciation_amount
|
accumulated_depreciation_after_full_schedule = [d.accumulated_depreciation_amount
|
||||||
for d in self.get("schedules") if cint(d.finance_book_id) == row.idx])
|
for d in self.get("schedules") if cint(d.finance_book_id) == row.idx]
|
||||||
|
|
||||||
asset_value_after_full_schedule = flt(flt(self.gross_purchase_amount) -
|
if accumulated_depreciation_after_full_schedule:
|
||||||
flt(accumulated_depreciation_after_full_schedule),
|
accumulated_depreciation_after_full_schedule = max(accumulated_depreciation_after_full_schedule)
|
||||||
self.precision('gross_purchase_amount'))
|
|
||||||
|
|
||||||
if row.expected_value_after_useful_life < asset_value_after_full_schedule:
|
asset_value_after_full_schedule = flt(flt(self.gross_purchase_amount) -
|
||||||
frappe.throw(_("Depreciation Row {0}: Expected value after useful life must be greater than or equal to {1}")
|
flt(accumulated_depreciation_after_full_schedule),
|
||||||
.format(row.idx, asset_value_after_full_schedule))
|
self.precision('gross_purchase_amount'))
|
||||||
|
|
||||||
|
if row.expected_value_after_useful_life < asset_value_after_full_schedule:
|
||||||
|
frappe.throw(_("Depreciation Row {0}: Expected value after useful life must be greater than or equal to {1}")
|
||||||
|
.format(row.idx, asset_value_after_full_schedule))
|
||||||
|
|
||||||
def validate_cancellation(self):
|
def validate_cancellation(self):
|
||||||
if self.status not in ("Submitted", "Partially Depreciated", "Fully Depreciated"):
|
if self.status not in ("Submitted", "Partially Depreciated", "Fully Depreciated"):
|
||||||
|
|||||||
@ -1,3 +1,37 @@
|
|||||||
frappe.listview_settings['Asset'] = {
|
frappe.listview_settings['Asset'] = {
|
||||||
add_fields: ['image']
|
add_fields: ['status'],
|
||||||
|
get_indicator: function (doc) {
|
||||||
|
if (doc.status === "Fully Depreciated") {
|
||||||
|
return [__("Fully Depreciated"), "green", "status,=,Fully Depreciated"];
|
||||||
|
|
||||||
|
} else if (doc.status === "Partially Depreciated") {
|
||||||
|
return [__("Partially Depreciated"), "grey", "status,=,Partially Depreciated"];
|
||||||
|
|
||||||
|
} else if (doc.status === "Sold") {
|
||||||
|
return [__("Sold"), "green", "status,=,Sold"];
|
||||||
|
|
||||||
|
} else if (doc.status === "Scrapped") {
|
||||||
|
return [__("Scrapped"), "grey", "status,=,Scrapped"];
|
||||||
|
|
||||||
|
} else if (doc.status === "In Maintenance") {
|
||||||
|
return [__("In Maintenance"), "orange", "status,=,In Maintenance"];
|
||||||
|
|
||||||
|
} else if (doc.status === "Out of Order") {
|
||||||
|
return [__("Out of Order"), "grey", "status,=,Out of Order"];
|
||||||
|
|
||||||
|
} else if (doc.status === "Issue") {
|
||||||
|
return [__("Issue"), "orange", "status,=,Issue"];
|
||||||
|
|
||||||
|
} else if (doc.status === "Receipt") {
|
||||||
|
return [__("Receipt"), "green", "status,=,Receipt"];
|
||||||
|
|
||||||
|
} else if (doc.status === "Submitted") {
|
||||||
|
return [__("Submitted"), "blue", "status,=,Submitted"];
|
||||||
|
|
||||||
|
} else if (doc.status === "Draft") {
|
||||||
|
return [__("Draft"), "red", "status,=,Draft"];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
}
|
}
|
||||||
@ -18,7 +18,7 @@ class ServiceLevelAgreement(Document):
|
|||||||
if self.start_date >= self.end_date:
|
if self.start_date >= self.end_date:
|
||||||
frappe.throw(_("Start Date of Agreement can't be greater than or equal to End Date."))
|
frappe.throw(_("Start Date of Agreement can't be greater than or equal to End Date."))
|
||||||
|
|
||||||
if self.end_date < frappe.utils.nowdate():
|
if self.end_date < frappe.utils.getdate():
|
||||||
frappe.throw(_("End Date of Agreement can't be less than today."))
|
frappe.throw(_("End Date of Agreement can't be less than today."))
|
||||||
|
|
||||||
if self.entity_type and self.entity:
|
if self.entity_type and self.entity:
|
||||||
@ -85,8 +85,9 @@ def get_service_level_agreement_filters(name, customer=None):
|
|||||||
["Service Level Agreement", "default_service_level_agreement", "=", 1]
|
["Service Level Agreement", "default_service_level_agreement", "=", 1]
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
|
# Include SLA with No Entity and Entity Type
|
||||||
or_filters = [
|
or_filters = [
|
||||||
["Service Level Agreement", "entity", "in", [customer, get_customer_group(customer), get_customer_territory(customer), "IS NULL"]],
|
["Service Level Agreement", "entity", "in", [customer, get_customer_group(customer), get_customer_territory(customer), ""]],
|
||||||
["Service Level Agreement", "default_service_level_agreement", "=", 1]
|
["Service Level Agreement", "default_service_level_agreement", "=", 1]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user