Create price list if missing
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 02c651f..f7342c1 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -59,3 +59,4 @@
erpnext.patches.v4_0.save_default_letterhead
erpnext.patches.v4_0.update_custom_print_formats_for_renamed_fields
erpnext.patches.v4_0.update_other_charges_in_custom_purchase_print_formats
+erpnext.patches.v4_0.create_price_list_if_missing
diff --git a/erpnext/patches/v4_0/create_price_list_if_missing.py b/erpnext/patches/v4_0/create_price_list_if_missing.py
new file mode 100644
index 0000000..eeeae19
--- /dev/null
+++ b/erpnext/patches/v4_0/create_price_list_if_missing.py
@@ -0,0 +1,28 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+from frappe.utils.nestedset import get_root_of
+
+def execute():
+ if not frappe.db.sql("select name from `tabPrice List` where buying=1"):
+ create_price_list(_("Standard Buying"), buying=1)
+
+ if not frappe.db.sql("select name from `tabPrice List` where selling=1"):
+ create_price_list(_("Standard Selling"), selling=1)
+
+def create_price_list(pl_name, buying=0, selling=0):
+ price_list = frappe.get_doc({
+ "doctype": "Price List",
+ "price_list_name": pl_name,
+ "enabled": 1,
+ "buying": buying,
+ "selling": selling,
+ "currency": frappe.db.get_default("currency"),
+ "valid_for_territories": [{
+ "territory": get_root_of("Territory")
+ }]
+ })
+ price_list.insert()
diff --git a/erpnext/stock/doctype/price_list/price_list.py b/erpnext/stock/doctype/price_list/price_list.py
index d992488..a4ff250 100644
--- a/erpnext/stock/doctype/price_list/price_list.py
+++ b/erpnext/stock/doctype/price_list/price_list.py
@@ -51,6 +51,7 @@
if self.name == b.get(price_list_fieldname):
b.set(price_list_fieldname, None)
+ b.ignore_permissions = True
b.save()
for module in ["Selling", "Buying"]: