diff --git a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json index 75880adc56..c5efdf8578 100644 --- a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json +++ b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json @@ -1,5 +1,6 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, "beta": 0, @@ -22,6 +23,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, "in_standard_filter": 0, "label": "Enable Shopping Cart", @@ -49,6 +51,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "length": 0, @@ -75,6 +78,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, "in_standard_filter": 0, "label": "Company", @@ -104,6 +108,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Price List", @@ -122,6 +127,35 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "show_quantity_in_website", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Show Quantity in Website", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, @@ -133,6 +167,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "length": 0, @@ -160,6 +195,7 @@ "ignore_user_permissions": 1, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Default Customer Group", @@ -188,6 +224,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Quotation Series", @@ -216,6 +253,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Checkout Settings", @@ -244,6 +282,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Enable Checkout", @@ -274,6 +313,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Payment Success Url", @@ -303,6 +343,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "length": 0, @@ -330,6 +371,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Payment Gateway Account", @@ -349,18 +391,18 @@ "unique": 0 } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "icon": "fa fa-shopping-cart", "idx": 1, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 1, "istable": 0, "max_attachments": 0, - "modified": "2017-01-17 05:30:29.333104", + "modified": "2017-03-21 15:42:08.574497", "modified_by": "Administrator", "module": "Shopping Cart", "name": "Shopping Cart Settings", @@ -376,7 +418,6 @@ "export": 0, "if_owner": 0, "import": 0, - "is_custom": 0, "permlevel": 0, "print": 1, "read": 1, @@ -391,6 +432,7 @@ "quick_entry": 0, "read_only": 0, "read_only_onload": 0, + "show_name_in_global_search": 0, "sort_order": "ASC", "track_changes": 0, "track_seen": 0 diff --git a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py index 6915ef54a1..4e24d2e6ee 100644 --- a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py +++ b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py @@ -82,6 +82,9 @@ def get_shopping_cart_settings(): def is_cart_enabled(): return get_shopping_cart_settings().enabled +def show_quantity_in_website(): + return get_shopping_cart_settings().show_quantity_in_website + def check_shopping_cart_enabled(): if not get_shopping_cart_settings().enabled: frappe.throw(_("You need to enable Shopping Cart"), ShoppingCartSetupError) diff --git a/erpnext/shopping_cart/product.py b/erpnext/shopping_cart/product.py index 24e4d422ce..d7afc3bfba 100644 --- a/erpnext/shopping_cart/product.py +++ b/erpnext/shopping_cart/product.py @@ -7,7 +7,7 @@ import frappe from frappe.utils import cint, fmt_money, flt from erpnext.shopping_cart.cart import _get_cart_quotation from erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings \ - import is_cart_enabled, get_shopping_cart_settings + import is_cart_enabled, get_shopping_cart_settings, show_quantity_in_website from erpnext.accounts.doctype.pricing_rule.pricing_rule import get_pricing_rule_for_item @frappe.whitelist(allow_guest=True) @@ -19,7 +19,9 @@ def get_product_info(item_code): qty = 0 cart_quotation = _get_cart_quotation() template_item_code = frappe.db.get_value("Item", item_code, "variant_of") - in_stock = get_qty_in_stock(item_code, template_item_code) + stock_status = get_qty_in_stock(item_code, template_item_code) + in_stock = stock_status.in_stock + stock_qty = stock_status.stock_qty price = get_price(item_code, template_item_code, cart_quotation.selling_price_list) if price: @@ -36,9 +38,11 @@ def get_product_info(item_code): return { "price": price, - "stock": in_stock, + "stock_qty": stock_qty, + "in_stock": in_stock, "uom": frappe.db.get_value("Item", item_code, "stock_uom"), - "qty": qty + "qty": qty, + "show_stock_qty": show_quantity_in_website() } def get_qty_in_stock(item_code, template_item_code): @@ -47,15 +51,14 @@ def get_qty_in_stock(item_code, template_item_code): warehouse = frappe.db.get_value("Item", template_item_code, "website_warehouse") if warehouse: - in_stock = frappe.db.sql("""select actual_qty from tabBin where + stock_qty = frappe.db.sql("""select actual_qty from tabBin where item_code=%s and warehouse=%s""", (item_code, warehouse)) - if in_stock: - in_stock = in_stock[0][0] > 0 and 1 or 0 + if stock_qty: + in_stock = stock_qty[0][0] > 0 and 1 or 0 + else: + in_stock = 0 - else: - in_stock = 0 - - return in_stock + return frappe._dict({"in_stock": in_stock, "stock_qty": stock_qty}) def get_price(item_code, template_item_code, price_list, qty=1): if price_list: diff --git a/erpnext/templates/includes/product_page.js b/erpnext/templates/includes/product_page.js index 4b23d5ead5..b37f7aadfc 100644 --- a/erpnext/templates/includes/product_page.js +++ b/erpnext/templates/includes/product_page.js @@ -17,12 +17,16 @@ frappe.ready(function() { $(".item-price") .html(r.message.price.formatted_price + " per " + r.message.uom); - if(r.message.stock==0) { - $(".item-stock").html("