Allow draft mode print in online POS
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 0876228..b142a06 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 @@
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 @@
});
}
+ 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 @@
}
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 d98a017..054c8af 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 @@
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
+