check discount calculation
This commit is contained in:
@@ -31,6 +31,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="order-detail-slimscroll" data-height="160">
|
<div id="order-detail-slimscroll" data-height="160">
|
||||||
<div class="card-text dining">
|
<div class="card-text dining">
|
||||||
|
<span id="discount_itemsErr" style="color:red;"></span>
|
||||||
<table class="table table-default" id="order-items-table">
|
<table class="table table-default" id="order-items-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -117,6 +118,7 @@
|
|||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="text" id="discount-amount" name="discount-amount" value="<%= @sale_data.total_discount rescue 0 %>" class="form-control" />
|
<input type="text" id="discount-amount" name="discount-amount" value="<%= @sale_data.total_discount rescue 0 %>" class="form-control" />
|
||||||
|
<span id="discount-amountErr" style="color:red;"></span>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@@ -254,12 +256,9 @@ var cashier_type = "<%= @cashier_type %>";
|
|||||||
var original_value=0;
|
var original_value=0;
|
||||||
original_value = $('#discount-amount').val();
|
original_value = $('#discount-amount').val();
|
||||||
var input_type = $(this).attr("data-type");
|
var input_type = $(this).attr("data-type");
|
||||||
var grand_total = $('#order-grand-total').text();
|
|
||||||
console.log(grand_total);
|
|
||||||
switch (input_type) {
|
switch (input_type) {
|
||||||
case 'num':
|
case 'num':
|
||||||
var input_value = $(this).attr("data-value");
|
var input_value = $(this).attr("data-value");
|
||||||
console.log(input_value);
|
|
||||||
if (original_value == "0.0"){
|
if (original_value == "0.0"){
|
||||||
$('#discount-amount').val(input_value);
|
$('#discount-amount').val(input_value);
|
||||||
}
|
}
|
||||||
@@ -332,24 +331,40 @@ var cashier_type = "<%= @cashier_type %>";
|
|||||||
$("#net").on('click', function(e){
|
$("#net").on('click', function(e){
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var sale_id = $('#sale-id').text();
|
var sale_id = $('#sale-id').text();
|
||||||
var discount_value = parseFloat($('#discount-amount').val());
|
var discount_value = $('#discount-amount').val();
|
||||||
|
var sub_total = parseFloat($('#order-sub-total').text());
|
||||||
var ajax_url = "/origami/" + sale_id + "/discount";
|
var ajax_url = "/origami/" + sale_id + "/discount";
|
||||||
|
|
||||||
|
if(discount_value!=""){
|
||||||
|
if(discount_value > 0){
|
||||||
|
if(parseFloat(discount_value) > sub_total){
|
||||||
|
$("#discount-amount").val("");
|
||||||
|
$("#discount-amountErr").html("Discount is greater than sub total!");
|
||||||
|
}else{
|
||||||
|
$("#discount-amountErr").html("");
|
||||||
|
// Selected Items
|
||||||
|
var sale_items = get_selected_sale_items();
|
||||||
|
|
||||||
// Selected Items
|
// Selected Account
|
||||||
var sale_items = get_selected_sale_items();
|
var account_types = get_selected_account_types();
|
||||||
|
|
||||||
// Selected Account
|
if(sale_items.length == 0 && account_types.length == 0){
|
||||||
var account_types = get_selected_account_types();
|
calculate_overall_discount(0, discount_value);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
calculate_item_discount(0, discount_value, sale_items, account_types);
|
||||||
|
}
|
||||||
|
|
||||||
if(sale_items.length == 0 && account_types.length == 0){
|
// Remove Selection
|
||||||
calculate_overall_discount(0, discount_value);
|
selection_remove();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$("#discount-amountErr").html("Discount must be greater than 0!");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$("#discount-amountErr").html("can't be blank");
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
calculate_item_discount(0, discount_value, sale_items, account_types);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove Selection
|
|
||||||
selection_remove();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Calculate Percentage Discount for Payment
|
// Calculate Percentage Discount for Payment
|
||||||
@@ -360,8 +375,7 @@ var cashier_type = "<%= @cashier_type %>";
|
|||||||
var ajax_url = "/origami/" + sale_id + "/discount";
|
var ajax_url = "/origami/" + sale_id + "/discount";
|
||||||
|
|
||||||
// Selected Items
|
// Selected Items
|
||||||
var sale_items = get_selected_sale_items();
|
var sale_items = get_selected_sale_items();
|
||||||
|
|
||||||
// Selected Account
|
// Selected Account
|
||||||
var account_types = get_selected_account_types();
|
var account_types = get_selected_account_types();
|
||||||
|
|
||||||
@@ -435,7 +449,6 @@ var cashier_type = "<%= @cashier_type %>";
|
|||||||
|
|
||||||
// Selected Items
|
// Selected Items
|
||||||
var sale_items = get_selected_sale_items();
|
var sale_items = get_selected_sale_items();
|
||||||
console.log(sale_items.length);
|
|
||||||
if(sale_items.length == 0){
|
if(sale_items.length == 0){
|
||||||
//swal("Information!", "You have no selected item!");
|
//swal("Information!", "You have no selected item!");
|
||||||
swal ( "Oops" , "You have no selected item!" , "error" );
|
swal ( "Oops" , "You have no selected item!" , "error" );
|
||||||
@@ -669,113 +682,150 @@ function calculate_item_discount(type, amount, sale_items, account_types){
|
|||||||
var dis_amount = 0;
|
var dis_amount = 0;
|
||||||
var sub_total = 0;
|
var sub_total = 0;
|
||||||
var total_discount = 0;
|
var total_discount = 0;
|
||||||
|
var arrItemName = "";
|
||||||
|
$("#discount_itemsErr").html("");
|
||||||
|
$("#discount-amountErr").html("");
|
||||||
// For Net Pay
|
// For Net Pay
|
||||||
if(type == 0){
|
if(origin_sub_total > 0){
|
||||||
dis_amount = (0 - amount);
|
if(type == 0){
|
||||||
if(sale_items.length > 0){
|
dis_amount = (0 - amount);
|
||||||
for(var i=0;i < sale_items.length;i++){
|
|
||||||
// if(account_types.length > 0){
|
|
||||||
// for(var j=0; j < account_types.length; j++){
|
|
||||||
// if(sale_items[i].account_id == account_types[j].id){
|
|
||||||
// // Discount Items
|
|
||||||
// var discount_item_row = item_row_template(type, sale_items[i], dis_amount, amount);
|
|
||||||
// $("#order-items-table tbody").append(discount_item_row);
|
|
||||||
// total_discount = total_discount + amount;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
var discount_item_row = item_row_template(type,sale_items[i], dis_amount, amount);
|
|
||||||
$("#order-items-table tbody").append(discount_item_row);
|
|
||||||
total_discount = total_discount + amount;
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// No Needs For Auto Selected
|
|
||||||
// if(account_types.length > 0){
|
|
||||||
// var item_rows=get_item_rows();
|
|
||||||
// if(item_rows.length > 0){
|
|
||||||
// for(var k=0; k < item_rows.length; k++){
|
|
||||||
// for(var j=0; j < account_types.length; j++){
|
|
||||||
// if(item_rows[k].account_id == account_types[j].id){
|
|
||||||
// // Discount Items
|
|
||||||
// var discount_item_row = item_row_template(type, item_rows[k], dis_amount, amount);
|
|
||||||
// $("#order-items-table tbody").append(discount_item_row);
|
|
||||||
// total_discount = total_discount + amount;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// alert("No Items!");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
sub_total = origin_sub_total - total_discount;
|
|
||||||
}
|
|
||||||
|
|
||||||
// For Percentage Pay
|
|
||||||
if(type == 1){
|
|
||||||
if(amount > 100 ){
|
|
||||||
swal({
|
|
||||||
title:"Oops!",
|
|
||||||
text:'Percentage Value over 100!',
|
|
||||||
type: "error",
|
|
||||||
confirmButtonText: 'OK',
|
|
||||||
confirmButtonColor:"red"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
// Check sale items exists
|
|
||||||
if(sale_items.length > 0){
|
if(sale_items.length > 0){
|
||||||
for(var i=0;i < sale_items.length;i++){
|
for(var i=0;i < sale_items.length;i++){
|
||||||
// if(account_types.length > 0){
|
// if(account_types.length > 0){
|
||||||
// for(var j=0; j < account_types.length; j++){
|
// for(var j=0; j < account_types.length; j++){
|
||||||
// if(sale_items[i].account_id == account_types[j].id){
|
// if(sale_items[i].account_id == account_types[j].id){
|
||||||
// // Discount Items
|
// // Discount Items
|
||||||
// dis_amount = 0 - ((sale_items[i].price * amount)/100);
|
// var discount_item_row = item_row_template(type, sale_items[i], dis_amount, amount);
|
||||||
// var discount_item_row = item_row_template(type,sale_items[i], dis_amount, amount);
|
|
||||||
// $("#order-items-table tbody").append(discount_item_row);
|
// $("#order-items-table tbody").append(discount_item_row);
|
||||||
// total_discount = total_discount + dis_amount;
|
// total_discount = total_discount + amount;
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// else {
|
// else {
|
||||||
dis_amount = 0 - ((sale_items[i].price * amount)/100);
|
if(parseFloat(amount) > parseFloat(sale_items[i].price)){
|
||||||
var discount_item_row = item_row_template(type,sale_items[i], dis_amount, amount);
|
arrItemName += ", " + sale_items[i].name;
|
||||||
$("#order-items-table tbody").append(discount_item_row);
|
}else{
|
||||||
total_discount = total_discount + dis_amount;
|
var discount_item_row = item_row_template(type,sale_items[i], dis_amount, amount);
|
||||||
|
total_discount = parseFloat(total_discount) + parseFloat(amount);
|
||||||
|
|
||||||
|
if(parseFloat(origin_sub_total) >= parseFloat(total_discount)){
|
||||||
|
$("#order-items-table tbody").append(discount_item_row);
|
||||||
|
}else{
|
||||||
|
total_discount = parseFloat(total_discount) - parseFloat(amount);
|
||||||
|
$("#discount-amountErr").html("Discount is greater than sub total!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
sub_total = origin_sub_total + total_discount;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(arrItemName!=""){
|
||||||
|
arrItemName = arrItemName.substr(2);
|
||||||
|
if(arrItemName.match(/,/g || []) != null){
|
||||||
|
if(arrItemName.match(/,/g || []).length >= 1){
|
||||||
|
$("#discount_itemsErr").html("Discount is greater than "+arrItemName+" prices");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$("#discount_itemsErr").html("Discount is greater than "+arrItemName+" price");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// No Needs For Auto Selected
|
||||||
|
// if(account_types.length > 0){
|
||||||
|
// var item_rows=get_item_rows();
|
||||||
|
// if(item_rows.length > 0){
|
||||||
|
// for(var k=0; k < item_rows.length; k++){
|
||||||
|
// for(var j=0; j < account_types.length; j++){
|
||||||
|
// if(item_rows[k].account_id == account_types[j].id){
|
||||||
|
// // Discount Items
|
||||||
|
// var discount_item_row = item_row_template(type, item_rows[k], dis_amount, amount);
|
||||||
|
// $("#order-items-table tbody").append(discount_item_row);
|
||||||
|
// total_discount = total_discount + amount;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// alert("No Items!");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
sub_total = parseFloat(origin_sub_total) - parseFloat(total_discount);
|
||||||
}
|
}
|
||||||
// No Needs For Auto Selected
|
|
||||||
// Check account types exists
|
// For Percentage Pay
|
||||||
// if(account_types.length > 0){
|
if(type == 1){
|
||||||
// var item_rows=get_item_rows();
|
if(amount > 100 ){
|
||||||
// console.log(account_types);
|
swal({
|
||||||
// if(item_rows.length > 0){
|
title:"Oops!",
|
||||||
// for(var k=0; k < item_rows.length; k++){
|
text:'Percentage Value over 100!',
|
||||||
// for(var j=0; j < account_types.length; j++){
|
type: "error",
|
||||||
// if(item_rows[k].account_id == account_types[j].id){
|
confirmButtonText: 'OK',
|
||||||
// // Discount Items
|
confirmButtonColor:"red"
|
||||||
// dis_amount = 0 - ((item_rows[k].price * amount)/100);
|
});
|
||||||
// var discount_item_row = item_row_template(type, item_rows[k], dis_amount, amount);
|
}
|
||||||
// $("#order-items-table tbody").append(discount_item_row);
|
else{
|
||||||
// total_discount = total_discount + dis_amount;
|
// Check sale items exists
|
||||||
// }
|
if(sale_items.length > 0){
|
||||||
// }
|
for(var i=0;i < sale_items.length;i++){
|
||||||
// }
|
// if(account_types.length > 0){
|
||||||
// }
|
// for(var j=0; j < account_types.length; j++){
|
||||||
// else {
|
// if(sale_items[i].account_id == account_types[j].id){
|
||||||
// alert("No Items!");
|
// // Discount Items
|
||||||
// }
|
// dis_amount = 0 - ((sale_items[i].price * amount)/100);
|
||||||
// }
|
// var discount_item_row = item_row_template(type,sale_items[i], dis_amount, amount);
|
||||||
|
// $("#order-items-table tbody").append(discount_item_row);
|
||||||
|
// total_discount = total_discount + dis_amount;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
dis_amount = 0 - ((sale_items[i].price * amount)/100);
|
||||||
|
var discount_item_row = item_row_template(type,sale_items[i], dis_amount, amount);
|
||||||
|
|
||||||
|
total_discount = total_discount + dis_amount;
|
||||||
|
if(parseFloat(origin_sub_total) >= parseFloat(total_discount)){
|
||||||
|
$("#order-items-table tbody").append(discount_item_row);
|
||||||
|
}else{
|
||||||
|
total_discount = total_discount - dis_amount;
|
||||||
|
$("#discount-amountErr").html("Discount is greater than sub total!");
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
sub_total = parseFloat(origin_sub_total) + parseFloat(total_discount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// No Needs For Auto Selected
|
||||||
|
// Check account types exists
|
||||||
|
// if(account_types.length > 0){
|
||||||
|
// var item_rows=get_item_rows();
|
||||||
|
// console.log(account_types);
|
||||||
|
// if(item_rows.length > 0){
|
||||||
|
// for(var k=0; k < item_rows.length; k++){
|
||||||
|
// for(var j=0; j < account_types.length; j++){
|
||||||
|
// if(item_rows[k].account_id == account_types[j].id){
|
||||||
|
// // Discount Items
|
||||||
|
// dis_amount = 0 - ((item_rows[k].price * amount)/100);
|
||||||
|
// var discount_item_row = item_row_template(type, item_rows[k], dis_amount, amount);
|
||||||
|
// $("#order-items-table tbody").append(discount_item_row);
|
||||||
|
// total_discount = total_discount + dis_amount;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// alert("No Items!");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#order-sub-total").text(parseFloat(sub_total).toFixed(2));
|
||||||
|
}else{
|
||||||
|
$("#discount-amountErr").html("Discount is greater than sub total!");
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#order-sub-total").text(sub_total);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function item_row_template(type, item, discount_amount, amount){
|
function item_row_template(type, item, discount_amount, amount){
|
||||||
|
|||||||
Reference in New Issue
Block a user