diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.txt b/accounts/doctype/purchase_invoice/purchase_invoice.txt index 64b9f5c66b..44cd20ff58 100755 --- a/accounts/doctype/purchase_invoice/purchase_invoice.txt +++ b/accounts/doctype/purchase_invoice/purchase_invoice.txt @@ -2,7 +2,7 @@ { "creation": "2013-05-21 16:16:39", "docstatus": 0, - "modified": "2013-07-09 12:51:06", + "modified": "2013-07-23 15:27:03", "modified_by": "Administrator", "owner": "Administrator" }, @@ -273,7 +273,7 @@ "label": "Price List Currency", "options": "Currency", "print_hide": 1, - "read_only": 0 + "read_only": 1 }, { "depends_on": "price_list_name", diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt index e3c60a0a5c..a04fca41b3 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.txt +++ b/accounts/doctype/sales_invoice/sales_invoice.txt @@ -2,7 +2,7 @@ { "creation": "2013-05-24 19:29:05", "docstatus": 0, - "modified": "2013-07-09 12:48:05", + "modified": "2013-07-23 15:28:32", "modified_by": "Administrator", "owner": "Administrator" }, @@ -279,7 +279,7 @@ "label": "Price List Currency", "options": "Currency", "print_hide": 1, - "read_only": 0, + "read_only": 1, "reqd": 1 }, { diff --git a/buying/doctype/purchase_order/purchase_order.txt b/buying/doctype/purchase_order/purchase_order.txt index bb310aacd1..a79d98e2b9 100644 --- a/buying/doctype/purchase_order/purchase_order.txt +++ b/buying/doctype/purchase_order/purchase_order.txt @@ -2,7 +2,7 @@ { "creation": "2013-05-21 16:16:39", "docstatus": 0, - "modified": "2013-07-19 22:04:17", + "modified": "2013-07-23 15:26:28", "modified_by": "Administrator", "owner": "Administrator" }, @@ -225,7 +225,8 @@ "fieldtype": "Link", "label": "Price List Currency", "options": "Currency", - "print_hide": 1 + "print_hide": 1, + "read_only": 1 }, { "depends_on": "price_list_name", diff --git a/buying/doctype/supplier_quotation/supplier_quotation.txt b/buying/doctype/supplier_quotation/supplier_quotation.txt index 3cb5046f21..e18e0111c7 100644 --- a/buying/doctype/supplier_quotation/supplier_quotation.txt +++ b/buying/doctype/supplier_quotation/supplier_quotation.txt @@ -2,7 +2,7 @@ { "creation": "2013-05-21 16:16:45", "docstatus": 0, - "modified": "2013-07-09 12:49:31", + "modified": "2013-07-23 15:27:23", "modified_by": "Administrator", "owner": "Administrator" }, @@ -222,7 +222,8 @@ "fieldtype": "Link", "label": "Price List Currency", "options": "Currency", - "print_hide": 1 + "print_hide": 1, + "read_only": 1 }, { "depends_on": "price_list_name", diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py index 7bcc92e118..acb6077759 100644 --- a/controllers/accounts_controller.py +++ b/controllers/accounts_controller.py @@ -57,10 +57,7 @@ class AccountsController(TransactionBase): # TODO - change this, since price list now has only one currency allowed if self.meta.get_field("price_list_name") and self.doc.price_list_name and \ not self.doc.price_list_currency: - self.doc.fields.update(get_price_list_currency({ - "price_list_name": self.doc.price_list_name, - "buying_or_selling": buying_or_selling - })) + self.doc.fields.update(get_price_list_currency(self.doc.price_list_name)) if self.doc.price_list_currency: if not self.doc.plc_conversion_rate: diff --git a/public/js/transaction.js b/public/js/transaction.js index 421a7a53d2..8770ba958a 100644 --- a/public/js/transaction.js +++ b/public/js/transaction.js @@ -74,14 +74,9 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ company: function() { if(this.frm.doc.company && this.frm.fields_dict.currency) { - var me = this; var company_currency = this.get_company_currency(); - $.each(["currency", "price_list_currency"], function(i, fieldname) { - if(!me.frm.doc[fieldname]) { - me.frm.set_value(fieldname, company_currency); - me.script_manager.trigger(fieldname); - } - }); + this.frm.set_value("currency", company_currency); + this.frm.script_manager.trigger("currency"); } }, @@ -123,10 +118,9 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ if(this.frm.doc.price_list_name) { this.frm.call({ method: "setup.utils.get_price_list_currency", - args: { args: { + args: { price_list_name: this.frm.doc.price_list_name, - buying_or_selling: buying_or_selling - }}, + }, callback: function(r) { if(!r.exc) { me.price_list_currency(); diff --git a/public/js/utils.js b/public/js/utils.js index 743c02bd0d..96b312f3ce 100644 --- a/public/js/utils.js +++ b/public/js/utils.js @@ -20,7 +20,7 @@ $.extend(erpnext, { if(!company && cur_frm) company = cur_frm.doc.company; if(company) - return wn.model.get(":Company", company).default_currency || wn.boot.sysdefaults.currency; + return wn.model.get_doc(":Company", company).default_currency || wn.boot.sysdefaults.currency; else return wn.boot.sysdefaults.currency; }, diff --git a/selling/doctype/quotation/quotation.txt b/selling/doctype/quotation/quotation.txt index 19eefa344e..7f16466fb4 100644 --- a/selling/doctype/quotation/quotation.txt +++ b/selling/doctype/quotation/quotation.txt @@ -2,7 +2,7 @@ { "creation": "2013-05-24 19:29:08", "docstatus": 0, - "modified": "2013-07-09 12:48:56", + "modified": "2013-07-23 15:27:53", "modified_by": "Administrator", "owner": "Administrator" }, @@ -301,7 +301,7 @@ "label": "Price List Currency", "options": "Currency", "print_hide": 1, - "read_only": 0, + "read_only": 1, "reqd": 1 }, { diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js index 45a9b5b7f0..e3e5f87f13 100644 --- a/selling/doctype/sales_common/sales_common.js +++ b/selling/doctype/sales_common/sales_common.js @@ -112,6 +112,14 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ } }); } + + if(this.frm.fields_dict.sales_team && this.frm.fields_dict.sales_team.grid.get_field("sales_person")) { + this.frm.set_query("sales_person", "sales_team", function() { + return { + filters: { is_group: "No" } + }; + }); + } }, refresh: function(doc) { @@ -189,6 +197,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ barcode: item.barcode, warehouse: item.warehouse, doctype: me.frm.doc.doctype, + parentfield: item.parentfield, customer: me.frm.doc.customer, currency: me.frm.doc.currency, conversion_rate: me.frm.doc.conversion_rate, @@ -287,13 +296,13 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ warehouse: function(doc, cdt, cdn) { var item = wn.model.get_doc(cdt, cdn); - if(item.item_code && (item.warehouse || item.reserved_warehouse)) { + if(item.item_code && item.warehouse) { this.frm.call({ method: "selling.utils.get_available_qty", child: item, args: { item_code: item.item_code, - warehouse: item.warehouse || item.reserved_warehouse, + warehouse: item.warehouse, }, }); } diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js index 4368d5ba75..7eeb22d23e 100644 --- a/selling/doctype/sales_order/sales_order.js +++ b/selling/doctype/sales_order/sales_order.js @@ -97,11 +97,21 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend( tc_name: function() { this.get_terms(); }, - - reserved_warehouse: function(doc, cdt, cdn) { - this.warehouse(doc, cdt, cdn); - }, + reserved_warehouse: function(doc, cdt, cdn) { + var item = wn.model.get_doc(cdt, cdn); + if(item.item_code && item.reserved_warehouse) { + this.frm.call({ + method: "selling.utils.get_available_qty", + child: item, + args: { + item_code: item.item_code, + warehouse: item.reserved_warehouse, + }, + }); + } + }, + make_material_request: function() { wn.model.open_mapped_doc({ method: "selling.doctype.sales_order.sales_order.make_material_request", diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py index b67510ddac..210e56f04d 100644 --- a/selling/doctype/sales_order/sales_order.py +++ b/selling/doctype/sales_order/sales_order.py @@ -366,7 +366,7 @@ def make_material_request(source_name, target_doclist=None): } }, target_doclist, postprocess) - return [d.fields for d in doclist] + return [(d if isinstance(d, dict) else d.fields) for d in doclist] @webnotes.whitelist() def make_delivery_note(source_name, target_doclist=None): diff --git a/selling/doctype/sales_order/sales_order.txt b/selling/doctype/sales_order/sales_order.txt index 37c9e21b27..3e6cbe4ac7 100644 --- a/selling/doctype/sales_order/sales_order.txt +++ b/selling/doctype/sales_order/sales_order.txt @@ -2,7 +2,7 @@ { "creation": "2013-06-18 12:39:59", "docstatus": 0, - "modified": "2013-07-09 12:47:46", + "modified": "2013-07-23 15:27:39", "modified_by": "Administrator", "owner": "Administrator" }, @@ -311,6 +311,7 @@ "label": "Price List Currency", "options": "Currency", "print_hide": 1, + "read_only": 1, "reqd": 1 }, { diff --git a/selling/utils.py b/selling/utils.py index cbfaee736d..bf4f0811ec 100644 --- a/selling/utils.py +++ b/selling/utils.py @@ -58,9 +58,15 @@ def get_item_details(args): _validate_item_details(args, item_bean.doc) - out = _get_basic_details(args, item_bean) - meta = webnotes.get_doctype(args.doctype) + + # hack! for Sales Order Item + warehouse_fieldname = "warehouse" + if meta.get_field("reserved_warehouse", parentfield=args.parentfield): + warehouse_fieldname = "reserved_warehouse" + + out = _get_basic_details(args, item_bean, warehouse_fieldname) + if meta.get_field("currency"): out.base_ref_rate = out.basic_rate = out.ref_rate = out.export_rate = 0.0 @@ -69,8 +75,8 @@ def get_item_details(args): out.update(_get_item_discount(out.item_group, args.customer)) - if out.warehouse or out.reserved_warehouse: - out.update(get_available_qty(args.item_code, out.warehouse or out.reserved_warehouse)) + if out.get(warehouse_fieldname): + out.update(get_available_qty(args.item_code, out.get(warehouse_fieldname))) out.customer_item_code = _get_customer_item_code(args, item_bean) @@ -108,13 +114,13 @@ def _validate_item_details(args, item): msgprint(_("Item") + (" %s: " % item.name) + _("not a sales item"), raise_exception=True) -def _get_basic_details(args, item_bean): +def _get_basic_details(args, item_bean, warehouse_fieldname): item = item_bean.doc + out = webnotes._dict({ "item_code": item.name, "description": item.description_html or item.description, - "reserved_warehouse": item.default_warehouse or args.warehouse or args.reserved_warehouse, - "warehouse": item.default_warehouse or args.warehouse, + warehouse_fieldname: item.default_warehouse or args.get(warehouse_fieldname), "income_account": item.default_income_account or args.income_account \ or webnotes.conn.get_value("Company", args.company, "default_income_account"), "expense_account": item.purchase_account or args.expense_account \ diff --git a/setup/utils.py b/setup/utils.py index e1463fa0d6..adfa4f7fbb 100644 --- a/setup/utils.py +++ b/setup/utils.py @@ -44,20 +44,6 @@ def get_ancestors_of(doctype, name): return result or [] @webnotes.whitelist() -def get_price_list_currency(args): - """ - args = { - "price_list_name": "Something", - "buying_or_selling": "Buying" or "Selling" - } - """ - if isinstance(args, basestring): - args = json.loads(args) - - result = webnotes.conn.sql("""select distinct ref_currency from `tabItem Price` - where price_list_name=%s and buying_or_selling=%s""", - (args.get("price_list_name"), args.get("buying_or_selling"))) - if result and len(result)==1: - return {"price_list_currency": result[0][0]} - else: - return {} \ No newline at end of file +def get_price_list_currency(price_list_name): + return {"price_list_currency": webnotes.conn.get_value("Price List", price_list_name, + "currency")} \ No newline at end of file diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt index cfdd8cd5ab..aa9530fa9a 100644 --- a/stock/doctype/delivery_note/delivery_note.txt +++ b/stock/doctype/delivery_note/delivery_note.txt @@ -2,7 +2,7 @@ { "creation": "2013-05-24 19:29:09", "docstatus": 0, - "modified": "2013-07-09 12:48:27", + "modified": "2013-07-23 15:28:18", "modified_by": "Administrator", "owner": "Administrator" }, @@ -303,7 +303,7 @@ "label": "Price List Currency", "options": "Currency", "print_hide": 1, - "read_only": 0, + "read_only": 1, "reqd": 1 }, { diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/stock/doctype/purchase_receipt/purchase_receipt.txt index 94136aed49..f5b64d263e 100755 --- a/stock/doctype/purchase_receipt/purchase_receipt.txt +++ b/stock/doctype/purchase_receipt/purchase_receipt.txt @@ -2,7 +2,7 @@ { "creation": "2013-05-21 16:16:39", "docstatus": 0, - "modified": "2013-07-09 12:50:25", + "modified": "2013-07-23 15:26:50", "modified_by": "Administrator", "owner": "Administrator" }, @@ -251,7 +251,8 @@ "hidden": 0, "label": "Price List Currency", "options": "Currency", - "print_hide": 1 + "print_hide": 1, + "read_only": 1 }, { "depends_on": "price_list_name",