From b9b4f6316d5a75c764b8b02aa75dcabba8450051 Mon Sep 17 00:00:00 2001 From: Diptanil Saha Date: Thu, 23 Jan 2025 13:07:27 +0530 Subject: [PATCH] feat: pos configuration for print receipt on complete order (#45392) --- .../doctype/pos_profile/pos_profile.json | 9 ++++++++- .../accounts/doctype/pos_profile/pos_profile.py | 1 + .../point_of_sale/pos_past_order_summary.js | 17 ++++++++++++++++- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.json b/erpnext/accounts/doctype/pos_profile/pos_profile.json index 994b6776e3c..22f2965b86e 100644 --- a/erpnext/accounts/doctype/pos_profile/pos_profile.json +++ b/erpnext/accounts/doctype/pos_profile/pos_profile.json @@ -23,6 +23,7 @@ "hide_unavailable_items", "auto_add_item_to_cart", "validate_stock_on_save", + "print_receipt_on_order_complete", "column_break_16", "update_stock", "ignore_pricing_rule", @@ -375,6 +376,12 @@ "fieldname": "disable_rounded_total", "fieldtype": "Check", "label": "Disable Rounded Total" + }, + { + "default": "0", + "fieldname": "print_receipt_on_order_complete", + "fieldtype": "Check", + "label": "Print Receipt on Order Complete" } ], "icon": "icon-cog", @@ -402,7 +409,7 @@ "link_fieldname": "pos_profile" } ], - "modified": "2022-08-10 12:57:06.241439", + "modified": "2025-01-01 11:07:03.161950", "modified_by": "Administrator", "module": "Accounts", "name": "POS Profile", diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.py b/erpnext/accounts/doctype/pos_profile/pos_profile.py index 37197e1fb7a..ea27116e91c 100644 --- a/erpnext/accounts/doctype/pos_profile/pos_profile.py +++ b/erpnext/accounts/doctype/pos_profile/pos_profile.py @@ -47,6 +47,7 @@ class POSProfile(Document): letter_head: DF.Link | None payments: DF.Table[POSPaymentMethod] print_format: DF.Link | None + print_receipt_on_order_complete: DF.Check select_print_heading: DF.Link | None selling_price_list: DF.Link | None tax_category: DF.Link | None diff --git a/erpnext/selling/page/point_of_sale/pos_past_order_summary.js b/erpnext/selling/page/point_of_sale/pos_past_order_summary.js index ed6e6e02dcc..df44fdb04e8 100644 --- a/erpnext/selling/page/point_of_sale/pos_past_order_summary.js +++ b/erpnext/selling/page/point_of_sale/pos_past_order_summary.js @@ -1,7 +1,8 @@ erpnext.PointOfSale.PastOrderSummary = class { - constructor({ wrapper, events }) { + constructor({ wrapper, events, pos_profile }) { this.wrapper = wrapper; this.events = events; + this.pos_profile = pos_profile; this.init_component(); } @@ -355,6 +356,8 @@ erpnext.PointOfSale.PastOrderSummary = class { const condition_btns_map = this.get_condition_btn_map(after_submission); this.add_summary_btns(condition_btns_map); + + this.print_receipt_on_order_complete(); } attach_document_info(doc) { @@ -421,4 +424,16 @@ erpnext.PointOfSale.PastOrderSummary = class { toggle_component(show) { show ? this.$component.css("display", "flex") : this.$component.css("display", "none"); } + + async print_receipt_on_order_complete() { + const res = await frappe.db.get_value( + "POS Profile", + this.pos_profile, + "print_receipt_on_order_complete" + ); + + if (res.message.print_receipt_on_order_complete) { + this.print_receipt(); + } + } };