fix(POS): 100 % Discount on Point of Sales (#37411)
fix: Allow 100% discount in POS
diff --git a/erpnext/selling/page/point_of_sale/pos_controller.js b/erpnext/selling/page/point_of_sale/pos_controller.js
index db6255a..9bba4eb 100644
--- a/erpnext/selling/page/point_of_sale/pos_controller.js
+++ b/erpnext/selling/page/point_of_sale/pos_controller.js
@@ -548,6 +548,14 @@
if (!item_code)
return;
+ if (rate == undefined || rate == 0) {
+ frappe.show_alert({
+ message: __('Price is not set for the item.'),
+ indicator: 'orange'
+ });
+ frappe.utils.play_sound("error");
+ return;
+ }
const new_item = { item_code, batch_no, rate, uom, [field]: value };
if (serial_no) {
diff --git a/erpnext/selling/page/point_of_sale/pos_payment.js b/erpnext/selling/page/point_of_sale/pos_payment.js
index 89ce61ab..63711c5 100644
--- a/erpnext/selling/page/point_of_sale/pos_payment.js
+++ b/erpnext/selling/page/point_of_sale/pos_payment.js
@@ -203,7 +203,7 @@
const paid_amount = doc.paid_amount;
const items = doc.items;
- if (paid_amount == 0 || !items.length) {
+ if (!items.length || (paid_amount == 0 && doc.additional_discount_percentage != 100)) {
const message = items.length ? __("You cannot submit the order without payment.") : __("You cannot submit empty order.");
frappe.show_alert({ message, indicator: "orange" });
frappe.utils.play_sound("error");