Merge pull request #4691 from anandpdoshi/cleanup/remove-is-service-item
[cleanup] Removed 'Is Service Item' checkbox and filters
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 895f146..f340f91 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -161,7 +161,7 @@
for d in self.get("items"):
if d.qty is None:
frappe.throw(_("Row {0}: Qty is mandatory").format(d.idx))
-
+
if self.has_product_bundle(d.item_code):
for p in self.get("packed_items"):
if p.parent_detail_docname == d.name and p.parent_item == d.item_code:
@@ -199,17 +199,17 @@
where so_detail = %s and docstatus = 1
and against_sales_order = %s
and parent != %s""", (so_detail, so, current_docname))
-
- delivered_via_si = frappe.db.sql("""select sum(si_item.qty)
+
+ delivered_via_si = frappe.db.sql("""select sum(si_item.qty)
from `tabSales Invoice Item` si_item, `tabSales Invoice` si
where si_item.parent = si.name and si.update_stock = 1
- and si_item.so_detail = %s and si.docstatus = 1
+ and si_item.so_detail = %s and si.docstatus = 1
and si_item.sales_order = %s
and si.name != %s""", (so_detail, so, current_docname))
-
+
total_delivered_qty = (flt(delivered_via_dn[0][0]) if delivered_via_dn else 0) \
+ (flt(delivered_via_si[0][0]) if delivered_via_si else 0)
-
+
return total_delivered_qty
def get_so_qty_and_warehouse(self, so_detail):
@@ -230,10 +230,10 @@
for d in obj.get("items"):
if d.item_code:
item = frappe.db.sql("""select docstatus, is_sales_item,
- is_service_item, income_account from tabItem where name = %s""",
+ income_account from tabItem where name = %s""",
d.item_code, as_dict=True)[0]
- if item.is_sales_item == 0 and item.is_service_item == 0:
- frappe.throw(_("Item {0} must be Sales or Service Item in {1}").format(d.item_code, d.idx))
+ if item.is_sales_item == 0:
+ frappe.throw(_("Item {0} must be a Sales Item in {1}").format(d.item_code, d.idx))
if getattr(d, "income_account", None) and not item.income_account:
frappe.db.set_value("Item", d.item_code, "income_account",
d.income_account)
diff --git a/erpnext/crm/doctype/opportunity/opportunity.js b/erpnext/crm/doctype/opportunity/opportunity.js
index af4e387..b274216 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.js
+++ b/erpnext/crm/doctype/opportunity/opportunity.js
@@ -52,8 +52,7 @@
this.frm.set_query("item_code", "items", function() {
return {
query: "erpnext.controllers.queries.item_query",
- filters: me.frm.doc.enquiry_type === "Maintenance" ?
- {"is_service_item": 1} : {"is_sales_item":1}
+ filters: {"is_sales_item": 1}
};
});
diff --git a/erpnext/patches/v5_2/change_item_selects_to_checks.py b/erpnext/patches/v5_2/change_item_selects_to_checks.py
index 25d596b..2665f4c 100644
--- a/erpnext/patches/v5_2/change_item_selects_to_checks.py
+++ b/erpnext/patches/v5_2/change_item_selects_to_checks.py
@@ -4,7 +4,7 @@
def execute():
fields = ("is_stock_item", "is_asset_item", "has_batch_no", "has_serial_no",
- "is_purchase_item", "is_sales_item", "is_service_item", "inspection_required",
+ "is_purchase_item", "is_sales_item", "inspection_required",
"is_pro_applicable", "is_sub_contracted_item")
diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py
index 43dd675..3c8add4 100644
--- a/erpnext/selling/doctype/quotation/quotation.py
+++ b/erpnext/selling/doctype/quotation/quotation.py
@@ -28,14 +28,9 @@
def validate_order_type(self):
super(Quotation, self).validate_order_type()
- if self.order_type in ['Maintenance', 'Service']:
- for d in self.get('items'):
- if not frappe.db.get_value("Item", d.item_code, "is_service_item"):
- frappe.throw(_("Item {0} must be Service Item").format(d.item_code))
- else:
- for d in self.get('items'):
- if not frappe.db.get_value("Item", d.item_code, "is_sales_item"):
- frappe.throw(_("Item {0} must be Sales Item").format(d.item_code))
+ for d in self.get('items'):
+ if not frappe.db.get_value("Item", d.item_code, "is_sales_item"):
+ frappe.throw(_("Item {0} must be Sales Item").format(d.item_code))
def validate_quotation_to(self):
if self.customer:
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index 7f17bd3..850e229 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -56,9 +56,7 @@
this.frm.set_query("item_code", "items", function() {
return {
query: "erpnext.controllers.queries.item_query",
- filters: (me.frm.doc.order_type === "Maintenance" ?
- {'is_service_item': 1}:
- {'is_sales_item': 1 })
+ filters: {'is_sales_item': 1}
}
});
}
@@ -289,7 +287,7 @@
}
refresh_field('product_bundle_help');
},
-
+
make_payment_request: function() {
frappe.call({
method:"erpnext.accounts.doctype.payment_request.payment_request.make_payment_request",
diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json
index b7d866d..79789b0 100644
--- a/erpnext/stock/doctype/item/item.json
+++ b/erpnext/stock/doctype/item/item.json
@@ -1467,35 +1467,6 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
- "default": "",
- "depends_on": "eval:doc.is_sales_item",
- "description": "Allow in Sales Order of type \"Service\"",
- "fieldname": "is_service_item",
- "fieldtype": "Check",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "in_filter": 1,
- "in_list_view": 0,
- "label": "Is Service Item",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "is_service_item",
- "oldfieldtype": "Select",
- "options": "",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
"default": "0",
"description": "Publish Item to hub.erpnext.com",
"fieldname": "publish_in_hub",
@@ -2338,7 +2309,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 1,
- "modified": "2016-01-17 11:14:10.169713",
+ "modified": "2016-01-26 05:31:58.950718",
"modified_by": "Administrator",
"module": "Stock",
"name": "Item",
@@ -2358,7 +2329,6 @@
"print": 1,
"read": 1,
"report": 1,
- "restrict": 0,
"role": "Material Master Manager",
"set_user_permissions": 0,
"share": 1,
@@ -2379,7 +2349,6 @@
"print": 1,
"read": 1,
"report": 1,
- "restrict": 0,
"role": "Material Manager",
"set_user_permissions": 0,
"share": 0,
@@ -2400,7 +2369,6 @@
"print": 1,
"read": 1,
"report": 1,
- "restrict": 0,
"role": "Material User",
"set_user_permissions": 0,
"share": 0,
@@ -2421,7 +2389,6 @@
"print": 0,
"read": 1,
"report": 0,
- "restrict": 0,
"role": "Sales User",
"set_user_permissions": 0,
"share": 0,
@@ -2442,7 +2409,6 @@
"print": 0,
"read": 1,
"report": 0,
- "restrict": 0,
"role": "Purchase User",
"set_user_permissions": 0,
"share": 0,
@@ -2463,7 +2429,6 @@
"print": 0,
"read": 1,
"report": 0,
- "restrict": 0,
"role": "Maintenance User",
"set_user_permissions": 0,
"share": 0,
@@ -2484,7 +2449,6 @@
"print": 0,
"read": 1,
"report": 0,
- "restrict": 0,
"role": "Accounts User",
"set_user_permissions": 0,
"share": 0,
@@ -2505,7 +2469,6 @@
"print": 0,
"read": 1,
"report": 0,
- "restrict": 0,
"role": "Manufacturing User",
"set_user_permissions": 0,
"share": 0,
diff --git a/erpnext/stock/doctype/item/test_records.json b/erpnext/stock/doctype/item/test_records.json
index f12c7cc..ca40d45 100644
--- a/erpnext/stock/doctype/item/test_records.json
+++ b/erpnext/stock/doctype/item/test_records.json
@@ -13,7 +13,6 @@
"is_pro_applicable": 0,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 1,
"is_sub_contracted_item": 0,
"item_code": "_Test Item",
@@ -46,7 +45,6 @@
"is_pro_applicable": 0,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 1,
"is_sub_contracted_item": 0,
"item_code": "_Test Item 2",
@@ -70,7 +68,6 @@
"is_pro_applicable": 0,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 1,
"is_sub_contracted_item": 0,
"item_code": "_Test Item Home Desktop 100",
@@ -100,7 +97,6 @@
"is_pro_applicable": 0,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 1,
"is_sub_contracted_item": 0,
"item_code": "_Test Item Home Desktop 200",
@@ -121,7 +117,6 @@
"is_pro_applicable": 0,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 0,
"is_sub_contracted_item": 0,
"item_code": "_Test Product Bundle Item",
@@ -143,7 +138,6 @@
"is_pro_applicable": 1,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 1,
"is_sub_contracted_item": 1,
"item_code": "_Test FG Item",
@@ -161,7 +155,6 @@
"is_pro_applicable": 0,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 0,
"is_sub_contracted_item": 0,
"item_code": "_Test Non Stock Item",
@@ -180,7 +173,6 @@
"is_pro_applicable": 0,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 1,
"is_sub_contracted_item": 0,
"item_code": "_Test Serialized Item",
@@ -199,7 +191,6 @@
"is_pro_applicable": 0,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 1,
"is_sub_contracted_item": 0,
"item_code": "_Test Serialized Item With Series",
@@ -221,7 +212,6 @@
"is_asset_item": 0,
"is_pro_applicable": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 1,
"is_sub_contracted_item": 0,
"item_code": "_Test Item Home Desktop Manufactured",
@@ -243,7 +233,6 @@
"is_pro_applicable": 1,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 1,
"is_sub_contracted_item": 1,
"item_code": "_Test FG Item 2",
@@ -265,7 +254,6 @@
"is_pro_applicable": 1,
"is_purchase_item": 1,
"is_sales_item": 1,
- "is_service_item": 0,
"is_stock_item": 1,
"is_sub_contracted_item": 1,
"item_code": "_Test Variant Item",
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 1c0acce..5548350 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -111,11 +111,7 @@
if args.transaction_type=="selling":
# validate if sales item or service item
- if args.get("order_type") == "Maintenance":
- if item.is_service_item != 1:
- throw(_("Item {0} must be a Service Item.").format(item.name))
-
- elif item.is_sales_item != 1:
+ if item.is_sales_item != 1:
throw(_("Item {0} must be a Sales Item").format(item.name))
if cint(item.has_variants):
diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
index 91b1f67..650429c 100644
--- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
@@ -107,7 +107,7 @@
cur_frm.fields_dict['items'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
return {
- filters:{ 'is_service_item': 1 }
+ filters:{ 'is_sales_item': 1 }
}
}
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
index 52141a8..51ba62a 100644
--- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
+++ b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
@@ -81,7 +81,7 @@
cur_frm.fields_dict['purposes'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
return{
- filters:{ 'is_service_item': 1}
+ filters:{ 'is_sales_item': 1}
}
}