diff --git a/accounts/doctype/pos_setting/pos_setting.js b/accounts/doctype/pos_setting/pos_setting.js index f472d3a063..18f555b919 100755 --- a/accounts/doctype/pos_setting/pos_setting.js +++ b/accounts/doctype/pos_setting/pos_setting.js @@ -6,7 +6,7 @@ cur_frm.cscript.onload = function(doc,cdt,cdn){ if(r.message) set_field_options('naming_series', r.message); }); - cur_frm.set_query("price_list_name", function() { + cur_frm.set_query("selling_price_list", function() { return { filters: { buying_or_selling: "Selling" } }; }); } diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.txt b/accounts/doctype/purchase_invoice/purchase_invoice.txt index 05efb6ce9e..f5bdd939a8 100755 --- a/accounts/doctype/purchase_invoice/purchase_invoice.txt +++ b/accounts/doctype/purchase_invoice/purchase_invoice.txt @@ -250,7 +250,7 @@ "read_only": 0 }, { - "depends_on": "price_list_name", + "depends_on": "buying_price_list", "doctype": "DocField", "fieldname": "price_list_currency", "fieldtype": "Link", @@ -260,7 +260,7 @@ "read_only": 1 }, { - "depends_on": "price_list_name", + "depends_on": "buying_price_list", "doctype": "DocField", "fieldname": "plc_conversion_rate", "fieldtype": "Float", diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js index 5a473a8b18..67ba33c245 100644 --- a/buying/doctype/purchase_common/purchase_common.js +++ b/buying/doctype/purchase_common/purchase_common.js @@ -18,8 +18,8 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ setup_queries: function() { var me = this; - if(this.frm.fields_dict.price_list_name) { - this.frm.set_query("price_list_name", function() { + if(this.frm.fields_dict.buying_price_list) { + this.frm.set_query("buying_price_list", function() { return{ filters: { 'buying_or_selling': "Buying" } } @@ -29,7 +29,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ return{ query: "controllers.queries.get_price_list_currency", filters: { - 'price_list_name': me.frm.doc.price_list_name, + 'price_list': me.frm.doc.buying_price_list, 'buying_or_selling': "Buying" } } @@ -77,7 +77,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ msgprint(wn._("Please specify Company")); } else { var me = this; - var price_list_name = this.frm.doc.price_list_name; + var buying_price_list = this.frm.doc.buying_price_list; return this.frm.call({ doc: this.frm.doc, @@ -85,7 +85,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ freeze: true, callback: function(r) { if(!r.exc) { - if(me.frm.doc.price_list_name !== price_list_name) me.price_list_name(); + if(me.frm.doc.buying_price_list !== buying_price_list) me.buying_price_list(); } } }); @@ -132,7 +132,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ docname: me.frm.doc.name, supplier: me.frm.doc.supplier, conversion_rate: me.frm.doc.conversion_rate, - price_list_name: me.frm.doc.price_list_name, + buying_price_list: me.frm.doc.buying_price_list, price_list_currency: me.frm.doc.price_list_currency, plc_conversion_rate: me.frm.doc.plc_conversion_rate, is_subcontracted: me.frm.doc.is_subcontracted, @@ -151,8 +151,8 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ } }, - price_list_name: function() { - this._super("buying"); + buying_price_list: function() { + this.get_price_list_currency("buying"); }, import_ref_rate: function(doc, cdt, cdn) { diff --git a/buying/doctype/purchase_order/purchase_order.txt b/buying/doctype/purchase_order/purchase_order.txt index 9dffcd4308..1134d95504 100644 --- a/buying/doctype/purchase_order/purchase_order.txt +++ b/buying/doctype/purchase_order/purchase_order.txt @@ -218,7 +218,7 @@ "print_hide": 1 }, { - "depends_on": "price_list_name", + "depends_on": "buying_price_list", "doctype": "DocField", "fieldname": "price_list_currency", "fieldtype": "Link", @@ -228,7 +228,7 @@ "read_only": 1 }, { - "depends_on": "price_list_name", + "depends_on": "buying_price_list", "doctype": "DocField", "fieldname": "plc_conversion_rate", "fieldtype": "Float", diff --git a/buying/doctype/supplier_quotation/supplier_quotation.py b/buying/doctype/supplier_quotation/supplier_quotation.py index 8ba0045dac..c3d2f78451 100644 --- a/buying/doctype/supplier_quotation/supplier_quotation.py +++ b/buying/doctype/supplier_quotation/supplier_quotation.py @@ -10,7 +10,7 @@ class DocType(BuyingController): def __init__(self, doc, doclist=None): self.doc, self.doclist = doc, doclist or [] self.tname, self.fname = "Supplier Quotation Item", "quotation_items" - + def validate(self): super(DocType, self).validate() diff --git a/buying/doctype/supplier_quotation/supplier_quotation.txt b/buying/doctype/supplier_quotation/supplier_quotation.txt index a7c58054d7..36747d345a 100644 --- a/buying/doctype/supplier_quotation/supplier_quotation.txt +++ b/buying/doctype/supplier_quotation/supplier_quotation.txt @@ -215,7 +215,7 @@ "print_hide": 1 }, { - "depends_on": "price_list_name", + "depends_on": "buying_price_list", "doctype": "DocField", "fieldname": "price_list_currency", "fieldtype": "Link", @@ -225,7 +225,7 @@ "read_only": 1 }, { - "depends_on": "price_list_name", + "depends_on": "buying_price_list", "doctype": "DocField", "fieldname": "plc_conversion_rate", "fieldtype": "Float", diff --git a/buying/utils.py b/buying/utils.py index 29beb29239..33326d9e59 100644 --- a/buying/utils.py +++ b/buying/utils.py @@ -18,7 +18,7 @@ def get_item_details(args): "supplier": None, "transaction_date": None, "conversion_rate": 1.0, - "price_list_name": None, + "buying_price_list": None, "price_list_currency": None, "plc_conversion_rate": 1.0, "is_subcontracted": "Yes" / "No" @@ -88,10 +88,10 @@ def _get_price_list_rate(args, item_bean, meta): out = webnotes._dict() # try fetching from price list - if args.price_list_name and args.price_list_currency: + if args.buying_price_list and args.price_list_currency: price_list_rate = item_bean.doclist.get({ "parentfield": "ref_rate_details", - "price_list_name": args.price_list_name, + "price_list": args.buying_price_list, "ref_currency": args.price_list_currency, "buying_or_selling": "Buying"}) if price_list_rate: diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py index 3676510500..6d4a6ad53b 100644 --- a/controllers/accounts_controller.py +++ b/controllers/accounts_controller.py @@ -55,10 +55,11 @@ class AccountsController(TransactionBase): def set_price_list_currency(self, buying_or_selling): company_currency = get_company_currency(self.doc.company) + fieldname = buying_or_selling.lower() + "_price_list" # 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 \ + if self.meta.get_field(fieldname) and self.doc.fields.get(fieldname) and \ not self.doc.price_list_currency: - self.doc.fields.update(get_price_list_currency(self.doc.price_list_name)) + self.doc.fields.update(get_price_list_currency(self.doc.fields.get(fieldname))) if self.doc.price_list_currency: if not self.doc.plc_conversion_rate: @@ -73,11 +74,14 @@ class AccountsController(TransactionBase): self.doc.currency = self.doc.price_list_currency self.doc.conversion_rate = self.doc.plc_conversion_rate - if self.meta.get_field("currency") and self.doc.currency != company_currency and \ - not self.doc.conversion_rate: - exchange = self.doc.currency + "-" + company_currency - self.doc.conversion_rate = flt(webnotes.conn.get_value("Currency Exchange", - exchange, "exchange_rate")) + if self.meta.get_field("currency"): + if self.doc.currency != company_currency: + if not self.doc.conversion_rate: + exchange = self.doc.currency + "-" + company_currency + self.doc.conversion_rate = flt(webnotes.conn.get_value("Currency Exchange", + exchange, "exchange_rate")) + else: + self.doc.conversion_rate = 1 def set_missing_item_details(self, get_item_details): """set missing item values""" diff --git a/controllers/queries.py b/controllers/queries.py index df7b7c528e..381d2c8b4d 100644 --- a/controllers/queries.py +++ b/controllers/queries.py @@ -187,10 +187,10 @@ def get_project_name(doctype, txt, searchfield, start, page_len, filters): def get_price_list_currency(doctype, txt, searchfield, start, page_len, filters): return webnotes.conn.sql("""select ref_currency from `tabItem Price` - where price_list_name = %s and buying_or_selling = %s + where price_list = %s and buying_or_selling = %s and `%s` like %s order by ref_currency asc limit %s, %s""" % ("%s", "%s", searchfield, "%s", "%s", "%s"), - (filters["price_list_name"], filters['buying_or_selling'], "%%%s%%" % txt, + (filters["price_list"], filters['buying_or_selling'], "%%%s%%" % txt, start, page_len)) def get_delivery_notes_to_be_billed(doctype, txt, searchfield, start, page_len, filters): diff --git a/docs/docs.dev.api.md b/docs/docs.dev.api.md index 4a6118337d..0f694b5ac7 100644 --- a/docs/docs.dev.api.md +++ b/docs/docs.dev.api.md @@ -122,7 +122,7 @@ in ERPNext. "plc_conversion_rate": 1.0, "posting_date": "2013-01-23", "price_list_currency": "INR", - "price_list_name": "_Test Price List", + "selling_price_list": "_Test Price List", "territory": "_Test Territory" }, diff --git a/manufacturing/doctype/bom/bom.py b/manufacturing/doctype/bom/bom.py index 3780ae82ef..cb4b8c5236 100644 --- a/manufacturing/doctype/bom/bom.py +++ b/manufacturing/doctype/bom/bom.py @@ -119,9 +119,9 @@ class DocType: elif self.doc.rm_cost_as_per == 'Last Purchase Rate': rate = arg['last_purchase_rate'] elif self.doc.rm_cost_as_per == "Price List": - if not self.doc.price_list: + if not self.doc.buying_price_list: webnotes.throw(_("Please select Price List")) - rate = webnotes.conn.get_value("Item Price", {"price_list_name": self.doc.price_list, + rate = webnotes.conn.get_value("Item Price", {"price_list": self.doc.buying_price_list, "parent": arg["item_code"]}, "ref_rate") or 0 elif self.doc.rm_cost_as_per == 'Standard Rate': rate = arg['standard_rate'] @@ -255,7 +255,7 @@ class DocType: (bom_no, item), as_dict =1) if not bom: msgprint("""Incorrect BOM No: %s against item: %s at row no: %s. - It may be inactive or cancelled or for some other item.""" % + It may be inactive or not submitted or does not belong to this item.""" % (bom_no, item, idx), raise_exception = 1) def check_if_item_repeated(self, item, op, check_list): diff --git a/manufacturing/doctype/production_planning_tool/production_planning_tool.py b/manufacturing/doctype/production_planning_tool/production_planning_tool.py index ad3eff1707..766f2ac233 100644 --- a/manufacturing/doctype/production_planning_tool/production_planning_tool.py +++ b/manufacturing/doctype/production_planning_tool/production_planning_tool.py @@ -105,7 +105,8 @@ class DocType: def get_items(self): so_list = filter(None, [d.sales_order for d in getlist(self.doclist, 'pp_so_details')]) if not so_list: - msgprint("Please enter sales order in the above table", raise_exception=1) + msgprint("Please enter sales order in the above table") + return [] items = sql("""select distinct parent, item_code, reserved_warehouse, (qty - ifnull(delivered_qty, 0)) as pending_qty @@ -294,8 +295,12 @@ class DocType: webnotes.msgprint("Please enter Warehouse for which Material Request will be raised", raise_exception=1) - bom_dict = self.get_distinct_items_and_boms()[0] + bom_dict = self.get_distinct_items_and_boms()[0] self.get_raw_materials(bom_dict) + + if not self.item_dict: + return + item_projected_qty = self.get_projected_qty() from accounts.utils import get_fiscal_year @@ -315,7 +320,6 @@ class DocType: def get_projected_qty(self): items = self.item_dict.keys() - item_projected_qty = webnotes.conn.sql("""select item_code, sum(projected_qty) from `tabBin` where item_code in (%s) group by item_code""" % (", ".join(["%s"]*len(items)),), tuple(items)) diff --git a/patches/august_2013/p02_rename_price_list.py b/patches/august_2013/p02_rename_price_list.py index e1ee612c66..c29c563157 100644 --- a/patches/august_2013/p02_rename_price_list.py +++ b/patches/august_2013/p02_rename_price_list.py @@ -15,9 +15,19 @@ def execute(): ("Item Price", "price_list_name", "price_list"), ("BOM", "price_list", "buying_price_list"), ]: - webnotes.conn.sql_ddl("alter table `tab%s` change `%s` `%s` varchar(180)" % t) + if t[2] in webnotes.conn.get_table_columns(t[0]): + # already reloaded, so copy into new column and drop old column + webnotes.conn.sql("""update `tab%s` set `%s`=`%s`""" % (t[0], t[2], t[1])) + webnotes.conn.sql("""alter table `tab%s` drop column `%s`""" % (t[0], t[1])) + else: + webnotes.conn.sql_ddl("alter table `tab%s` change `%s` `%s` varchar(180)" % t) + + webnotes.reload_doc(webnotes.conn.get_value("DocType", t[0], "module"), "DocType", t[0]) webnotes.conn.sql("""update tabSingles set field='selling_price_list' where field='price_list_name' and doctype='Selling Settings'""") - - webnotes.bean("Selling Settings").save() \ No newline at end of file + + webnotes.reload_doc("Selling", "DocType", "Selling Settings") + webnotes.bean("Selling Settings").save() + + diff --git a/public/js/transaction.js b/public/js/transaction.js index c4601dd0c9..e460982f70 100644 --- a/public/js/transaction.js +++ b/public/js/transaction.js @@ -114,13 +114,14 @@ erpnext.TransactionController = erpnext.stock.StockController.extend({ this.calculate_taxes_and_totals(); }, - price_list_name: function(buying_or_selling) { + get_price_list_currency: function(buying_or_selling) { var me = this; - if(this.frm.doc.price_list_name) { + var fieldname = buying_or_selling.toLowerCase() + "_price_list"; + if(this.frm.doc[fieldname]) { return this.frm.call({ method: "setup.utils.get_price_list_currency", args: { - price_list_name: this.frm.doc.price_list_name, + price_list: this.frm.doc[fieldname], }, callback: function(r) { if(!r.exc) { diff --git a/selling/doctype/quotation/test_quotation.py b/selling/doctype/quotation/test_quotation.py index 41d50e7930..cf3881d0c3 100644 --- a/selling/doctype/quotation/test_quotation.py +++ b/selling/doctype/quotation/test_quotation.py @@ -44,7 +44,7 @@ test_records = [ "order_type": "Sales", "plc_conversion_rate": 1.0, "price_list_currency": "INR", - "price_list_name": "_Test Price List", + "selling_price_list": "_Test Price List", "territory": "_Test Territory", "transaction_date": "2013-02-21", "grand_total": 1000.0, diff --git a/selling/doctype/sales_bom/sales_bom.py b/selling/doctype/sales_bom/sales_bom.py index a6b123a3c3..8bcac1771f 100644 --- a/selling/doctype/sales_bom/sales_bom.py +++ b/selling/doctype/sales_bom/sales_bom.py @@ -32,7 +32,7 @@ class DocType: det = webnotes.conn.sql("""select description, stock_uom from `tabItem` where name = %s""", name) rate = webnotes.conn.sql("""select ref_rate from `tabItem Price` - where price_list_name = %s and parent = %s + where price_list = %s and parent = %s and ref_currency = %s""", (self.doc.price_list, name, self.doc.currency)) return { 'description' : det and det[0][0] or '', diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js index 80b1d95bbf..fe90b5b35b 100644 --- a/selling/doctype/sales_common/sales_common.js +++ b/selling/doctype/sales_common/sales_common.js @@ -45,8 +45,8 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ }); } - if(this.frm.fields_dict.price_list_name) { - this.frm.set_query("price_list_name", function() { + if(this.frm.fields_dict.selling_price_list) { + this.frm.set_query("selling_price_list", function() { return { filters: { buying_or_selling: "Selling" } }; }); @@ -54,7 +54,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ return { query: "controllers.queries.get_price_list_currency", filters: { - price_list_name: me.frm.doc.price_list_name, + price_list: me.frm.doc.selling_price_list, buying_or_selling: "Selling" } }; @@ -126,15 +126,15 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ this.frm.set_value("customer", null); msgprint(wn._("Please specify Company")); } else { - var price_list_name = this.frm.doc.price_list_name; + var selling_price_list = this.frm.doc.selling_price_list; return this.frm.call({ doc: this.frm.doc, method: "set_customer_defaults", freeze: true, callback: function(r) { if(!r.exc) { - (me.frm.doc.price_list_name !== price_list_name) ? - me.price_list_name() : + (me.frm.doc.selling_price_list !== selling_price_list) ? + me.selling_price_list() : me.price_list_currency(); } } @@ -188,7 +188,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ customer: me.frm.doc.customer, currency: me.frm.doc.currency, conversion_rate: me.frm.doc.conversion_rate, - price_list_name: me.frm.doc.price_list_name, + selling_price_list: me.frm.doc.selling_price_list, price_list_currency: me.frm.doc.price_list_currency, plc_conversion_rate: me.frm.doc.plc_conversion_rate, company: me.frm.doc.company, @@ -206,8 +206,8 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ } }, - price_list_name: function() { - this._super("Selling"); + selling_price_list: function() { + this.get_price_list_currency("Selling"); }, ref_rate: function(doc, cdt, cdn) { diff --git a/selling/doctype/sales_order/test_sales_order.py b/selling/doctype/sales_order/test_sales_order.py index aa632a3d50..9fd16e8c29 100644 --- a/selling/doctype/sales_order/test_sales_order.py +++ b/selling/doctype/sales_order/test_sales_order.py @@ -289,7 +289,7 @@ test_records = [ "delivery_date": "2013-02-23", "plc_conversion_rate": 1.0, "price_list_currency": "INR", - "price_list_name": "_Test Price List", + "selling_price_list": "_Test Price List", "territory": "_Test Territory", "transaction_date": "2013-02-21", "grand_total": 1000.0, diff --git a/selling/utils.py b/selling/utils.py index 858312a3da..7ccad6a9c4 100644 --- a/selling/utils.py +++ b/selling/utils.py @@ -29,7 +29,7 @@ def get_item_details(args): "warehouse": None, "customer": "", "conversion_rate": 1.0, - "price_list_name": None, + "selling_price_list": None, "price_list_currency": None, "plc_conversion_rate": 1.0 } @@ -57,7 +57,7 @@ def get_item_details(args): if meta.get_field("currency"): out.base_ref_rate = out.basic_rate = out.ref_rate = out.export_rate = 0.0 - if args.price_list_name and args.price_list_currency: + if args.selling_price_list and args.price_list_currency: out.update(_get_price_list_rate(args, item_bean, meta)) out.update(_get_item_discount(out.item_group, args.customer)) @@ -129,7 +129,7 @@ def _get_basic_details(args, item_bean, warehouse_fieldname): def _get_price_list_rate(args, item_bean, meta): base_ref_rate = item_bean.doclist.get({ "parentfield": "ref_rate_details", - "price_list_name": args.price_list_name, + "price_list": args.selling_price_list, "ref_currency": args.price_list_currency, "buying_or_selling": "Selling"}) diff --git a/setup/doctype/price_list/price_list.js b/setup/doctype/price_list/price_list.js index d11c4bacf9..5de8da5585 100644 --- a/setup/doctype/price_list/price_list.js +++ b/setup/doctype/price_list/price_list.js @@ -19,7 +19,7 @@ $.extend(cur_frm.cscript, { }, show_item_prices: function() { - var item_price = wn.model.get("Item Price", {price_list_name: cur_frm.doc.name}); + var item_price = wn.model.get("Item Price", {price_list: cur_frm.doc.name}); var show = item_price && item_price.length; diff --git a/setup/doctype/price_list/price_list.py b/setup/doctype/price_list/price_list.py index 2a44e7bc0c..112ce95e59 100644 --- a/setup/doctype/price_list/price_list.py +++ b/setup/doctype/price_list/price_list.py @@ -11,7 +11,7 @@ import webnotes.defaults class DocType(DocListController): def onload(self): self.doclist.extend(webnotes.conn.sql("""select * from `tabItem Price` - where price_list_name=%s""", self.doc.name, as_dict=True, update={"doctype": "Item Price"})) + where price_list=%s""", self.doc.name, as_dict=True, update={"doctype": "Item Price"})) def validate(self): if self.doc.buying_or_selling not in ["Buying", "Selling"]: @@ -31,10 +31,20 @@ class DocType(DocListController): self.validate_table_has_rows("valid_for_territories") def on_update(self): + self.set_default_if_missing() cart_settings = webnotes.get_obj("Shopping Cart Settings") if cint(cart_settings.doc.enabled): cart_settings.validate_price_lists() def on_trash(self): - webnotes.conn.sql("""delete from `tabItem Price` where price_list_name = %s""", - self.doc.name) \ No newline at end of file + webnotes.conn.sql("""delete from `tabItem Price` where price_list = %s""", + self.doc.name) + + def set_default_if_missing(self): + if self.doc.buying_or_selling=="Selling": + if not webnotes.conn.get_value("Selling Settings", None, "selling_price_list"): + webnotes.set_value("Selling Settings", "Selling Settings", "selling_price_list", self.doc.name) + + elif self.doc.buying_or_selling=="Buying": + if not webnotes.conn.get_value("Buying Settings", None, "buying_price_list"): + webnotes.set_value("Buying Settings", "Buying Settings", "buying_price_list", self.doc.name) \ No newline at end of file diff --git a/setup/utils.py b/setup/utils.py index b0aa8897e9..3d0c1ee187 100644 --- a/setup/utils.py +++ b/setup/utils.py @@ -31,6 +31,6 @@ def get_ancestors_of(doctype, name): return result or [] @webnotes.whitelist() -def get_price_list_currency(price_list_name): - return {"price_list_currency": webnotes.conn.get_value("Price List", price_list_name, +def get_price_list_currency(price_list): + return {"price_list_currency": webnotes.conn.get_value("Price List", price_list, "currency")} \ No newline at end of file diff --git a/stock/doctype/delivery_note/test_delivery_note.py b/stock/doctype/delivery_note/test_delivery_note.py index 505cad312e..2e3ab07688 100644 --- a/stock/doctype/delivery_note/test_delivery_note.py +++ b/stock/doctype/delivery_note/test_delivery_note.py @@ -111,7 +111,7 @@ test_records = [ "posting_date": "2013-02-21", "posting_time": "9:00:00", "price_list_currency": "INR", - "price_list_name": "_Test Price List", + "selling_price_list": "_Test Price List", "status": "Draft", "territory": "_Test Territory", "net_total": 500.0, diff --git a/stock/doctype/item/item.js b/stock/doctype/item/item.js index 7f433804ed..abf1e9e658 100644 --- a/stock/doctype/item/item.js +++ b/stock/doctype/item/item.js @@ -5,16 +5,16 @@ wn.provide("erpnext.stock"); erpnext.stock.Item = wn.ui.form.Controller.extend({ onload: function() { - this.frm.add_fetch("price_list_name", "currency", "ref_currency"); - this.frm.add_fetch("price_list_name", "buying_or_selling", "buying_or_selling"); + this.frm.add_fetch("price_list", "currency", "ref_currency"); + this.frm.add_fetch("price_list", "buying_or_selling", "buying_or_selling"); }, ref_rate_details_add: function(doc, cdt, cdn) { var row = wn.model.get_doc(cdt, cdn); - if(row.price_list_name && !row.ref_currency) { + if(row.price_list && !row.ref_currency) { // execute fetch - var df = wn.meta.get_docfield(row.doctype, "price_list_name", row.parent); - this.frm.script_manager.validate_link_and_fetch(df, row.name, row.price_list_name); + var df = wn.meta.get_docfield(row.doctype, "price_list", row.parent); + this.frm.script_manager.validate_link_and_fetch(df, row.name, row.price_list); } } }); diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py index cd70117c1a..9ae1bfd83c 100644 --- a/stock/doctype/item/item.py +++ b/stock/doctype/item/item.py @@ -130,16 +130,16 @@ class DocType(DocListController): def validate_price_lists(self): price_lists=[] for d in getlist(self.doclist,'ref_rate_details'): - if d.price_list_name in price_lists: - msgprint(_("Cannot have two prices for same Price List") + ": " + d.price_list_name, + if d.price_list in price_lists: + msgprint(_("Cannot have two prices for same Price List") + ": " + d.price_list, raise_exception= webnotes.DuplicateEntryError) else: - price_list_currency = webnotes.conn.get_value("Price List", d.price_list_name, "currency") + price_list_currency = webnotes.conn.get_value("Price List", d.price_list, "currency") if price_list_currency and d.ref_currency != price_list_currency: msgprint(_("Currency does not match Price List Currency for Price List") \ - + ": " + d.price_list_name, raise_exception=PriceListCurrencyMismatch) + + ": " + d.price_list, raise_exception=PriceListCurrencyMismatch) - price_lists.append(d.price_list_name) + price_lists.append(d.price_list) def fill_customer_code(self): diff --git a/stock/doctype/item/test_item.py b/stock/doctype/item/test_item.py index c28ba4fd2f..a1d7852c58 100644 --- a/stock/doctype/item/test_item.py +++ b/stock/doctype/item/test_item.py @@ -61,7 +61,7 @@ test_records = [ }, { "doctype": "Item Price", "parentfield": "ref_rate_details", - "price_list_name": "_Test Price List", + "price_list": "_Test Price List", "ref_rate": 100, "ref_currency": "INR", "buying_or_selling": "Selling" diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/stock/doctype/purchase_receipt/purchase_receipt.txt index b93ec07315..11846435ce 100755 --- a/stock/doctype/purchase_receipt/purchase_receipt.txt +++ b/stock/doctype/purchase_receipt/purchase_receipt.txt @@ -244,7 +244,7 @@ "print_hide": 1 }, { - "depends_on": "price_list_name", + "depends_on": "buying_price_list", "doctype": "DocField", "fieldname": "price_list_currency", "fieldtype": "Link", @@ -255,7 +255,7 @@ "read_only": 1 }, { - "depends_on": "price_list_name", + "depends_on": "buying_price_list", "doctype": "DocField", "fieldname": "plc_conversion_rate", "fieldtype": "Float", diff --git a/stock/report/item_prices/item_prices.py b/stock/report/item_prices/item_prices.py index fbeba7c2f9..0a6b29a723 100644 --- a/stock/report/item_prices/item_prices.py +++ b/stock/report/item_prices/item_prices.py @@ -58,7 +58,7 @@ def get_price_list(): rate = {} price_list = webnotes.conn.sql("""select parent, selling, buying, - concat(price_list_name, " - ", ref_currency, " ", ref_rate) as price + concat(price_list, " - ", ref_currency, " ", ref_rate) as price from `tabItem Price` where docstatus<2""", as_dict=1) for j in price_list: diff --git a/stock/report/item_wise_price_list/item_wise_price_list.txt b/stock/report/item_wise_price_list/item_wise_price_list.txt index 824c603597..2d5996a92e 100644 --- a/stock/report/item_wise_price_list/item_wise_price_list.txt +++ b/stock/report/item_wise_price_list/item_wise_price_list.txt @@ -2,7 +2,7 @@ { "creation": "2013-02-22 18:01:55", "docstatus": 0, - "modified": "2013-05-07 11:50:46", + "modified": "2013-05-07 11:52:00", "modified_by": "Administrator", "owner": "Administrator" }, @@ -10,7 +10,7 @@ "doctype": "Report", "is_standard": "Yes", "name": "__common__", - "query": "select\n item.name as \"ID:Link/Item:120\", \n item.item_name as \"Item Name::120\", \n item_price.price_list_name as \"Price List::80\",\n item_price.ref_currency as \"Currency::40\", \n item_price.ref_rate as \"Rate:Float:80\",\n item.description as \"Description::160\",\n item.item_group as \"Item Group:Link/Item Group:100\",\n item.brand as \"Brand::100\"\nfrom `tabItem` item, `tabItem Price` item_price\nwhere\n item_price.parent = item.name", + "query": "select\n item.name as \"ID:Link/Item:120\", \n item.item_name as \"Item Name::120\", \n item_price.price_list as \"Price List::80\",\n item_price.ref_currency as \"Currency::40\", \n item_price.ref_rate as \"Rate:Float:80\",\n item.description as \"Description::160\",\n item.item_group as \"Item Group:Link/Item Group:100\",\n item.brand as \"Brand::100\"\nfrom `tabItem` item, `tabItem Price` item_price\nwhere\n item_price.parent = item.name", "ref_doctype": "Item", "report_name": "Item-Wise Price List", "report_type": "Query Report" diff --git a/utilities/demo_docs/BOM.csv b/utilities/demo_docs/BOM.csv index 8e312757eb..446fc2eac0 100644 --- a/utilities/demo_docs/BOM.csv +++ b/utilities/demo_docs/BOM.csv @@ -1,48 +1,47 @@ -"Data Import Template" -"Table:","BOM" -"" -"" -"Notes:" -"Please do not change the template headings." -"First data column must be blank." -"If you are uploading new records, leave the ""name"" (ID) column blank." -"If you are uploading new records, ""Naming Series"" becomes mandatory, if present." -"Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish." -"For updating, you can update only selective columns." -"You can only upload upto 5000 records in one go. (may be less in some cases)" -"" -"DocType:","BOM","","","","","","","","","","","","","","","","-","BOM Operation","bom_operations","","","","","","-","BOM Item","bom_materials","","","","","","","","","-","BOM Explosion Item","flat_bom_details","","","","","","" -"Column Labels:","ID","Last Updated On","Item","Quantity","Is Active","Is Default","With Operations","Rate Of Materials Based On","Price List","Total Cost","Total Raw Material Cost","Total Operating Cost","Item UOM","Project Name","Item Desription","Amended From","-","ID","Operation No","Operation Description","Workstation","Hour Rate","Operation Time (mins)","Operating Cost","-","ID","Item Code","Qty","Stock UOM","Operation No","BOM No","Rate","Amount","Scrap %","Item Description","-","ID","Item Code","Description","Qty","Rate","Amount","Stock UOM","Qty Consumed Per Unit" -"Column Name:","name","modified","item","quantity","is_active","is_default","with_operations","rm_cost_as_per","price_list","total_cost","raw_material_cost","operating_cost","uom","project_name","description","amended_from","-","name","operation_no","opn_description","workstation","hour_rate","time_in_mins","operating_cost","-","name","item_code","qty","stock_uom","operation_no","bom_no","rate","amount","scrap","description","-","name","item_code","description","qty","rate","amount","stock_uom","qty_consumed_per_unit" -"Mandatory:","Yes","Yes","Yes","Yes","No","No","No","No","No","No","No","No","No","No","No","No","-","Yes","Yes","Yes","No","No","No","No","-","Yes","Yes","Yes","Yes","No","No","No","No","No","No","-","Yes","No","No","No","No","No","No","No" -"Type:","Data (text)","Data","Link","Float","Check","Check","Check","Select","Link","Float","Float","Float","Select","Link","Small Text","Link","-","Data","Data","Text","Link","Float","Float","Float","-","Data","Link","Float","Link","Select","Link","Float","Float","Float","Text","-","Data","Link","Text","Float","Float","Float","Link","Float" -"Info:","","Don't change!","Valid Item","","0 or 1","0 or 1","0 or 1","One of: Valuation Rate, Last Purchase Rate, Price List","Valid Price List","","","","Valid UOM","Valid Project","","Valid BOM","-","Leave blank for new records","","","Valid Workstation","","","","-","Leave blank for new records","Valid Item","","Valid UOM","","Valid BOM","","","","","-","Leave blank for new records","Valid Item","","","","","Valid UOM","" -"Start entering data below this line" -"","BOM/Bearing Assembly/001","""2013-08-07 16:58:00""","Bearing Assembly",1.0,1,"","","Price List","Standard Buying",130.0,130.0,0.0,"Nos","","Bearing Assembly","","","","","","","","","","","000000183","Base Bearing Plate",1.0,"Nos","","",15.0,15.0,"","1/4 in. x 6 in. x 6 in. Mild Steel Plate","","FBD/000039","Bearing Pipe","1.5 in. Diameter x 36 in. Mild Steel Tubing",1.0,15.0,15.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000184","Bearing Block",1.0,"Nos","","",10.0,10.0,"","CAST IRON, MCMASTER PART NO. 3710T13","","FBD/000040","Bearing Collar","1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar",2.0,20.0,40.0,"Nos",2.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000185","Bearing Collar",2.0,"Nos","","",20.0,40.0,"","1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar","","FBD/000041","Bearing Block","CAST IRON, MCMASTER PART NO. 3710T13",1.0,10.0,10.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000186","Bearing Pipe",1.0,"Nos","","",15.0,15.0,"","1.5 in. Diameter x 36 in. Mild Steel Tubing","","FBD/000042","Upper Bearing Plate","3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate",1.0,50.0,50.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000187","Upper Bearing Plate",1.0,"Nos","","",50.0,50.0,"","3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate","","FBD/000043","Base Bearing Plate","1/4 in. x 6 in. x 6 in. Mild Steel Plate",1.0,15.0,15.0,"Nos",1.0 -"","BOM/Wind Mill A Series/001","""2013-08-07 16:47:02""","Wind Mill A Series",1.0,1,"","","Price List","Standard Buying",223.0,223.0,0.0,"Nos","","Wind Mill A Series for Home Use 9ft","","","","","","","","","","","000000163","Base Bearing Plate",1.0,"Nos","","",15.0,15.0,"","1/4 in. x 6 in. x 6 in. Mild Steel Plate","","FBD/000008","Shaft","1.25 in. Diameter x 6 ft. Mild Steel Tubing",1.0,30.0,30.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000164","Base Plate",1.0,"Nos","","",20.0,20.0,"","3/4 in. x 2 ft. x 4 ft. Pine Plywood","","FBD/000009","Base Bearing Plate","1/4 in. x 6 in. x 6 in. Mild Steel Plate",1.0,15.0,15.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000165","Bearing Block",1.0,"Nos","","",10.0,10.0,"","CAST IRON, MCMASTER PART NO. 3710T13","","FBD/000010","External Disc","15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing",1.0,45.0,45.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000166","Bearing Pipe",1.0,"Nos","","",15.0,15.0,"","1.5 in. Diameter x 36 in. Mild Steel Tubing","","FBD/000011","Bearing Pipe","1.5 in. Diameter x 36 in. Mild Steel Tubing",1.0,15.0,15.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000167","External Disc",1.0,"Nos","","",45.0,45.0,"","15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing","","FBD/000012","Wing Sheet","1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet",4.0,22.0,88.0,"Nos",4.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000168","Shaft",1.0,"Nos","","",30.0,30.0,"","1.25 in. Diameter x 6 ft. Mild Steel Tubing","","FBD/000013","Base Plate","3/4 in. x 2 ft. x 4 ft. Pine Plywood",1.0,20.0,20.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000169","Wing Sheet",4.0,"Nos","","",22.0,88.0,"","1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet","","FBD/000014","Bearing Block","CAST IRON, MCMASTER PART NO. 3710T13",1.0,10.0,10.0,"Nos",1.0 -"","BOM/Wind MIll C Series/001","""2013-08-07 16:58:51""","Wind MIll C Series",1.0,1,"","","Price List","Standard Buying",314.0,314.0,0.0,"Nos","","Wind Mill C Series for Commercial Use 18ft","","","","","","","","","","","000000176","Base Plate",2.0,"Nos","","",20.0,40.0,"","3/4 in. x 2 ft. x 4 ft. Pine Plywood","","FBD/000061","Base Bearing Plate","1/4 in. x 6 in. x 6 in. Mild Steel Plate",1.0,15.0,15.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000178","Internal Disc",1.0,"Nos","","",33.0,33.0,"","For Bearing Collar","","FBD/000062","Bearing Collar","1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar",2.0,20.0,40.0,"Nos",2.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000179","External Disc",1.0,"Nos","","",45.0,45.0,"","15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing","","FBD/000063","Base Plate","3/4 in. x 2 ft. x 4 ft. Pine Plywood",2.0,20.0,40.0,"Nos",2.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000188","Bearing Assembly",1.0,"Nos","","BOM/Bearing Assembly/001",130.0,130.0,"","Bearing Assembly","","FBD/000064","Bearing Pipe","1.5 in. Diameter x 36 in. Mild Steel Tubing",1.0,15.0,15.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000189","Wing Sheet",3.0,"Nos","","",22.0,66.0,"","1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet","","FBD/000065","Internal Disc","For Bearing Collar",1.0,33.0,33.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FBD/000066","Upper Bearing Plate","3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate",1.0,50.0,50.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FBD/000067","Wing Sheet","1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet",3.0,22.0,66.0,"Nos",3.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FBD/000068","External Disc","15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing",1.0,45.0,45.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FBD/000069","Bearing Block","CAST IRON, MCMASTER PART NO. 3710T13",1.0,10.0,10.0,"Nos",1.0 -"","BOM/Wind Turbine/001","""2013-08-07 16:51:56""","Wind Turbine",1.0,1,"","","Price List","Standard Buying",139.0,139.0,0.0,"Nos","","Small Wind Turbine for Home Use","","","","","","","","","","","000000170","Base Bearing Plate",1.0,"Nos","","",15.0,15.0,"","1/4 in. x 6 in. x 6 in. Mild Steel Plate","","FBD/000021","Shaft","1.25 in. Diameter x 6 ft. Mild Steel Tubing",1.0,30.0,30.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000171","Base Plate",1.0,"Nos","","",20.0,20.0,"","3/4 in. x 2 ft. x 4 ft. Pine Plywood","","FBD/000022","Bearing Collar","1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar",1.0,20.0,20.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000172","Bearing Collar",1.0,"Nos","","",20.0,20.0,"","1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar","","FBD/000023","Base Plate","3/4 in. x 2 ft. x 4 ft. Pine Plywood",1.0,20.0,20.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000173","Blade Rib",1.0,"Nos","","",10.0,10.0,"","1/2 in. x 2 ft. x 4 ft. Pine Plywood","","FBD/000024","Base Bearing Plate","1/4 in. x 6 in. x 6 in. Mild Steel Plate",1.0,15.0,15.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000174","Shaft",1.0,"Nos","","",30.0,30.0,"","1.25 in. Diameter x 6 ft. Mild Steel Tubing","","FBD/000025","Blade Rib","1/2 in. x 2 ft. x 4 ft. Pine Plywood",1.0,10.0,10.0,"Nos",1.0 -"","","","","","","","","","","","","","","","","","","","","","","","","","","000000175","Wing Sheet",2.0,"Nos","","",22.0,44.0,"","1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet","","FBD/000026","Wing Sheet","1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet",2.0,22.0,44.0,"Nos",2.0 - +Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table:,BOM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +DocType:,BOM,,,,,,,,,,,,,,,,-,BOM Operation,bom_operations,,,,,,-,BOM Item,bom_materials,,,,,,,,,-,BOM Explosion Item,flat_bom_details,,,,,, +Column Labels:,ID,Last Updated On,Item,Quantity,Is Active,Is Default,With Operations,Rate Of Materials Based On,Price List,Total Cost,Total Raw Material Cost,Total Operating Cost,Item UOM,Project Name,Item Desription,Amended From,-,ID,Operation No,Operation Description,Workstation,Hour Rate,Operation Time (mins),Operating Cost,-,ID,Item Code,Qty,Stock UOM,Operation No,BOM No,Rate,Amount,Scrap %,Item Description,-,ID,Item Code,Description,Qty,Rate,Amount,Stock UOM,Qty Consumed Per Unit +Column Name:,name,modified,item,quantity,is_active,is_default,with_operations,rm_cost_as_per,buying_price_list,total_cost,raw_material_cost,operating_cost,uom,project_name,description,amended_from,-,name,operation_no,opn_description,workstation,hour_rate,time_in_mins,operating_cost,-,name,item_code,qty,stock_uom,operation_no,bom_no,rate,amount,scrap,description,-,name,item_code,description,qty,rate,amount,stock_uom,qty_consumed_per_unit +Mandatory:,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,-,Yes,Yes,Yes,No,No,No,No,-,Yes,Yes,Yes,Yes,No,No,No,No,No,No,-,Yes,No,No,No,No,No,No,No +Type:,Data (text),Data,Link,Float,Check,Check,Check,Select,Link,Float,Float,Float,Select,Link,Small Text,Link,-,Data,Data,Text,Link,Float,Float,Float,-,Data,Link,Float,Link,Select,Link,Float,Float,Float,Text,-,Data,Link,Text,Float,Float,Float,Link,Float +Info:,,Don't change!,Valid Item,,0 or 1,0 or 1,0 or 1,"One of: Valuation Rate, Last Purchase Rate, Price List",Valid Price List,,,,Valid UOM,Valid Project,,Valid BOM,-,Leave blank for new records,,,Valid Workstation,,,,-,Leave blank for new records,Valid Item,,Valid UOM,,Valid BOM,,,,,-,Leave blank for new records,Valid Item,,,,,Valid UOM, +Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,BOM/Bearing Assembly/001,"""2013-08-07 16:58:00""",Bearing Assembly,1.0,1,1,,Price List,Standard Buying,130.0,130.0,0.0,Nos,,Bearing Assembly,,,,,,,,,,,183,Base Bearing Plate,1.0,Nos,,,15.0,15.0,,1/4 in. x 6 in. x 6 in. Mild Steel Plate,,FBD/000039,Bearing Pipe,1.5 in. Diameter x 36 in. Mild Steel Tubing,1.0,15.0,15.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,184,Bearing Block,1.0,Nos,,,10.0,10.0,,"CAST IRON, MCMASTER PART NO. 3710T13",,FBD/000040,Bearing Collar,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,2.0,20.0,40.0,Nos,2.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,185,Bearing Collar,2.0,Nos,,,20.0,40.0,,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,,FBD/000041,Bearing Block,"CAST IRON, MCMASTER PART NO. 3710T13",1.0,10.0,10.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,186,Bearing Pipe,1.0,Nos,,,15.0,15.0,,1.5 in. Diameter x 36 in. Mild Steel Tubing,,FBD/000042,Upper Bearing Plate,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,1.0,50.0,50.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,187,Upper Bearing Plate,1.0,Nos,,,50.0,50.0,,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,,FBD/000043,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1.0,15.0,15.0,Nos,1.0 +,BOM/Wind Mill A Series/001,"""2013-08-07 16:47:02""",Wind Mill A Series,1.0,1,1,,Price List,Standard Buying,223.0,223.0,0.0,Nos,,Wind Mill A Series for Home Use 9ft,,,,,,,,,,,163,Base Bearing Plate,1.0,Nos,,,15.0,15.0,,1/4 in. x 6 in. x 6 in. Mild Steel Plate,,FBD/000008,Shaft,1.25 in. Diameter x 6 ft. Mild Steel Tubing,1.0,30.0,30.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,164,Base Plate,1.0,Nos,,,20.0,20.0,,3/4 in. x 2 ft. x 4 ft. Pine Plywood,,FBD/000009,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1.0,15.0,15.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,165,Bearing Block,1.0,Nos,,,10.0,10.0,,"CAST IRON, MCMASTER PART NO. 3710T13",,FBD/000010,External Disc,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,1.0,45.0,45.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,166,Bearing Pipe,1.0,Nos,,,15.0,15.0,,1.5 in. Diameter x 36 in. Mild Steel Tubing,,FBD/000011,Bearing Pipe,1.5 in. Diameter x 36 in. Mild Steel Tubing,1.0,15.0,15.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,167,External Disc,1.0,Nos,,,45.0,45.0,,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,,FBD/000012,Wing Sheet,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,4.0,22.0,88.0,Nos,4.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,168,Shaft,1.0,Nos,,,30.0,30.0,,1.25 in. Diameter x 6 ft. Mild Steel Tubing,,FBD/000013,Base Plate,3/4 in. x 2 ft. x 4 ft. Pine Plywood,1.0,20.0,20.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,169,Wing Sheet,4.0,Nos,,,22.0,88.0,,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,,FBD/000014,Bearing Block,"CAST IRON, MCMASTER PART NO. 3710T13",1.0,10.0,10.0,Nos,1.0 +,BOM/Wind MIll C Series/001,"""2013-08-07 16:58:51""",Wind MIll C Series,1.0,1,1,,Price List,Standard Buying,314.0,314.0,0.0,Nos,,Wind Mill C Series for Commercial Use 18ft,,,,,,,,,,,176,Base Plate,2.0,Nos,,,20.0,40.0,,3/4 in. x 2 ft. x 4 ft. Pine Plywood,,FBD/000061,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1.0,15.0,15.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,178,Internal Disc,1.0,Nos,,,33.0,33.0,,For Bearing Collar,,FBD/000062,Bearing Collar,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,2.0,20.0,40.0,Nos,2.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,179,External Disc,1.0,Nos,,,45.0,45.0,,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,,FBD/000063,Base Plate,3/4 in. x 2 ft. x 4 ft. Pine Plywood,2.0,20.0,40.0,Nos,2.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,188,Bearing Assembly,1.0,Nos,,BOM/Bearing Assembly/001,130.0,130.0,,Bearing Assembly,,FBD/000064,Bearing Pipe,1.5 in. Diameter x 36 in. Mild Steel Tubing,1.0,15.0,15.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,189,Wing Sheet,3.0,Nos,,,22.0,66.0,,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,,FBD/000065,Internal Disc,For Bearing Collar,1.0,33.0,33.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,FBD/000066,Upper Bearing Plate,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,1.0,50.0,50.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,FBD/000067,Wing Sheet,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,3.0,22.0,66.0,Nos,3.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,FBD/000068,External Disc,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,1.0,45.0,45.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,FBD/000069,Bearing Block,"CAST IRON, MCMASTER PART NO. 3710T13",1.0,10.0,10.0,Nos,1.0 +,BOM/Wind Turbine/001,"""2013-08-07 16:51:56""",Wind Turbine,1.0,1,1,,Price List,Standard Buying,139.0,139.0,0.0,Nos,,Small Wind Turbine for Home Use,,,,,,,,,,,170,Base Bearing Plate,1.0,Nos,,,15.0,15.0,,1/4 in. x 6 in. x 6 in. Mild Steel Plate,,FBD/000021,Shaft,1.25 in. Diameter x 6 ft. Mild Steel Tubing,1.0,30.0,30.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,171,Base Plate,1.0,Nos,,,20.0,20.0,,3/4 in. x 2 ft. x 4 ft. Pine Plywood,,FBD/000022,Bearing Collar,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,1.0,20.0,20.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,172,Bearing Collar,1.0,Nos,,,20.0,20.0,,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,,FBD/000023,Base Plate,3/4 in. x 2 ft. x 4 ft. Pine Plywood,1.0,20.0,20.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,173,Blade Rib,1.0,Nos,,,10.0,10.0,,1/2 in. x 2 ft. x 4 ft. Pine Plywood,,FBD/000024,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1.0,15.0,15.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,174,Shaft,1.0,Nos,,,30.0,30.0,,1.25 in. Diameter x 6 ft. Mild Steel Tubing,,FBD/000025,Blade Rib,1/2 in. x 2 ft. x 4 ft. Pine Plywood,1.0,10.0,10.0,Nos,1.0 +,,,,,,,,,,,,,,,,,,,,,,,,,,175,Wing Sheet,2.0,Nos,,,22.0,44.0,,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,,FBD/000026,Wing Sheet,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,2.0,22.0,44.0,Nos,2.0 \ No newline at end of file diff --git a/utilities/demo_docs/Item.csv b/utilities/demo_docs/Item.csv index 5cbae6004b..3580748e1d 100644 --- a/utilities/demo_docs/Item.csv +++ b/utilities/demo_docs/Item.csv @@ -1,38 +1,37 @@ -"Data Import Template" -"Table:","Item" -"" -"" -"Notes:" -"Please do not change the template headings." -"First data column must be blank." -"If you are uploading new records, leave the ""name"" (ID) column blank." -"If you are uploading new records, ""Naming Series"" becomes mandatory, if present." -"Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish." -"For updating, you can update only selective columns." -"You can only upload upto 5000 records in one go. (may be less in some cases)" -"" -"DocType:","Item","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" -"Column Labels:","ID","Item Name","Item Group","Default Unit of Measure","Description","Is Stock Item","Is Asset Item","Has Batch No","Has Serial No","Is Purchase Item","Is Sales Item","Is Service Item","Allow Samples","Inspection Required","Allow Bill of Materials","Allow Production Order","Is Sub Contracted Item","Document Numbering Series","Item Code","Brand","Barcode","Image","Description HTML","Default Warehouse","Allowance Percent","Valuation Method","Minimum Order Qty","Warranty Period (in days)","End of Life","Net Weight","Weight UOM","Re-Order Level","Re-Order Qty","Default Supplier","Lead Time Days","Default Expense Account","Default Cost Center","Last Purchase Rate","Standard Rate","Manufacturer","Manufacturer Part Number","Max Discount (%)","Default Income Account","Cost Center","Default BOM","Show in Website","Page Name","Weightage","Slideshow","Image","Website Warehouse","Website Description" -"Column Name:","name","item_name","item_group","stock_uom","description","is_stock_item","is_asset_item","has_batch_no","has_serial_no","is_purchase_item","is_sales_item","is_service_item","is_sample_item","inspection_required","is_manufactured_item","is_pro_applicable","is_sub_contracted_item","naming_series","item_code","brand","barcode","image","description_html","default_warehouse","tolerance","valuation_method","min_order_qty","warranty_period","end_of_life","net_weight","weight_uom","re_order_level","re_order_qty","default_supplier","lead_time_days","purchase_account","cost_center","last_purchase_rate","standard_rate","manufacturer","manufacturer_part_no","max_discount","default_income_account","default_sales_cost_center","default_bom","show_in_website","page_name","weightage","slideshow","website_image","website_warehouse","web_long_description" -"Mandatory:","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No","No" -"Type:","Data (text)","Data","Link","Link","Small Text","Select","Select","Select","Select","Select","Select","Select","Select","Select","Select","Select","Select","Select","Data","Link","Data","Select","Small Text","Link","Float","Select","Float","Data","Date","Float","Link","Float","Float","Link","Int","Link","Link","Float","Float","Data","Data","Float","Link","Link","Link","Check","Data","Int","Link","Select","Link","Text Editor" -"Info:","","","Valid Item Group","Valid UOM","","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: ITEM","","Valid Brand","","One of: attach_files:","","Valid Warehouse","","One of: FIFO, Moving Average","","","","","Valid UOM","","","Valid Supplier","Integer","Valid Account","Valid Cost Center","","","","","","Valid Account","Valid Cost Center","Valid BOM","0 or 1","","Integer","Valid Website Slideshow","One of: attach_files:","Valid Warehouse","" -"Start entering data below this line" -"","Base Bearing Plate","Base Bearing Plate","Raw Material","Nos","1/4 in. x 6 in. x 6 in. Mild Steel Plate","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Base Bearing Plate","","","","","Stores - WP","","","","","","","","","","Eagle Hardware","","","","","","","","","","","","","","","","","","" -"","Base Plate","Base Plate","Raw Material","Nos","3/4 in. x 2 ft. x 4 ft. Pine Plywood","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Base Plate","","","","","Stores - WP","","","","","","","","","","HomeBase","","","","","","","","","","","","","","","","","","" -"","Bearing Assembly","Bearing Assembly","Sub Assemblies","Nos","Bearing Assembly","Yes","No","No","No","No","Yes","No","No","No","Yes","Yes","No","","Bearing Assembly","","","","","Stores - WP","","",0.0,"","","","","","","Asiatic Solutions","","","","","","","","","","","BOM/Bearing Assembly/001","","","","","","","" -"","Bearing Block","Bearing Block","Raw Material","Nos","CAST IRON, MCMASTER PART NO. 3710T13","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Bearing Block","","","","","Stores - WP","","","","","","","","","","Nan Duskin","","","","","","","","","","","","","","","","","","" -"","Bearing Collar","Bearing Collar","Raw Material","Nos","1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Bearing Collar","","","","","Stores - WP","","","","","","","","","","Eagle Hardware","","","","","","","","","","","","","","","","","","" -"","Bearing Pipe","Bearing Pipe","Raw Material","Nos","1.5 in. Diameter x 36 in. Mild Steel Tubing","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Bearing Pipe","","","","","Stores - WP","","","","","","","","","","HomeBase","","","","","","","","","","","","","","","","","","" -"","Blade Rib","Blade Rib","Raw Material","Nos","1/2 in. x 2 ft. x 4 ft. Pine Plywood","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Blade Rib","","","","","Stores - WP","","","","","","","","","","Ks Merchandise","","","","","","","","","","","","","","","","","","" -"","Disc Collars","Disc Collars","Raw Material","Nos","For Upper Bearing","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Disc Collars","","","","","Stores - WP","","","","","","","","","","Asiatic Solutions","","","","","","","","","","","","","","","","","","" -"","External Disc","External Disc","Raw Material","Nos","15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","External Disc","","","","","Stores - WP","","","","","","","","","","HomeBase","","","","","","","","","","","","","","","","","","" -"","Internal Disc","Internal Disc","Raw Material","Nos","For Bearing Collar","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Internal Disc","","","","","Stores - WP","","","","","","","","","","HomeBase","","","","","","","","","","","","","","","","","","" -"","Shaft","Shaft","Raw Material","Nos","1.25 in. Diameter x 6 ft. Mild Steel Tubing","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Shaft","","","","","Stores - WP","","","","","","","","","","Eagle Hardware","","","","","","","","","","","","","","","","","","" -"","Stand","Stand","Raw Material","Nos","N/A","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Stand","","","","","Stores - WP","","","","","","","","","","Scott Ties","","","","","","","","","","","","","","","","","","" -"","Upper Bearing Plate","Upper Bearing Plate","Raw Material","Nos","3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Upper Bearing Plate","","","","","Stores - WP","","","","","","","","","","Eagle Hardware","","","","","","","","","","","","","","","","","","" -"","Wind Mill A Series","Wind Mill A Series","Products","Nos","Wind Mill A Series for Home Use 9ft","Yes","No","No","Yes","Yes","Yes","Yes","No","No","Yes","Yes","No","","Wind Mill A Series","","","","","Finished Goods - WP","","","","","","","","","","","","","","","","","","","","","BOM/Wind Mill A Series/001","","","","","","","" -"","Wind MIll C Series","Wind MIll C Series","Products","Nos","Wind Mill C Series for Commercial Use 18ft","Yes","No","No","Yes","Yes","Yes","Yes","No","No","Yes","Yes","No","","Wind MIll C Series","","","","","Finished Goods - WP","","","","","","","","","","","","","","","","","","","","","BOM/Wind MIll C Series/001","","","","","","","" -"","Wind Turbine","Wind Turbine","Products","Nos","Small Wind Turbine for Home Use","Yes","No","No","No","Yes","Yes","Yes","No","No","Yes","Yes","No","","Wind Turbine","","","","","Finished Goods - WP","","","","","","","","","","","","","","","","","","","","","BOM/Wind Turbine/001","","","","","","","" -"","Wing Sheet","Wing Sheet","Raw Material","Nos","1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet","Yes","No","No","No","Yes","Yes","Yes","No","No","No","No","No","","Wing Sheet","","","","","Stores - WP","","","","","","","","","","New World Realty","","","","","","","","","","","","","","","","","","" - +Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table:,Item,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +DocType:,Item,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Column Labels:,ID,Item Name,Item Group,Default Unit of Measure,Description,Is Stock Item,Is Asset Item,Has Batch No,Has Serial No,Is Purchase Item,Is Sales Item,Is Service Item,Allow Samples,Inspection Required,Allow Bill of Materials,Allow Production Order,Is Sub Contracted Item,Document Numbering Series,Item Code,Brand,Barcode,Image,Description HTML,Default Warehouse,Allowance Percent,Valuation Method,Minimum Order Qty,Warranty Period (in days),End of Life,Net Weight,Weight UOM,Re-Order Level,Re-Order Qty,Default Supplier,Lead Time Days,Default Expense Account,Default Cost Center,Last Purchase Rate,Standard Rate,Manufacturer,Manufacturer Part Number,Max Discount (%),Default Income Account,Cost Center,Default BOM,Show in Website,Page Name,Weightage,Slideshow,Image,Website Warehouse,Website Description +Column Name:,name,item_name,item_group,stock_uom,description,is_stock_item,is_asset_item,has_batch_no,has_serial_no,is_purchase_item,is_sales_item,is_service_item,is_sample_item,inspection_required,is_manufactured_item,is_pro_applicable,is_sub_contracted_item,naming_series,item_code,brand,barcode,image,description_html,default_warehouse,tolerance,valuation_method,min_order_qty,warranty_period,end_of_life,net_weight,weight_uom,re_order_level,re_order_qty,default_supplier,lead_time_days,purchase_account,cost_center,last_purchase_rate,standard_rate,manufacturer,manufacturer_part_no,max_discount,default_income_account,default_sales_cost_center,default_bom,show_in_website,page_name,weightage,slideshow,website_image,website_warehouse,web_long_description +Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No +Type:,Data (text),Data,Link,Link,Small Text,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Data,Link,Data,Select,Small Text,Link,Float,Select,Float,Data,Date,Float,Link,Float,Float,Link,Int,Link,Link,Float,Float,Data,Data,Float,Link,Link,Link,Check,Data,Int,Link,Select,Link,Text Editor +Info:,,,Valid Item Group,Valid UOM,,"One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No",One of: ITEM,,Valid Brand,,One of: attach_files:,,Valid Warehouse,,"One of: FIFO, Moving Average",,,,,Valid UOM,,,Valid Supplier,Integer,Valid Account,Valid Cost Center,,,,,,Valid Account,Valid Cost Center,Valid BOM,0 or 1,,Integer,Valid Website Slideshow,One of: attach_files:,Valid Warehouse, +Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Base Bearing Plate,Base Bearing Plate,Raw Material,Nos,1/4 in. x 6 in. x 6 in. Mild Steel Plate,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Base Bearing Plate,,,,,Stores - WP,,,,,,,,,,Eagle Hardware,,,,,,,,,,,,,,,,,, +,Base Plate,Base Plate,Raw Material,Nos,3/4 in. x 2 ft. x 4 ft. Pine Plywood,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Base Plate,,,,,Stores - WP,,,,,,,,,,HomeBase,,,,,,,,,,,,,,,,,, +,Bearing Assembly,Bearing Assembly,Sub Assemblies,Nos,Bearing Assembly,Yes,No,No,No,No,Yes,No,No,No,Yes,Yes,No,,Bearing Assembly,,,,,Stores - WP,,,0.0,,,,,,,Asiatic Solutions,,,,,,,,,,,,,,,,,, +,Bearing Block,Bearing Block,Raw Material,Nos,"CAST IRON, MCMASTER PART NO. 3710T13",Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Bearing Block,,,,,Stores - WP,,,,,,,,,,Nan Duskin,,,,,,,,,,,,,,,,,, +,Bearing Collar,Bearing Collar,Raw Material,Nos,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Bearing Collar,,,,,Stores - WP,,,,,,,,,,Eagle Hardware,,,,,,,,,,,,,,,,,, +,Bearing Pipe,Bearing Pipe,Raw Material,Nos,1.5 in. Diameter x 36 in. Mild Steel Tubing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Bearing Pipe,,,,,Stores - WP,,,,,,,,,,HomeBase,,,,,,,,,,,,,,,,,, +,Blade Rib,Blade Rib,Raw Material,Nos,1/2 in. x 2 ft. x 4 ft. Pine Plywood,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Blade Rib,,,,,Stores - WP,,,,,,,,,,Ks Merchandise,,,,,,,,,,,,,,,,,, +,Disc Collars,Disc Collars,Raw Material,Nos,For Upper Bearing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Disc Collars,,,,,Stores - WP,,,,,,,,,,Asiatic Solutions,,,,,,,,,,,,,,,,,, +,External Disc,External Disc,Raw Material,Nos,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,External Disc,,,,,Stores - WP,,,,,,,,,,HomeBase,,,,,,,,,,,,,,,,,, +,Internal Disc,Internal Disc,Raw Material,Nos,For Bearing Collar,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Internal Disc,,,,,Stores - WP,,,,,,,,,,HomeBase,,,,,,,,,,,,,,,,,, +,Shaft,Shaft,Raw Material,Nos,1.25 in. Diameter x 6 ft. Mild Steel Tubing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Shaft,,,,,Stores - WP,,,,,,,,,,Eagle Hardware,,,,,,,,,,,,,,,,,, +,Stand,Stand,Raw Material,Nos,N/A,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Stand,,,,,Stores - WP,,,,,,,,,,Scott Ties,,,,,,,,,,,,,,,,,, +,Upper Bearing Plate,Upper Bearing Plate,Raw Material,Nos,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Upper Bearing Plate,,,,,Stores - WP,,,,,,,,,,Eagle Hardware,,,,,,,,,,,,,,,,,, +,Wind Mill A Series,Wind Mill A Series,Products,Nos,Wind Mill A Series for Home Use 9ft,Yes,No,No,Yes,Yes,Yes,Yes,No,No,Yes,Yes,No,,Wind Mill A Series,,,,,Finished Goods - WP,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Wind MIll C Series,Wind MIll C Series,Products,Nos,Wind Mill C Series for Commercial Use 18ft,Yes,No,No,Yes,Yes,Yes,Yes,No,No,Yes,Yes,No,,Wind MIll C Series,,,,,Finished Goods - WP,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Wind Turbine,Wind Turbine,Products,Nos,Small Wind Turbine for Home Use,Yes,No,No,No,Yes,Yes,Yes,No,No,Yes,Yes,No,,Wind Turbine,,,,,Finished Goods - WP,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Wing Sheet,Wing Sheet,Raw Material,Nos,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Wing Sheet,,,,,Stores - WP,,,,,,,,,,New World Realty,,,,,,,,,,,,,,,,,, \ No newline at end of file diff --git a/utilities/demo_docs/Item_Price.csv b/utilities/demo_docs/Item_Price.csv index b181fb8bfc..c1bc7ade87 100644 --- a/utilities/demo_docs/Item_Price.csv +++ b/utilities/demo_docs/Item_Price.csv @@ -14,7 +14,7 @@ You can only upload upto 5000 records in one go. (may be less in some cases),,,, "If you are updating, please select ""Overwrite"" else existing rows will not be deleted.",,,,, ,,,,, Column Labels,ID,Price List Name,Valid for Buying or Selling?,Ref Rate,Currency -Column Name:,parent,price_list_name,buying_or_selling,ref_rate,ref_currency +Column Name:,parent,price_list,buying_or_selling,ref_rate,ref_currency Mandatory:,Yes,Yes,Yes,No,No Type:,Data (text),Link,Select,Currency,Link Info:,,Valid Price List,"One of: Buying, Selling",,Valid Currency diff --git a/utilities/make_demo.py b/utilities/make_demo.py index 93f5c0c72a..124259fe4e 100644 --- a/utilities/make_demo.py +++ b/utilities/make_demo.py @@ -5,6 +5,7 @@ import webnotes, os, datetime import webnotes.utils from webnotes.widgets import query_report import random +import json webnotes.session = webnotes._dict({"user":"Administrator"}) from core.page.data_import_tool.data_import_tool import upload @@ -14,10 +15,10 @@ from core.page.data_import_tool.data_import_tool import upload company = "Wind Power LLC" start_date = '2010-01-01' -runs_for = 100 +runs_for = 20 prob = { - "Quotation": { "make": 0.5, "qty": (1,3) }, - "Sales Order": { "make": 0.5, "qty": (1,2) }, + "Quotation": { "make": 0.5, "qty": (1,5) }, + "Sales Order": { "make": 0.5, "qty": (1,4) }, "Supplier Quotation": { "make": 0.5, "qty": (1, 3) } } @@ -25,15 +26,15 @@ def make(): webnotes.connect() webnotes.print_messages = True webnotes.mute_emails = True - - # setup() + + #setup() simulate() def setup(): install() complete_setup() - make_items() make_customers_suppliers_contacts() + make_items() make_users_and_employees() # make_opening_stock() # make_opening_accounts() @@ -67,6 +68,7 @@ def run_sales(current_date): make_sales_order(current_date) def run_stock(current_date): + pass # make purchase requests # make delivery notes (if possible) @@ -79,24 +81,24 @@ def run_purchase(current_date): from stock.doctype.material_request.material_request import make_supplier_quotation report = "Material Requests for which Supplier Quotations are not created" for row in query_report.run(report)["result"][:how_many("Supplier Quotation")]: - sq = webnotes.bean(make_supplier_quotation(row[0])) - sq.doc.transaction_date = current_date - sq.doc.fiscal_year = "2010" - po.doc.price_list = "Standard Buying" - sq.insert() - sq.submit() + if row[0] != "Total": + sq = webnotes.bean(make_supplier_quotation(row[0])) + sq.doc.transaction_date = current_date + sq.doc.fiscal_year = "2010" + sq.insert() + sq.submit() # make purchase orders if can_make("Purchase Order"): from stock.doctype.material_request.material_request import make_purchase_order report = "Requested Items To Be Ordered" for row in query_report.run(report)["result"][:how_many("Purchase Order")]: - po = webnotes.bean(make_purchase_order(row[0])) - po.doc.transaction_date = current_date - po.doc.fiscal_year = "2010" - po.doc.price_list = "Standard Buying" - po.insert() - po.submit() + if row[0] != "Total": + po = webnotes.bean(make_purchase_order(row[0])) + po.doc.transaction_date = current_date + po.doc.fiscal_year = "2010" + po.insert() + po.submit() def run_manufacturing(current_date): ppt = webnotes.bean("Production Planning Tool", "Production Planning Tool") @@ -126,7 +128,6 @@ def make_quotation(current_date): "quotation_to": "Customer", "customer": get_random("Customer"), "order_type": "Sales", - "price_list_name": "Standard Selling", "transaction_date": current_date, "fiscal_year": "2010" }]) @@ -144,12 +145,13 @@ def make_quotation(current_date): def make_sales_order(current_date): q = get_random("Quotation", {"status": "Submitted"}) - from selling.doctype.quotation.quotation import make_sales_order - so = webnotes.bean(make_sales_order(q)) - so.doc.transaction_date = current_date - so.doc.delivery_date = webnotes.utils.add_days(current_date, 10) - so.insert() - so.submit() + if q: + from selling.doctype.quotation.quotation import make_sales_order + so = webnotes.bean(make_sales_order(q)) + so.doc.transaction_date = current_date + so.doc.delivery_date = webnotes.utils.add_days(current_date, 10) + so.insert() + so.submit() def add_random_children(bean, template, rows, randomize, unique=None): for i in xrange(random.randrange(1, rows)): @@ -177,9 +179,9 @@ def get_random(doctype, filters=None): condition = "" out = webnotes.conn.sql("""select name from `tab%s` %s - order by RAND() limit 0,1""" % (doctype, condition))[0][0] + order by RAND() limit 0,1""" % (doctype, condition)) - return out + return out and out[0][0] or None def can_make(doctype): return random.random() < prob.get(doctype, {"make": 0.5})["make"] @@ -210,7 +212,8 @@ def complete_setup(): import_data("Fiscal_Year") def make_items(): - import_data(["Item", "Item_Price", "BOM"]) + import_data(["Item", "Item_Price"]) + import_data("BOM", submit=True) def make_customers_suppliers_contacts(): import_data(["Customer", "Supplier", "Contact", "Address", "Lead"]) @@ -221,12 +224,15 @@ def make_users_and_employees(): import_data(["Profile", "Employee", "Salary_Structure"]) -def import_data(dt): +def import_data(dt, submit=False): if not isinstance(dt, (tuple, list)): dt = [dt] for doctype in dt: print "Importing", doctype.replace("_", " "), "..." + webnotes.form_dict = {} + if submit: + webnotes.form_dict["params"] = json.dumps({"_submit": 1}) webnotes.uploaded_file = os.path.join(os.path.dirname(__file__), "demo_docs", doctype+".csv") upload() diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py index ced4531e16..20f270c1c1 100644 --- a/utilities/transaction_base.py +++ b/utilities/transaction_base.py @@ -476,8 +476,8 @@ def validate_currency(args, item, meta=None): webnotes._dict({"fields": args}))) # validate price list conversion rate - if meta.get_field("price_list_currency") and args.price_list_name and \ - args.price_list_currency: + if meta.get_field("price_list_currency") and (args.selling_price_list or args.buying_price_list) \ + and args.price_list_currency: validate_conversion_rate(args.price_list_currency, args.plc_conversion_rate, meta.get_label("plc_conversion_rate"), args.company) diff --git a/website/helpers/cart.py b/website/helpers/cart.py index e1847950ea..b6a7a01e92 100644 --- a/website/helpers/cart.py +++ b/website/helpers/cart.py @@ -297,7 +297,7 @@ def apply_cart_settings(party=None, quotation=None): def set_price_list_and_rate(quotation, cart_settings, billing_territory): """set price list based on billing territory""" - quotation.doc.price_list_name = cart_settings.get_price_list(billing_territory) + quotation.doc.selling_price_list = cart_settings.get_price_list(billing_territory) # reset values quotation.doc.price_list_currency = quotation.doc.currency = \ @@ -309,7 +309,7 @@ def set_price_list_and_rate(quotation, cart_settings, billing_territory): quotation.run_method("set_price_list_and_item_details") # set it in cookies for using in product page - webnotes.cookies[b"price_list_name"] = quotation.doc.price_list_name + webnotes.cookies[b"selling_price_list"] = quotation.doc.selling_price_list def set_taxes(quotation, cart_settings, billing_territory): """set taxes based on billing territory""" diff --git a/website/helpers/product.py b/website/helpers/product.py index 8c3d45cf2b..8d817d07cf 100644 --- a/website/helpers/product.py +++ b/website/helpers/product.py @@ -16,7 +16,7 @@ def get_product_info(item_code): cart_quotation = _get_cart_quotation() - price_list = webnotes.cookies.get("price_list_name").value + price_list = webnotes.cookies.get("selling_price_list").value warehouse = webnotes.conn.get_value("Item", item_code, "website_warehouse") if warehouse: @@ -28,7 +28,7 @@ def get_product_info(item_code): in_stock = -1 price = price_list and webnotes.conn.sql("""select ref_rate, ref_currency from - `tabItem Price` where parent=%s and price_list_name=%s""", + `tabItem Price` where parent=%s and price_list=%s""", (item_code, price_list), as_dict=1) or [] price = price and price[0] or None