From 29abe291c9d42ec5c8484ec2fdc5965809270aaa Mon Sep 17 00:00:00 2001 From: deepak-mnt Date: Tue, 2 Jan 2018 18:25:08 +0530 Subject: [PATCH] Allow draft mode print in online POS --- .../page/point_of_sale/point_of_sale.js | 40 ++++++++++++++----- .../page/point_of_sale/point_of_sale.py | 7 ++++ 2 files changed, 36 insertions(+), 11 deletions(-) diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.js b/erpnext/selling/page/point_of_sale/point_of_sale.js index 0876228d42..b142a06ada 100644 --- a/erpnext/selling/page/point_of_sale/point_of_sale.js +++ b/erpnext/selling/page/point_of_sale/point_of_sale.js @@ -50,11 +50,11 @@ erpnext.pos.PointOfSale = class PointOfSale { this.set_online_status(); }, () => this.setup_company(), - () => this.make_new_invoice(), () => { frappe.dom.unfreeze(); }, + () => this.fetch_pos_profile_data(), () => this.page.set_title(__('Point of Sale')) ]); } @@ -471,6 +471,23 @@ erpnext.pos.PointOfSale = class PointOfSale { }); } + fetch_pos_profile_data() { + var me = this; + me.frm.doc["allow_print_before_pay"] = 0; + return new Promise(resolve => { + return this.frm.call({ + method: "erpnext.selling.page.point_of_sale.point_of_sale.fetch_pos_profile_detail", + args:{ + pos_profile : me.frm.doc.pos_profile + } + }).then((r) => { + me.frm.doc["allow_print_before_pay"] = r.message; + this.set_form_action(); + resolve(); + }); + }); + } + prepare_menu() { var me = this; this.page.clear_menu(); @@ -499,19 +516,20 @@ erpnext.pos.PointOfSale = class PointOfSale { } set_form_action() { - if(this.frm.doc.docstatus !== 1) return; + if(this.frm.doc.docstatus == 1 || this.frm.doc.allow_print_before_pay == 1){ - this.page.set_secondary_action(__("Print"), () => { - this.frm.print_preview.printit(true); - }); + this.page.set_secondary_action(__("Print"), () => { + this.frm.print_preview.printit(true); + }); - this.page.set_primary_action(__("New"), () => { - this.make_new_invoice(); - }); + this.page.set_primary_action(__("New"), () => { + this.make_new_invoice(); + }); - this.page.add_menu_item(__("Email"), () => { - this.frm.email_doc(); - }); + this.page.add_menu_item(__("Email"), () => { + this.frm.email_doc(); + }); + } } }; diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.py b/erpnext/selling/page/point_of_sale/point_of_sale.py index d98a01706e..054c8af73b 100644 --- a/erpnext/selling/page/point_of_sale/point_of_sale.py +++ b/erpnext/selling/page/point_of_sale/point_of_sale.py @@ -124,3 +124,10 @@ def item_group_query(doctype, txt, searchfield, start, page_len, filters): where {condition} and (name like %(txt)s) limit {start}, {page_len}""" .format(condition = cond, start=start, page_len= page_len), {'txt': '%%%s%%' % txt}) + +@frappe.whitelist() +def fetch_pos_profile_detail(pos_profile): + doc_detail=frappe.get_doc("POS Profile",pos_profile) + print_check=doc_detail.allow_print_before_pay + return print_check +