add account_id to od_item and sale_item table

This commit is contained in:
Yan
2017-06-21 14:49:01 +06:30
parent 9137436b70
commit e3b3ff76b2
7 changed files with 180 additions and 15 deletions

View File

@@ -9,6 +9,7 @@
// min-height: 75rem;
// padding-top: 4.5rem;
// }
.others-payment{
line-height:100px;
text-align:center;
@@ -41,12 +42,13 @@
.pay{
width: 98%;
height:211px;
height:211px;
line-height:211px;
text-align:center;
font-size:20px;
color:white;
}
.payment{
height:70px;line-height:70px;align:center;color:white;font-size:16px;margin-bottom:1px;
}
@@ -58,6 +60,7 @@
.credit-color{
background-color:#FFCCBC;
}
.other-payment-color{
background-color:#E1BEE7;
}
@@ -100,6 +103,11 @@
background-color: blue !important;
}
.selected-account {
color: #fff !important;
background-color: blue !important;
}
/* Reciept Style */
#order-charges-table td {
border-top: none !important;

View File

@@ -82,7 +82,7 @@ class Order < ApplicationRecord
set_order_items
end
OrderItem.processs_item(menu_item[:item_code], menu_item[:name],
OrderItem.processs_item(menu_item[:item_code], menu_item[:name], menu_item[:account_id]
item[:quantity],menu_item[:price], item[:options], set_order_items, self.id,
self.employee_name)

View File

@@ -20,12 +20,13 @@ class OrderItem < ApplicationRecord
# option_values : [],
# sub_order_items : [],
# }
def self.processs_item (item_code, menu_name, qty,price, options, set_menu_items, order_id, item_order_by)
def self.processs_item (item_code, menu_name, account_id, qty,price, options, set_menu_items, order_id, item_order_by)
orderitem = OrderItem.create do |oitem|
oitem.order_id = order_id
oitem.item_code = item_code
oitem.item_name = menu_name
oitem.account_id = account_id
oitem.qty = qty
oitem.price = price
oitem.options = options

View File

@@ -133,6 +133,7 @@ class Sale < ApplicationRecord
#pull
sale_item.product_code = item.item_code
sale_item.product_name = item.item_name
sale_item.account_id = item.account_id
sale_item.remark = item.remark
sale_item.qty = item.qty

View File

@@ -88,17 +88,6 @@
<div class="card-block">
<div class="card-title">
<div class="form-horizontal">
<!-- <div class="form-group">
<div class="col-md-3">
<select name="discount_type" id="discount-type" class="form-control">
<option value=0 >Net</option>
<option value=1 >Percentage</option>
</select>
</div>
<div class="col-md-9">
<input type="text" id="discount-amount" name="discount-amount" value="<%= @sale_data.total_discount rescue 0 %>" class="form-control" />
</div>
</div> -->
<div class="col-md-12">
<div class="form-group">
<input type="text" id="discount-amount" name="discount-amount" value="<%= @sale_data.total_discount rescue 0 %>" class="form-control" />
@@ -107,7 +96,7 @@
<%
@accounts.each do |acc|
%>
<button id="<%= acc.title %>" class="btn btn-default"><%= acc.title %></button>
<button id="account-<%= acc.id %>" class="accounts-type btn btn-default"><%= acc.title %></button>
<% end %>
</div>
</div>
@@ -186,3 +175,167 @@
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$(".cashier_number").on('click', function(event){
if(event.handled !== true) {
var original_value=0;
original_value = $('#discount-amount').val();
var input_type = $(this).attr("data-type");
switch (input_type) {
case 'num':
var input_value = $(this).attr("data-value");
if (original_value == "0.0"){
$('#discount-amount').val(input_value);
update_balance();
}
else{
$('#discount-amount').val(original_value + '' + input_value);
update_balance();
}
break;
case 'add':
var input_value = $(this).attr("data-value");
amount = parseInt(input_value);
$('#discount-amount').val(amount);
update_balance();
break;
case 'del' :
var discount_text=$('#discount-amount').val();
$('#discount-amount').val(discount_text.substr(0,discount_text.length-1));
update_balance();
break;
case 'clr':
$('#discount-amount').val("0.0");
update_balance();
break;
}
event.handled = true;
} else {
return false;
}
});
// Select Sale Item
$('.discount-item-row').on('click',function(){
if($(this).hasClass('selected-item') == true){
$(this).removeClass('selected-item');
}
else {
$(this).addClass('selected-item');
}
});
// Select for account types
$(".accounts-type").on('click', function(e){
if($(this).hasClass('selected-account') == true){
$(this).removeClass('selected-account');
}
else {
$(this).addClass('selected-account');
}
});
// Calculate Net Discount for Payment
$("#net").on('click', function(e){
e.preventDefault();
var sale_id = $('#sale-id').text();
var discount_value = $('#discount-amount').val();
var ajax_url = "/origami/" + sale_id + "/discount";
// Selected Items
var sale_items = get_selected_sale_items();
// Selected Account
var account_types = get_selected_account_types();
calculate_item_discount(sale_items, account_types);
console.log(sale_items);
// var sub_total = $('#order-sub-total').text();
// var grand_total = $('#order-grand-total').text();
// var discount_value = $('#discount-amount').val();
// var discount_amount = discount_value;
// var ajax_url = "/origami/" + sale_id + "/discount";
// if(sale_item_id != null){
// ajax_url = "/origami/" + sale_item_id + "/discount";
// sub_total = $("#"+sale_item_id).children().find("#item-total-price").text();
// }
// // For Percentage Discount
// if(discount_type == 1){
// discount_amount=(sub_total*discount_value)/100;
// }
// var params = {'sale_id': sale_id, 'sale_item_id': sale_item_id, 'grand_total' : grand_total, 'discount_type':discount_type, 'discount_value':discount_value, 'discount_amount':discount_amount};
// $.ajax({
// type: "POST",
// url: ajax_url,
// data: params,
// success:function(result){ }
// });
});
// Calculate Percentage Discount for Payment
$("#percentage").on('click', function(e){
e.preventDefault();
var sale_id = $('#sale-id').text();
var sale_item_id = $('.selected-item').attr('id').substr(0,16);
var sub_total = $('#order-sub-total').text();
var grand_total = $('#order-grand-total').text();
var discount_value = $('#discount-amount').val();
var discount_amount = discount_value;
var ajax_url = "/origami/" + sale_id + "/discount";
});
});
/* For Receipt - Update Balance */
function update_balance(){
var discount_amount = $('#discount-amount').val();
var sub_total = $('#order-sub-total').text();
var tax = $('#order-Tax').text();
// For Percentage Discount
if(discount_type == 1){
discount_amount=(sub_total*discount_amount)/100;
}
var total = (parseFloat(sub_total) + parseFloat(tax)) - discount_amount;
$('#order-discount').text(discount_amount);
$('#order-grand-total').text(total);
}
/* Get Selected Sale Item's ID and Price */
function get_selected_sale_items(){
var sale_items = [];
$('.selected-item').each(function(i){
var sale_item = {};
sale_item.id = $(this).attr('id').substr(0,16);
sale_item.price = $(this).find('#item-total-price').text();
sale_items.push(sale_item);
});
return sale_items;
}
/* Get Selected Accounts ID and Price */
function get_selected_account_types(){
var account_types = [];
$('.selected-account').each(function(i){
var account= {};
account.id = $(this).attr('id').substr(8);
account.name = $(this).text();
account_types.push(account);
});
return account_types;
}
</script>

View File

@@ -7,6 +7,7 @@ class CreateOrderItems < ActiveRecord::Migration[5.1]
t.string :item_order_by #person who order this
t.string :item_code, :null => false
t.string :item_name, :null => false
t.integer :account, :limit => 8, :null => false, :default => 1
t.decimal :qty, :precision => 10, :scale => 2, :null => false, :default => 0.00
t.decimal :price, :precision => 10, :scale => 2, :null => false, :default => 0.00
t.string :remark

View File

@@ -5,6 +5,7 @@ class CreateSaleItems < ActiveRecord::Migration[5.1]
t.string :sale_id, foreign_key: true, :limit => 16
t.string :product_code, :null => false
t.string :product_name, :null => false
t.integer :account, :limit => 8, :null => false, :default => 1
t.string :remark
t.decimal :qty, :precision => 10, :scale => 2, :null => false, :default => 0.00
t.decimal :unit_price, :precision => 10, :scale => 2, :null => false, :default => 0.00