') != -1) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\titem_data.description = $(item_data.description).text();\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\titem_data.description = item_data.description.replace(/
/g, ' ').replace(/<\\/div>/g, ' ').replace(/ +/g, ' ');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\titem_data.description = frappe.ellipsis(item_data.description, 45);\n\t\t\t\treturn `
${item_data.description}
`;\n\t\t\t}\n\t\t\treturn ``;\n\t\t}\n\n\t\tfunction get_item_image_html() {\n\t\t\tconst { image, item_name } = item_data;\n\t\t\tif (!me.hide_images && image) {\n\t\t\t\treturn `\n\t\t\t\t\t
\n\t\t\t\t\t\t
![\"${frappe.get_abbr(item_name)}\"\"]()
\n\t\t\t\t\t
`;\n\t\t\t} else {\n\t\t\t\treturn `
${frappe.get_abbr(item_name)}
`;\n\t\t\t}\n\t\t}\n\t}\n\n\thandle_broken_image($img) {\n\t\tconst item_abbr = $($img).attr('alt');\n\t\t$($img).parent().replaceWith(`
${item_abbr}
`);\n\t}\n\n\tupdate_selector_value_in_cart_item(selector, value, item) {\n\t\tconst $item_to_update = this.get_cart_item(item);\n\t\t$item_to_update.attr(`data-${selector}`, escape(value));\n\t}\n\n\ttoggle_checkout_btn(show_checkout) {\n\t\tif (show_checkout) {\n\t\t\tif(this.show_checkout_button){\n\t\t\t\tthis.$totals_section.find('.checkout-btn').css('display', 'flex');\n\t\t\t} else {\n\t\t\t\tthis.$totals_section.find('.checkout-btn').css('display', 'none');\n\t\t\t}\n\n\t\t\tif(this.show_held_button){\n\t\t\t\tthis.$totals_section.find('.checkout-btn-held').css('display', 'flex');\n\t\t\t} else {\n\t\t\t\tthis.$totals_section.find('.checkout-btn-held').css('display', 'none');\n\t\t\t}\n\t\t\tif(this.show_order_list_button){\n\t\t\t\tthis.$totals_section.find('.checkout-btn-order').css('display', 'flex');\n\t\t\t} else {\n\t\t\t\tthis.$totals_section.find('.checkout-btn-order').css('display', 'none');\n\t\t\t}\n\t\t\tthis.$totals_section.find('.edit-cart-btn').css('display', 'none');\n\t\t} else {\n\t\t\tthis.$totals_section.find('.checkout-btn').css('display', 'none');\n\t\t\t\tthis.$totals_section.find('.checkout-btn-held').css('display', 'none');\n\t\t\tthis.$totals_section.find('.checkout-btn-held').css('display', 'none');\n\t\t\t\tthis.$totals_section.find('.checkout-btn-order').css('display', 'none');\n\t\t\tthis.$totals_section.find('.edit-cart-btn').css('display', 'flex');\n\t\t}\n\t}\n\n\thighlight_checkout_btn(toggle) {\n\t\tif (toggle) {\n\t\t\tthis.$add_discount_elem.css('display', 'flex');\n\t\t\tthis.$cart_container.find('.checkout-btn').css({\n\t\t\t\t'background-color': 'var(--blue-500)'\n\t\t\t});\n\t\t\tif(this.show_held_button){\n\t\t\t\tthis.$cart_container.find('.checkout-btn-held').css({\n\t\t\t\t\t'background-color': 'var(--blue-500)'\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.$cart_container.find('.checkout-btn-held').css({\n\t\t\t\t\t'background-color': 'var(--blue-200)'\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(this.show_order_list_button){\n\t\t\t\tthis.$cart_container.find('.checkout-btn-order').css({\n\t\t\t\t\t'background-color': 'var(--blue-500)'\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.$cart_container.find('.checkout-btn-order').css({\n\t\t\t\t\t'background-color': 'var(--blue-500)'\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else {\n\t\t\tthis.$add_discount_elem.css('display', 'none');\n\t\t\tthis.$cart_container.find('.checkout-btn').css({\n\t\t\t\t'background-color': 'var(--blue-200)'\n\t\t\t});\n\t\t\tthis.$cart_container.find('.checkout-btn-held').css({\n\t\t\t\t'background-color': 'var(--blue-200)'\n\t\t\t});\n\n\t\t\tthis.$cart_container.find('.checkout-btn-order').css({\n\t\t\t\t'background-color': 'var(--blue-500)'\n\t\t\t});\n\t\t}\n\t}\n\n\tupdate_empty_cart_section(no_of_cart_items) {\n\t\tconst $no_item_element = this.$cart_items_wrapper.find('.no-item-wrapper');\n\n\t\t// if cart has items and no item is present\n\t\tno_of_cart_items > 0 && $no_item_element && $no_item_element.remove() && this.$cart_header.css('display', 'flex');\n\n\t\tno_of_cart_items === 0 && !$no_item_element.length && this.make_no_items_placeholder();\n\t}\n\n\ton_numpad_event($btn) {\n\t\tconst current_action = $btn.attr('data-button-value');\n\t\tconst action_is_field_edit = ['qty', 'discount_percentage', 'rate'].includes(current_action);\n\t\tconst action_is_allowed = action_is_field_edit ? (\n\t\t\t(current_action == 'rate' && this.allow_rate_change) ||\n\t\t\t(current_action == 'discount_percentage' && this.allow_discount_change) ||\n\t\t\t(current_action == 'qty')) : true;\n\n\t\tconst action_is_pressed_twice = this.prev_action === current_action;\n\t\tconst first_click_event = !this.prev_action;\n\t\tconst field_to_edit_changed = this.prev_action && this.prev_action != current_action;\n\n\t\tif (action_is_field_edit) {\n\t\t\tif (!action_is_allowed) {\n\t\t\t\tconst label = current_action == 'rate' ? 'Rate'.bold() : 'Discount'.bold();\n\t\t\t\tconst message = __('Editing {0} is not allowed as per POS Profile settings', [label]);\n\t\t\t\tfrappe.show_alert({\n\t\t\t\t\tindicator: 'red',\n\t\t\t\t\tmessage: message\n\t\t\t\t});\n\t\t\t\tfrappe.utils.play_sound(\"error\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (first_click_event || field_to_edit_changed) {\n\t\t\t\tthis.prev_action = current_action;\n\t\t\t} else if (action_is_pressed_twice) {\n\t\t\t\tthis.prev_action = undefined;\n\t\t\t}\n\t\t\tthis.numpad_value = '';\n\n\t\t} else if (current_action === 'checkout') {\n\t\t\tthis.prev_action = undefined;\n\t\t\tthis.toggle_item_highlight();\n\t\t\tthis.events.numpad_event(undefined, current_action);\n\t\t\treturn;\n\t\t} else if (current_action === 'remove') {\n\t\t\tthis.prev_action = undefined;\n\t\t\tthis.toggle_item_highlight();\n\t\t\tthis.events.numpad_event(undefined, current_action);\n\t\t\treturn;\n\t\t} else {\n\t\t\tthis.numpad_value = current_action === 'delete' ? this.numpad_value.slice(0, -1) : this.numpad_value + current_action;\n\t\t\tthis.numpad_value = this.numpad_value || 0;\n\t\t}\n\n\t\tconst first_click_event_is_not_field_edit = !action_is_field_edit && first_click_event;\n\n\t\tif (first_click_event_is_not_field_edit) {\n\t\t\tfrappe.show_alert({\n\t\t\t\tindicator: 'red',\n\t\t\t\tmessage: __('Please select a field to edit from numpad')\n\t\t\t});\n\t\t\tfrappe.utils.play_sound(\"error\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (flt(this.numpad_value) > 100 && this.prev_action === 'discount_percentage') {\n\t\t\tfrappe.show_alert({\n\t\t\t\tmessage: __('Discount cannot be greater than 100%'),\n\t\t\t\tindicator: 'orange'\n\t\t\t});\n\t\t\tfrappe.utils.play_sound(\"error\");\n\t\t\tthis.numpad_value = current_action;\n\t\t}\n\n\t\tthis.highlight_numpad_btn($btn, current_action);\n\t\tthis.events.numpad_event(this.numpad_value, this.prev_action);\n\t}\n\n\thighlight_numpad_btn($btn, curr_action) {\n\t\tconst curr_action_is_highlighted = $btn.hasClass('highlighted-numpad-btn');\n\t\tconst curr_action_is_action = ['qty', 'discount_percentage', 'rate', 'done'].includes(curr_action);\n\n\t\tif (!curr_action_is_highlighted) {\n\t\t\t$btn.addClass('highlighted-numpad-btn');\n\t\t}\n\t\tif (this.prev_action === curr_action && curr_action_is_highlighted) {\n\t\t\t// if Qty is pressed twice\n\t\t\t$btn.removeClass('highlighted-numpad-btn');\n\t\t}\n\t\tif (this.prev_action && this.prev_action !== curr_action && curr_action_is_action) {\n\t\t\t// Order: Qty -> Rate then remove Qty highlight\n\t\t\tconst prev_btn = $(`[data-button-value='${this.prev_action}']`);\n\t\t\tprev_btn.removeClass('highlighted-numpad-btn');\n\t\t}\n\t\tif (!curr_action_is_action || curr_action === 'done') {\n\t\t\t// if numbers are clicked\n\t\t\tsetTimeout(() => {\n\t\t\t\t$btn.removeClass('highlighted-numpad-btn');\n\t\t\t}, 200);\n\t\t}\n\t}\n\n\ttoggle_numpad(show) {\n\t\tif (show) {\n\t\t\tthis.$totals_section.css('display', 'none');\n\t\t\tthis.$numpad_section.css('display', 'flex');\n\t\t} else {\n\t\t\tthis.$totals_section.css('display', 'flex');\n\t\t\tthis.$numpad_section.css('display', 'none');\n\t\t}\n\t\tthis.reset_numpad();\n\t}\n\n\treset_numpad() {\n\t\tthis.numpad_value = '';\n\t\tthis.prev_action = undefined;\n\t\tthis.$numpad_section.find('.highlighted-numpad-btn').removeClass('highlighted-numpad-btn');\n\t}\n\n\ttoggle_numpad_field_edit(fieldname) {\n\t\tif (['qty', 'discount_percentage', 'rate'].includes(fieldname)) {\n\t\t\tthis.$numpad_section.find(`[data-button-value=\"${fieldname}\"]`).click();\n\t\t}\n\t}\n\n\ttoggle_customer_info(show) {\n\t\tif (show) {\n\t\t\tconst { customer } = this.customer_info || {};\n\n\t\t\tthis.$cart_container.css('display', 'none');\n\t\t\tthis.$customer_section.css({\n\t\t\t\t'height': '100%',\n\t\t\t\t'padding-top': '0px'\n\t\t\t});\n\t\t\tthis.$customer_section.find('.customer-details').html(\n\t\t\t\t`\n\t\t\t\t
\n\t\t\t\t\t${this.get_customer_image()}\n\t\t\t\t\t
\n\t\t\t\t\t\t
${customer}
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
Recent Transactions
`\n\t\t\t);\n\t\t\t// transactions need to be in diff div from sticky elem for scrolling\n\t\t\tthis.$customer_section.append(`
`);\n\t\t\tif(this.mobile_number_based_customer){\n\t\t\t\tthis.$customer_section.find('.mobile_no-field').css('display', 'none');\n\t\t\t\tthis.$customer_section.find('.close-details-btn').css('display', 'none');\n\t\t\t} else {\n\t\t\t\tthis.$customer_section.find('.mobile_no-field').css('display', 'flex');\n\t\t\t\tthis.$customer_section.find('.close-details-btn').css('display', 'flex');\n\t\t\t}\n\t\t\tthis.render_customer_fields();\n\t\t\tthis.fetch_customer_transactions();\n\n\t\t} else {\n\t\t\tthis.$cart_container.css('display', 'flex');\n\t\t\tthis.$customer_section.css({\n\t\t\t\t'height': '',\n\t\t\t\t'padding-top': ''\n\t\t\t});\n\n\t\t\tthis.update_customer_section();\n\t\t}\n\t}\n\n\trender_customer_fields() {\n\t\tconst $customer_form = this.$customer_section.find('.customer-fields-container');\n\n\t\tconst dfs = [{\n\t\t\tfieldname: 'email_id',\n\t\t\tlabel: __('Email'),\n\t\t\tfieldtype: 'Data',\n\t\t\toptions: 'email',\n\t\t\tplaceholder: __(\"Enter customer's email\")\n\t\t},{\n\t\t\tfieldname: 'mobile_no',\n\t\t\tlabel: __('Phone Number'),\n\t\t\tfieldtype: 'Data',\n\t\t\tplaceholder: __(\"Enter customer's phone number\")\n\t\t},{\n\t\t\tfieldname: 'loyalty_program',\n\t\t\tlabel: __('Loyalty Program'),\n\t\t\tfieldtype: 'Link',\n\t\t\toptions: 'Loyalty Program',\n\t\t\tplaceholder: __(\"Select Loyalty Program\")\n\t\t},{\n\t\t\tfieldname: 'loyalty_points',\n\t\t\tlabel: __('Loyalty Points'),\n\t\t\tfieldtype: 'Data',\n\t\t\tread_only: 1\n\t\t}];\n\n\t\tconst me = this;\n\t\tdfs.forEach(df => {\n\t\t\tthis[`customer_${df.fieldname}_field`] = frappe.ui.form.make_control({\n\t\t\t\tdf: { ...df,\n\t\t\t\t\tonchange: handle_customer_field_change,\n\t\t\t\t},\n\t\t\t\tparent: $customer_form.find(`.${df.fieldname}-field`),\n\t\t\t\trender_input: true,\n\t\t\t});\n\t\t\tthis[`customer_${df.fieldname}_field`].set_value(this.customer_info[df.fieldname]);\n\t\t})\n\n\t\tfunction handle_customer_field_change() {\n\t\t\tconst current_value = me.customer_info[this.df.fieldname];\n\t\t\tconst current_customer = me.customer_info.customer;\n\n\t\t\tif (this.value && current_value != this.value && this.df.fieldname != 'loyalty_points') {\n\t\t\t\tfrappe.call({\n\t\t\t\t\tmethod: 'posnext.posnext.page.posnext.point_of_sale.set_customer_info',\n\t\t\t\t\targs: {\n\t\t\t\t\t\tfieldname: this.df.fieldname,\n\t\t\t\t\t\tcustomer: current_customer,\n\t\t\t\t\t\tvalue: this.value\n\t\t\t\t\t},\n\t\t\t\t\tcallback: (r) => {\n\t\t\t\t\t\tif(!r.exc) {\n\t\t\t\t\t\t\tme.customer_info[this.df.fieldname] = this.value;\n\t\t\t\t\t\t\tfrappe.show_alert({\n\t\t\t\t\t\t\t\tmessage: __(\"Customer contact updated successfully.\"),\n\t\t\t\t\t\t\t\tindicator: 'green'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tfrappe.utils.play_sound(\"submit\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tfetch_customer_transactions() {\n\t\tfrappe.db.get_list('Sales Invoice', {\n\t\t\tfilters: { customer: this.customer_info.customer, docstatus: 1 },\n\t\t\tfields: ['name', 'grand_total', 'status', 'posting_date', 'posting_time', 'currency'],\n\t\t\tlimit: 20\n\t\t}).then((res) => {\n\t\t\tconst transaction_container = this.$customer_section.find('.customer-transactions');\n\n\t\t\tif (!res.length) {\n\t\t\t\ttransaction_container.html(\n\t\t\t\t\t`
No recent transactions found
`\n\t\t\t\t)\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst elapsed_time = moment(res[0].posting_date+\" \"+res[0].posting_time).fromNow();\n\t\t\tthis.$customer_section.find('.customer-desc').html(`Last transacted ${elapsed_time}`);\n\n\t\t\tres.forEach(invoice => {\n\t\t\t\tconst posting_datetime = moment(invoice.posting_date+\" \"+invoice.posting_time).format(\"Do MMMM, h:mma\");\n\t\t\t\tlet indicator_color = {\n\t\t\t\t\t'Paid': 'green',\n\t\t\t\t\t'Draft': 'red',\n\t\t\t\t\t'Return': 'gray',\n\t\t\t\t\t'Consolidated': 'blue'\n\t\t\t\t};\n\n\t\t\t\ttransaction_container.append(\n\t\t\t\t\t`
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
${invoice.name}
\n\t\t\t\t\t\t\t
${posting_datetime}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t${format_currency(invoice.grand_total, invoice.currency, 0) || 0}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t${invoice.status}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
`\n\t\t\t\t)\n\t\t\t});\n\t\t});\n\t}\n\n\tattach_refresh_field_event(frm) {\n\t\t$(frm.wrapper).off('refresh-fields');\n\t\t$(frm.wrapper).on('refresh-fields', () => {\n\t\t\tif (frm.doc.items.length) {\n\t\t\t\tthis.$cart_items_wrapper.html('');\n\t\t\t\tfrm.doc.items.forEach(item => {\n\t\t\t\t\tthis.update_item_html(item);\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.update_totals_section(frm);\n\t\t});\n\t}\n\n\tload_invoice() {\n\t\tconsole.log(\"Load invoice\")\n\t\tconst frm = this.events.get_frm();\n\n\t\tthis.attach_refresh_field_event(frm);\n\n\t\tthis.fetch_customer_details(frm.doc.customer).then(() => {\n\t\t\tthis.events.customer_details_updated(this.customer_info);\n\t\t\tthis.update_customer_section();\n\t\t\n\t\t\tthis.$cart_items_wrapper.html('');\n\t\t\tif (frm.doc.items.length) {\n\t\t\t\tfrm.doc.items.forEach(item => {\n\t\t\t\t\tthis.update_item_html(item);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.make_no_items_placeholder();\n\t\t\t\tthis.highlight_checkout_btn(true);\n\t\t\t}\n\n\t\t\tthis.update_totals_section(frm);\n\n\t\t\tif(frm.doc.docstatus === 1) {\n\t\t\t\tthis.$totals_section.find('.checkout-btn').css('display', 'none');\n\t\t\t\tthis.$totals_section.find('.checkout-btn-held').css('display', 'none');\n\t\t\t\tif(this.show_order_list_button){\n\t\t\t\t\tthis.$totals_section.find('.checkout-btn-order').css('display', 'flex');\n\t\t\t\t} else {\n\t\t\t\t\tthis.$totals_section.find('.checkout-btn-order').css('display', 'none');\n\t\t\t\t}\n\t\t\t\tthis.$totals_section.find('.edit-cart-btn').css('display', 'none');\n\t\t\t} else {\n\t\t\t\tif(this.show_checkout_button) {\n\t\t\t\t\tthis.$totals_section.find('.checkout-btn').css('display', 'flex');\n\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.$totals_section.find('.checkout-btn').css('display', 'none');\n\n\t\t\t\t}\n\t\t\t\tif(this.show_held_button){\n\t\t\t\t\tthis.$totals_section.find('.checkout-btn-held').css('display', 'flex');\n\t\t\t\t} else {\n\t\t\t\tthis.$totals_section.find('.checkout-btn-held').css('display', 'none');\n\t\t\t\t}\n\t\t\t\tif(this.show_order_list_button){\n\t\t\t\t\tthis.$totals_section.find('.checkout-btn-order').css('display', 'flex');\n\t\t\t\t} else {\n\t\t\t\t\tthis.$totals_section.find('.checkout-btn-order').css('display', 'none');\n\t\t\t\t}\n\t\t\t\tthis.$totals_section.find('.edit-cart-btn').css('display', 'none');\n\t\t\t}\n\n\t\t\tthis.toggle_component(true);\n\t\t});\n\t}\n\n\ttoggle_component(show) {\n\t\tshow ? this.$component.css('display', 'flex') : this.$component.css('display', 'none');\n\t}\n\n\tshow_reference_dialog(mobile_number = null) {\n\t\tconst me = this;\n\t\tconst dialog = new frappe.ui.Dialog({\n\t\t\ttitle: __('Enter Reference Details'),\n\t\t\tfields: [\n\t\t\t\t{\n\t\t\t\t\tfieldtype: 'Data',\n\t\t\t\t\tlabel: __('Reference Number'),\n\t\t\t\t\tfieldname: 'reference_no',\n\t\t\t\t\treqd: 1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tfieldtype: 'Data',\n\t\t\t\t\tlabel: __('Reference Name'),\n\t\t\t\t\tfieldname: 'reference_name',\n\t\t\t\t\treqd: 1\n\t\t\t\t}\n\t\t\t],\n\t\t\tprimary_action_label: __('Hold Invoice'),\n\t\t\tprimary_action: async (values) => {\n\t\t\t\tif (mobile_number) {\n\t\t\t\t\t// Create customer if mobile number provided\n\t\t\t\t\tawait frappe.call({\n\t\t\t\t\t\tmethod: \"posnext.posnext.page.posnext.point_of_sale.create_customer\",\n\t\t\t\t\t\targs: { customer: mobile_number },\n\t\t\t\t\t\tfreeze: true,\n\t\t\t\t\t\tfreeze_message: \"Creating Customer....\"\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tconst frm = me.events.get_frm();\n\t\t\t\t\tawait frappe.model.set_value(frm.doc.doctype, frm.doc.name, 'customer', mobile_number);\n\t\t\t\t\tawait frm.script_manager.trigger('customer', frm.doc.doctype, frm.doc.name);\n\t\t\t\t}\n\n\t\t\t\t// Update reference details\n\t\t\t\tconst frm = me.events.get_frm();\n\t\t\t\tfrm.doc.custom_reference_no = values.reference_no;\n\t\t\t\tfrm.doc.custom_reference_name = values.reference_name;\n\t\t\t\t\n\t\t\t\tdialog.hide();\n\t\t\t\tawait me.events.save_draft_invoice();\n\t\t\t}\n\t\t});\n\t\tdialog.show();\n\t}\n\n\tasync hold_invoice(mobile_number = null) {\n\t\tif (mobile_number) {\n\t\t\tawait frappe.call({\n\t\t\t\tmethod: \"posnext.posnext.page.posnext.point_of_sale.create_customer\",\n\t\t\t\targs: { customer: mobile_number },\n\t\t\t\tfreeze: true,\n\t\t\t\tfreeze_message: \"Creating Customer....\"\n\t\t\t});\n\t\t\t\n\t\t\tconst frm = this.events.get_frm();\n\t\t\tawait frappe.model.set_value(frm.doc.doctype, frm.doc.name, 'customer', mobile_number);\n\t\t\tawait frm.script_manager.trigger('customer', frm.doc.doctype, frm.doc.name);\n\t\t}\n\t\t\n\t\tawait this.events.save_draft_invoice();\n\t}\n}\n", "frappe.provide('posnext.PointOfSale');\nposnext.PointOfSale.ItemDetails = class {\n\tconstructor({ wrapper, events, settings }) {\n\t\tthis.wrapper = wrapper;\n\t\tthis.events = events;\n\t\tthis.hide_images = settings.hide_images;\n\t\tthis.allow_rate_change = settings.allow_rate_change;\n\t\tthis.allow_discount_change = settings.allow_discount_change;\n\t\tthis.custom_edit_rate_and_uom = settings.custom_edit_rate_and_uom;\n\t\tthis.current_item = {};\n\n\t\tthis.init_component();\n\t}\n\n\tinit_component() {\n\t\tthis.prepare_dom();\n\t\tthis.init_child_components();\n\t\tthis.bind_events();\n\t\tthis.attach_shortcuts();\n\t}\n\n\tprepare_dom() {\n\t\tthis.wrapper.append(\n\t\t\t`
`\n\t\t)\n\n\t\tthis.$component = this.wrapper.find('.item-details-container');\n\t}\n\n\tinit_child_components() {\n\t\tthis.$component.html(\n\t\t\t`\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t
`\n\t\t)\n\n\t\tthis.$item_name = this.$component.find('.item-name');\n\t\tthis.$item_description = this.$component.find('.item-desc');\n\t\tthis.$item_price = this.$component.find('.item-price');\n\t\tthis.$item_image = this.$component.find('.item-image');\n\t\tthis.$form_container = this.$component.find('.form-container');\n\t\tthis.$dicount_section = this.$component.find('.discount-section');\n\t\tthis.$serial_batch_container = this.$component.find('.serial-batch-container');\n\t}\n\n\tcompare_with_current_item(item) {\n\t\t// returns true if `item` is currently being edited\n\t\treturn item && item.name == this.current_item.name;\n\t}\n\n\tasync toggle_item_details_section(item) {\n\t\tconst current_item_changed = !this.compare_with_current_item(item);\n\n\t\t// if item is null or highlighted cart item is clicked twice\n\t\tconst hide_item_details = !Boolean(item) || !current_item_changed;\n\n\t\tif ((!hide_item_details && current_item_changed) || hide_item_details) {\n\t\t\t// if item details is being closed OR if item details is opened but item is changed\n\t\t\t// in both cases, if the current item is a serialized item, then validate and remove the item\n\t\t\tawait this.validate_serial_batch_item();\n\t\t}\n\t\tif(!this.custom_edit_rate_and_uom){\n\t\t\tthis.events.toggle_item_selector(!hide_item_details);\n\t\t\tthis.toggle_component(!hide_item_details);\n\t\t}\n\n\n\t\tif (item && current_item_changed) {\n\t\t\tthis.doctype = item.doctype;\n\t\t\tthis.item_meta = frappe.get_meta(this.doctype);\n\t\t\tthis.name = item.name;\n\t\t\tthis.item_row = item;\n\t\t\tthis.currency = this.events.get_frm().doc.currency;\n\n\t\t\tthis.current_item = item;\n\n\t\t\tthis.render_dom(item);\n\t\t\tthis.render_discount_dom(item);\n\t\t\tthis.render_form(item);\n\t\t\tthis.events.highlight_cart_item(item);\n\t\t} else {\n\t\t\tthis.current_item = {};\n\t\t}\n\t}\n\n\tvalidate_serial_batch_item() {\n\t\tconst doc = this.events.get_frm().doc;\n\t\tconst item_row = doc.items.find(item => item.name === this.name);\n\n\t\tif (!item_row) return;\n\n\t\tconst serialized = item_row.has_serial_no;\n\t\tconst batched = item_row.has_batch_no;\n\t\tconst no_bundle_selected = !item_row.serial_and_batch_bundle;\n\n\t\tif ((serialized && no_bundle_selected) || (batched && no_bundle_selected)) {\n\t\t\tfrappe.show_alert({\n\t\t\t\tmessage: __(\"Item is removed since no serial / batch no selected.\"),\n\t\t\t\tindicator: 'orange'\n\t\t\t});\n\t\t\tfrappe.utils.play_sound(\"cancel\");\n\t\t\treturn this.events.remove_item_from_cart();\n\t\t}\n\t}\n\n\trender_dom(item) {\n\t\tlet { item_name, description, image, price_list_rate } = item;\n\n\t\tfunction get_description_html() {\n\t\t\tif (description) {\n\t\t\t\tdescription = description.indexOf('...') === -1 && description.length > 140 ? description.substr(0, 139) + '...' : description;\n\t\t\t\treturn description;\n\t\t\t}\n\t\t\treturn ``;\n\t\t}\n\n\t\tthis.$item_name.html(item_name);\n\t\tthis.$item_description.html(get_description_html());\n\t\tthis.$item_price.html(format_currency(price_list_rate, this.currency));\n\t\tif (!this.hide_images && image) {\n\t\t\tthis.$item_image.html(\n\t\t\t\t`
}\"\n\t\t\t\t\tstyle=\"object-fit:)
`\n\t\t\t);\n\t\t} else {\n\t\t\tthis.$item_image.html(`
${frappe.get_abbr(item_name)}
`);\n\t\t}\n\n\t}\n\n\thandle_broken_image($img) {\n\t\tconst item_abbr = $($img).attr('alt');\n\t\t$($img).replaceWith(`
${item_abbr}
`);\n\t}\n\n\trender_discount_dom(item) {\n\t\tif (item.discount_percentage) {\n\t\t\tthis.$dicount_section.html(\n\t\t\t\t`
${format_currency(item.price_list_rate, this.currency)}
\n\t\t\t\t
${item.discount_percentage}% off
`\n\t\t\t)\n\t\t\tthis.$item_price.html(format_currency(item.rate, this.currency));\n\t\t} else {\n\t\t\tthis.$dicount_section.html(``)\n\t\t}\n\t}\n\n\trender_form(item) {\n\t\tconst fields_to_display = this.get_form_fields(item);\n\t\tthis.$form_container.html('');\n\n\t\tfields_to_display.forEach((fieldname, idx) => {\n\t\t\tthis.$form_container.append(\n\t\t\t\t`
`\n\t\t\t)\n\n\t\t\tconst field_meta = this.item_meta.fields.find(df => df.fieldname === fieldname);\n\t\t\tfieldname === 'discount_percentage' ? (field_meta.label = __('Discount (%)')) : '';\n\t\t\tconst me = this;\n\t\t\tvar uoms = []\n\t\t\tfrappe.db.get_doc(\"Item\",me.current_item.item_code).then(doc => {\n\t\t\t\tuoms = doc.uoms.map(item => item.uom);\n\t\t\t})\n\t\t\tthis[`${fieldname}_control`] = frappe.ui.form.make_control({\n\t\t\t\tdf: {\n\t\t\t\t\t...field_meta,\n\t\t\t\t\tonchange: function() {\n\t\t\t\t\t\tme.events.form_updated(me.current_item, fieldname, this.value);\n\t\t\t\t\t},\n\t\t\t\t\tget_query:function () {\n\t\t\t\t\t\tif(fieldname === 'uom'){\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tfilters: {\n\t\t\t\t\t\t\t\t\tname: ['in',uoms]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn\n }\n\t\t\t\t},\n\t\t\t\tparent: this.$form_container.find(`.${fieldname}-control`),\n\t\t\t\trender_input: true,\n\t\t\t})\n\t\t\tthis[`${fieldname}_control`].set_value(item[fieldname]);\n\t\t});\n\n\t\tthis.make_auto_serial_selection_btn(item);\n\n\t\tthis.bind_custom_control_change_event();\n\t}\n\n\tget_form_fields(item) {\n\t\tconst fields = ['qty', 'uom', 'rate', 'conversion_factor', 'discount_percentage', 'warehouse', 'actual_qty', 'price_list_rate'];\n\t\tif (item.has_serial_no) fields.push('serial_no');\n\t\tif (item.has_batch_no) fields.push('batch_no');\n\t\treturn fields;\n\t}\n\n\tmake_auto_serial_selection_btn(item) {\n\t\tif (item.has_serial_no || item.has_batch_no) {\n\t\t\tconst label = item.has_serial_no ? __('Select Serial No') : __('Select Batch No');\n\t\t\tthis.$form_container.append(\n\t\t\t\t`
${label}
`\n\t\t\t);\n\t\t\tthis.$form_container.find('.serial_no-control').find('textarea').css('height', '6rem');\n\t\t}\n\t}\n\n\tbind_custom_control_change_event() {\n\t\tconst me = this;\n\t\tif (this.rate_control) {\n\t\t\tthis.rate_control.df.onchange = function() {\n\t\t\t\tif (this.value || flt(this.value) === 0) {\n\t\t\t\t\tme.events.form_updated(me.current_item, 'rate', this.value).then(() => {\n\t\t\t\t\t\tconst item_row = frappe.get_doc(me.doctype, me.name);\n\t\t\t\t\t\tconst doc = me.events.get_frm().doc;\n\t\t\t\t\t\tme.$item_price.html(format_currency(item_row.rate, doc.currency));\n\t\t\t\t\t\tme.render_discount_dom(item_row);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.rate_control.df.read_only = !this.allow_rate_change;\n\t\t\tthis.rate_control.refresh();\n\t\t}\n\n\t\tif (this.discount_percentage_control && !this.allow_discount_change) {\n\t\t\tthis.discount_percentage_control.df.read_only = 1;\n\t\t\tthis.discount_percentage_control.refresh();\n\t\t}\n\n\t\tif (this.warehouse_control) {\n\t\t\tthis.warehouse_control.df.reqd = 1;\n\t\t\tthis.warehouse_control.df.onchange = function() {\n\t\t\t\tif (this.value) {\n\t\t\t\t\tme.events.form_updated(me.current_item, 'warehouse', this.value).then(() => {\n\t\t\t\t\t\tme.item_stock_map = me.events.get_item_stock_map();\n\t\t\t\t\t\tconst available_qty = me.item_stock_map[me.item_row.item_code][this.value][0];\n\t\t\t\t\t\tconst is_stock_item = Boolean(me.item_stock_map[me.item_row.item_code][this.value][1]);\n\t\t\t\t\t\tif (available_qty === undefined) {\n\t\t\t\t\t\t\tme.events.get_available_stock(me.item_row.item_code, this.value).then(() => {\n\t\t\t\t\t\t\t\t// item stock map is updated now reset warehouse\n\t\t\t\t\t\t\t\tme.warehouse_control.set_value(this.value);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else if (available_qty === 0 && is_stock_item) {\n\t\t\t\t\t\t\tme.warehouse_control.set_value('');\n\t\t\t\t\t\t\tconst bold_item_code = me.item_row.item_code.bold();\n\t\t\t\t\t\t\tconst bold_warehouse = this.value.bold();\n\t\t\t\t\t\t\tfrappe.throw(\n\t\t\t\t\t\t\t\t__('Item Code: {0} is not available under warehouse {1}.', [bold_item_code, bold_warehouse])\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tme.actual_qty_control.set_value(available_qty);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.warehouse_control.df.get_query = () => {\n\t\t\t\treturn {\n\t\t\t\t\tfilters: { company: this.events.get_frm().doc.company }\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.warehouse_control.refresh();\n\t\t}\n\n\t\tif (this.serial_no_control) {\n\t\t\tthis.serial_no_control.df.reqd = 1;\n\t\t\tthis.serial_no_control.df.onchange = async function() {\n\t\t\t\t!me.current_item.batch_no && await me.auto_update_batch_no();\n\t\t\t\tme.events.form_updated(me.current_item, 'serial_no', this.value);\n\t\t\t}\n\t\t\tthis.serial_no_control.refresh();\n\t\t}\n\n\t\tif (this.batch_no_control) {\n\t\t\tthis.batch_no_control.df.reqd = 1;\n\t\t\tthis.batch_no_control.df.get_query = () => {\n\t\t\t\treturn {\n\t\t\t\t\tquery: 'erpnext.controllers.queries.get_batch_no',\n\t\t\t\t\tfilters: {\n\t\t\t\t\t\titem_code: me.item_row.item_code,\n\t\t\t\t\t\twarehouse: me.item_row.warehouse,\n\t\t\t\t\t\tposting_date: me.events.get_frm().doc.posting_date\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.batch_no_control.refresh();\n\t\t}\n\n\t\tif (this.uom_control) {\n\t\t\tthis.uom_control.df.onchange = function() {\n\t\t\t\tme.events.form_updated(me.current_item, 'uom', this.value);\n\n\t\t\t\tconst item_row = frappe.get_doc(me.doctype, me.name);\n\t\t\t\tme.conversion_factor_control.df.read_only = (item_row.stock_uom == this.value);\n\t\t\t\tme.conversion_factor_control.refresh();\n\t\t\t}\n\t\t}\n\n\t\tfrappe.model.on(\"POS Invoice Item\", \"*\", (fieldname, value, item_row) => {\n\t\t\tconst field_control = this[`${fieldname}_control`];\n\t\t\tconst item_row_is_being_edited = this.compare_with_current_item(item_row);\n\n\t\t\tif (item_row_is_being_edited && field_control && field_control.get_value() !== value) {\n\t\t\t\tfield_control.set_value(value);\n\t\t\t\tcur_pos.update_cart_html(item_row);\n\t\t\t}\n\t\t});\n\t}\n\n\tasync auto_update_batch_no() {\n\t\tif (this.serial_no_control && this.batch_no_control) {\n\t\t\tconst selected_serial_nos = this.serial_no_control.get_value().split(`\\n`).filter(s => s);\n\t\t\tif (!selected_serial_nos.length) return;\n\n\t\t\t// find batch nos of the selected serial no\n\t\t\tconst serials_with_batch_no = await frappe.db.get_list(\"Serial No\", {\n\t\t\t\tfilters: { 'name': [\"in\", selected_serial_nos]},\n\t\t\t\tfields: [\"batch_no\", \"name\"]\n\t\t\t});\n\t\t\tconst batch_serial_map = serials_with_batch_no.reduce((acc, r) => {\n\t\t\t\tif (!acc[r.batch_no]) {\n\t\t\t\t\tacc[r.batch_no] = [];\n\t\t\t\t}\n\t\t\t\tacc[r.batch_no] = [...acc[r.batch_no], r.name];\n\t\t\t\treturn acc;\n\t\t\t}, {});\n\t\t\t// set current item's batch no and serial no\n\t\t\tconst batch_no = Object.keys(batch_serial_map)[0];\n\t\t\tconst batch_serial_nos = batch_serial_map[batch_no].join(`\\n`);\n\t\t\t// eg. 10 selected serial no. -> 5 belongs to first batch other 5 belongs to second batch\n\t\t\tconst serial_nos_belongs_to_other_batch = selected_serial_nos.length !== batch_serial_map[batch_no].length;\n\n\t\t\tconst current_batch_no = this.batch_no_control.get_value();\n\t\t\tcurrent_batch_no != batch_no && await this.batch_no_control.set_value(batch_no);\n\n\t\t\tif (serial_nos_belongs_to_other_batch) {\n\t\t\t\tthis.serial_no_control.set_value(batch_serial_nos);\n\t\t\t\tthis.qty_control.set_value(batch_serial_map[batch_no].length);\n\n\t\t\t\tdelete batch_serial_map[batch_no];\n\t\t\t\tthis.events.clone_new_batch_item_in_frm(batch_serial_map, this.current_item);\n\t\t\t}\n\t\t}\n\t}\n\n\tbind_events() {\n\t\tthis.bind_auto_serial_fetch_event();\n\t\tthis.bind_fields_to_numpad_fields();\n\n\t\tthis.$component.on('click', '.close-btn', () => {\n\t\t\tthis.events.close_item_details();\n\t\t});\n\t}\n\n\tattach_shortcuts() {\n\t\tthis.wrapper.find('.close-btn').attr(\"title\", \"Esc\");\n\t\tfrappe.ui.keys.on(\"escape\", () => {\n\t\t\tconst item_details_visible = this.$component.is(\":visible\");\n\t\t\tif (item_details_visible) {\n\t\t\t\tthis.events.close_item_details();\n\t\t\t}\n\t\t});\n\t}\n\n\tbind_fields_to_numpad_fields() {\n\t\tconst me = this;\n\t\tthis.$form_container.on('click', '.input-with-feedback', function() {\n\t\t\tconst fieldname = $(this).attr('data-fieldname');\n\t\t\tif (this.last_field_focused != fieldname) {\n\t\t\t\tme.events.item_field_focused(fieldname);\n\t\t\t\tthis.last_field_focused = fieldname;\n\t\t\t}\n\t\t});\n\t}\n\n\tbind_auto_serial_fetch_event() {\n\t\tthis.$form_container.on('click', '.auto-fetch-btn', () => {\n\t\t\tfrappe.require(\"assets/erpnext/js/utils/serial_no_batch_selector.js\", () => {\n\t\t\t\tlet frm = this.events.get_frm();\n\t\t\t\tlet item_row = this.item_row;\n\t\t\t\titem_row.type_of_transaction = \"Outward\";\n\n\t\t\t\tnew erpnext.SerialBatchPackageSelector(frm, item_row, (r) => {\n\t\t\t\t\tif (r) {\n\t\t\t\t\t\tfrappe.model.set_value(item_row.doctype, item_row.name, {\n\t\t\t\t\t\t\t\"serial_and_batch_bundle\": r.name,\n\t\t\t\t\t\t\t\"qty\": Math.abs(r.total_qty)\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t})\n\t}\n\n\ttoggle_component(show) {\n\t\tshow ? this.$component.css('display', 'flex') : this.$component.css('display', 'none');\n\t}\n}\n", "frappe.provide('posnext.PointOfSale');\nposnext.PointOfSale.NumberPad = class {\n\tconstructor({ wrapper, events, cols, keys, css_classes, fieldnames_map }) {\n\t\tthis.wrapper = wrapper;\n\t\tthis.events = events;\n\t\tthis.cols = cols;\n\t\tthis.keys = keys;\n\t\tthis.css_classes = css_classes || [];\n\t\tthis.fieldnames = fieldnames_map || {};\n\n\t\tthis.init_component();\n\t}\n\n\tinit_component() {\n\t\tthis.prepare_dom();\n\t\tthis.bind_events();\n\t}\n\n\tprepare_dom() {\n\t\tconst { cols, keys, css_classes, fieldnames } = this;\n\n\t\tfunction get_keys() {\n\t\t\treturn keys.reduce((a, row, i) => {\n\t\t\t\treturn a + row.reduce((a2, number, j) => {\n\t\t\t\t\tconst class_to_append = css_classes && css_classes[i] ? css_classes[i][j] : '';\n\t\t\t\t\tconst fieldname = fieldnames && fieldnames[number] ?\n\t\t\t\t\t\tfieldnames[number] : typeof number === 'string' ? frappe.scrub(number) : number;\n\n\t\t\t\t\treturn a2 + `
${__(number)}
`;\n\t\t\t\t}, '');\n\t\t\t}, '');\n\t\t}\n\n\t\tthis.wrapper.html(\n\t\t\t`
\n\t\t\t\t${get_keys()}\n\t\t\t
`\n\t\t)\n\t}\n\n\tbind_events() {\n\t\tconst me = this;\n\t\tthis.wrapper.on('click', '.numpad-btn', function() {\n\t\t\tconst $btn = $(this);\n\t\t\tme.events.numpad_event($btn);\n\t\t});\n\t}\n}\n", "/* eslint-disable no-unused-vars */\nfrappe.provide('posnext.PointOfSale');\nposnext.PointOfSale.Payment = class {\n\tconstructor({ events, wrapper, settings }) {\n\t\tthis.wrapper = wrapper;\n\t\tthis.events = events;\n\t\tthis.custom_show_sales_man = settings.custom_show_sales_man\n\t\tthis.custom_show_additional_note = settings.custom_show_additional_note\n\t\tthis.custom_edit_rate = settings.custom_edit_rate_and_uom\n\t\tthis.custom_show_credit_sales = settings.custom_show_credit_sales\n\t\tthis.default_payment = settings.default_payment\n\t\tthis.current_payments = []\n\t\tthis.enable_coupon_code = settings.enable_coupon_code\n\n\t\tthis.init_component();\n\t\t// this.init_component();\n\t\tif (this.enable_coupon_code){\n\t\t\tthis.render_coupon_code_field();\n\t\t}\n\t}\n\n\tinit_component() {\n\t\tthis.prepare_dom();\n\t\tthis.initialize_numpad();\n\t\tthis.bind_events();\n\t\tthis.attach_shortcuts();\n\n\t}\n\n\tprepare_dom() {\n\t\tthis.wrapper.append(\n\t\t\t`
\n\t\t\t\t${__('Payment Method')}
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
${__('Additional Information')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t${__(\"Complete Order\")}
\n\t\t\t`\n\t\t);\n\t\n\t\t// \u2705 Assign to the right class\n\t\tthis.$component = this.wrapper.find('.payment-container');\n\t\tthis.$payment_modes = this.$component.find('.payment-modes');\n\t\tthis.$totals_section = this.$component.find('.totals-section');\n\t\tthis.$totals = this.$component.find('.totals');\n\t\tthis.$numpad = this.$component.find('.number-pad');\n\t\tthis.$coupon_code = this.$component.find('.coupon-code');\n\t\tthis.$invoice_fields_section = this.$component.find('.fields-section');\n\t}\n\t\n\trender_coupon_code_field() {\n\t\tfrappe.ui.form.make_control({\n\t\t\tdf: {\n\t\t\t\tlabel: __('Coupon Code'),\n\t\t\t\tfieldtype: 'Link',\n\t\t\t\toptions: 'Coupon Code',\n\t\t\t\tfieldname: 'coupon_code',\n\t\t\t\tplaceholder: __('Select a coupon'),\n\t\t\t},\n\t\t\tparent: this.$component.find('.coupon-code'),\n\t\t\trender_input: true\n\t\t});\n\t}\n\t\n\n\tmake_invoice_fields_control() {\n\t\t// frappe.db.get_doc(\"POS Settings\", undefined).then((doc) => {\n\t\t\tvar me = this\n\t\t\tconst fields = [];\n\t\t\tif(this.custom_show_credit_sales){\n\t\t\t\tfields.push({\n\t\t\t\t\tfieldname: \"custom_credit_sales\",\n\t\t\t\t\tlabel: \"Credit Sales\",\n\t\t\t\t\tfieldtype: \"Check\",\n\t\t\t\t})\n\t\t\t\t// fields.push({\n\t\t\t\t// \tfieldname: \"custom_credit_sales_date\",\n\t\t\t\t// \tlabel: \"Credit Sales Date\",\n\t\t\t\t// \tfieldtype: \"Date\"\n\t\t\t\t// })\n\t\t\t}\n\t\t\tif(this.custom_show_sales_man){\n\t\t\t\tfields.push({\n\t\t\t\t\tfieldname: \"sales_person\",\n\t\t\t\t\tlabel: \"Sales Man\",\n\t\t\t\t\tfieldtype: \"Link\",\n\t\t\t\t\toptions: \"Sales Person\",\n\t\t\t\t})\n\t\t\t}\n\t\t\tif(this.custom_show_additional_note){\n\t\t\t\tfields.push({\n\t\t\t\t\tfieldname: \"remarks\",\n\t\t\t\t\tlabel: \"Additional Note\",\n\t\t\t\t\tfieldtype: \"Small Text\",\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!fields.length) return;\n\t\t\tthis.$invoice_fields = this.$invoice_fields_section.find('.invoice-fields');\n\t\t\tthis.$invoice_fields.html('');\n\t\t\tconst frm = this.events.get_frm();\n\t\t\tme.current_payments = frm.doc.payments\n\t\t\tfields.forEach(df => {\n\t\t\t\tthis.$invoice_fields.append(\n\t\t\t\t\t`
`\n\t\t\t\t);\n\t\t\t\tlet df_events = {\n\t\t\t\t\tonchange: function() {\n\t\t\t\t\t\tif(this.df.fieldname === 'sales_person'){\n\t\t\t\t\t\t\tfrm.clear_table(\"sales_team\")\n\t\t\t\t\t\t\tcur_frm.add_child(\"sales_team\", {\n\t\t\t\t\t\t\t\tsales_person: this.get_value(),\n\t\t\t\t\t\t\t\tallocated_percentage: 100,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(this.df.fieldname === 'custom_credit_sales'){\n\t\t\t\t\t\t\t\t// $('input[data-fieldname=\"custom_credit_sales_date\"]').css(\"pointer-events\",this.get_value() ? \"\" : \"none\")\n\t\t\t\t\t\t\t\tif(this.get_value()){\n\t\t\t\t\t\t\t\t\t// $('input[data-fieldname=\"custom_credit_sales_date\"]').removeAttr('readonly')\n\n\t\t\t\t\t\t\t\t\tfrm.doc.payments.forEach(p => {\n\t\t\t\t\t\t\t\t\t\tconst mode = p.mode_of_payment.replace(/ +/g, \"_\").toLowerCase();\n\t\t\t\t\t\t\t\t\t\tme[`${mode}_control`].set_value(0);\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconsole.log(me.current_payments)\n\t\t\t\t\t\t\t\t\t// $('input[data-fieldname=\"custom_credit_sales_date\"]').attr('readonly', true);\n\t\t\t\t\t\t\t\t\tme.current_payments.forEach(p => {\n\t\t\t\t\t\t\t\t\t\tif(p.mode_of_payment === me.default_payment){\n\t\t\t\t\t\t\t\t\t\t\tconst mode = p.mode_of_payment.replace(/ +/g, \"_\").toLowerCase();\n\t\t\t\t\t\t\t\t\t\t\tme[`${mode}_control`].set_value(frm.doc.grand_total);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfrm.set_value(this.df.fieldname, this.get_value());\n\t\t\t\t\t\t}\n\t\t// \t\t\t\tif(this.df.fieldname === 'custom_credit_sales' && this.get_value()){\n\t\t// \t\t\t\t\tconsole.log(\"SELECTEEED MODE\")\n\t\t// console.log(me.$payment_modes)\n\t\t// \t\t\t\t\tthis.selected_mode.set_value(0);\n\t\t// \t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tif (df.fieldtype == \"Button\") {\n\t\t\t\t\tdf_events = {\n\t\t\t\t\t\tclick: function() {\n\t\t\t\t\t\t\tif (frm.script_manager.has_handlers(df.fieldname, frm.doc.doctype)) {\n\t\t\t\t\t\t\t\tfrm.script_manager.trigger(df.fieldname, frm.doc.doctype, frm.doc.docname);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tthis[`${df.fieldname}_field`] = frappe.ui.form.make_control({\n\t\t\t\t\tdf: {\n\t\t\t\t\t\t...df,\n\t\t\t\t\t\t...df_events\n\t\t\t\t\t},\n\t\t\t\t\tparent: this.$invoice_fields.find(`.${df.fieldname}-field`),\n\t\t\t\t\trender_input: true,\n\t\t\t\t});\n\t\t\t\tif(df.fieldname !== 'remarks'){\n\t\t\t\t\tthis[`${df.fieldname}_field`].set_value(frm.doc[df.fieldname]);\n\t\t\t\t}\n\t\t\t\t// if(df.fieldname === 'custom_credit_sales_date'){\n\t\t\t\t// \tthis[`${df.fieldname}_field`].set_value(frappe.datetime.get_today());\n\t\t\t\t// }\n\t\t\t});\n\t\t// });\n\t}\n\n\tinitialize_numpad() {\n\t\tconst me = this;\n\t\tthis.number_pad = new posnext.PointOfSale.NumberPad({\n\t\t\twrapper: this.$numpad,\n\t\t\tevents: {\n\t\t\t\tnumpad_event: function($btn) {\n\t\t\t\t\tme.on_numpad_clicked($btn);\n\t\t\t\t}\n\t\t\t},\n\t\t\tcols: 3,\n\t\t\tkeys: [\n\t\t\t\t[ 1, 2, 3 ],\n\t\t\t\t[ 4, 5, 6 ],\n\t\t\t\t[ 7, 8, 9 ],\n\t\t\t\t[ '.', 0, 'Delete' ]\n\t\t\t],\n\t\t});\n\n\t\tthis.numpad_value = '';\n\t}\n\n\ton_numpad_clicked($btn) {\n\t\tconst button_value = $btn.attr('data-button-value');\n\n\t\thighlight_numpad_btn($btn);\n\t\tthis.numpad_value = button_value === 'delete' ? this.numpad_value.slice(0, -1) : this.numpad_value + button_value;\n\t\tthis.selected_mode.$input.get(0).focus();\n\t\tthis.selected_mode.set_value(this.numpad_value);\n\n\t\tfunction highlight_numpad_btn($btn) {\n\t\t\t$btn.addClass('shadow-base-inner bg-selected');\n\t\t\tsetTimeout(() => {\n\t\t\t\t$btn.removeClass('shadow-base-inner bg-selected');\n\t\t\t}, 100);\n\t\t}\n\t}\n\n\tbind_events() {\n\t\tconst me = this;\n\n\t\tthis.$payment_modes.on('click', '.mode-of-payment', function(e) {\n\t\t\tconst mode_clicked = $(this);\n\t\t\t// if clicked element doesn't have .mode-of-payment class then return\n\t\t\tif (!$(e.target).is(mode_clicked)) return;\n\n\t\t\tconst scrollLeft = mode_clicked.offset().left - me.$payment_modes.offset().left + me.$payment_modes.scrollLeft();\n\t\t\tme.$payment_modes.animate({ scrollLeft });\n\n\t\t\tconst mode = mode_clicked.attr('data-mode');\n\n\t\t\t// hide all control fields and shortcuts\n\t\t\t$(`.mode-of-payment-control`).css('display', 'none');\n\t\t\t$(`.cash-shortcuts`).css('display', 'none');\n\t\t\tme.$payment_modes.find(`.pay-amount`).css('display', 'inline');\n\t\t\tme.$payment_modes.find(`.loyalty-amount-name`).css('display', 'none');\n\n\t\t\t// remove highlight from all mode-of-payments\n\t\t\t$('.mode-of-payment').removeClass('border-primary');\n\n\t\t\tif (mode_clicked.hasClass('border-primary')) {\n\t\t\t\t// clicked one is selected then unselect it\n\t\t\t\tmode_clicked.removeClass('border-primary');\n\t\t\t\tme.selected_mode = '';\n\t\t\t} else {\n\t\t\t\t// clicked one is not selected then select it\n\t\t\t\tmode_clicked.addClass('border-primary');\n\t\t\t\tmode_clicked.find('.mode-of-payment-control').css('display', 'flex');\n\t\t\t\tmode_clicked.find('.cash-shortcuts').css('display', 'grid');\n\t\t\t\tme.$payment_modes.find(`.${mode}-amount`).css('display', 'none');\n\t\t\t\tme.$payment_modes.find(`.${mode}-name`).css('display', 'inline');\n\n\t\t\t\tme.selected_mode = me[`${mode}_control`];\n\t\t\t\tme.selected_mode && me.selected_mode.$input.get(0).focus();\n\t\t\t\tme.auto_set_remaining_amount();\n\t\t\t}\n\t\t});\n\n\t\tfrappe.ui.form.on('POS Invoice', 'contact_mobile', (frm) => {\n\t\t\tconst contact = frm.doc.contact_mobile;\n\t\t\tconst request_button = $(this.request_for_payment_field?.$input[0]);\n\t\t\tif (contact) {\n\t\t\t\trequest_button.removeClass('btn-default').addClass('btn-primary');\n\t\t\t} else {\n\t\t\t\trequest_button.removeClass('btn-primary').addClass('btn-default');\n\t\t\t}\n\t\t});\n\n\t\tfrappe.ui.form.on('POS Invoice', 'coupon_code', (frm) => {\n\t\t\tif (frm.doc.coupon_code && !frm.applying_pos_coupon_code) {\n\t\t\t\tif (!frm.doc.ignore_pricing_rule) {\n\t\t\t\t\tfrm.applying_pos_coupon_code = true;\n\t\t\t\t\tfrappe.run_serially([\n\t\t\t\t\t\t() => frm.doc.ignore_pricing_rule=1,\n\t\t\t\t\t\t() => frm.trigger('ignore_pricing_rule'),\n\t\t\t\t\t\t() => frm.doc.ignore_pricing_rule=0,\n\t\t\t\t\t\t() => frm.trigger('apply_pricing_rule'),\n\t\t\t\t\t\t() => frm.save(),\n\t\t\t\t\t\t() => this.update_totals_section(frm.doc),\n\t\t\t\t\t\t() => (frm.applying_pos_coupon_code = false)\n\t\t\t\t\t]);\n\t\t\t\t} else if (frm.doc.ignore_pricing_rule) {\n\t\t\t\t\tfrappe.show_alert({\n\t\t\t\t\t\tmessage: __(\"Ignore Pricing Rule is enabled. Cannot apply coupon code.\"),\n\t\t\t\t\t\tindicator: \"orange\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.setup_listener_for_payments();\n\n\t\tthis.$payment_modes.on('click', '.shortcut', function() {\n\t\t\tconst value = $(this).attr('data-value');\n\t\t\tme.selected_mode.set_value(value);\n\t\t});\n\n\t\tthis.$component.on('click', '.submit-order-btn', () => {\n\t\t\tconst doc = this.events.get_frm().doc;\n\t\t\tlet paid_amount = doc.paid_amount\n\t\t\tif(cur_frm.doc.custom_credit_sales && this.custom_show_credit_sales){\n\t\t\t\tcur_frm.clear_table(\"payments\")\n\t\t\t\tpaid_amount = 0;\n\t\t\t}\n\n\t\t\tconst items = doc.items;\n\n\t\t\tif ((paid_amount == 0 || !items.length) && !this.custom_show_credit_sales) {\n\t\t\t\tconst message = items.length ? __(\"You cannot submit the order without payment.\") : __(\"You cannot submit empty order.\");\n\t\t\t\tfrappe.show_alert({ message, indicator: \"orange\" });\n\t\t\t\tfrappe.utils.play_sound(\"error\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.events.submit_invoice();\n\t\t});\n\n\t\tfrappe.ui.form.on('POS Invoice', 'paid_amount', (frm) => {\n\t\t\tthis.update_totals_section(frm.doc);\n\n\t\t\t// need to re calculate cash shortcuts after discount is applied\n\t\t\tconst is_cash_shortcuts_invisible = !this.$payment_modes.find('.cash-shortcuts').is(':visible');\n\t\t\tthis.attach_cash_shortcuts(frm.doc);\n\t\t\t!is_cash_shortcuts_invisible && this.$payment_modes.find('.cash-shortcuts').css('display', 'grid');\n\t\t\tthis.render_payment_mode_dom();\n\t\t});\n\n\t\tfrappe.ui.form.on('POS Invoice', 'loyalty_amount', (frm) => {\n\t\t\tconst formatted_currency = format_currency(frm.doc.loyalty_amount, frm.doc.currency);\n\t\t\tthis.$payment_modes.find(`.loyalty-amount-amount`).html(formatted_currency);\n\t\t});\n\n\t\tfrappe.ui.form.on(\"Sales Invoice Payment\", \"amount\", (frm, cdt, cdn) => {\n\t\t\t// for setting correct amount after loyalty points are redeemed\n\t\t\tconst default_mop = locals[cdt][cdn];\n\t\t\tconst mode = default_mop.mode_of_payment.replace(/ +/g, \"_\").toLowerCase();\n\t\t\tif (this[`${mode}_control`] && this[`${mode}_control`].get_value() != default_mop.amount) {\n\t\t\t\tthis[`${mode}_control`].set_value(default_mop.amount);\n\t\t\t}\n\t\t});\n\t}\n\n\tsetup_listener_for_payments() {\n\t\tfrappe.realtime.on(\"process_phone_payment\", (data) => {\n\t\t\tconst doc = this.events.get_frm().doc;\n\t\t\tconst { response, amount, success, failure_message } = data;\n\t\t\tlet message, title;\n\n\t\t\tif (success) {\n\t\t\t\ttitle = __(\"Payment Received\");\n\t\t\t\tconst grand_total = cint(frappe.sys_defaults.disable_rounded_total) ? doc.grand_total : doc.rounded_total;\n\t\t\t\tif (amount >= grand_total) {\n\t\t\t\t\tfrappe.dom.unfreeze();\n\t\t\t\t\tmessage = __(\"Payment of {0} received successfully.\", [format_currency(amount, doc.currency, 0)]);\n\t\t\t\t\tthis.events.submit_invoice();\n\t\t\t\t\tcur_frm.reload_doc();\n\n\t\t\t\t} else {\n\t\t\t\t\tmessage = __(\"Payment of {0} received successfully. Waiting for other requests to complete...\", [format_currency(amount, doc.currency, 0)]);\n\t\t\t\t}\n\t\t\t} else if (failure_message) {\n\t\t\t\tmessage = failure_message;\n\t\t\t\ttitle = __(\"Payment Failed\");\n\t\t\t}\n\n\t\t\tfrappe.msgprint({ \"message\": message, \"title\": title });\n\t\t});\n\t}\n\n\tauto_set_remaining_amount() {\n\t\tconst doc = this.events.get_frm().doc;\n\t\tconst grand_total = cint(frappe.sys_defaults.disable_rounded_total) ? doc.grand_total : doc.rounded_total;\n\t\tconst remaining_amount = grand_total - doc.paid_amount;\n\t\tconst current_value = this.selected_mode ? this.selected_mode.get_value() : undefined;\n\t\tif (!current_value && remaining_amount > 0 && this.selected_mode) {\n\t\t\tthis.selected_mode.set_value(remaining_amount);\n\t\t}\n\t}\n\n\tattach_shortcuts() {\n\t\tconst ctrl_label = frappe.utils.is_mac() ? '\u2318' : 'Ctrl';\n\t\tthis.$component.find('.submit-order-btn').attr(\"title\", `${ctrl_label}+Enter`);\n\t\tfrappe.ui.keys.on(\"ctrl+enter\", () => {\n\t\t\tconst payment_is_visible = this.$component.is(\":visible\");\n\t\t\tconst active_mode = this.$payment_modes.find(\".border-primary\");\n\t\t\tif (payment_is_visible && active_mode.length) {\n\t\t\t\tthis.$component.find('.submit-order-btn').click();\n\t\t\t}\n\t\t});\n\n\t\tfrappe.ui.keys.add_shortcut({\n\t\t\tshortcut: \"tab\",\n\t\t\taction: () => {\n\t\t\t\tconst payment_is_visible = this.$component.is(\":visible\");\n\t\t\t\tlet active_mode = this.$payment_modes.find(\".border-primary\");\n\t\t\t\tactive_mode = active_mode.length ? active_mode.attr(\"data-mode\") : undefined;\n\n\t\t\t\tif (!active_mode) return;\n\n\t\t\t\tconst mode_of_payments = Array.from(this.$payment_modes.find(\".mode-of-payment\")).map(m => $(m).attr(\"data-mode\"));\n\t\t\t\tconst mode_index = mode_of_payments.indexOf(active_mode);\n\t\t\t\tconst next_mode_index = (mode_index + 1) % mode_of_payments.length;\n\t\t\t\tconst next_mode_to_be_clicked = this.$payment_modes.find(`.mode-of-payment[data-mode=\"${mode_of_payments[next_mode_index]}\"]`);\n\n\t\t\t\tif (payment_is_visible && mode_index != next_mode_index) {\n\t\t\t\t\tnext_mode_to_be_clicked.click();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcondition: () => this.$component.is(':visible') && this.$payment_modes.find(\".border-primary\").length,\n\t\t\tdescription: __(\"Switch Between Payment Modes\"),\n\t\t\tignore_inputs: true,\n\t\t\tpage: cur_page.page.page\n\t\t});\n\t}\n\n\ttoggle_numpad() {\n\t\t// pass\n\t}\n\n\trender_payment_section() {\n\t\tthis.render_payment_mode_dom();\n\t\tthis.make_invoice_fields_control();\n\t\tthis.update_totals_section();\n\t\tthis.focus_on_default_mop();\n\t}\n\n\tafter_render() {\n\t\tconst frm = this.events.get_frm();\n\t\tfrm.script_manager.trigger(\"after_payment_render\", frm.doc.doctype, frm.doc.docname);\n\t}\n\n\tedit_cart() {\n\t\tif(this.custom_edit_rate){\n\t\t\tconst div = document.getElementById(\"customer-cart-container2\");\n\t\t\tdiv.style.gridColumn = \"span 5 / span 5\";\n\t\t}\n\n\t\tthis.events.toggle_other_sections(false);\n\t\tthis.toggle_component(false);\n\t}\n\n\tcheckout() {\n\t\tthis.events.toggle_other_sections(true);\n\t\tthis.toggle_component(true);\n\n\t\tthis.render_payment_section();\n\t\tthis.after_render();\n\t}\n\n\ttoggle_remarks_control() {\n\t\tif (this.$remarks.find('.frappe-control').length) {\n\t\t\tthis.$remarks.html('+ Add Remark');\n\t\t} else {\n\t\t\tthis.$remarks.html('');\n\t\t\tthis[`remark_control`] = frappe.ui.form.make_control({\n\t\t\t\tdf: {\n\t\t\t\t\tlabel: __('Remark'),\n\t\t\t\t\tfieldtype: 'Data',\n\t\t\t\t\tonchange: function() {}\n\t\t\t\t},\n\t\t\t\tparent: this.$totals_section.find(`.remarks`),\n\t\t\t\trender_input: true,\n\t\t\t});\n\t\t\tthis[`remark_control`].set_value('');\n\t\t}\n\t}\n\n\trender_payment_mode_dom() {\n\t\tconst doc = this.events.get_frm().doc;\n\t\tconst payments = doc.payments;\n\t\tconst currency = doc.currency;\n\n\t\tthis.$payment_modes.html(`${\n\t\t\tpayments.map((p, i) => {\n\t\t\t\tconst mode = p.mode_of_payment.replace(/ +/g, \"_\").toLowerCase();\n\t\t\t\tconst payment_type = p.type;\n\t\t\t\tconst margin = i % 2 === 0 ? 'pr-2' : 'pl-2';\n\t\t\t\tconst amount = p.amount > 0 ? format_currency(p.amount, currency) : '';\n\n\t\t\t\treturn (`\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t${p.mode_of_payment}\n\t\t\t\t\t\t\t
${amount}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t`);\n\t\t\t}).join('')\n\t\t}`);\n\t\tthis.current_payments = payments\n\t\tpayments.forEach(p => {\n\t\t\tconst mode = p.mode_of_payment.replace(/ +/g, \"_\").toLowerCase();\n\t\t\tconst me = this;\n\t\t\tthis[`${mode}_control`] = frappe.ui.form.make_control({\n\t\t\t\tdf: {\n\t\t\t\t\tlabel: p.mode_of_payment,\n\t\t\t\t\tfieldtype: 'Currency',\n\t\t\t\t\tplaceholder: __('Enter {0} amount.', [p.mode_of_payment]),\n\t\t\t\t\tonchange: function() {\n\t\t\t\t\t\tconsole.log(p.doctype)\n\t\t\t\t\t\tconsole.log(p.name)\n\t\t\t\t\t\tconst current_value = frappe.model.get_value(p.doctype, p.name, 'amount');\n\t\t\t\t\t\tif (current_value != this.value) {\n\t\t\t\t\t\t\tfrappe.model\n\t\t\t\t\t\t\t\t.set_value(p.doctype, p.name, 'amount', flt(this.value))\n\t\t\t\t\t\t\t\t.then(() => me.update_totals_section())\n\n\t\t\t\t\t\t\tconst formatted_currency = format_currency(this.value, currency);\n\t\t\t\t\t\t\tme.$payment_modes.find(`.${mode}-amount`).html(formatted_currency);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tparent: this.$payment_modes.find(`.${mode}.mode-of-payment-control`),\n\t\t\t\trender_input: true,\n\t\t\t});\n\t\t\tthis[`${mode}_control`].toggle_label(false);\n\t\t\tthis[`${mode}_control`].set_value(p.amount);\n\t\t});\n\n\t\tthis.render_loyalty_points_payment_mode();\n\n\t\tthis.attach_cash_shortcuts(doc);\n\t}\n\n\tfocus_on_default_mop() {\n\t\tconst doc = this.events.get_frm().doc;\n\t\tconst payments = doc.payments;\n\t\tpayments.forEach(p => {\n\t\t\tconst mode = p.mode_of_payment.replace(/ +/g, \"_\").toLowerCase();\n\t\t\tif (p.default) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.$payment_modes.find(`.${mode}.mode-of-payment-control`).parent().click();\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t});\n\t}\n\n\tattach_cash_shortcuts(doc) {\n\t\tconst grand_total = cint(frappe.sys_defaults.disable_rounded_total) ? doc.grand_total : doc.rounded_total;\n\t\tconst currency = doc.currency;\n\n\t\tconst shortcuts = this.get_cash_shortcuts(flt(grand_total));\n\n\t\tthis.$payment_modes.find('.cash-shortcuts').remove();\n\t\tlet shortcuts_html = shortcuts.map(s => {\n\t\t\treturn `
${format_currency(s, currency, 0)}
`;\n\t\t}).join('');\n\n\t\tthis.$payment_modes.find('[data-payment-type=\"Cash\"]').find('.mode-of-payment-control')\n\t\t\t.after(`
${shortcuts_html}
`);\n\t}\n\n\tget_cash_shortcuts(grand_total) {\n\t\tlet steps = [1, 5, 10];\n\t\tconst digits = String(Math.round(grand_total)).length;\n\n\t\tsteps = steps.map(x => x * (10 ** (digits - 2)));\n\n\t\tconst get_nearest = (amount, x) => {\n\t\t\tlet nearest_x = Math.ceil((amount / x)) * x;\n\t\t\treturn nearest_x === amount ? nearest_x + x : nearest_x;\n\t\t};\n\n\t\treturn steps.reduce((finalArr, x) => {\n\t\t\tlet nearest_x = get_nearest(grand_total, x);\n\t\t\tnearest_x = finalArr.indexOf(nearest_x) != -1 ? nearest_x + x : nearest_x;\n\t\t\treturn [...finalArr, nearest_x];\n\t\t}, []);\n\t}\n\n\trender_loyalty_points_payment_mode() {\n\t\tconst me = this;\n\t\tconst doc = this.events.get_frm().doc;\n\t\tconst { loyalty_program, loyalty_points, conversion_factor } = this.events.get_customer_details();\n\n\t\tthis.$payment_modes.find(`.mode-of-payment[data-mode=\"loyalty-amount\"]`).parent().remove();\n\n\t\tif (!loyalty_program) return;\n\n\t\tlet description, read_only, max_redeemable_amount;\n\t\tif (!loyalty_points) {\n\t\t\tdescription = __(\"You don't have enough points to redeem.\");\n\t\t\tread_only = true;\n\t\t} else {\n\t\t\tmax_redeemable_amount = flt(flt(loyalty_points) * flt(conversion_factor), precision(\"loyalty_amount\", doc));\n\t\t\tdescription = __(\"You can redeem upto {0}.\", [format_currency(max_redeemable_amount)]);\n\t\t\tread_only = false;\n\t\t}\n\n\t\tconst margin = this.$payment_modes.children().length % 2 === 0 ? 'pr-2' : 'pl-2';\n\t\tconst amount = doc.loyalty_amount > 0 ? format_currency(doc.loyalty_amount, doc.currency) : '';\n\t\tthis.$payment_modes.append(\n\t\t\t`
\n\t\t\t\t
\n\t\t\t\t\tRedeem Loyalty Points\n\t\t\t\t\t
${amount}
\n\t\t\t\t\t
${loyalty_program}
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
`\n\t\t);\n\n\t\tthis['loyalty-amount_control'] = frappe.ui.form.make_control({\n\t\t\tdf: {\n\t\t\t\tlabel: __(\"Redeem Loyalty Points\"),\n\t\t\t\tfieldtype: 'Currency',\n\t\t\t\tplaceholder: __(\"Enter amount to be redeemed.\"),\n\t\t\t\toptions: 'company:currency',\n\t\t\t\tread_only,\n\t\t\t\tonchange: async function() {\n\t\t\t\t\tif (!loyalty_points) return;\n\n\t\t\t\t\tif (this.value > max_redeemable_amount) {\n\t\t\t\t\t\tfrappe.show_alert({\n\t\t\t\t\t\t\tmessage: __(\"You cannot redeem more than {0}.\", [format_currency(max_redeemable_amount)]),\n\t\t\t\t\t\t\tindicator: \"red\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfrappe.utils.play_sound(\"submit\");\n\t\t\t\t\t\tme['loyalty-amount_control'].set_value(0);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst redeem_loyalty_points = this.value > 0 ? 1 : 0;\n\t\t\t\t\tawait frappe.model.set_value(doc.doctype, doc.name, 'redeem_loyalty_points', redeem_loyalty_points);\n\t\t\t\t\tfrappe.model.set_value(doc.doctype, doc.name, 'loyalty_points', parseInt(this.value / conversion_factor));\n\t\t\t\t},\n\t\t\t\tdescription\n\t\t\t},\n\t\t\tparent: this.$payment_modes.find(`.loyalty-amount.mode-of-payment-control`),\n\t\t\trender_input: true,\n\t\t});\n\t\tthis['loyalty-amount_control'].toggle_label(false);\n\n\t\t// this.render_add_payment_method_dom();\n\t}\n\n\trender_add_payment_method_dom() {\n\t\tconst docstatus = this.events.get_frm().doc.docstatus;\n\t\tif (docstatus === 0)\n\t\t\tthis.$payment_modes.append(\n\t\t\t\t`
\n\t\t\t\t\t
+ Add Payment Method
\n\t\t\t\t
`\n\t\t\t);\n\t}\n\n\tupdate_totals_section(doc) {\n\t\tif (!doc) doc = this.events.get_frm().doc;\n\t\tlet branch_value = $('.input-with-feedback[data-fieldname=\"branch\"]').val();\n\t\tfrappe.model.set_value(cur_frm.doctype, cur_frm.docname, 'branch', branch_value);\n\t\tcur_frm.save()\n\t\t// doc.paid_amount = doc.grand_total\n\t\t\tconst paid_amount = doc.paid_amount;\n\n\t\tif(cur_frm.doc.custom_credit_sales){\n\t\t\tconst paid_amount = 0\n\t\t}\n\t\tconst grand_total = cint(frappe.sys_defaults.disable_rounded_total) ? doc.grand_total : doc.rounded_total;\n\t\tconst remaining = grand_total - doc.paid_amount;\n\t\tconst change = doc.change_amount || remaining <= 0 ? -1 * remaining : undefined;\n\t\tconst currency = doc.currency;\n\t\tconst label = change ? __('Change') : __('To Be Paid');\n\n\t\tthis.$totals.html(\n\t\t\t`
\n\t\t\t\t
${__('Grand Total')}
\n\t\t\t\t
${format_currency(grand_total, currency)}
\n\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
${__('Paid Amount')}
\n\t\t\t\t
${format_currency(paid_amount, currency)}
\n\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
${label}
\n\t\t\t\t
${format_currency(change || remaining, currency)}
\n\t\t\t
`\n\t\t);\n\t}\n\n\ttoggle_component(show) {\n\t\tshow ? this.$component.css('display', 'flex') : this.$component.css('display', 'none');\n\t}\n};\n", "frappe.provide('posnext.PointOfSale');\nvar invoicess = []\nposnext.PointOfSale.PastOrderList = class {\n\tconstructor({ wrapper, events, settings }) {\n\t\tthis.wrapper = wrapper;\n\t\tthis.events = events;\n\t\tthis.pos_profile = settings.name\n\t\tthis.custom_filter_order_list_by_profile = settings.custom_filter_order_list_by_profile\n\t\tthis.init_component();\n\t}\n\n\tinit_component() {\n\t\tthis.prepare_dom();\n\t\tthis.make_filter_section();\n\t\tthis.bind_events();\n\t}\n\n\tprepare_dom() {\n\t\tthis.wrapper.append(\n\t\t\t`
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
${__('Recent Orders')}
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t`\n\t\t);\n\n\t\tthis.$component = this.wrapper.find('.past-order-list');\n\t\tthis.$invoices_container = this.$component.find('.invoices-container');\n\n\t}\n\n\tbind_events() {\n\t\tthis.search_field.$input.on('input', (e) => {\n\t\t\tclearTimeout(this.last_search);\n\t\t\tthis.last_search = setTimeout(() => {\n\t\t\t\tconst search_term = e.target.value;\n\t\t\t\tthis.refresh_list(search_term, this.status_field.get_value());\n\t\t\t}, 300);\n\t\t});\n\t\tconst me = this;\n\t\tthis.$invoices_container.on('click', '.invoice-wrapper', function() {\n\t\t\tconst invoice_name = unescape($(this).attr('data-invoice-name'));\n\t\t\tme.events.open_invoice_data(invoice_name);\n\t\t});\n\t\tthis.$component.on('click', '.back', function() {\n\t\t\tme.events.previous_screen()\n\t\t});\n\t}\n\n\tmake_filter_section() {\n\t\tconst me = this;\n\t\tthis.search_field = frappe.ui.form.make_control({\n\t\t\tdf: {\n\t\t\t\tlabel: __('Search'),\n\t\t\t\tfieldtype: 'Data',\n\t\t\t\tplaceholder: __('Search by invoice id or customer name')\n\t\t\t},\n\t\t\tparent: this.$component.find('.search-field'),\n\t\t\trender_input: true,\n\t\t});\n\t\tthis.status_field = frappe.ui.form.make_control({\n\t\t\tdf: {\n\t\t\t\tlabel: __('Invoice Status'),\n\t\t\t\tfieldtype: 'Select',\n\t\t\t\toptions: `Draft\\nPaid\\nUnpaid\\nReturn`,\n\t\t\t\tplaceholder: __('Filter by invoice status'),\n\t\t\t\tonchange: function() {\n\t\t\t\t\tif (me.$component.is(':visible')) me.refresh_list();\n\t\t\t\t}\n\t\t\t},\n\t\t\tparent: this.$component.find('.status-field'),\n\t\t\trender_input: true,\n\t\t});\n\t\tthis.search_field.toggle_label(false);\n\t\tthis.status_field.toggle_label(false);\n\t\tthis.status_field.set_value('Draft');\n\t}\n\n\trefresh_list() {\n\t\tfrappe.dom.freeze();\n\t\tthis.events.reset_summary();\n\t\tconst search_term = this.search_field.get_value();\n\t\tconst status = this.status_field.get_value();\n\t\tconst pos_profile = this.pos_profile;\n\t\tthis.$invoices_container.html('');\n\t\tlet filter = { search_term, status };\n\t\tif(this.custom_filter_order_list_by_profile){\n\t\t\tfilter = { search_term, status, pos_profile }\n\t\t}\n\t\t\n\t\treturn frappe.call({\n\t\t\tmethod: \"posnext.posnext.page.posnext.point_of_sale.get_past_order_list\",\n\t\t\tfreeze: true,\n\t\t\targs: filter,\n\t\t\tcallback: (response) => {\n\t\t\t\tfrappe.dom.unfreeze();\n\t\t\t\tinvoicess = response.message\n\t\t\t\tresponse.message.forEach(invoice => {\n\t\t\t\t\tconst invoice_html = this.get_invoice_html(invoice);\n\t\t\t\t\tthis.$invoices_container.append(invoice_html);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t}\n\n\tget_invoice_html(invoice) {\n\t\tconst posting_datetime = moment(invoice.posting_date+\" \"+invoice.posting_time).format(\"Do MMMM, h:mma\");\n\t\treturn (\n\t\t\t`
\n\t\t\t\t
\n\t\t\t\t\t
${invoice.name}
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t${frappe.ellipsis(invoice.customer, 20)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
${format_currency(invoice.grand_total, invoice.currency, 0) || 0}
\n\t\t\t\t\t
${posting_datetime}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t
`\n\t\t);\n\t}\n\n\ttoggle_component(show) {\n\t\tfrappe.run_serially([\n\t\t\t() => show ? this.$component.css('display', 'flex') && this.refresh_list() : this.$component.css('display', 'none'),\n\t\t\t() => this.events.open_invoice_data(invoicess[0].name)\n\t\t])\n\n\n\n\t}\n};\n", "frappe.provide('posnext.PointOfSale');\nposnext.PointOfSale.PastOrderSummary = class {\n\tconstructor({ wrapper, pos_profile,events }) {\n\t\tthis.wrapper = wrapper;\n\t\tthis.pos_profile = pos_profile;\n\t\tthis.events = events;\n\n\t\tthis.init_component();\n\t}\n\n\tinit_component() {\n\t\tthis.prepare_dom();\n\t\tthis.init_email_print_dialog();\n\t\tthis.bind_events();\n\t\tthis.attach_shortcuts();\n\t}\n\n\tprepare_dom() {\n\t\tthis.wrapper.append(\n\t\t\t`
\n\t\t\t\t\n\t\t\t\t\t${__('Select an invoice to load summary data')}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
${__('Items')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
${__('Totals')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
${__('Payments')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t`\n\t\t);\n\n\t\tthis.$component = this.wrapper.find('.past-order-summary');\n\t\tthis.$summary_wrapper = this.$component.find('.invoice-summary-wrapper');\n\t\tthis.$summary_container = this.$component.find('.abs-container');\n\t\tthis.$upper_section = this.$summary_container.find('.upper-section');\n\t\tthis.$items_container = this.$summary_container.find('.items-container');\n\t\tthis.$totals_container = this.$summary_container.find('.totals-container');\n\t\tthis.$payment_container = this.$summary_container.find('.payments-container');\n\t\tthis.$summary_btns = this.$summary_container.find('.summary-btns');\n\t}\n\n\tinit_email_print_dialog() {\n\t\tconst email_dialog = new frappe.ui.Dialog({\n\t\t\ttitle: 'Email Receipt',\n\t\t\tfields: [\n\t\t\t\t{fieldname: 'email_id', fieldtype: 'Data', options: 'Email', label: 'Email ID', reqd: 1},\n\t\t\t\t{fieldname:'content', fieldtype:'Small Text', label:'Message (if any)'}\n\t\t\t],\n\t\t\tprimary_action: () => {\n\t\t\t\tthis.send_email();\n\t\t\t},\n\t\t\tprimary_action_label: __('Send'),\n\t\t});\n\t\tthis.email_dialog = email_dialog;\n\n\t\tconst print_dialog = new frappe.ui.Dialog({\n\t\t\ttitle: 'Print Receipt',\n\t\t\tfields: [\n\t\t\t\t{fieldname: 'print', fieldtype: 'Data', label: 'Print Preview'}\n\t\t\t],\n\t\t\tprimary_action: () => {\n\t\t\t\tthis.print_receipt();\n\t\t\t},\n\t\t\tprimary_action_label: __('Print'),\n\t\t});\n\t\tthis.print_dialog = print_dialog;\n\t}\n\n\tget_upper_section_html(doc) {\n\t\tconst { status } = doc;\n\t\tlet indicator_color = '';\n\n\t\tin_list(['Paid', 'Consolidated'], status) && (indicator_color = 'green');\n\t\tstatus === 'Draft' && (indicator_color = 'red');\n\t\tstatus === 'Return' && (indicator_color = 'grey');\n\n\t\treturn `
\n\t\t\t\t\t
${doc.customer}
\n\t\t\t\t\t
${this.customer_email}
\n\t\t\t\t\t
${__('Sold by')}: ${doc.owner}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
${format_currency(doc.paid_amount, doc.currency)}
\n\t\t\t\t\t
${doc.name}
\n\t\t\t\t\t
${doc.status}\n\t\t\t\t
`;\n\t}\n\n\tget_item_html(doc, item_data) {\n\t\treturn `
\n\t\t\t\t\t
${item_data.item_name}
\n\t\t\t\t\t
${item_data.qty || 0} ${item_data.uom}
\n\t\t\t\t\t
${get_rate_discount_html()}
\n\t\t\t\t
`;\n\n\t\tfunction get_rate_discount_html() {\n\t\t\tif (item_data.rate && item_data.price_list_rate && item_data.rate !== item_data.price_list_rate) {\n\t\t\t\treturn `
(${item_data.discount_percentage}% off)\n\t\t\t\t\t\t
${format_currency(item_data.rate, doc.currency)}
`;\n\t\t\t} else {\n\t\t\t\treturn `
${format_currency(item_data.price_list_rate || item_data.rate, doc.currency)}
`;\n\t\t\t}\n\t\t}\n\t}\n\n\tget_discount_html(doc) {\n\t\tif (doc.discount_amount) {\n\t\t\treturn `
\n\t\t\t\t\t\t
Discount (${doc.additional_discount_percentage} %)
\n\t\t\t\t\t\t
${format_currency(doc.discount_amount, doc.currency)}
\n\t\t\t\t\t
`;\n\t\t} else {\n\t\t\treturn ``;\n\t\t}\n\t}\n\n\tget_net_total_html(doc) {\n\t\treturn `
\n\t\t\t\t\t
${__('Net Total')}
\n\t\t\t\t\t
${format_currency(doc.net_total, doc.currency)}
\n\t\t\t\t
`;\n\t}\n\n\tget_taxes_html(doc) {\n\t\tif (!doc.taxes.length) return '';\n\n\t\tlet taxes_html = doc.taxes.map(t => {\n\t\t\t// if tax rate is 0, don't print it.\n\t\t\tconst description = /[0-9]+/.test(t.description) ? t.description : ((t.rate != 0) ? `${t.description} @ ${t.rate}%`: t.description);\n\t\t\treturn `\n\t\t\t\t
\n\t\t\t\t\t
${description}
\n\t\t\t\t\t
${format_currency(t.tax_amount_after_discount_amount, doc.currency)}
\n\t\t\t\t
\n\t\t\t`;\n\t\t}).join('');\n\n\t\treturn `
${taxes_html}
`;\n\t}\n\n\tget_grand_total_html(doc) {\n\t\treturn `
\n\t\t\t\t\t
${__('Grand Total')}
\n\t\t\t\t\t
${format_currency(doc.grand_total, doc.currency)}
\n\t\t\t\t
`;\n\t}\n\n\tget_payment_html(doc, payment) {\n\t\treturn `
\n\t\t\t\t\t
${__(payment.mode_of_payment)}
\n\t\t\t\t\t
${format_currency(payment.amount, doc.currency)}
\n\t\t\t\t
`;\n\t}\n\n\tbind_events() {\n\t\tthis.$summary_container.on('click', '.return-btn', () => {\n\t\t\tthis.events.process_return(this.doc.name);\n\t\t\tthis.toggle_component(false);\n\t\t\tthis.$component.find('.no-summary-placeholder').css('display', 'flex');\n\t\t\tthis.$summary_wrapper.css('display', 'none');\n\t\t});\n\n\t\tthis.$summary_container.on('click', '.edit-btn', () => {\n\t\t\tthis.events.edit_order(this.doc.name);\n\t\t\tthis.toggle_component(false);\n\t\t\tthis.$component.find('.no-summary-placeholder').css('display', 'flex');\n\t\t\tthis.$summary_wrapper.css('display', 'none');\n\t\t});\n\n\t\tthis.$summary_container.on('click', '.delete-btn', () => {\n\t\t\tthis.events.delete_order(this.doc.name);\n\t\t\tthis.show_summary_placeholder();\n\t\t});\n\n\t\tthis.$summary_container.on('click', '.send-btn', () => {\n\t\t\t// this.events.delete_order(this.doc.name);\n\t\t\t// this.show_summary_placeholder();\n\t\tconsole.log(this.pos_profile)\n\t\tvar field_names = this.pos_profile.custom_whatsapp_field_names.map(x => this.doc[x.field_names.toString()]);\n\t\t\tconsole.log(field_names)\n\t\t\tconsole.log(field_names.join(\",\"))\n\t\t\tvar message = \"https://wa.me/\" + this.doc.customer +\"?text=\"\n\t\t\tmessage += formatString(this.pos_profile.custom_whatsapp_message, field_names);\n\t\t\tconsole.log(message)\n\t\t\t// message += \"Hello, here is the file you requested.\"\n\t\t\tfrappe.call({\n\t\t\t\tmethod: \"posnext.posnext.page.posnext.point_of_sale.generate_pdf_and_save\",\n\t\t\t\targs: {\n\t\t\t\t\tdocname: this.doc.name,\n\t\t\t\t\tdoctype: this.doc.doctype,\n\t\t\t\t\tprint_format: this.pos_profile.print_format\n\t\t\t\t},\n\t\t\t\tfreeze: true,\n\t\t\t\tfreeze_message: \"Creating file then send to whatsapp thru link....\",\n\t\t\t\tcallback: function (r) {\n\t\t\t\t\tmessage += \"Please Find your invoice here \\n \"+window.origin+r.message.file_url\n\t\t\t\t\twindow.open(message)\n }\n\t\t\t})\n\t\t\t// this.toggle_component(false);\n\t\t\t// this.$component.find('.no-summary-placeholder').removeClass('d-none');\n\t\t\t// this.$summary_wrapper.addClass('d-none');\n\t\t});\n\t\tfunction formatString(str, args) {\n\t\t\treturn str.replace(/{(\\d+)}/g, function(match, number) {\n\t\t\t\treturn typeof args[number] !== 'undefined'\n\t\t\t\t\t? args[number]\n\t\t\t\t\t: match;\n\t\t\t});\n\t\t}\n\n\t\tthis.$summary_container.on('click', '.new-btn', () => {\n\t\t\tthis.events.new_order();\n\t\t\tthis.toggle_component(false);\n\t\t\tthis.$component.find('.no-summary-placeholder').css('display', 'flex');\n\t\t\tthis.$summary_wrapper.css('display', 'none');\n\t\t});\n\n\t\tthis.$summary_container.on('click', '.email-btn', () => {\n\t\t\tthis.email_dialog.fields_dict.email_id.set_value(this.customer_email);\n\t\t\tthis.email_dialog.show();\n\t\t});\n\n\t\tthis.$summary_container.on('click', '.print-btn', () => {\n\t\t\tthis.print_receipt();\n\t\t});\n\t}\n\n\tprint_receipt() {\n\t\tconst frm = this.events.get_frm();\n\t\tfrappe.utils.print(\n\t\t\tthis.doc.doctype,\n\t\t\tthis.doc.name,\n\t\t\tfrm.pos_print_format,\n\t\t\tthis.doc.letter_head,\n\t\t\tthis.doc.language || frappe.boot.lang\n\t\t);\n\t}\n\n\tattach_shortcuts() {\n\t\tconst ctrl_label = frappe.utils.is_mac() ? '\u2318' : 'Ctrl';\n\t\tthis.$summary_container.find('.print-btn').attr(\"title\", `${ctrl_label}+P`);\n\t\tfrappe.ui.keys.add_shortcut({\n\t\t\tshortcut: \"ctrl+p\",\n\t\t\taction: () => this.$summary_container.find('.print-btn').click(),\n\t\t\tcondition: () => this.$component.is(':visible') && this.$summary_container.find('.print-btn').is(\":visible\"),\n\t\t\tdescription: __(\"Print Receipt\"),\n\t\t\tpage: cur_page.page.page\n\t\t});\n\t\tthis.$summary_container.find('.new-btn').attr(\"title\", `${ctrl_label}+Enter`);\n\t\tfrappe.ui.keys.on(\"ctrl+enter\", () => {\n\t\t\tconst summary_is_visible = this.$component.is(\":visible\");\n\t\t\tif (summary_is_visible && this.$summary_container.find('.new-btn').is(\":visible\")) {\n\t\t\t\tthis.$summary_container.find('.new-btn').click();\n\t\t\t}\n\t\t});\n\t\tthis.$summary_container.find('.edit-btn').attr(\"title\", `${ctrl_label}+E`);\n\t\tfrappe.ui.keys.add_shortcut({\n\t\t\tshortcut: \"ctrl+e\",\n\t\t\taction: () => this.$summary_container.find('.edit-btn').click(),\n\t\t\tcondition: () => this.$component.is(':visible') && this.$summary_container.find('.edit-btn').is(\":visible\"),\n\t\t\tdescription: __(\"Edit Receipt\"),\n\t\t\tpage: cur_page.page.page\n\t\t});\n\t}\n\n\tsend_email() {\n\t\tconst frm = this.events.get_frm();\n\t\tconst recipients = this.email_dialog.get_values().email_id;\n\t\tconst content = this.email_dialog.get_values().content;\n\t\tconst doc = this.doc || frm.doc;\n\t\tconst print_format = frm.pos_print_format;\n\n\t\tfrappe.call({\n\t\t\tmethod: \"frappe.core.doctype.communication.email.make\",\n\t\t\targs: {\n\t\t\t\trecipients: recipients,\n\t\t\t\tsubject: __(frm.meta.name) + ': ' + doc.name,\n\t\t\t\tcontent: content ? content : __(frm.meta.name) + ': ' + doc.name,\n\t\t\t\tdoctype: doc.doctype,\n\t\t\t\tname: doc.name,\n\t\t\t\tsend_email: 1,\n\t\t\t\tprint_format,\n\t\t\t\tsender_full_name: frappe.user.full_name(),\n\t\t\t\t_lang: doc.language\n\t\t\t},\n\t\t\tcallback: r => {\n\t\t\t\tif (!r.exc) {\n\t\t\t\t\tfrappe.utils.play_sound(\"email\");\n\t\t\t\t\tif (r.message[\"emails_not_sent_to\"]) {\n\t\t\t\t\t\tfrappe.msgprint(__(\n\t\t\t\t\t\t\t\"Email not sent to {0} (unsubscribed / disabled)\",\n\t\t\t\t\t\t\t[ frappe.utils.escape_html(r.message[\"emails_not_sent_to\"]) ]\n\t\t\t\t\t\t));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfrappe.show_alert({\n\t\t\t\t\t\t\tmessage: __('Email sent successfully.'),\n\t\t\t\t\t\t\tindicator: 'green'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tthis.email_dialog.hide();\n\t\t\t\t} else {\n\t\t\t\t\tfrappe.msgprint(__(\"There were errors while sending email. Please try again.\"));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tadd_summary_btns(map) {\n\t\tthis.$summary_btns.html('');\n\t\tmap.forEach(m => {\n\t\t\tif (m.condition) {\n\t\t\t\tm.visible_btns.forEach(b => {\n\t\t\t\t\tconst class_name = b.split(' ')[0].toLowerCase();\n\t\t\t\t\tconst btn = __(b);\n\t\t\t\t\tthis.$summary_btns.append(\n\t\t\t\t\t\t`
${btn}
`\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tthis.$summary_btns.children().last().removeClass('mr-4');\n\t}\n\n\ttoggle_summary_placeholder(show) {\n\t\tif (show) {\n\t\t\tthis.$summary_wrapper.css('display', 'none');\n\t\t\tthis.$component.find('.no-summary-placeholder').css('display', 'flex');\n\t\t} else {\n\t\t\tthis.$summary_wrapper.css('display', 'flex');\n\t\t\tthis.$component.find('.no-summary-placeholder').css('display', 'none');\n\t\t}\n\t}\n\n\tget_condition_btn_map(after_submission) {\n\t\tif (after_submission)\n\t\t\treturn [{ condition: true, visible_btns: ['Print Receipt', 'Email Receipt','Send Whatsapp', 'New Order'] }];\n\n\t\treturn [\n\t\t\t{ condition: this.doc.docstatus === 0, visible_btns: ['Print Receipt','Edit Order', 'Delete Order','Send Whatsapp'] },\n\t\t\t{ condition: !this.doc.is_return && this.doc.docstatus === 1, visible_btns: ['Print Receipt', 'Email Receipt', 'Return','Send Whatsapp']},\n\t\t\t{ condition: this.doc.is_return && this.doc.docstatus === 1, visible_btns: ['Print Receipt', 'Email Receipt','Send Whatsapp']}\n\t\t];\n\t}\n\n\tload_summary_of(doc, after_submission=false) {\n\t\tafter_submission ?\n\t\t\tthis.$component.css('grid-column', 'span 10 / span 10') :\n\t\t\tthis.$component.css('grid-column', 'span 6 / span 6');\n\n\t\tthis.toggle_summary_placeholder(false);\n\n\t\tthis.doc = doc;\n\n\t\tthis.attach_document_info(doc);\n\n\t\tthis.attach_items_info(doc);\n\n\t\tthis.attach_totals_info(doc);\n\n\t\tthis.attach_payments_info(doc);\n\n\t\tconst condition_btns_map = this.get_condition_btn_map(after_submission);\n\n\t\tthis.add_summary_btns(condition_btns_map);\n\t\tthis.$summary_wrapper.css(\"width\",after_submission ? \"35%\" : \"60%\");\n\n\t\tif (after_submission) {\n\t\t\tthis.print_receipt_on_order_complete();\n\t\t}\n\t}\n\n\tattach_document_info(doc) {\n\t\tfrappe.db.get_value('Customer', this.doc.customer, 'email_id').then(({ message }) => {\n\t\t\tthis.customer_email = message.email_id || '';\n\t\t\tconst upper_section_dom = this.get_upper_section_html(doc);\n\t\t\tthis.$upper_section.html(upper_section_dom);\n\t\t});\n\t}\n\n\tattach_items_info(doc) {\n\t\tthis.$items_container.html('');\n\t\tdoc.items.forEach(item => {\n\t\t\tconst item_dom = this.get_item_html(doc, item);\n\t\t\tthis.$items_container.append(item_dom);\n\t\t\tthis.set_dynamic_rate_header_width();\n\t\t});\n\t}\n\n\tset_dynamic_rate_header_width() {\n\t\tconst rate_cols = Array.from(this.$items_container.find(\".item-rate-disc\"));\n\t\tthis.$items_container.find(\".item-rate-disc\").css(\"width\", \"\");\n\t\tlet max_width = rate_cols.reduce((max_width, elm) => {\n\t\t\tif ($(elm).width() > max_width)\n\t\t\t\tmax_width = $(elm).width();\n\t\t\treturn max_width;\n\t\t}, 0);\n\n\t\tmax_width += 1;\n\t\tif (max_width == 1) max_width = \"\";\n\n\t\tthis.$items_container.find(\".item-rate-disc\").css(\"width\", max_width);\n\t}\n\n\tattach_payments_info(doc) {\n\t\tthis.$payment_container.html('');\n\t\tdoc.payments.forEach(p => {\n\t\t\tif (p.amount) {\n\t\t\t\tconst payment_dom = this.get_payment_html(doc, p);\n\t\t\t\tthis.$payment_container.append(payment_dom);\n\t\t\t}\n\t\t});\n\t\tif (doc.redeem_loyalty_points && doc.loyalty_amount) {\n\t\t\tconst payment_dom = this.get_payment_html(doc, {\n\t\t\t\tmode_of_payment: 'Loyalty Points',\n\t\t\t\tamount: doc.loyalty_amount,\n\t\t\t});\n\t\t\tthis.$payment_container.append(payment_dom);\n\t\t}\n\t}\n\n\tattach_totals_info(doc) {\n\t\tthis.$totals_container.html('');\n\n\t\tconst net_total_dom = this.get_net_total_html(doc);\n\t\tconst taxes_dom = this.get_taxes_html(doc);\n\t\tconst discount_dom = this.get_discount_html(doc);\n\t\tconst grand_total_dom = this.get_grand_total_html(doc);\n\t\tthis.$totals_container.append(net_total_dom);\n\t\tthis.$totals_container.append(taxes_dom);\n\t\tthis.$totals_container.append(discount_dom);\n\t\tthis.$totals_container.append(grand_total_dom);\n\t}\n\n\ttoggle_component(show) {\n\t\tshow ? this.$component.css('display', 'flex') : this.$component.css('display', 'none');\n\n\t}\n\n\tasync print_receipt_on_order_complete() {\n \n const profile_name = this.pos_profile?.name || this.pos_profile;\n\n const { message } = await frappe.db.get_value(\n \"POS Profile\",\n profile_name,\n [\"print_receipt_on_order_complete\", \"print_format\"]\n );\n\n if (message?.print_receipt_on_order_complete) {\n setTimeout(() => this.print_receipt(), 300);\n }\n \n}\n\n\t\n};\n"],
- "mappings": "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",
- "names": ["i", "get_item_code_header", "max_width", "precision", "doc", "max_width", "frm", "item", "$btn", "paid_amount", "max_width"]
-}