diff --git a/erpnext/public/js/event.js b/erpnext/public/js/event.js index d31a2df66424e21035dc86c7fae16ac5cac9315f..d082631ed8897c5303071b63d60a4628c617a22a 100644 --- a/erpnext/public/js/event.js +++ b/erpnext/public/js/event.js @@ -104,7 +104,7 @@ const book_items = (frm, values) => { } const new_booking = (frm, value) => { - return frappe.xcall('erpnext.venue.doctype.item_booking.item_booking.book_new_slot', { + return frappe.xcall('erpnext.venue.doctype.item_booking.item_booking.book_new_slot_from_event', { item: value, start: frm.doc.starts_on, end: frm.doc.ends_on, diff --git a/erpnext/venue/doctype/item_booking/item_booking.py b/erpnext/venue/doctype/item_booking/item_booking.py index 70f11c2578588298e69922acfa3e0ac0f98db5cf..418ba3f6488c758da60af7d33e3f9ee69b5658e0 100644 --- a/erpnext/venue/doctype/item_booking/item_booking.py +++ b/erpnext/venue/doctype/item_booking/item_booking.py @@ -32,6 +32,7 @@ from frappe.utils import ( sbool, time_diff_in_minutes, ) +from frappe.utils.deprecations import deprecated from googleapiclient.errors import HttpError from erpnext.accounts.party import get_party_account_currency @@ -700,7 +701,9 @@ def get_item_uoms(item_code): @frappe.whitelist() +@deprecated def book_new_slot(**kwargs): + frappe.log_error("book_new_slot is deprecated: use webshop.webshop.shopping_cart.booking.book_new_slot instead") try: doc = frappe.get_doc( { @@ -725,6 +728,27 @@ def book_new_slot(**kwargs): frappe.log_error(_("New item booking error")) +@frappe.whitelist() +def book_new_slot_from_event(**kwargs): + frappe.only_for("Desk User") + doc = frappe.new_doc("Item Booking") + doc.update({ + "item": kwargs.get("item"), + "starts_on": kwargs.get("start"), + "ends_on": kwargs.get("end"), + "user": kwargs.get("user"), + "status": kwargs.get("status") or "In cart", + "event": kwargs.get("event"), + "all_day": kwargs.get("all_day") or 0, + "uom": kwargs.get("uom"), + "sync_with_google_calendar": kwargs.get("sync_with_google_calendar") + or frappe.db.get_single_value("Venue Settings", "sync_with_google_calendar"), + "deduct_booking_credits": sbool(kwargs.get("with_credits")), + }) + doc.insert(ignore_permissions=True) + return doc + + @frappe.whitelist() def remove_booked_slot(name): has_booking_permission(name, raise_exception=True)