diff --git a/erpnext/accounts/Print Format/SalesInvoice/SalesInvoice.html b/erpnext/accounts/Print Format/SalesInvoice/SalesInvoice.html index 874d84ceb7c..d4a49ef503a 100644 --- a/erpnext/accounts/Print Format/SalesInvoice/SalesInvoice.html +++ b/erpnext/accounts/Print Format/SalesInvoice/SalesInvoice.html @@ -1,5 +1,5 @@ {%- if doc.letter_head -%} - {{ frappe.conn.get_value("Letter Head", doc.letter_head, "content") }} + {{ frappe.db.get_value("Letter Head", doc.letter_head, "content") }} {%- endif -%}
Please contact your system manager for more information.
""" % (service_name, error_status) - if not frappe.conn: + if not frappe.db: frappe.connect() - recipients = frappe.conn.get_value("Backup Manager", None, "send_notifications_to").split(",") + recipients = frappe.db.get_value("Backup Manager", None, "send_notifications_to").split(",") sendmail(recipients, subject=subject, msg=message) diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index 2961d24433a..fb3059b2ca5 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -20,7 +20,7 @@ class DocType: exists = False for doctype in ["Sales Invoice", "Delivery Note", "Sales Order", "Quotation", "Purchase Invoice", "Purchase Receipt", "Purchase Order", "Supplier Quotation"]: - if frappe.conn.sql("""select name from `tab%s` where company=%s and docstatus=1 + if frappe.db.sql("""select name from `tab%s` where company=%s and docstatus=1 limit 1""" % (doctype, "%s"), self.doc.name): exists = True break @@ -32,31 +32,31 @@ class DocType: frappe.msgprint("Abbreviation cannot have more than 5 characters", raise_exception=1) - self.previous_default_currency = frappe.conn.get_value("Company", self.doc.name, "default_currency") + self.previous_default_currency = frappe.db.get_value("Company", self.doc.name, "default_currency") if self.doc.default_currency and self.previous_default_currency and \ self.doc.default_currency != self.previous_default_currency and \ self.check_if_transactions_exist(): msgprint(_("Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency."), raise_exception=True) def on_update(self): - if not frappe.conn.sql("""select name from tabAccount + if not frappe.db.sql("""select name from tabAccount where company=%s and docstatus<2 limit 1""", self.doc.name): self.create_default_accounts() self.create_default_warehouses() self.create_default_web_page() - if not frappe.conn.get_value("Cost Center", {"group_or_ledger": "Ledger", + if not frappe.db.get_value("Cost Center", {"group_or_ledger": "Ledger", "company": self.doc.name}): self.create_default_cost_center() self.set_default_accounts() if self.doc.default_currency: - frappe.conn.set_value("Currency", self.doc.default_currency, "enabled", 1) + frappe.db.set_value("Currency", self.doc.default_currency, "enabled", 1) def create_default_warehouses(self): for whname in ("Stores", "Work In Progress", "Finished Goods"): - if not frappe.conn.exists("Warehouse", whname + " - " + self.doc.abbr): + if not frappe.db.exists("Warehouse", whname + " - " + self.doc.abbr): frappe.bean({ "doctype":"Warehouse", "warehouse_name": whname, @@ -65,8 +65,8 @@ class DocType: }).insert() def create_default_web_page(self): - if not frappe.conn.get_value("Website Settings", None, "home_page") and \ - not frappe.conn.sql("select name from tabCompany where name!=%s", self.doc.name): + if not frappe.db.get_value("Website Settings", None, "home_page") and \ + not frappe.db.sql("select name from tabCompany where name!=%s", self.doc.name): import os with open(os.path.join(os.path.dirname(__file__), "sample_home_page.html"), "r") as webfile: webpage = frappe.bean({ @@ -217,7 +217,7 @@ class DocType: for d in acc_list_common: self.add_acc(d) - country = frappe.conn.sql("select value from tabSingles where field = 'country' and doctype = 'Control Panel'") + country = frappe.db.sql("select value from tabSingles where field = 'country' and doctype = 'Control Panel'") country = country and cstr(country[0][0]) or '' # load taxes (only for India) @@ -240,8 +240,8 @@ class DocType: def _set_default_accounts(accounts): for a in accounts: account_name = accounts[a] + " - " + self.doc.abbr - if not self.doc.fields.get(a) and frappe.conn.exists("Account", account_name): - frappe.conn.set(self.doc, a, account_name) + if not self.doc.fields.get(a) and frappe.db.exists("Account", account_name): + frappe.db.set(self.doc, a, account_name) _set_default_accounts({ "receivables_group": "Accounts Receivable", @@ -249,7 +249,7 @@ class DocType: "default_cash_account": "Cash" }) - if cint(frappe.conn.get_value("Accounts Settings", None, "auto_accounting_for_stock")): + if cint(frappe.db.get_value("Accounts Settings", None, "auto_accounting_for_stock")): _set_default_accounts({ "stock_received_but_not_billed": "Stock Received But Not Billed", "stock_adjustment_account": "Stock Adjustment", @@ -280,28 +280,28 @@ class DocType: cc_bean.ignore_mandatory = True cc_bean.insert() - frappe.conn.set(self.doc, "cost_center", "Main - " + self.doc.abbr) + frappe.db.set(self.doc, "cost_center", "Main - " + self.doc.abbr) def on_trash(self): """ Trash accounts and cost centers for this company if no gl entry exists """ - rec = frappe.conn.sql("SELECT name from `tabGL Entry` where company = %s", self.doc.name) + rec = frappe.db.sql("SELECT name from `tabGL Entry` where company = %s", self.doc.name) if not rec: #delete tabAccount - frappe.conn.sql("delete from `tabAccount` where company = %s order by lft desc, rgt desc", self.doc.name) + frappe.db.sql("delete from `tabAccount` where company = %s order by lft desc, rgt desc", self.doc.name) #delete cost center child table - budget detail - frappe.conn.sql("delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc where bd.parent = cc.name and cc.company = %s", self.doc.name) + frappe.db.sql("delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc where bd.parent = cc.name and cc.company = %s", self.doc.name) #delete cost center - frappe.conn.sql("delete from `tabCost Center` WHERE company = %s order by lft desc, rgt desc", self.doc.name) + frappe.db.sql("delete from `tabCost Center` WHERE company = %s order by lft desc, rgt desc", self.doc.name) - if not frappe.conn.get_value("Stock Ledger Entry", {"company": self.doc.name}): - frappe.conn.sql("""delete from `tabWarehouse` where company=%s""", self.doc.name) + if not frappe.db.get_value("Stock Ledger Entry", {"company": self.doc.name}): + frappe.db.sql("""delete from `tabWarehouse` where company=%s""", self.doc.name) frappe.defaults.clear_default("company", value=self.doc.name) - frappe.conn.sql("""update `tabSingles` set value="" + frappe.db.sql("""update `tabSingles` set value="" where doctype='Global Defaults' and field='default_company' and value=%s""", self.doc.name) @@ -310,19 +310,19 @@ class DocType: frappe.throw(_("Sorry, companies cannot be merged")) def after_rename(self, olddn, newdn, merge=False): - frappe.conn.set(self.doc, "company_name", newdn) + frappe.db.set(self.doc, "company_name", newdn) - frappe.conn.sql("""update `tabDefaultValue` set defvalue=%s + frappe.db.sql("""update `tabDefaultValue` set defvalue=%s where defkey='Company' and defvalue=%s""", (newdn, olddn)) frappe.defaults.clear_cache() @frappe.whitelist() def replace_abbr(company, old, new): - frappe.conn.set_value("Company", company, "abbr", new) + frappe.db.set_value("Company", company, "abbr", new) def _rename_record(dt): - for d in frappe.conn.sql("select name from `tab%s` where company=%s" % (dt, '%s'), company): + for d in frappe.db.sql("select name from `tab%s` where company=%s" % (dt, '%s'), company): parts = d[0].split(" - ") if parts[-1].lower() == old.lower(): name_without_abbr = " - ".join(parts[:-1]) @@ -330,10 +330,10 @@ def replace_abbr(company, old, new): for dt in ["Account", "Cost Center", "Warehouse"]: _rename_record(dt) - frappe.conn.commit() + frappe.db.commit() def get_name_with_abbr(name, company): - company_abbr = frappe.conn.get_value("Company", company, "abbr") + company_abbr = frappe.db.get_value("Company", company, "abbr") parts = name.split(" - ") if parts[-1].lower() != company_abbr.lower(): diff --git a/erpnext/setup/doctype/currency/currency.py b/erpnext/setup/doctype/currency/currency.py index 5c7097d9e8f..2f6a62af749 100644 --- a/erpnext/setup/doctype/currency/currency.py +++ b/erpnext/setup/doctype/currency/currency.py @@ -12,7 +12,7 @@ class DocType: def validate_conversion_rate(currency, conversion_rate, conversion_rate_label, company): """common validation for currency and price list currency""" - company_currency = frappe.conn.get_value("Company", company, "default_currency") + company_currency = frappe.db.get_value("Company", company, "default_currency") if not conversion_rate: throw(_('%(conversion_rate_label)s is mandatory. Maybe Currency Exchange record is not created for %(from_currency)s to %(to_currency)s') % { diff --git a/erpnext/setup/doctype/customer_group/customer_group.py b/erpnext/setup/doctype/customer_group/customer_group.py index 676e425ed23..547f19fc39d 100644 --- a/erpnext/setup/doctype/customer_group/customer_group.py +++ b/erpnext/setup/doctype/customer_group/customer_group.py @@ -14,7 +14,7 @@ class DocType(DocTypeNestedSet): self.nsm_parent_field = 'parent_customer_group'; def validate(self): - if frappe.conn.sql("select name from `tabCustomer Group` where name = %s and docstatus = 2", + if frappe.db.sql("select name from `tabCustomer Group` where name = %s and docstatus = 2", (self.doc.customer_group_name)): msgprint("""Another %s record is trashed. To untrash please go to Setup -> Recycle Bin.""" % @@ -26,13 +26,13 @@ class DocType(DocTypeNestedSet): self.validate_one_root() def validate_name_with_customer(self): - if frappe.conn.exists("Customer", self.doc.name): + if frappe.db.exists("Customer", self.doc.name): frappe.msgprint("An Customer exists with same name (%s), \ please change the Customer Group name or rename the Customer" % self.doc.name, raise_exception=1) def on_trash(self): - cust = frappe.conn.sql("select name from `tabCustomer` where ifnull(customer_group, '') = %s", + cust = frappe.db.sql("select name from `tabCustomer` where ifnull(customer_group, '') = %s", self.doc.name) cust = [d[0] for d in cust] if cust: @@ -41,7 +41,7 @@ class DocType(DocTypeNestedSet): To trash/delete this, remove/change customer group in customer master""" % (self.doc.name, cust or ''), raise_exception=1) - if frappe.conn.sql("select name from `tabCustomer Group` where parent_customer_group = %s \ + if frappe.db.sql("select name from `tabCustomer Group` where parent_customer_group = %s \ and docstatus != 2", self.doc.name): msgprint("Child customer group exists for this customer group. \ You can not trash/cancel/delete this customer group.", raise_exception=1) diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py index 6632a9eadeb..0cdbcb98b9f 100644 --- a/erpnext/setup/doctype/email_digest/email_digest.py +++ b/erpnext/setup/doctype/email_digest/email_digest.py @@ -49,12 +49,12 @@ class DocType(DocListController): self.doc, self.doclist = doc, doclist self.from_date, self.to_date = self.get_from_to_date() self.future_from_date, self.future_to_date = self.get_future_from_to_date() - self.currency = frappe.conn.get_value("Company", self.doc.company, + self.currency = frappe.db.get_value("Company", self.doc.company, "default_currency") def get_profiles(self): """get list of profiles""" - profile_list = frappe.conn.sql(""" + profile_list = frappe.db.sql(""" select name, enabled from tabProfile where docstatus=0 and name not in ('Administrator', 'Guest') and user_type = "System User" @@ -71,7 +71,7 @@ class DocType(DocListController): def send(self): # send email only to enabled users - valid_users = [p[0] for p in frappe.conn.sql("""select name from `tabProfile` + valid_users = [p[0] for p in frappe.db.sql("""select name from `tabProfile` where enabled=1""")] recipients = filter(lambda r: r in valid_users, self.doc.recipient_list.split("\n")) @@ -153,7 +153,7 @@ class DocType(DocListController): return msg def get_income_year_to_date(self): - return self.get_income(frappe.conn.get_defaults("year_start_date"), + return self.get_income(frappe.db.get_defaults("year_start_date"), self.meta.get_label("income_year_to_date")) def get_bank_balance(self): @@ -339,7 +339,7 @@ class DocType(DocListController): company = """and company="%s" """ % self.doc.company else: company = "" - count = frappe.conn.sql("""select count(*) from `tab%s` + count = frappe.db.sql("""select count(*) from `tab%s` where docstatus=%s %s and date(creation)>=%s and date(creation)<=%s""" % (doctype, docstatus, company, "%s", "%s"), (self.from_date, self.to_date)) @@ -348,7 +348,7 @@ class DocType(DocListController): return count, self.get_html(label, None, count) def get_new_sum(self, doctype, label, sum_field): - count_sum = frappe.conn.sql("""select count(*), sum(ifnull(`%s`, 0)) + count_sum = frappe.db.sql("""select count(*), sum(ifnull(`%s`, 0)) from `tab%s` where docstatus=1 and company = %s and date(creation)>=%s and date(creation)<=%s""" % (sum_field, doctype, "%s", "%s", "%s"), (self.doc.company, self.from_date, self.to_date)) @@ -372,7 +372,7 @@ class DocType(DocListController): hasattr(self, "gl_entries"): return self.gl_entries - gl_entries = frappe.conn.sql("""select `account`, + gl_entries = frappe.db.sql("""select `account`, ifnull(credit, 0) as credit, ifnull(debit, 0) as debit, `against` from `tabGL Entry` where company=%s @@ -388,7 +388,7 @@ class DocType(DocListController): def get_accounts(self): if not hasattr(self, "accounts"): - self.accounts = frappe.conn.sql("""select name, is_pl_account, + self.accounts = frappe.db.sql("""select name, is_pl_account, debit_or_credit, account_type, account_name, master_type from `tabAccount` where company=%s and docstatus < 2 and group_or_ledger = "Ledger" order by lft""", @@ -451,7 +451,7 @@ class DocType(DocListController): return send_date def get_open_tickets(self): - open_tickets = frappe.conn.sql("""select name, subject, modified, raised_by + open_tickets = frappe.db.sql("""select name, subject, modified, raised_by from `tabSupport Ticket` where status='Open' order by modified desc limit 10""", as_dict=True) @@ -479,7 +479,7 @@ def send(): # do not send email digests to expired accounts return - for ed in frappe.conn.sql("""select name from `tabEmail Digest` + for ed in frappe.db.sql("""select name from `tabEmail Digest` where enabled=1 and docstatus<2""", as_list=1): ed_obj = get_obj('Email Digest', ed[0]) if (now_date == ed_obj.get_next_sending()): diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.py b/erpnext/setup/doctype/global_defaults/global_defaults.py index 2bbe507e125..d61ff8a00ef 100644 --- a/erpnext/setup/doctype/global_defaults/global_defaults.py +++ b/erpnext/setup/doctype/global_defaults/global_defaults.py @@ -32,22 +32,22 @@ class DocType: self.update_control_panel() for key in keydict: - frappe.conn.set_default(key, self.doc.fields.get(keydict[key], '')) + frappe.db.set_default(key, self.doc.fields.get(keydict[key], '')) # update year start date and year end date from fiscal_year - year_start_end_date = frappe.conn.sql("""select year_start_date, year_end_date + year_start_end_date = frappe.db.sql("""select year_start_date, year_end_date from `tabFiscal Year` where name=%s""", self.doc.current_fiscal_year) ysd = year_start_end_date[0][0] or '' yed = year_start_end_date[0][1] or '' if ysd and yed: - frappe.conn.set_default('year_start_date', ysd.strftime('%Y-%m-%d')) - frappe.conn.set_default('year_end_date', yed.strftime('%Y-%m-%d')) + frappe.db.set_default('year_start_date', ysd.strftime('%Y-%m-%d')) + frappe.db.set_default('year_end_date', yed.strftime('%Y-%m-%d')) # enable default currency if self.doc.default_currency: - frappe.conn.set_value("Currency", self.doc.default_currency, "enabled", 1) + frappe.db.set_value("Currency", self.doc.default_currency, "enabled", 1) # clear cache frappe.clear_cache() diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py index 2379291f28d..aa1002e66f6 100644 --- a/erpnext/setup/doctype/item_group/item_group.py +++ b/erpnext/setup/doctype/item_group/item_group.py @@ -25,6 +25,6 @@ class DocType(DocTypeNestedSet): self.validate_one_root() def validate_name_with_item(self): - if frappe.conn.exists("Item", self.doc.name): + if frappe.db.exists("Item", self.doc.name): frappe.msgprint("An item exists with same name (%s), please change the \ item group name or rename the item" % self.doc.name, raise_exception=1) diff --git a/erpnext/setup/doctype/item_group/test_item_group.py b/erpnext/setup/doctype/item_group/test_item_group.py index 11697349a9f..0f174ed5991 100644 --- a/erpnext/setup/doctype/item_group/test_item_group.py +++ b/erpnext/setup/doctype/item_group/test_item_group.py @@ -79,18 +79,18 @@ test_records = [ class TestItem(unittest.TestCase): def test_basic_tree(self, records=None): min_lft = 1 - max_rgt = frappe.conn.sql("select max(rgt) from `tabItem Group`")[0][0] + max_rgt = frappe.db.sql("select max(rgt) from `tabItem Group`")[0][0] if not records: records = test_records[2:] for item_group in records: item_group = item_group[0] - lft, rgt, parent_item_group = frappe.conn.get_value("Item Group", item_group["item_group_name"], + lft, rgt, parent_item_group = frappe.db.get_value("Item Group", item_group["item_group_name"], ["lft", "rgt", "parent_item_group"]) if parent_item_group: - parent_lft, parent_rgt = frappe.conn.get_value("Item Group", parent_item_group, + parent_lft, parent_rgt = frappe.db.get_value("Item Group", parent_item_group, ["lft", "rgt"]) else: # root @@ -116,7 +116,7 @@ class TestItem(unittest.TestCase): def get_no_of_children(item_groups, no_of_children): children = [] for ig in item_groups: - children += frappe.conn.sql_list("""select name from `tabItem Group` + children += frappe.db.sql_list("""select name from `tabItem Group` where ifnull(parent_item_group, '')=%s""", ig or '') if len(children): @@ -147,7 +147,7 @@ class TestItem(unittest.TestCase): def test_move_group_into_another(self): # before move - old_lft, old_rgt = frappe.conn.get_value("Item Group", "_Test Item Group C", ["lft", "rgt"]) + old_lft, old_rgt = frappe.db.get_value("Item Group", "_Test Item Group C", ["lft", "rgt"]) # put B under C group_b = frappe.bean("Item Group", "_Test Item Group B") @@ -158,7 +158,7 @@ class TestItem(unittest.TestCase): self.test_basic_tree() # after move - new_lft, new_rgt = frappe.conn.get_value("Item Group", "_Test Item Group C", ["lft", "rgt"]) + new_lft, new_rgt = frappe.db.get_value("Item Group", "_Test Item Group C", ["lft", "rgt"]) # lft should reduce self.assertEquals(old_lft - new_lft, rgt - lft + 1) @@ -180,11 +180,11 @@ class TestItem(unittest.TestCase): def print_tree(self): import json - print json.dumps(frappe.conn.sql("select name, lft, rgt from `tabItem Group` order by lft"), indent=1) + print json.dumps(frappe.db.sql("select name, lft, rgt from `tabItem Group` order by lft"), indent=1) def test_move_leaf_into_another_group(self): # before move - old_lft, old_rgt = frappe.conn.get_value("Item Group", "_Test Item Group C", ["lft", "rgt"]) + old_lft, old_rgt = frappe.db.get_value("Item Group", "_Test Item Group C", ["lft", "rgt"]) group_b_3 = frappe.bean("Item Group", "_Test Item Group B - 3") lft, rgt = group_b_3.doc.lft, group_b_3.doc.rgt @@ -194,7 +194,7 @@ class TestItem(unittest.TestCase): group_b_3.save() self.test_basic_tree() - new_lft, new_rgt = frappe.conn.get_value("Item Group", "_Test Item Group C", ["lft", "rgt"]) + new_lft, new_rgt = frappe.db.get_value("Item Group", "_Test Item Group C", ["lft", "rgt"]) # lft should remain the same self.assertEquals(old_lft - new_lft, 0) @@ -210,11 +210,11 @@ class TestItem(unittest.TestCase): def test_delete_leaf(self): # for checking later - parent_item_group = frappe.conn.get_value("Item Group", "_Test Item Group B - 3", "parent_item_group") - rgt = frappe.conn.get_value("Item Group", parent_item_group, "rgt") + parent_item_group = frappe.db.get_value("Item Group", "_Test Item Group B - 3", "parent_item_group") + rgt = frappe.db.get_value("Item Group", parent_item_group, "rgt") ancestors = get_ancestors_of("Item Group", "_Test Item Group B - 3") - ancestors = frappe.conn.sql("""select name, rgt from `tabItem Group` + ancestors = frappe.db.sql("""select name, rgt from `tabItem Group` where name in ({})""".format(", ".join(["%s"]*len(ancestors))), tuple(ancestors), as_dict=True) frappe.delete_doc("Item Group", "_Test Item Group B - 3") @@ -224,7 +224,7 @@ class TestItem(unittest.TestCase): # rgt of each ancestor would reduce by 2 for item_group in ancestors: - new_lft, new_rgt = frappe.conn.get_value("Item Group", item_group.name, ["lft", "rgt"]) + new_lft, new_rgt = frappe.db.get_value("Item Group", item_group.name, ["lft", "rgt"]) self.assertEquals(new_rgt, item_group.rgt - 2) # insert it back @@ -247,7 +247,7 @@ class TestItem(unittest.TestCase): self.test_basic_tree() # move its children back - for name in frappe.conn.sql_list("""select name from `tabItem Group` + for name in frappe.db.sql_list("""select name from `tabItem Group` where parent_item_group='_Test Item Group C'"""): bean = frappe.bean("Item Group", name) diff --git a/erpnext/setup/doctype/naming_series/naming_series.py b/erpnext/setup/doctype/naming_series/naming_series.py index 5a50b7b3e7f..5b0c9e25e66 100644 --- a/erpnext/setup/doctype/naming_series/naming_series.py +++ b/erpnext/setup/doctype/naming_series/naming_series.py @@ -15,13 +15,13 @@ class DocType: def get_transactions(self, arg=None): return { "transactions": "\n".join([''] + sorted(list(set( - frappe.conn.sql_list("""select parent + frappe.db.sql_list("""select parent from `tabDocField` where fieldname='naming_series'""") - + frappe.conn.sql_list("""select dt from `tabCustom Field` + + frappe.db.sql_list("""select dt from `tabCustom Field` where fieldname='naming_series'""") )))), "prefixes": "\n".join([''] + [i[0] for i in - frappe.conn.sql("""select name from tabSeries order by name""")]) + frappe.db.sql("""select name from tabSeries order by name""")]) } def scrub_options_list(self, ol): @@ -59,7 +59,7 @@ class DocType: from frappe.model.doc import Document prop_dict = {'options': "\n".join(options), 'default': default} for prop in prop_dict: - ps_exists = frappe.conn.sql("""SELECT name FROM `tabProperty Setter` + ps_exists = frappe.db.sql("""SELECT name FROM `tabProperty Setter` WHERE doc_type = %s AND field_name = 'naming_series' AND property = %s""", (doctype, prop)) if ps_exists: @@ -86,11 +86,11 @@ class DocType: dt = DocType() parent = list(set( - frappe.conn.sql_list("""select dt.name + frappe.db.sql_list("""select dt.name from `tabDocField` df, `tabDocType` dt where dt.name = df.parent and df.fieldname='naming_series' and dt.name != %s""", self.doc.select_doc_for_series) - + frappe.conn.sql_list("""select dt.name + + frappe.db.sql_list("""select dt.name from `tabCustom Field` df, `tabDocType` dt where dt.name = df.dt and df.fieldname='naming_series' and dt.name != %s""", self.doc.select_doc_for_series) @@ -126,19 +126,19 @@ class DocType: def get_current(self, arg=None): """get series current""" if self.doc.prefix: - self.doc.current_value = frappe.conn.get_value("Series", + self.doc.current_value = frappe.db.get_value("Series", self.doc.prefix.split('.')[0], "current") def insert_series(self, series): """insert series if missing""" - if not frappe.conn.exists('Series', series): - frappe.conn.sql("insert into tabSeries (name, current) values (%s, 0)", (series)) + if not frappe.db.exists('Series', series): + frappe.db.sql("insert into tabSeries (name, current) values (%s, 0)", (series)) def update_series_start(self): if self.doc.prefix: prefix = self.doc.prefix.split('.')[0] self.insert_series(prefix) - frappe.conn.sql("update `tabSeries` set current = %s where name = %s", + frappe.db.sql("update `tabSeries` set current = %s where name = %s", (self.doc.current_value, prefix)) msgprint(_("Series Updated Successfully")) else: @@ -151,7 +151,7 @@ def set_by_naming_series(doctype, fieldname, naming_series, hide_name_field=True make_property_setter(doctype, "naming_series", "reqd", 1, "Check") # set values for mandatory - frappe.conn.sql("""update `tab{doctype}` set naming_series={s} where + frappe.db.sql("""update `tab{doctype}` set naming_series={s} where ifnull(naming_series, '')=''""".format(doctype=doctype, s="%s"), get_default_naming_series(doctype)) @@ -167,7 +167,7 @@ def set_by_naming_series(doctype, fieldname, naming_series, hide_name_field=True make_property_setter(doctype, fieldname, "reqd", 1, "Check") # set values for mandatory - frappe.conn.sql("""update `tab{doctype}` set `{fieldname}`=`name` where + frappe.db.sql("""update `tab{doctype}` set `{fieldname}`=`name` where ifnull({fieldname}, '')=''""".format(doctype=doctype, fieldname=fieldname)) def get_default_naming_series(doctype): diff --git a/erpnext/setup/doctype/notification_control/notification_control.py b/erpnext/setup/doctype/notification_control/notification_control.py index 23850678bca..c5137461c60 100644 --- a/erpnext/setup/doctype/notification_control/notification_control.py +++ b/erpnext/setup/doctype/notification_control/notification_control.py @@ -13,11 +13,11 @@ class DocType: def get_message(self, arg): fn = arg.lower().replace(' ', '_') + '_message' - v = frappe.conn.sql("select value from tabSingles where field=%s and doctype=%s", (fn, 'Notification Control')) + v = frappe.db.sql("select value from tabSingles where field=%s and doctype=%s", (fn, 'Notification Control')) return v and v[0][0] or '' def set_message(self, arg = ''): fn = self.doc.select_transaction.lower().replace(' ', '_') + '_message' - frappe.conn.set(self.doc, fn, self.doc.custom_message) + frappe.db.set(self.doc, fn, self.doc.custom_message) msgprint("Custom Message for %s updated!" % self.doc.select_transaction) diff --git a/erpnext/setup/doctype/sales_partner/sales_partner.py b/erpnext/setup/doctype/sales_partner/sales_partner.py index 76eaca27d4f..288cadf4162 100644 --- a/erpnext/setup/doctype/sales_partner/sales_partner.py +++ b/erpnext/setup/doctype/sales_partner/sales_partner.py @@ -16,7 +16,7 @@ class DocType(): def get_contacts(self,nm): if nm: - contact_details =frappe.conn.convert_to_lists(frappe.conn.sql("select name, CONCAT(IFNULL(first_name,''),' ',IFNULL(last_name,'')),contact_no,email_id from `tabContact` where sales_partner = '%s'"%nm)) + contact_details =frappe.db.convert_to_lists(frappe.db.sql("select name, CONCAT(IFNULL(first_name,''),' ',IFNULL(last_name,'')),contact_no,email_id from `tabContact` where sales_partner = '%s'"%nm)) return contact_details else: return '' diff --git a/erpnext/setup/doctype/sales_person/sales_person.py b/erpnext/setup/doctype/sales_person/sales_person.py index 6bf2cc321c8..7bf2fd6aba4 100644 --- a/erpnext/setup/doctype/sales_person/sales_person.py +++ b/erpnext/setup/doctype/sales_person/sales_person.py @@ -23,9 +23,9 @@ class DocType(DocTypeNestedSet): self.validate_one_root() def get_email_id(self): - profile = frappe.conn.get_value("Employee", self.doc.employee, "user_id") + profile = frappe.db.get_value("Employee", self.doc.employee, "user_id") if not profile: frappe.throw("User ID (Profile) not set for Employee %s" % self.doc.employee) else: - return frappe.conn.get_value("Profile", profile, "email") or profile + return frappe.db.get_value("Profile", profile, "email") or profile \ No newline at end of file diff --git a/erpnext/setup/install.py b/erpnext/setup/install.py index 0dd79e572d5..35e3534bfa8 100644 --- a/erpnext/setup/install.py +++ b/erpnext/setup/install.py @@ -8,12 +8,12 @@ import frappe def after_install(): import_defaults() import_country_and_currency() - frappe.conn.set_value('Control Panel', None, 'home_page', 'setup-wizard') + frappe.db.set_value('Control Panel', None, 'home_page', 'setup-wizard') feature_setup() from erpnext.setup.page.setup_wizard.setup_wizard import add_all_roles_to add_all_roles_to("Administrator") set_single_defaults() - frappe.conn.commit() + frappe.db.commit() def import_country_and_currency(): from frappe.country_info import get_all @@ -28,7 +28,7 @@ def import_country_and_currency(): "time_zones": "\n".join(country.timezones or []) }).insert() - if country.currency and not frappe.conn.exists("Currency", country.currency): + if country.currency and not frappe.db.exists("Currency", country.currency): frappe.doc({ "doctype": "Currency", "currency_name": country.currency, @@ -133,11 +133,11 @@ def feature_setup(): def set_single_defaults(): sql = "select dt.name, df.fieldname, df.default from `tabDocType` dt, `tabDocField` df where dt.issingle=1 and df.parent=dt.name and ifnull(df.default, '')!=''" - for doctype, field, value in frappe.conn.sql(sql): + for doctype, field, value in frappe.db.sql(sql): b = frappe.bean(doctype, doctype) try: setattr(b.doc.fields, field, value) b.save() except frappe.MandatoryError: pass - frappe.conn.set_default("date_format", "dd-mm-yyyy") + frappe.db.set_default("date_format", "dd-mm-yyyy") diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.py b/erpnext/setup/page/setup_wizard/setup_wizard.py index 3d7b1b5e706..cec6212cf13 100644 --- a/erpnext/setup/page/setup_wizard/setup_wizard.py +++ b/erpnext/setup/page/setup_wizard/setup_wizard.py @@ -10,7 +10,7 @@ from frappe.utils.file_manager import save_file @frappe.whitelist() def setup_account(args=None): - # if frappe.conn.sql("select name from tabCompany"): + # if frappe.db.sql("select name from tabCompany"): # frappe.throw(_("Setup Already Complete!!")) if not args: @@ -31,10 +31,10 @@ def setup_account(args=None): create_items(args) create_customers(args) create_suppliers(args) - frappe.conn.set_value('Control Panel', None, 'home_page', 'desktop') + frappe.db.set_value('Control Panel', None, 'home_page', 'desktop') frappe.clear_cache() - frappe.conn.commit() + frappe.db.commit() # suppress msgprints frappe.local.message_log = [] @@ -61,13 +61,13 @@ def update_profile_name(args): # Update Profile if not args.get('last_name') or args.get('last_name')=='None': args['last_name'] = None - frappe.conn.sql("""update `tabProfile` SET first_name=%(first_name)s, + frappe.db.sql("""update `tabProfile` SET first_name=%(first_name)s, last_name=%(last_name)s WHERE name=%(name)s""", args) if args.get("attach_profile"): filename, filetype, content = args.get("attach_profile").split(",") fileurl = save_file(filename, content, "Profile", args.get("name"), decode=True).file_name - frappe.conn.set_value("Profile", args.get("name"), "user_image", fileurl) + frappe.db.set_value("Profile", args.get("name"), "user_image", fileurl) add_all_roles_to(args.get("name")) @@ -112,14 +112,14 @@ def create_price_lists(args): def set_defaults(args): # enable default currency - frappe.conn.set_value("Currency", args.get("currency"), "enabled", 1) + frappe.db.set_value("Currency", args.get("currency"), "enabled", 1) global_defaults = frappe.bean("Global Defaults", "Global Defaults") global_defaults.doc.fields.update({ 'current_fiscal_year': args.curr_fiscal_year, 'default_currency': args.get('currency'), 'default_company':args.get('company_name'), - 'date_format': frappe.conn.get_value("Country", args.get("country"), "date_format"), + 'date_format': frappe.db.get_value("Country", args.get("country"), "date_format"), "float_precision": 3, "country": args.get("country"), "time_zone": args.get("time_zone") @@ -181,9 +181,9 @@ def create_email_digest(): if not system_managers: return - companies = frappe.conn.sql_list("select name FROM `tabCompany`") + companies = frappe.db.sql_list("select name FROM `tabCompany`") for company in companies: - if not frappe.conn.exists("Email Digest", "Default Weekly Digest - " + company): + if not frappe.db.exists("Email Digest", "Default Weekly Digest - " + company): edigest = frappe.bean({ "doctype": "Email Digest", "name": "Default Weekly Digest - " + company, @@ -253,7 +253,7 @@ def create_items(args): if args.get("item_img_" + str(i)): filename, filetype, content = args.get("item_img_" + str(i)).split(",") fileurl = save_file(filename, content, "Item", item, decode=True).file_name - frappe.conn.set_value("Item", item, "image", fileurl) + frappe.db.set_value("Item", item, "image", fileurl) for i in xrange(1,6): item = args.get("item_buy_" + str(i)) @@ -274,7 +274,7 @@ def create_items(args): if args.get("item_img_" + str(i)): filename, filetype, content = args.get("item_img_" + str(i)).split(",") fileurl = save_file(filename, content, "Item", item, decode=True).file_name - frappe.conn.set_value("Item", item, "image", fileurl) + frappe.db.set_value("Item", item, "image", fileurl) def create_customers(args): @@ -330,13 +330,13 @@ def create_letter_head(args): filename, filetype, content = args.get("attach_letterhead").split(",") fileurl = save_file(filename, content, "Letter Head", "Standard", decode=True).file_name - frappe.conn.set_value("Letter Head", "Standard", "content", "' + signature + '
' @@ -41,16 +41,16 @@ class DocType(TransactionBase): email_id = email.utils.parseaddr(email_id) if email_id: if not self.doc.lead: - self.doc.lead = frappe.conn.get_value("Lead", {"email_id": email_id}) + self.doc.lead = frappe.db.get_value("Lead", {"email_id": email_id}) if not self.doc.contact: - self.doc.contact = frappe.conn.get_value("Contact", {"email_id": email_id}) + self.doc.contact = frappe.db.get_value("Contact", {"email_id": email_id}) if not self.doc.company: - self.doc.company = frappe.conn.get_value("Lead", self.doc.lead, "company") or \ - frappe.conn.get_default("company") + self.doc.company = frappe.db.get_value("Lead", self.doc.lead, "company") or \ + frappe.db.get_default("company") def update_status(self): - status = frappe.conn.get_value("Support Ticket", self.doc.name, "status") + status = frappe.db.get_value("Support Ticket", self.doc.name, "status") if self.doc.status!="Open" and status =="Open" and not self.doc.first_responded_on: self.doc.first_responded_on = now() if self.doc.status=="Closed" and status !="Closed": @@ -65,6 +65,6 @@ def set_status(name, status): st.save() def auto_close_tickets(): - frappe.conn.sql("""update `tabSupport Ticket` set status = 'Closed' + frappe.db.sql("""update `tabSupport Ticket` set status = 'Closed' where status = 'Replied' and date_sub(curdate(),interval 15 Day) > modified""") diff --git a/erpnext/utilities/cleanup_data.py b/erpnext/utilities/cleanup_data.py index 9b1988e411f..d8c342d1282 100644 --- a/erpnext/utilities/cleanup_data.py +++ b/erpnext/utilities/cleanup_data.py @@ -34,9 +34,9 @@ def delete_transactions(): "Job Applicant", "Web Page", "Website Slideshow", "Blog Post", "Blog Category", "Blogger", "Time Log", "Time Log Batch", "Workflow"] for d in trans: - for t in frappe.conn.sql("select options from tabDocField where parent='%s' and fieldtype='Table'" % d): - frappe.conn.sql("delete from `tab%s`" % (t)) - frappe.conn.sql("delete from `tab%s`" % (d)) + for t in frappe.db.sql("select options from tabDocField where parent='%s' and fieldtype='Table'" % d): + frappe.db.sql("delete from `tab%s`" % (t)) + frappe.db.sql("delete from `tab%s`" % (d)) print "Deleted " + d @@ -95,18 +95,18 @@ def delete_masters(): 'BOM': '' } for d in masters.keys(): - for t in frappe.conn.sql("select options from tabDocField where parent='%s' \ + for t in frappe.db.sql("select options from tabDocField where parent='%s' \ and fieldtype='Table'" % d): - frappe.conn.sql("delete from `tab%s`" % (t)) + frappe.db.sql("delete from `tab%s`" % (t)) lst = '"'+'","'.join(masters[d])+ '"' - frappe.conn.sql("delete from `tab%s` where name not in (%s)" % (d, lst)) + frappe.db.sql("delete from `tab%s` where name not in (%s)" % (d, lst)) print "Deleted " + d def reset_all_series(): # Reset master series - frappe.conn.sql("""update tabSeries set current = 0 where name not in + frappe.db.sql("""update tabSeries set current = 0 where name not in ('Ann/', 'BSD', 'DEF', 'DF', 'EV', 'Event Updates/', 'FileData-', 'FL', 'FMD/', 'GLM Detail', 'Login Page/', 'MDI', 'MDR', 'MI', 'MIR', 'PERM', 'PR', 'SRCH/C/', 'TD', 'TIC/', 'TMD/', 'TW', 'UR', '_FEED', @@ -115,7 +115,7 @@ def reset_all_series(): print "Series updated" def reset_transaction_series(): - frappe.conn.sql("""update tabSeries set current = 0 where name in + frappe.db.sql("""update tabSeries set current = 0 where name in ('JV', 'INV', 'BILL', 'SO', 'DN', 'PO', 'LEAD', 'ENQUIRY', 'ENQ', 'CI', 'IN', 'PS', 'IDT', 'QAI', 'QTN', 'STE', 'SQTN', 'SUP', 'SR', 'POS', 'LAP', 'LAL', 'EXP')""") @@ -125,9 +125,9 @@ def reset_transaction_series(): def delete_main_masters(): main_masters = ['Fiscal Year', 'Company', 'DefaultValue'] for d in main_masters: - for t in frappe.conn.sql("select options from tabDocField where parent='%s' and fieldtype='Table'" % d): - frappe.conn.sql("delete from `tab%s`" % (t)) - frappe.conn.sql("delete from `tab%s`" % (d)) + for t in frappe.db.sql("select options from tabDocField where parent='%s' and fieldtype='Table'" % d): + frappe.db.sql("delete from `tab%s`" % (t)) + frappe.db.sql("delete from `tab%s`" % (d)) print "Deleted " + d def reset_global_defaults(): @@ -163,7 +163,7 @@ def reset_global_defaults(): def run(): frappe.connect() - frappe.conn.begin() + frappe.db.begin() # Confirmation from user confirm = '' @@ -195,8 +195,8 @@ def run(): reset_global_defaults() print "System cleaned up succesfully" - frappe.conn.commit() - frappe.conn.close() + frappe.db.commit() + frappe.db.close() if __name__ == '__main__': diff --git a/erpnext/utilities/doctype/address/address.py b/erpnext/utilities/doctype/address/address.py index 988cbd2eaeb..b80f13a337d 100644 --- a/erpnext/utilities/doctype/address/address.py +++ b/erpnext/utilities/doctype/address/address.py @@ -34,7 +34,7 @@ class DocType: elif self.doc.is_shipping_address != 1: for fieldname in ["customer", "supplier", "sales_partner", "lead"]: if self.doc.fields.get(fieldname): - if not frappe.conn.sql("""select name from `tabAddress` where is_primary_address=1 + if not frappe.db.sql("""select name from `tabAddress` where is_primary_address=1 and `%s`=%s and name!=%s""" % (fieldname, "%s", "%s"), (self.doc.fields[fieldname], self.doc.name)): self.doc.is_primary_address = 1 @@ -48,14 +48,14 @@ class DocType: def _unset_other(self, is_address_type): for fieldname in ["customer", "supplier", "sales_partner", "lead"]: if self.doc.fields.get(fieldname): - frappe.conn.sql("""update `tabAddress` set `%s`=0 where `%s`=%s and name!=%s""" % + frappe.db.sql("""update `tabAddress` set `%s`=0 where `%s`=%s and name!=%s""" % (is_address_type, fieldname, "%s", "%s"), (self.doc.fields[fieldname], self.doc.name)) break @frappe.whitelist() def get_address_display(address_dict): if not isinstance(address_dict, dict): - address_dict = frappe.conn.get_value("Address", address_dict, "*", as_dict=True) or {} + address_dict = frappe.db.get_value("Address", address_dict, "*", as_dict=True) or {} meta = frappe.get_doctype("Address") sequence = (("", "address_line1"), diff --git a/erpnext/utilities/doctype/contact/contact.py b/erpnext/utilities/doctype/contact/contact.py index 2b9c8ca5081..cc7ffc0488d 100644 --- a/erpnext/utilities/doctype/contact/contact.py +++ b/erpnext/utilities/doctype/contact/contact.py @@ -30,24 +30,24 @@ class DocType(StatusUpdater): def validate_primary_contact(self): if self.doc.is_primary_contact == 1: if self.doc.customer: - frappe.conn.sql("update tabContact set is_primary_contact=0 where customer = '%s'" % (self.doc.customer)) + frappe.db.sql("update tabContact set is_primary_contact=0 where customer = '%s'" % (self.doc.customer)) elif self.doc.supplier: - frappe.conn.sql("update tabContact set is_primary_contact=0 where supplier = '%s'" % (self.doc.supplier)) + frappe.db.sql("update tabContact set is_primary_contact=0 where supplier = '%s'" % (self.doc.supplier)) elif self.doc.sales_partner: - frappe.conn.sql("update tabContact set is_primary_contact=0 where sales_partner = '%s'" % (self.doc.sales_partner)) + frappe.db.sql("update tabContact set is_primary_contact=0 where sales_partner = '%s'" % (self.doc.sales_partner)) else: if self.doc.customer: - if not frappe.conn.sql("select name from tabContact where is_primary_contact=1 and customer = '%s'" % (self.doc.customer)): + if not frappe.db.sql("select name from tabContact where is_primary_contact=1 and customer = '%s'" % (self.doc.customer)): self.doc.is_primary_contact = 1 elif self.doc.supplier: - if not frappe.conn.sql("select name from tabContact where is_primary_contact=1 and supplier = '%s'" % (self.doc.supplier)): + if not frappe.db.sql("select name from tabContact where is_primary_contact=1 and supplier = '%s'" % (self.doc.supplier)): self.doc.is_primary_contact = 1 elif self.doc.sales_partner: - if not frappe.conn.sql("select name from tabContact where is_primary_contact=1 and sales_partner = '%s'" % (self.doc.sales_partner)): + if not frappe.db.sql("select name from tabContact where is_primary_contact=1 and sales_partner = '%s'" % (self.doc.sales_partner)): self.doc.is_primary_contact = 1 def on_trash(self): - frappe.conn.sql("""update `tabSupport Ticket` set contact='' where contact=%s""", + frappe.db.sql("""update `tabSupport Ticket` set contact='' where contact=%s""", self.doc.name) @frappe.whitelist() diff --git a/erpnext/utilities/doctype/note/note.py b/erpnext/utilities/doctype/note/note.py index 50afa7e4836..99846d9f9b7 100644 --- a/erpnext/utilities/doctype/note/note.py +++ b/erpnext/utilities/doctype/note/note.py @@ -23,6 +23,6 @@ class DocType: def validate(self): if not self.doc.fields.get("__islocal"): if frappe.session.user != self.doc.owner: - if frappe.session.user not in frappe.conn.sql_list("""select user from `tabNote User` + if frappe.session.user not in frappe.db.sql_list("""select user from `tabNote User` where parent=%s and permission='Edit'""", self.doc.name): frappe.msgprint("You are not authorized to edit this record.", raise_exception=True) diff --git a/erpnext/utilities/doctype/rename_tool/rename_tool.py b/erpnext/utilities/doctype/rename_tool/rename_tool.py index b6422822776..835e6471e76 100644 --- a/erpnext/utilities/doctype/rename_tool/rename_tool.py +++ b/erpnext/utilities/doctype/rename_tool/rename_tool.py @@ -13,7 +13,7 @@ class DocType: @frappe.whitelist() def get_doctypes(): - return frappe.conn.sql_list("""select name from tabDocType + return frappe.db.sql_list("""select name from tabDocType where ifnull(allow_rename,0)=1 and module!='Core' order by name""") @frappe.whitelist() @@ -45,7 +45,7 @@ def upload(select_doctype=None, rows=None): try: if rename_doc(select_doctype, row[0], row[1]): rename_log.append(_("Successful: ") + row[0] + " -> " + row[1]) - frappe.conn.commit() + frappe.db.commit() else: rename_log.append(_("Ignored: ") + row[0] + " -> " + row[1]) except Exception, e: diff --git a/erpnext/utilities/doctype/sms_control/sms_control.py b/erpnext/utilities/doctype/sms_control/sms_control.py index 14ae9891a26..832c443a8df 100644 --- a/erpnext/utilities/doctype/sms_control/sms_control.py +++ b/erpnext/utilities/doctype/sms_control/sms_control.py @@ -33,10 +33,10 @@ class DocType: def get_sender_name(self): "returns name as SMS sender" - sender_name = frappe.conn.get_value('Global Defaults', None, 'sms_sender_name') or \ + sender_name = frappe.db.get_value('Global Defaults', None, 'sms_sender_name') or \ 'ERPNXT' if len(sender_name) > 6 and \ - frappe.conn.get_value("Control Panel", None, "country") == "India": + frappe.db.get_value("Control Panel", None, "country") == "India": throw(_(""" As per TRAI rule, sender name must be exactly 6 characters. Kindly change sender name in Setup --> Global Defaults. @@ -48,7 +48,7 @@ class DocType: def get_contact_number(self, arg): "returns mobile number of the contact" args = json.loads(arg) - number = frappe.conn.sql("""select mobile_no, phone from tabContact where name=%s and %s=%s""" % + number = frappe.db.sql("""select mobile_no, phone from tabContact where name=%s and %s=%s""" % ('%s', args['key'], '%s'), (args['contact_name'], args['value'])) return number and (number[0][0] or number[0][1]) or '' @@ -66,7 +66,7 @@ class DocType: 'sender_name' : sender_name or self.get_sender_name() } - if frappe.conn.get_value('SMS Settings', None, 'sms_gateway_url'): + if frappe.db.get_value('SMS Settings', None, 'sms_gateway_url'): ret = self.send_via_gateway(arg) msgprint(ret) diff --git a/erpnext/utilities/repost_stock.py b/erpnext/utilities/repost_stock.py index c31eb531d36..b9211fb2486 100644 --- a/erpnext/utilities/repost_stock.py +++ b/erpnext/utilities/repost_stock.py @@ -11,21 +11,21 @@ def repost(allow_negative_stock=False): """ Repost everything! """ - frappe.conn.auto_commit_on_many_writes = 1 + frappe.db.auto_commit_on_many_writes = 1 if allow_negative_stock: - frappe.conn.set_default("allow_negative_stock", 1) + frappe.db.set_default("allow_negative_stock", 1) - for d in frappe.conn.sql("""select distinct item_code, warehouse from + for d in frappe.db.sql("""select distinct item_code, warehouse from (select item_code, warehouse from tabBin union select item_code, warehouse from `tabStock Ledger Entry`) a"""): repost_stock(d[0], d[1], allow_negative_stock) if allow_negative_stock: - frappe.conn.set_default("allow_negative_stock", - frappe.conn.get_value("Stock Settings", None, "allow_negative_stock")) - frappe.conn.auto_commit_on_many_writes = 0 + frappe.db.set_default("allow_negative_stock", + frappe.db.get_value("Stock Settings", None, "allow_negative_stock")) + frappe.db.auto_commit_on_many_writes = 0 def repost_stock(item_code, warehouse): repost_actual_qty(item_code, warehouse) @@ -46,7 +46,7 @@ def repost_actual_qty(item_code, warehouse): pass def get_reserved_qty(item_code, warehouse): - reserved_qty = frappe.conn.sql(""" + reserved_qty = frappe.db.sql(""" select sum((dnpi_qty / so_item_qty) * (so_item_qty - so_item_delivered_qty)) from @@ -88,7 +88,7 @@ def get_reserved_qty(item_code, warehouse): return flt(reserved_qty[0][0]) if reserved_qty else 0 def get_indented_qty(item_code, warehouse): - indented_qty = frappe.conn.sql("""select sum(pr_item.qty - ifnull(pr_item.ordered_qty, 0)) + indented_qty = frappe.db.sql("""select sum(pr_item.qty - ifnull(pr_item.ordered_qty, 0)) from `tabMaterial Request Item` pr_item, `tabMaterial Request` pr where pr_item.item_code=%s and pr_item.warehouse=%s and pr_item.qty > ifnull(pr_item.ordered_qty, 0) and pr_item.parent=pr.name @@ -97,7 +97,7 @@ def get_indented_qty(item_code, warehouse): return flt(indented_qty[0][0]) if indented_qty else 0 def get_ordered_qty(item_code, warehouse): - ordered_qty = frappe.conn.sql(""" + ordered_qty = frappe.db.sql(""" select sum((po_item.qty - ifnull(po_item.received_qty, 0))*po_item.conversion_factor) from `tabPurchase Order Item` po_item, `tabPurchase Order` po where po_item.item_code=%s and po_item.warehouse=%s @@ -107,7 +107,7 @@ def get_ordered_qty(item_code, warehouse): return flt(ordered_qty[0][0]) if ordered_qty else 0 def get_planned_qty(item_code, warehouse): - planned_qty = frappe.conn.sql(""" + planned_qty = frappe.db.sql(""" select sum(ifnull(qty, 0) - ifnull(produced_qty, 0)) from `tabProduction Order` where production_item = %s and fg_warehouse = %s and status != "Stopped" and docstatus=1 and ifnull(qty, 0) > ifnull(produced_qty, 0)""", (item_code, warehouse)) diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py index 18017140637..e84cdf93ee9 100644 --- a/erpnext/utilities/transaction_base.py +++ b/erpnext/utilities/transaction_base.py @@ -12,9 +12,9 @@ from erpnext.controllers.status_updater import StatusUpdater class TransactionBase(StatusUpdater): def load_notification_message(self): dt = self.doc.doctype.lower().replace(" ", "_") - if int(frappe.conn.get_value("Notification Control", None, dt) or 0): + if int(frappe.db.get_value("Notification Control", None, dt) or 0): self.doc.fields["__notification_message"] = \ - frappe.conn.get_value("Notification Control", None, dt + "_message") + frappe.db.get_value("Notification Control", None, dt + "_message") def validate_posting_time(self): if not self.doc.posting_time: @@ -28,7 +28,7 @@ class TransactionBase(StatusUpdater): self._add_calendar_event(opts) def delete_events(self): - frappe.delete_doc("Event", frappe.conn.sql_list("""select name from `tabEvent` + frappe.delete_doc("Event", frappe.db.sql_list("""select name from `tabEvent` where ref_type=%s and ref_name=%s""", (self.doc.doctype, self.doc.name)), ignore_permissions=True) @@ -47,7 +47,7 @@ class TransactionBase(StatusUpdater): "ref_name": self.doc.name }] - if frappe.conn.exists("Profile", self.doc.contact_by): + if frappe.db.exists("Profile", self.doc.contact_by): event_doclist.append({ "doctype": "Event User", "parentfield": "event_individuals", @@ -84,7 +84,7 @@ class TransactionBase(StatusUpdater): def compare_values(self, ref_doc, fields, doc=None): for ref_doctype, ref_dn_list in ref_doc.items(): for ref_docname in ref_dn_list: - prevdoc_values = frappe.conn.get_value(ref_doctype, ref_docname, + prevdoc_values = frappe.db.get_value(ref_doctype, ref_docname, [d[0] for d in fields], as_dict=1) for field, condition in fields: @@ -92,7 +92,7 @@ class TransactionBase(StatusUpdater): self.validate_value(field, condition, prevdoc_values[field], doc) def delete_events(ref_type, ref_name): - frappe.delete_doc("Event", frappe.conn.sql_list("""select name from `tabEvent` + frappe.delete_doc("Event", frappe.db.sql_list("""select name from `tabEvent` where ref_type=%s and ref_name=%s""", (ref_type, ref_name)), for_reload=True) class UOMMustBeIntegerError(frappe.ValidationError): pass @@ -101,7 +101,7 @@ def validate_uom_is_integer(doclist, uom_field, qty_fields): if isinstance(qty_fields, basestring): qty_fields = [qty_fields] - integer_uoms = filter(lambda uom: frappe.conn.get_value("UOM", uom, + integer_uoms = filter(lambda uom: frappe.db.get_value("UOM", uom, "must_be_whole_number") or None, doclist.get_distinct_values(uom_field)) if not integer_uoms: