diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py index 3a4737481f8..86491f8a54f 100755 --- a/erpnext/accounts/doctype/sales_invoice/pos.py +++ b/erpnext/accounts/doctype/sales_invoice/pos.py @@ -168,10 +168,10 @@ def get_items_list(pos_profile, company): i.has_serial_no, i.is_stock_item, i.brand, i.stock_uom, i.image, id.expense_account, id.selling_cost_center, id.default_warehouse from - `tabItem` i LEFT JOIN `tabItem Default` id ON id.parent = i.name + `tabItem` i LEFT JOIN `tabItem Default` id ON id.parent = i.name and id.company = %s where i.disabled = 0 and i.has_variants = 0 and i.is_sales_item = 1 - and id.company = %s {cond} + {cond} """.format(cond=cond), tuple(args_list), as_dict=1) diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index c09d989ac3e..38346dc0216 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -552,10 +552,10 @@ def get_bom_items_as_dict(bom, company, qty=1, fetch_exploded=1, fetch_scrap_ite `tab{table}` bom_item JOIN `tabBOM` bom ON bom_item.parent = bom.name JOIN `tabItem` item ON item.name = bom_item.item_code - LEFT JOIN `tabItem Default` item_default ON item_default.parent = item.name + LEFT JOIN `tabItem Default` item_default + ON item_default.parent = item.name and item_default.company = %(company)s where bom_item.docstatus < 2 - and item_default.company = %(company)s and bom.name = %(bom)s and is_stock_item = 1 {where_conditions} diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.py b/erpnext/manufacturing/doctype/production_plan/production_plan.py index 4b2ae543ebc..46fdb8501af 100644 --- a/erpnext/manufacturing/doctype/production_plan/production_plan.py +++ b/erpnext/manufacturing/doctype/production_plan/production_plan.py @@ -298,10 +298,10 @@ class ProductionPlan(Document): `tabBOM Explosion Item` bei JOIN `tabBOM` bom ON bom.name = bei.parent JOIN `tabItem` item ON item.name = bei.item_code - LEFT JOIN `tabItem Default` item_default ON item_default.parent = item.name + LEFT JOIN `tabItem Default` item_default + ON item_default.parent = item.name and item_default.company=%s where bei.docstatus < 2 - and item_default.company=%s and bom.name=%s and item.is_stock_item in (1, {0}) group by bei.item_code, bei.stock_uom""".format(self.include_non_stock_items), (self.company, data.bom_no), as_dict=1): @@ -326,11 +326,11 @@ class ProductionPlan(Document): `tabBOM Item` bom_item JOIN `tabBOM` bom ON bom.name = bom_item.parent JOIN tabItem item ON bom_item.item_code = item.name - LEFT JOIN `tabItem Default` item_default ON item.name = item_default.parent + LEFT JOIN `tabItem Default` item_default + ON item.name = item_default.parent and item_default.company = %(company)s where bom.name = %(bom)s and bom_item.docstatus < 2 - and item_default.company = %(company)s and item.is_stock_item in (1, {0}) group by bom_item.item_code""".format(self.include_non_stock_items),{ 'bom': bom_no, diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index 8e4a4cab9a4..bf7adac98da 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -892,10 +892,10 @@ def get_item_defaults(item, company): i.item_name, i.description, i.stock_uom, i.name, i.is_stock_item, i.item_code, i.item_group, id.expense_account, id.buying_cost_center, id.default_warehouse, id.selling_cost_center, id.default_supplier from - `tabItem` i LEFT JOIN `tabItem Default` id ON i.name = id.parent + `tabItem` i LEFT JOIN `tabItem Default` id ON i.name = id.parent and id.company = %s where - i.name = %s and id.company = %s - ''', (item, company), as_dict=1) + i.name = %s + ''', (company, item), as_dict=1) if item_defaults: return item_defaults[0] else: diff --git a/erpnext/stock/doctype/packed_item/packed_item.py b/erpnext/stock/doctype/packed_item/packed_item.py index 04b4761f389..5649b3d793c 100644 --- a/erpnext/stock/doctype/packed_item/packed_item.py +++ b/erpnext/stock/doctype/packed_item/packed_item.py @@ -21,9 +21,9 @@ def get_product_bundle_items(item_code): def get_packing_item_details(item, company): return frappe.db.sql(""" select i.item_name, i.description, i.stock_uom, id.default_warehouse - from `tabItem` i LEFT JOIN `tabItem Default` id ON id.parent=i.name - where i.name = %s and id.company""", - (item, company), as_dict = 1)[0] + from `tabItem` i LEFT JOIN `tabItem Default` id ON id.parent=i.name and id.company=%s + where i.name = %s""", + (company, item), as_dict = 1)[0] def get_bin_qty(item, warehouse): det = frappe.db.sql("""select actual_qty, projected_qty from `tabBin` diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 13b6ce5616b..38628548ea0 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -566,11 +566,12 @@ class StockEntry(StockController): item = frappe.db.sql("""select i.stock_uom, i.description, i.image, i.item_name, i.item_group, i.has_batch_no, i.sample_quantity, i.has_serial_no, id.expense_account, id.buying_cost_center - from `tabItem` i LEFT JOIN `tabItem Default` id ON i.name=id.parent - where i.name=%s and id.company=%s + from `tabItem` i LEFT JOIN `tabItem Default` id ON i.name=id.parent and id.company=%s + where i.name=%s and i.disabled=0 and (i.end_of_life is null or i.end_of_life='0000-00-00' or i.end_of_life > %s)""", - (args.get('item_code'), self.company, nowdate()), as_dict = 1) + (self.company, args.get('item_code'), nowdate()), as_dict = 1) + if not item: frappe.throw(_("Item {0} is not active or end of life has been reached").format(args.get("item_code")))