added new image upload file

This commit is contained in:
Nweni
2017-06-05 17:14:07 +06:30
parent db904739ac
commit faca7295f7
14 changed files with 325 additions and 50 deletions

View File

@@ -0,0 +1,113 @@
// $(document).on('touchstart click', '.keypad', function(event){
// event.stopPropagation();
// event.preventDefault();
// if(event.handled !== true) {
//
// // Do your magic here.
// var input_value = $(this).attr("data-value");
// switch (input_value) {
//
// case 'delete':
// process_delete_payment();
// break;
//
// case 'foc':
// remove_input_action();
// $(".foc").attr("data-action","true");
// if(customerName.toString() != " "){ //if already chosen customer
// if($("#foc_reason_lists").attr("foc_reason") == ' '){
// alert("Please! Choose or Add FOC reason");
// foc_additional_form();
// }
// else{
// process_foc_payment();
// }
// }
// else{
// alert("Please! Choose or Save Customer");
// foc_additional_form();
// }
// break;
//
// case 'nett':
// remove_input_action();
// $(".nett").attr("data-action","true");
// if($(".credit_note_payment").hasClass("payment_selected")){
// if(customerName == " "){
// alert("Please! Choose or Save Customer");
// showCustomer();
// }
// else{
// $("#accept_payment_btn").attr("data-payment","credit");
// process_nett_payment();
// }
// }
// else{
// process_nett_payment();
// }
// break;
//
// case 'edit':
// process_edit_invoice();
// break;
//
// case 'cancel':
// remove_input_action();
// var status = $("#label_amountdue").attr("data-status");
// if (status != 'completed' && status != 'void'){
// $(".cancel").attr("data-action","true");
// var message = confirm("Are you sure to void? Please, add reason!");
// if (message == true) {
// $(".additional_form").hide();
// $("#void_sale_additional_form").show();
// process_cancel_payment();
// }
// }
// else{
// $(".cancel").addClass("dim");
// }
// break;
//
// case 'ent':
// amount_due = parseFloat($("#label_amountdue").attr("data-original"));
// other_amt = parseFloat($("#label_cash_amount").attr("data-value"));
// credit_amount = parseFloat($("#label_credit_note").text());
// if ($(".credit_note_payment").hasClass("payment_selected") && credit_amount > 0){
// if(customerName.toString() != " "){
// if(credit_amount > (amount_due - other_amt)){
// alert("You shouldn't exceed the amount due.");
// }
// else{
// $("#accept_payment_btn").attr("data-payment","credit");
// update_balance_due();
// }
// }
// else{
// alert("Please! Choose or Save Customer");
// }
// }
// else{
// update_balance_due();
// }
//
// break;
// case 'clear':
// process_clear_payment();
// break;
//
// default:
//
// var existing_value = $(".payment_selected span").text();
//
// if (existing_value == "0" || existing_value == "0.00") { existing_value = ""; }
// existing_value = existing_value + input_value;
// $(".payment_selected span").text(existing_value);
//
// }
//
//
// event.handled = true;
// } else {
// return false;
// }
// });

View File

@@ -7,3 +7,21 @@
// min-height: 75rem; // min-height: 75rem;
// padding-top: 4.5rem; // padding-top: 4.5rem;
// } // }
.cashier_number{
height:76px;
line-height:80px;
text-align:center;
background:#54A5AF;
float:left;
margin:2px;
font-size:20px;
color:white;
cursor:pointer;
}
.cashier_number:hover{
background:#A9F5F2;
}
.long{
width:100%
}

View File

@@ -10,7 +10,7 @@ class Api::BillController < Api::ApiController
if (params[:booking_id]) if (params[:booking_id])
@sale = Sale.new @sale = Sale.new
@status = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee.name) @status = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee.name)
elsif (params[:order_id]) elsif (params[:order_id])
@sale = Sale.new @sale = Sale.new
@status = @sale.generate_invoice_from_order(params[:order_id], current_login_employee.name) @status = @sale.generate_invoice_from_order(params[:order_id], current_login_employee.name)

View File

@@ -4,12 +4,13 @@ class Origami::HomeController < BaseOrigamiController
@order_rooms = Order.get_order_rooms() @order_rooms = Order.get_order_rooms()
@orders = Order.get_orders() @orders = Order.get_orders()
end end
def show def show
str = [] str = []
@order_details = OrderItem.get_order_items_details(params[:order_id]) @order_details = OrderItem.get_order_items_details(params[:order_id])
@order_details.each do |ord_detail| @order_details.each do |ord_detail|
str.push(ord_detail) str.push(ord_detail)
end end
render :json => str.to_json render :json => str.to_json
end end
end end

View File

@@ -1,6 +1,14 @@
class Origami::PaymentsController < BaseOrigamiController class Origami::PaymentsController < BaseOrigamiController
def index def index
end end
def create def create
end end
def show
end
end end

View File

@@ -1,22 +1,33 @@
class Origami::RequestBillsController < BaseOrigamiController class Origami::RequestBillsController < BaseOrigamiController
def show
def create
@sale = Sale.new @sale = Sale.new
check_order = Order.find_by_id(params[:id]) check_order = Order.find_by_id(params[:id])
if check_order if check_order
@order_details = OrderItem.get_order_items_details(check_order.id) @order_details = OrderItem.get_order_items_details(check_order.id)
@order_details = OrderItem.get_order_items_details(check_order.id) @order_details = OrderItem.get_order_items_details(check_order.id)
@status, @sale_id = @sale.generate_invoice_from_order(check_order.id, nil,current_login_employee.name) @status, @sale_id = @sale.generate_invoice_from_order(check_order.id, nil,current_login_employee.name)
@sale_data = Sale.find_by_id(@sale_id) @sale_data = Sale.find_by_id(@sale_id)
@sale_items = SaleItem.where("sale_id=?",@sale_id) @sale_items = SaleItem.where("sale_id=?",@sale_id)
end end
unique_code="ReceiptBillPdf" unique_code="ReceiptBillPdf"
print_settings=PrintSetting.find_by_unique_code(unique_code) print_settings=PrintSetting.find_by_unique_code(unique_code)
printer = Printer::ReceiptPrinter.new(print_settings) printer = Printer::ReceiptPrinter.new(print_settings)
printer.print_receipt_bill(print_settings,@sale_items,@sale) printer.print_receipt_bill(print_settings,@sale_items,@sale)
end
def show
sale_id = params[:sale_id]
if Sale.exists?(sale_id)
@sale_data = Sale.find_by_id(sale_id)
end
end end
end end

View File

@@ -1,6 +1,6 @@
class Booking < ApplicationRecord class Booking < ApplicationRecord
#primary key - need to be unique #primary key - need to be unique
belongs_to :dining_facility, :optional => true belongs_to :dining_facility, :optional => true
belongs_to :sale, :optional => true belongs_to :sale, :optional => true
has_many :booking_orders has_many :booking_orders

View File

@@ -223,8 +223,7 @@ class Order < ApplicationRecord
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
left join order_items on order_items.order_id = orders.id") left join order_items on order_items.order_id = orders.id")
.where("dining_facilities.type=? and orders.order_type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,"dine_in",true) .where("dining_facilities.type=? and orders.order_type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,"dine_in",true)
.group("orders.id, order_items.id,dining_facilities.name")
.group("orders.id")
end end
#Origami: Cashier : to view order type Room #Origami: Cashier : to view order type Room
@@ -248,8 +247,7 @@ class Order < ApplicationRecord
left join bookings on bookings.id = booking_orders.id left join bookings on bookings.id = booking_orders.id
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
left join order_items on order_items.order_id = orders.id") left join order_items on order_items.order_id = orders.id")
.where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to) .where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
.group("orders.id") .group("orders.id,order_items.id,dining_facilities.name")
end end
end end

View File

@@ -28,7 +28,8 @@ class Sale < ApplicationRecord
end end
booking.sale_id = sale_id booking.sale_id = sale_id
end end
order = booking.booking_orders.take.order
link_order_sale(order.id)
return status return status
end end
end end

View File

@@ -24,7 +24,7 @@
<div class="card-columns" style="padding-top:10px"> <div class="card-columns" style="padding-top:10px">
<% if @order_table %> <% if @order_table %>
<% @order_table.each do |order_table| %> <% @order_table.each do |order_table| %>
<div class="card" id="table-order-<%=order_table.order_id%>" onclick="callOrderDetails('<%=order_table.order_id%>')"> <div class="card" id="table-order-<%=order_table.order_id%>" onclick="callOrderDetails('<%=order_table.order_id%>')">
<div class="card-block"> <div class="card-block">
<h4 class="card-title"><span id="table-name-<%=order_table.order_id%>" class="table-name"><%=order_table.table_name%></span></h4> <h4 class="card-title"><span id="table-name-<%=order_table.order_id%>" class="table-name"><%=order_table.table_name%></span></h4>
<p class="card-text"><%=order_table.total_price%></p> <p class="card-text"><%=order_table.total_price%></p>
@@ -40,9 +40,9 @@
<div class="tab-pane" id="rooms" role="tabpanel" style="min-height:670px; max-height:670px; overflow-y:scroll"> <div class="tab-pane" id="rooms" role="tabpanel" style="min-height:670px; max-height:670px; overflow-y:scroll">
<!--- Booking Items --> <!--- Booking Items -->
<div class="card-columns" style="padding-top:10px"> <div class="card-columns" style="padding-top:10px">
<% @order_rooms.each do |order_room| %> <% @order_rooms.each do |order_room| %>
<div class="card" id="table-order-<%=order_room.order_id%>" onclick="callOrderDetails('<%=order_room.order_id%>')"> <div class="card" id="table-order-<%=order_room.order_id%>" onclick="callOrderDetails('<%=order_room.order_id%>')">
<div class="card-block"> <div class="card-block">
<% tablename = order_room.room_name%> <% tablename = order_room.room_name%>
<h4 class="card-title"><span id="table-name-<%=order_room.order_id%>" class="table-name"><%=order_room.room_name%></span></h4> <h4 class="card-title"><span id="table-name-<%=order_room.order_id%>" class="table-name"><%=order_room.room_name%></span></h4>
@@ -60,9 +60,9 @@
<!--- Booking Items --> <!--- Booking Items -->
<div class="card-columns" style="padding-top:10px"> <div class="card-columns" style="padding-top:10px">
<% @orders.each do |order| %> <% @orders.each do |order| %>
<div class="card" id="table-order-<%=order.order_id%>" onclick="callOrderDetails('<%=order.order_id%>')"> <div class="card" id="table-order-<%=order.order_id%>" onclick="callOrderDetails('<%=order.order_id%>')">
<div class="card-block"> <div class="card-block">
<h4 class="card-title"><span id="table-name-<%=order.order_id%>" class="table-name"><%=order.table_or_room_name%></span></h4> <h4 class="card-title"><span id="table-name-<%=order.order_id%>" class="table-name"><%=order.table_or_room_name%></span></h4>
<p class="card-text"><%=order.total_price%></p> <p class="card-text"><%=order.total_price%></p>
@@ -110,8 +110,8 @@
<td style="width:20%; text-align:right"> <td style="width:20%; text-align:right">
<span id="item-total-price"></span> <span id="item-total-price"></span>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -138,72 +138,80 @@
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Customer</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Customer</button>
<!-- <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Req.Bill</button> --> <!-- <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Req.Bill</button> -->
<button type="button" id="request_bills" class="btn btn-primary btn-lg btn-block"> <button type="button" id="request_bills" class="btn btn-primary btn-lg btn-block">
Req.Bill Req.Bill
</button> </button>
<!-- Cashier Buttons --> <!-- Cashier Buttons -->
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Discount</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Discount</button>
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Tax</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Tax</button>
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Pay</button> <button type="button" id="pay" class="btn btn-primary btn-lg btn-block" >Pay</button>
<button type="button" class="btn btn-primary btn-lg btn-block" disabled>Re.Print</button> <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Re.Print</button>
</div> </div>
</div> </div>
<script> <script>
var old_order_id = 0 var old_order_id = 0
var old_table_name = "" var old_table_name = ""
var table_or_order_id = 0 var table_or_order_id = 0
function callOrderDetails(order_id){ function callOrderDetails(order_id){
table_or_order_id = order_id table_or_order_id = order_id
$("#test").html(order_id) $("#test").html(order_id)
var tbody = "" var tbody = ""
$("#append-table").html("") $("#append-table").html("")
if (old_order_id != order_id){ if (old_order_id != order_id){
$("#table-order-"+old_order_id).removeClass("selected_color") $("#table-order-"+old_order_id).removeClass("selected_color")
$("#table-order-"+order_id).addClass("selected_color") $("#table-order-"+order_id).addClass("selected_color")
old_order_id = order_id old_order_id = order_id
} }
$("#order-detail-header").html("") $("#order-detail-header").html("")
$("#order-detail-header").append(document.getElementById("table-name-"+order_id).innerHTML) $("#order-detail-header").append(document.getElementById("table-name-"+order_id).innerHTML)
$("#sub-total").html("") $("#sub-total").html("")
url = "origami/"+order_id url = "origami/"+order_id
$.ajax({type: "GET", $.ajax({type: "GET",
url: url, url: url,
data: { order_id: order_id}, data: { order_id: order_id},
success:function(result){ success:function(result){
var sub_total = 0 var sub_total = 0
for (i = 0; i < result.length; i++) { for (i = 0; i < result.length; i++) {
var data = JSON.stringify(result[i]); var data = JSON.stringify(result[i]);
var parse_data = JSON.parse(data) var parse_data = JSON.parse(data)
sub_total += (parse_data.qty*parse_data.price) sub_total += (parse_data.qty*parse_data.price)
row = '<tbody><tr><td style="width:60%; text-align:left"><span id="item-name-price">'+parse_data.item_name+"@"+(parse_data.price*1)+'</span></td>' row = '<tbody><tr><td style="width:60%; text-align:left"><span id="item-name-price">'+parse_data.item_name+"@"+(parse_data.price*1)+'</span></td>'
+'<td style="width:20%; text-align:right"><span id="item-qty">'+(parse_data.qty*1)+'</span></td>s' +'<td style="width:20%; text-align:right"><span id="item-qty">'+(parse_data.qty*1)+'</span></td>s'
+'<td style="width:20%; text-align:right"><span id="item-total-price">'+(parse_data.qty*parse_data.price)+'</span></td>' +'<td style="width:20%; text-align:right"><span id="item-total-price">'+(parse_data.qty*parse_data.price)+'</span></td>'
+'</tr></tbody>' +'</tr></tbody>'
tbody += row tbody += row
} }
$("#append-table").append(tbody) $("#append-table").append(tbody)
$("#sub-total").append((sub_total)+"<br/>") $("#sub-total").append((sub_total)+"<br/>")
}, },
error:function(result){ error:function(result){
// alert('error'); // alert('error');
} }
}); });
} }
$( document ).ready(function() { $( document ).ready(function() {
$('#request_bills').click(function() { $('#request_bills').click(function() {
window.location.href = '/origami/request_bills/'+table_or_order_id; window.location.href = '/origami/request_bills/'+ table_or_order_id
return false; return false;
}); });
}); });
$( document ).ready(function() {
$('#pay').click(function() {
window.location.href = '/origami/sale/'+ 10 + "/payment"
return false;
});
});
</script> </script>
<style type="text/css"> <style type="text/css">
.selected_color{ .selected_color{
color:white; color:white;
background-color: blue; background-color: blue;
} }
</style> </style>

View File

@@ -1,3 +1,4 @@
<div class="row"> <div class="row">
<div class="col-lg-5 col-md-5 col-sm-3"> <div class="col-lg-5 col-md-5 col-sm-3">
<div class="card" > <div class="card" >
@@ -23,8 +24,7 @@
<table class="table" id="append-table"> <table class="table" id="append-table">
<tbody> <tbody>
<% sub_total = 0 %> <% sub_total = 0 %>
<% if @sale_items %> <% @sale_data.sale_items.each do |sale_item| %>
<% @sale_items.each do |sale_item| %>
<% sub_total += sale_item.qty*sale_item.unit_price%> <% sub_total += sale_item.qty*sale_item.unit_price%>
<tr> <tr>
<td style="width:60%; text-align:left"> <td style="width:60%; text-align:left">
@@ -36,9 +36,8 @@
<td style="width:20%; text-align:right"> <td style="width:20%; text-align:right">
<span id="item-total-price"><%=(sale_item.qty*sale_item.unit_price)%></span> <span id="item-total-price"><%=(sale_item.qty*sale_item.unit_price)%></span>
</td> </td>
</tr> </tr>
<%end %> <%end %>
<%end %>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -66,4 +65,111 @@
</div> </div>
</div> </div>
</div> </div>
</div> <div class="col-lg-5 col-md-5 col-sm-3">
<div class="row">
<div class="col-md-8">AMOUNT DUE</div>
<div class="col-md-4"><%= @sale_data.grand_total %></div>
</div>
<hr>
<div class="row">
<div class="col-md-8">CASH</div>
<div class="col-md-4">0.0</div>
</div>
<hr>
<div class="row">
<div class="col-md-8">CREDIT</div>
<div class="col-md-4">0.0</div>
</div>
<hr>
<div class="row">
<div class="col-md-8">CARD</div>
<div class="col-md-4">0.0</div>
</div>
<hr>
<div class="row">
<div class="col-md-8">BALANCE</div>
<div class="col-md-4">0.0</div>
</div>
<hr>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="1">1</div>
<div class="col-md-3 cashier_number">2</div>
<div class="col-md-3 cashier_number">3</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long">1000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number">4</div>
<div class="col-md-3 cashier_number">5</div>
<div class="col-md-3 cashier_number">6</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long">5000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number">7</div>
<div class="col-md-3 cashier_number">8</div>
<div class="col-md-3 cashier_number">9</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long">10000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number">0</div>
<div class="col-md-3 cashier_number">.</div>
<div class="col-md-3 cashier_number">00</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long">50000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number"></div>
<div class="col-md-3 cashier_number">DEL</div>
<div class="col-md-3 cashier_number">CLR</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long">ENTER</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).on('click', '.cashier_number', function(event){
event.stopPropagation();
event.preventDefault();
if(event.handled !== true) {
var input_value = $(this).attr("data-value");
switch (input_value) {
}
event.handled = true;
} else {
return false;
}
});
</script>

View File

@@ -72,7 +72,8 @@ Rails.application.routes.draw do
resources :discounts, only: [:index,:new, :create ] #add discount type resources :discounts, only: [:index,:new, :create ] #add discount type
resources :customers, only: [:index,:new, :create ] #add customer type resources :customers, only: [:index,:new, :create ] #add customer type
end end
resources :request_bills, only: [:show] resources :request_bills, only: [:show]
get 'sale/:sale_id/payment' => 'request_bills#show'
end end
#--------- Waiter/Ordering Station ------------# #--------- Waiter/Ordering Station ------------#

View File

@@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe PrintSetting, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

View File

@@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe PrintSetting, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end