Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index aa82492..05723ce 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -89,11 +89,11 @@
return ret
def set_supplier_defaults(self):
- self.doc.fields.update(self.get_cust())
+ self.doc.fields.update(self.get_supplier())
self.doc.fields.update(self.get_credit_to())
super(DocType, self).set_supplier_defaults()
- def get_cust(self):
+ def get_supplier(self):
ret = {}
if self.doc.credit_to:
acc = webnotes.conn.get_value('Account',self.doc.credit_to,['master_name', 'credit_days'])
diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py
index a44ceba..47c28f5 100644
--- a/controllers/buying_controller.py
+++ b/controllers/buying_controller.py
@@ -47,17 +47,12 @@
# set contact and address details for supplier, if they are not mentioned
if self.doc.supplier and not (self.doc.contact_person and self.doc.supplier_address):
- for fieldname, val in self.get_default_address_and_contact("supplier").items():
+ for fieldname, val in self.get_supplier_defaults().items():
if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
self.doc.fields[fieldname] = val
self.set_missing_item_details(get_item_details)
- def set_supplier_defaults(self):
- for fieldname, val in self.get_default_address_and_contact("supplier").items():
- if self.meta.get_field(fieldname):
- self.doc.fields[fieldname] = val
-
def get_purchase_tax_details(self):
self.doclist = self.doc.clear_table(self.doclist, "purchase_tax_details")
self.set_taxes("purchase_tax_details", "purchase_other_charges")
diff --git a/manufacturing/doctype/bom/bom.py b/manufacturing/doctype/bom/bom.py
index 94f3d20..7dba6ea 100644
--- a/manufacturing/doctype/bom/bom.py
+++ b/manufacturing/doctype/bom/bom.py
@@ -97,9 +97,10 @@
""" Get raw material details like uom, desc and rate"""
if not args:
args = webnotes.form_dict.get('args')
-
- import json
- args = json.loads(args)
+
+ if isinstance(args, basestring):
+ import json
+ args = json.loads(args)
item = self.get_item_det(args['item_code'])
self.validate_rm_item(item)
diff --git a/patches/july_2013/p10_change_partner_user_to_website_user.py b/patches/july_2013/p10_change_partner_user_to_website_user.py
new file mode 100644
index 0000000..50bc671
--- /dev/null
+++ b/patches/july_2013/p10_change_partner_user_to_website_user.py
@@ -0,0 +1,9 @@
+import webnotes
+
+def execute():
+ webnotes.conn.sql("""update `tabProfile` set user_type="Website User" where user_type="Partner" """)
+ webnotes.conn.sql("""update `tabProfile` set user_type="System User" where ifnull(user_type, "")="" """)
+
+ webnotes.conn.sql("""update `tabProfile` set user_type='System User'
+ where user_type='Website User' and exists (select name from `tabUserRole`
+ where parent=`tabProfile`.name)""")
\ No newline at end of file
diff --git a/patches/march_2013/p09_unset_user_type_partner.py b/patches/march_2013/p09_unset_user_type_partner.py
deleted file mode 100644
index cc5cdce..0000000
--- a/patches/march_2013/p09_unset_user_type_partner.py
+++ /dev/null
@@ -1,6 +0,0 @@
-import webnotes
-
-def execute():
- webnotes.conn.sql("""update `tabProfile` set user_type='System User'
- where user_type='Partner' and exists (select name from `tabUserRole`
- where parent=`tabProfile`.name)""")
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index d622cd6..9b6bb0f 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -194,7 +194,6 @@
"execute:webnotes.reload_doc('website', 'doctype', 'web_page') #2013-03-25",
"execute:webnotes.reload_doc('setup', 'doctype', 'sales_partner') #2013-06-25",
"execute:webnotes.conn.set_value('Email Settings', None, 'send_print_in_body_and_attachment', 1)",
- "patches.march_2013.p09_unset_user_type_partner",
"patches.march_2013.p10_set_fiscal_year_for_stock",
"patches.march_2013.p10_update_against_expense_account",
"patches.march_2013.p11_update_attach_files",
@@ -262,4 +261,5 @@
"execute:webnotes.reload_doc('stock', 'Print Format', 'Delivery Note Spartan') # 2013-07-22",
"patches.july_2013.p08_custom_print_format_net_total_export",
"patches.july_2013.p09_remove_website_pyc",
+ "patches.july_2013.p10_change_partner_user_to_website_user",
]
\ No newline at end of file
diff --git a/startup/event_handlers.py b/startup/event_handlers.py
index 3f14542..d19f9e6 100644
--- a/startup/event_handlers.py
+++ b/startup/event_handlers.py
@@ -30,7 +30,7 @@
login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D')
webnotes.conn.commit()
- if webnotes.conn.get_value("Profile", webnotes.session.user, "user_type") == "Partner":
+ if webnotes.conn.get_value("Profile", webnotes.session.user, "user_type") == "Website User":
from website.helpers.cart import set_cart_count
set_cart_count()
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index 2900bf6..14c23b8 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -94,8 +94,10 @@
webnotes.conn.get_value("Customer Group", self.doc.customer_group, "default_price_list") or \
self.doc.price_list
- self.doc.fields.update(customer_defaults)
-
+ for fieldname, val in customer_defaults.items():
+ if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
+ self.doc.fields[fieldname] = val
+
if self.meta.get_field("sales_team"):
self.set_sales_team_for_customer()
@@ -121,7 +123,21 @@
# add child
self.doclist.append(sales_person)
-
+
+ def get_supplier_defaults(self):
+ out = self.get_default_address_and_contact("supplier")
+
+ supplier = webnotes.doc("Supplier", self.doc.supplier)
+ out["supplier_name"] = supplier.supplier_name
+ out["currency"] = supplier.default_currency
+
+ return out
+
+ def set_supplier_defaults(self):
+ for fieldname, val in self.get_supplier_defaults().items():
+ if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
+ self.doc.fields[fieldname] = val
+
def get_lead_defaults(self):
out = self.get_default_address_and_contact("lead")