Item defaults query fixes
diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py
index 3a47374..86491f8 100755
--- a/erpnext/accounts/doctype/sales_invoice/pos.py
+++ b/erpnext/accounts/doctype/sales_invoice/pos.py
@@ -168,10 +168,10 @@
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 c09d989..38346dc 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -552,10 +552,10 @@
`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 4b2ae54..46fdb85 100644
--- a/erpnext/manufacturing/doctype/production_plan/production_plan.py
+++ b/erpnext/manufacturing/doctype/production_plan/production_plan.py
@@ -298,10 +298,10 @@
`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 @@
`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 8e4a4ca..bf7adac 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -892,10 +892,10 @@
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 04b4761..5649b3d 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_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 13b6ce5..3862854 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -566,11 +566,12 @@
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")))