added event on numeric keypad
diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js
index 961b2a1..e405ae0 100644
--- a/erpnext/accounts/page/pos/pos.js
+++ b/erpnext/accounts/page/pos/pos.js
@@ -303,6 +303,7 @@
this.make_list_customers();
this.make_customer();
this.make_item_list();
+ this.bind_numeric_keypad();
this.make_discount_field()
},
@@ -403,6 +404,40 @@
me.set_focus();
});
},
+
+ bind_numeric_keypad: function() {
+ var me = this;
+ $(this.numeric_keypad).find('.pos-operation').on('click', function(){
+ me.numeric_val = '';
+ })
+
+ $(this.numeric_keypad).find('.numeric-keypad').on('click', function(){
+ me.numeric_id = $(this).attr("id") || me.numeric_id;
+ me.val = $(this).attr("val")
+ if(me.val && me.numeric_id) {
+ me.selected_field = $(me.wrapper).find('.selected-item').find('.' + me.numeric_id)
+ me.numeric_val += me.val;
+ me.selected_field.val(flt(me.numeric_val))
+ me.selected_field.trigger("change")
+ me.render_selected_item()
+ }
+ })
+
+ $(this.numeric_keypad).find('.numeric-del').click(function(){
+ me.selected_field = $(me.wrapper).find('.selected-item').find('.' + me.numeric_id)
+ me.numeric_val = cstr(flt(me.selected_field.val())).slice(0, -1);
+ me.selected_field.val(me.numeric_val);
+ me.selected_field.trigger("change")
+ me.render_selected_item()
+ })
+
+ $(this.numeric_keypad).find('.pos-pay').click(function(){
+ me.validate();
+ me.update_paid_amount_status(true);
+ me.create_invoice();
+ me.make_payment();
+ })
+ },
render_list_customers: function () {
var me = this;
@@ -797,11 +832,24 @@
});
}
},
+
+ bind_items_event: function() {
+ var me = this;
+ $(this.wrapper).find(".pos-bill-item").click(function() {
+ me.numeric_val = "";
+ me.numeric_id = ""
+ me.item_code = $(this).attr("data-item-code");
+ me.render_selected_item()
+ me.bind_qty_event()
+ me.update_rate()
+ $(me.wrapper).find(".selected-item").scrollTop(1000);
+ })
+ },
bind_qty_event: function () {
var me = this;
-
- $(this.wrapper).find(".pos-item-qty").on("change", function () {
+
+ $(this.wrapper).on("change", ".pos-item-qty", function () {
var item_code = $(this).parents(".pos-bill-item").attr("data-item-code");
var qty = $(this).val();
me.update_qty(item_code, qty)
@@ -818,8 +866,8 @@
var qty = flt($(this).parents(".pos-bill-item").find('.pos-item-qty').val()) - 1;
me.update_qty(item_code, qty)
})
-
- $(this.wrapper).find(".pos-item-discount").on("change", function () {
+
+ $(this.wrapper).on("change", ".pos-item-disc", function () {
var item_code = $(this).parents(".pos-bill-item").attr("data-item-code");
var discount = $(this).val();
me.update_discount(item_code, discount)
@@ -841,20 +889,20 @@
update_rate: function () {
var me = this;
-
- $(this.wrapper).find(".pos-bill-item").click(function() {
- var item_code = $(this).attr("data-item-code");
- doc = me.get_child_item(item_code);
- html_data = frappe.render_template("pos_selected_item", doc[0])
- $(me.wrapper).find('.selected-item').html(html_data)
- me.bind_qty_event()
- })
-
- $(this.wrapper).find(".pos-item-rate").on("change", function () {
+ $(this.wrapper).on("change", ".pos-item-price", function () {
var item_code = $(this).parents(".pos-bill-item").attr("data-item-code");
me.set_item_details(item_code, "rate", $(this).val());
})
},
+
+ render_selected_item: function() {
+ doc = this.get_child_item(this.item_code);
+ $(this.wrapper).find('.selected-item').empty();
+ if(doc.length) {
+ this.selected_row = frappe.render_template("pos_selected_item", doc[0])
+ $(this.wrapper).find('.selected-item').html(this.selected_row)
+ }
+ },
get_child_item: function(item_code) {
var me = this;
@@ -1011,8 +1059,7 @@
refresh: function (update_paid_amount) {
var me = this;
this.refresh_fields(update_paid_amount);
- this.bind_qty_event();
- this.update_rate();
+ this.bind_items_event();
this.set_primary_action();
},
@@ -1056,11 +1103,11 @@
$(this).select();
});
- this.wrapper.find("input.pos-item-discount").on("focus", function () {
+ this.wrapper.find("input.pos-item-disc").on("focus", function () {
$(this).select();
});
- this.wrapper.find("input.pos-item-rate").on("focus", function () {
+ this.wrapper.find("input.pos-item-price").on("focus", function () {
$(this).select();
});
},
@@ -1375,13 +1422,18 @@
item.price_list_rate = pricing_rule[0].price || item.price_list_rate;
item.margin_rate_or_amount = pricing_rule[0].margin_rate_or_amount;
item.discount_percentage = pricing_rule[0].discount_percentage || 0.0;
- } else if ((item.discount_percentage > 0 || item.margin_rate_or_amount > 0) && item.pricing_rule) {
+ me.apply_pricing_rule_on_item(item)
+ } else if (item.pricing_rule) {
+ item.price_list_rate = me.price_list_data[item.item_code]
item.margin_rate_or_amount = 0.0;
item.discount_percentage = 0.0;
item.pricing_rule = null;
+ me.apply_pricing_rule_on_item(item)
}
-
- me.apply_pricing_rule_on_item(item)
+
+ if(item.discount_percentage > 0) {
+ me.apply_pricing_rule_on_item(item)
+ }
})
},
diff --git a/erpnext/public/css/erpnext.css b/erpnext/public/css/erpnext.css
index b1f1985..1db761e 100644
--- a/erpnext/public/css/erpnext.css
+++ b/erpnext/public/css/erpnext.css
@@ -85,12 +85,13 @@
}
.item-cart {
overflow-y: scroll;
- height: calc(100vh - 60vh);
+ height: calc(100vh - 72vh);
}
.edit-pos-item {
- height: 40px;
+ height: 50px;
font-size: 14px;
border-top: 1px solid #d1d8dd;
+ padding-top: 12px;
}
.pos-bill-item:hover {
background-color: #f5f7fa;
@@ -171,6 +172,16 @@
.pos-keyboard-key,
.delete-btn {
border: 1px solid #d1d8dd;
+ height: 85px;
+ width: 85px;
+ margin: 10px 10px;
+ font-size: 24px;
+ font-weight: 200;
+ background-color: #FDFDFD;
+ border-color: #e8e8e8;
+}
+.numeric-keypad {
+ border: 1px solid #d1d8dd;
height: 69px;
width: 69px;
font-size: 20px;
diff --git a/erpnext/public/js/pos/pos.html b/erpnext/public/js/pos/pos.html
index c634135..1019647 100644
--- a/erpnext/public/js/pos/pos.html
+++ b/erpnext/public/js/pos/pos.html
@@ -73,15 +73,15 @@
{% for(var i=0; i<3; i++) { %}
<div class="row text-right">
{% for(var j=i*3; j<(i+1)*3; j++) { %}
- <button type="button" class="btn btn-default pos-keyboard-key">{{j+1}}</button>
+ <button type="button" class="btn btn-default numeric-keypad" val="{{j+1}}">{{j+1}}</button>
{% } %}
- <button type="button" class="btn text-center btn-default pos-keyboard-key">{{ chartData[i] }}</button>
+ <button type="button" id = "pos-item-{{ chartData[i].toLowerCase() }}" class="btn text-center btn-default numeric-keypad pos-operation">{{ chartData[i] }}</button>
</div>
{% } %}
<div class="row text-right">
- <button type="button" class="btn btn-default delete-btn">Del</button>
- <button type="button" class="btn btn-default pos-keyboard-key">0</button>
- <button type="button" class="btn btn-default pos-keyboard-key">.</button>
+ <button type="button" class="btn btn-default numeric-keypad numeric-del">Del</button>
+ <button type="button" class="btn btn-default numeric-keypad" val="0">0</button>
+ <button type="button" class="btn btn-default numeric-keypad" val=".">.</button>
<button type="button" class="btn btn-primary pos-pay">Pay</button>
</div>
</div>
diff --git a/erpnext/public/js/pos/pos_bill_item.html b/erpnext/public/js/pos/pos_bill_item.html
index 1a1f1e2..21868a6 100644
--- a/erpnext/public/js/pos/pos_bill_item.html
+++ b/erpnext/public/js/pos/pos_bill_item.html
@@ -18,13 +18,13 @@
</div>
<div class="col-xs-2 text-right">
<div class="row input-sm">
- <input type="tel" value="{%= discount_percentage %}" class="form-control text-right pos-item-discount">
+ <input type="tel" value="{%= discount_percentage %}" class="form-control text-right pos-item-disc">
</div>
</div>
<div class="col-xs-3 text-right">
<div class="text-muted" style="margin-top: 5px;">
{% if(enabled) { %}
- <input type="tel" value="{%= rate %}" class="form-control input-sm pos-item-rate text-right">
+ <input type="tel" value="{%= rate %}" class="form-control input-sm pos-item-price text-right">
{% } else { %}
<h6>{%= format_currency(rate) %}</h6>
{% } %}
diff --git a/erpnext/public/js/pos/pos_selected_item.html b/erpnext/public/js/pos/pos_selected_item.html
index 491938e..833cdd9 100644
--- a/erpnext/public/js/pos/pos_selected_item.html
+++ b/erpnext/public/js/pos/pos_selected_item.html
@@ -3,25 +3,25 @@
<div class="form-group edit-pos-item">
<label class=" text-left col-xs-4">Price:</label>
<div class="col-xs-8">
- <input class="form-control text-right" value="{%= rate %}">
+ <input class="form-control text-right pos-item-price" disabled value="{%= rate %}">
</div>
</div>
<div class="form-group edit-pos-item">
<label class=" text-left col-xs-4">Qty:</label>
<div class="col-xs-8">
- <input class="form-control text-right pos-item-qty" value="{%= qty %}">
+ <input class="form-control text-right pos-item-qty" disabled value="{%= qty %}">
</div>
</div>
<div class="form-group edit-pos-item">
<label class=" text-left col-xs-4">Discount:</label>
<div class="col-xs-8">
- <input class="form-control text-right" value="{%= discount_percentage %}">
+ <input class="form-control text-right pos-item-disc" disabled value="{%= discount_percentage %}">
</div>
</div>
<div class="form-group edit-pos-item">
<label class=" text-left col-xs-4">Amount:</label>
<div class="col-xs-8">
- <input class="form-control text-right " value="{%= amount %}">
+ <input class="form-control text-right " disabled value="{%= amount %}">
</div>
</div>
</div>
\ No newline at end of file
diff --git a/erpnext/public/less/erpnext.less b/erpnext/public/less/erpnext.less
index 34ea901..3ad8a0b 100644
--- a/erpnext/public/less/erpnext.less
+++ b/erpnext/public/less/erpnext.less
@@ -104,13 +104,14 @@
.item-cart {
overflow-y: scroll;
- height: ~"calc(100vh - 60vh)";
+ height: ~"calc(100vh - 72vh)";
}
.edit-pos-item {
- height: 40px;
+ height: 50px;
font-size: 14px;
border-top: 1px solid @border-color;
+ padding-top: 12px;
}
.pos-bill-item:hover {
@@ -213,6 +214,17 @@
.pos-keyboard-key, .delete-btn {
border: 1px solid #d1d8dd;
+ height:85px;
+ width:85px;
+ margin:10px 10px;
+ font-size:24px;
+ font-weight:200;
+ background-color: #FDFDFD;
+ border-color: #e8e8e8;
+}
+
+.numeric-keypad {
+ border: 1px solid #d1d8dd;
height:69px;
width:69px;
font-size:20px;