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
+