update fixed conflict

This commit is contained in:
Aung Myo
2017-06-28 16:44:31 +06:30
13 changed files with 175 additions and 25 deletions

View File

@@ -72,6 +72,7 @@
} }
.action-btn { .action-btn {
white-space: normal !important;
height: 60px; height: 60px;
margin-bottom: 5px; margin-bottom: 5px;
} }
@@ -168,6 +169,8 @@
background-color: blue background-color: blue
} }
/* End Colors */
.left{ .left{
margin-left:1px; margin-left:1px;
} }
@@ -175,6 +178,7 @@
.bottom{ .bottom{
margin-bottom: 1px; margin-bottom: 1px;
} }
/*----- Reset -----*/ /*----- Reset -----*/
select.form-control { select.form-control {
@@ -197,6 +201,7 @@ tr.discount-item-row:hover {
.required abbr{ .required abbr{
color: red !important; color: red !important;
} }
/* Jquery Confirm */ /* Jquery Confirm */
.jconfirm-box-container{ .jconfirm-box-container{

View File

@@ -1,6 +1,6 @@
class Api::ApiController < ActionController::API class Api::ApiController < ActionController::API
include TokenVerification include TokenVerification
helper_method :current_token, :current_login_employee helper_method :current_token, :current_login_employee, :get_cashier
private private
@@ -13,6 +13,11 @@ class Api::ApiController < ActionController::API
end end
end end
# Get current Cashier
def get_cashier
@cashier = Employee.where("role = 'cashier' AND token_session <> ''")
end
def current_login_employee def current_login_employee
@employee = Employee.find_by_token_session(current_token) @employee = Employee.find_by_token_session(current_token)
end end

View File

@@ -13,7 +13,7 @@ class Api::BillController < Api::ApiController
if booking if booking
if booking.sale_id.nil? if booking.sale_id.nil?
@sale = Sale.new @sale = Sale.new
@status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee) @status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, get_cashier)
else else
@status = true @status = true
@sale_id = booking.sale_id @sale_id = booking.sale_id
@@ -22,7 +22,7 @@ class Api::BillController < Api::ApiController
elsif (params[:order_id]) elsif (params[:order_id])
@sale = Sale.new @sale = Sale.new
@status, @sale_id = @sale.generate_invoice_from_order(params[:order_id], current_login_employee) @status, @sale_id = @sale.generate_invoice_from_order(params[:order_id], current_login_employee, get_cashier)
end end
@sale_data = Sale.find_by_sale_id(@sale_id) @sale_data = Sale.find_by_sale_id(@sale_id)

View File

@@ -67,13 +67,19 @@ class Api::OrdersController < Api::ApiController
if booking if booking
if booking.dining_facility_id.to_i == params[:table_id].to_i && booking.booking_status != 'moved' if booking.dining_facility_id.to_i == params[:table_id].to_i && booking.booking_status != 'moved'
if !booking.sale_id.nil? if !booking.sale_id.nil?
check_order_with_booking(booking) sale_status = check_order_with_booking(booking)
if sale_status
return false
end
else else
@order.new_booking = false @order.new_booking = false
@order.booking_id = params[:booking_id] @order.booking_id = params[:booking_id]
end end
else else
check_order_with_table(params[:table_id]) sale_status = check_order_with_table(params[:table_id])
if sale_status
return false
end
end end
end #booking exists end #booking exists
else else
@@ -90,9 +96,11 @@ class Api::OrdersController < Api::ApiController
if booking if booking
if booking.sale.sale_status == "completed" || booking.sale.sale_status == "billed" if booking.sale.sale_status == "completed" || booking.sale.sale_status == "billed"
@order.new_booking = true @order.new_booking = true
return true
else else
@order.new_booking = false @order.new_booking = false
@order.booking_id = booking.booking_id @order.booking_id = booking.booking_id
return false
end end
end end
end end
@@ -101,9 +109,11 @@ class Api::OrdersController < Api::ApiController
def check_order_with_booking(booking) def check_order_with_booking(booking)
if booking.sale.sale_status == "completed" || booking.sale.sale_status == "billed" if booking.sale.sale_status == "completed" || booking.sale.sale_status == "billed"
@order.new_booking = true @order.new_booking = true
return true
else else
@order.new_booking = false @order.new_booking = false
@order.booking_id = params[:booking_id] @order.booking_id = params[:booking_id]
return false
end end
end end
# Description # Description

View File

@@ -29,7 +29,6 @@ class Origami::DiscountsController < BaseOrigamiController
if discount_items.length > 0 if discount_items.length > 0
#save sale item for discount #save sale item for discount
discount_items.each do |di| discount_items.each do |di|
puts di
origin_sale_item = SaleItem.find(di["id"]) origin_sale_item = SaleItem.find(di["id"])
sale_item = SaleItem.new sale_item = SaleItem.new
@@ -53,6 +52,59 @@ class Origami::DiscountsController < BaseOrigamiController
render :json => dining.to_json render :json => dining.to_json
end end
# Remove selected discount Items
def remove_discount_items
sale_id = params[:sale_id]
discount_items = JSON.parse(params[:discount_items])
if Sale.exists?(sale_id)
sale = Sale.find(sale_id)
table_id = sale.bookings[0].dining_facility_id
table_type = DiningFacility.find(table_id).type
if discount_items.length > 0
#destroy sale item for discount
discount_items.each do |di|
sale_item = SaleItem.find(di["id"])
sale.total_amount = (sale.total_amount + sale_item.price.abs)
sale_item.destroy
end
end
sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax;
sale.save
end
dining = {:table_id => table_id, :table_type => table_type }
render :json => dining.to_json
end
# Remove all discount Items
def remove_all_discount
sale_id = params[:id]
if Sale.exists?(sale_id)
sale = Sale.find(sale_id)
table_id = sale.bookings[0].dining_facility_id
table_type = DiningFacility.find(table_id).type
#destroy all discount sale item
sale.sale_items.each do |si|
if si.remark == "Discount" && si.price < 0
sale.total_amount = (sale.total_amount + si.price.abs)
si.destroy
end
end
sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax;
sale.save
end
dining = {:table_id => table_id, :table_type => table_type }
render :json => dining.to_json
end
#discount for selected order #discount for selected order
# def create # def create
# sale_id = params[:sale_id] # sale_id = params[:sale_id]

View File

@@ -12,7 +12,7 @@ class Origami::RequestBillsController < BaseOrigamiController
# Create Sale if it doesn't exist # Create Sale if it doesn't exist
puts "current_login_employee" puts "current_login_employee"
puts current_login_employee.name puts current_login_employee.name
@status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee) @status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee, cashier = nil)
@sale_data = Sale.find_by_sale_id(@sale_id) @sale_data = Sale.find_by_sale_id(@sale_id)
@sale_items = SaleItem.where("sale_id=?",@sale_id) @sale_items = SaleItem.where("sale_id=?",@sale_id)
else else

View File

@@ -42,6 +42,8 @@ class Ability
can :index, :discount can :index, :discount
can :create, :discount can :create, :discount
can :remove_discount_items, :discount
can :remove_all_discount, :discount
can :show, :payment can :show, :payment
can :create, :payment can :create, :payment
@@ -65,6 +67,8 @@ class Ability
can :index, :discount can :index, :discount
can :create, :discount can :create, :discount
can :remove_discount_items, :discount
can :remove_all_discount, :discount
can :show, :payment can :show, :payment
can :create, :payment can :create, :payment

View File

@@ -34,13 +34,13 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
# For Print Per Item # For Print Per Item
if oqs.cut_per_item if oqs.cut_per_item
order_items.each do|odi| order.each do|odi|
filename = "tmp/order_item_#{odi.item_name}" + ".pdf" filename = "tmp/order_item_#{odi.item_name}" + ".pdf"
# For Item Options # For Item Options
options = odi.options == "[]"? "" : odi.options options = odi.options == "[]"? "" : odi.options
# check for item not to show # check for item not to show
if odi.price != 0 || odi.price != 10 if odi.price != 0
pdf = OrderItemPdf.new(odi, print_status, options, oqs.use_alternate_name) pdf = OrderItemPdf.new(odi, print_status, options, oqs.use_alternate_name)
# pdf.render_file "tmp/order_item.pdf" # pdf.render_file "tmp/order_item.pdf"
pdf.render_file filename pdf.render_file filename

View File

@@ -71,8 +71,13 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
#Print #Print
pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, member_info,rebate_amount,shop_details) pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, member_info,rebate_amount,shop_details)
pdf.render_file "tmp/receipt_bill.pdf" # print as print copies in printer setting
self.print("tmp/receipt_bill.pdf") count = printer_settings.print_copies
begin
pdf.render_file "tmp/receipt_bill.pdf"
self.print("tmp/receipt_bill.pdf")
count -= 1
end until count == 0
end end
#Queue No Print #Queue No Print

View File

@@ -25,7 +25,7 @@ class Sale < ApplicationRecord
SALE_STATUS_OUTSTANDING = "outstanding" SALE_STATUS_OUTSTANDING = "outstanding"
SALE_STATUS_COMPLETED = "completed" SALE_STATUS_COMPLETED = "completed"
def generate_invoice_from_booking(booking_id, requested_by) def generate_invoice_from_booking(booking_id, requested_by, cashier)
booking = Booking.find(booking_id) booking = Booking.find(booking_id)
status = false status = false
Rails.logger.debug "Booking -> " + booking.id.to_s Rails.logger.debug "Booking -> " + booking.id.to_s
@@ -35,9 +35,9 @@ class Sale < ApplicationRecord
booking.booking_orders.each do |order| booking.booking_orders.each do |order|
if booking.sale_id if booking.sale_id
status, sale_id = generate_invoice_from_order(order.order_id, nil, booking, requested_by) status, sale_id = generate_invoice_from_order(order.order_id, nil, booking, requested_by, cashier)
else else
status, sale_id = generate_invoice_from_order(order.order_id, booking.sale_id, booking, requested_by) status, sale_id = generate_invoice_from_order(order.order_id, booking.sale_id, booking, requested_by, cashier)
end end
booking.sale_id = sale_id booking.sale_id = sale_id
end end
@@ -47,7 +47,7 @@ class Sale < ApplicationRecord
end end
end end
def generate_invoice_from_order (order_id, sale_id, booking, requested_by) def generate_invoice_from_order (order_id, sale_id, booking, requested_by, cashier = nil)
taxable = true taxable = true
#if sale_id is exsit and validate #if sale_id is exsit and validate
#add order to that invoice #add order to that invoice
@@ -66,12 +66,19 @@ class Sale < ApplicationRecord
#Default Tax - Values #Default Tax - Values
self.tax_type = "exclusive" self.tax_type = "exclusive"
# set cashier by current login # set cashier
self.cashier_id = requested_by.id if cashier != nil
self.cashier_name = requested_by.name self.cashier_id = cashier[0].id
self.cashier_name = cashier[0].name
else
self.cashier_id = requested_by.id
self.cashier_name = requested_by.name
end
# set waiter
self.requested_by = requested_by.name self.requested_by = requested_by.name
self.requested_at = DateTime.now.utc self.requested_at = DateTime.now.utc.getlocal
Rails.logger.debug "Order -> #{order.id} | order_status -> #{order.status}" Rails.logger.debug "Order -> #{order.id} | order_status -> #{order.status}"
if order if order

View File

@@ -138,7 +138,7 @@
<div class="row bottom"> <div class="row bottom">
<div class="col-md-3"> <div class="col-md-3">
<div class="fluid cashier_number" data-value="20" data-type="add">20%</div> <div class="fluid cashier_number" data-value="20" data-type="add">15%</div>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<div class="col-md-4 cashier_number" data-value="7" data-type="num">7</div> <div class="col-md-4 cashier_number" data-value="7" data-type="num">7</div>
@@ -149,7 +149,7 @@
<div class="row bottom"> <div class="row bottom">
<div class="col-md-3"> <div class="col-md-3">
<div class="fluid cashier_number" data-value="30" data-type="add">30%</div> <div class="fluid cashier_number" data-value="30" data-type="add">20%</div>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<div class="col-md-4 cashier_number" data-value="0" data-type="num">0</div> <div class="col-md-4 cashier_number" data-value="0" data-type="num">0</div>
@@ -160,7 +160,7 @@
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<div class="fluid cashier_number" data-value="50" data-type="add">50%</div> <div class="fluid cashier_number" data-value="50" data-type="add">30%</div>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<div class="col-md-4 cashier_number"></div> <div class="col-md-4 cashier_number"></div>
@@ -172,7 +172,7 @@
<div class="col-md-3"> <div class="col-md-3">
<div class="form-group"> <div class="form-group">
<button id="net" class="btn btn-warning fluid action-btn">Nett</button> <button id="net" class="btn btn-info fluid action-btn">Nett</button>
<button id="percentage" class="btn btn-primary fluid action-btn">Percentage</button> <button id="percentage" class="btn btn-primary fluid action-btn">Percentage</button>
<button id="remove-item" class="btn btn-default fluid action-btn">Remove</button> <button id="remove-item" class="btn btn-default fluid action-btn">Remove</button>
</div> </div>
@@ -187,6 +187,8 @@
<!-- Action Panel --> <!-- Action Panel -->
<div> <div>
<button type="button" class="btn btn-primary btn-block" onclick="window.location.href = '/origami';"><i class="fa fa-arrow-left"></i> Back </button> <button type="button" class="btn btn-primary btn-block" onclick="window.location.href = '/origami';"><i class="fa fa-arrow-left"></i> Back </button>
<button id="remove-item-discount" class="btn btn-warning btn-block action-btn">Remove Discount</button>
<button id="remove-all" class="btn btn-warning btn-block action-btn">Remove All</button>
<button id="pay-discount" class="btn btn-danger btn-block action-btn">Enter</button> <button id="pay-discount" class="btn btn-danger btn-block action-btn">Enter</button>
</div> </div>
</div> </div>
@@ -358,6 +360,64 @@ $(document).ready(function(){
} }
}); });
}); });
// Remove selected given discount item
$("#remove-item-discount").on('click', function(e){
e.preventDefault();
var sale_id = $('#sale-id').text();
var discount_items = [];
// Selected Items
var sale_items = get_selected_sale_items();
if(sale_items.length == 0){
alert("You have no selected item!");
return;
}
for(var i=0;i < sale_items.length;i++){
if(sale_items[i].price < 0){
discount_items.push(sale_items[i]);
}
else {
alert("You have selected no discount item!");
return;
}
}
var params = { 'sale_id': sale_id, 'discount_items': JSON.stringify(discount_items) };
$.ajax({
type: "POST",
url: "/origami/" + sale_id + "/remove_discount_items",
data: params,
success: function(result){
alert('Removed Discount');
if(result.table_type == "Table"){
window.location.href = "/origami/table/" + result.table_id
}
else {
window.location.href = "/origami/room/" + result.table_id
}
}
});
});
$("#remove-all").on('click', function(e){
e.preventDefault();
var sale_id = $('#sale-id').text();
$.ajax({
type: "GET",
url: "/origami/" + sale_id + "/remove_all_discount",
success: function(result){
alert('Removed All Discount');
if(result.table_type == "Table"){
window.location.href = "/origami/table/" + result.table_id
}
else {
window.location.href = "/origami/room/" + result.table_id
}
}
});
});
}); });
/* Remove Selection */ /* Remove Selection */

View File

@@ -136,13 +136,13 @@
<% if @ppamount != 0.0 %> <% if @ppamount != 0.0 %>
<div class="row payment other-payment-color" style="line-height:30px;height: 30px;margin-bottom: 0px;"> <div class="row payment other-payment-color" style="line-height:30px;height: 30px;margin-bottom: 0px;">
<div class="col-md-5"></div> <div class="col-md-5"></div>
<div class="col-md-3">Paypar</div> <div class="col-md-3">Redeem</div>
<div class="col-md-4" id="ppamount"><%= @ppamount %></div> <div class="col-md-4" id="ppamount"><%= @ppamount %></div>
</div> </div>
<% else %> <% else %>
<div class="row" style="display:none"> <div class="row" style="display:none">
<div class="col-md-5"></div> <div class="col-md-5"></div>
<div class="col-md-3">Paypar</div> <div class="col-md-3">Redeem</div>
<div class="col-md-4" id="ppamount">0.0</div> <div class="col-md-4" id="ppamount">0.0</div>
</div> </div>
<% end %> <% end %>

View File

@@ -93,6 +93,8 @@ Rails.application.routes.draw do
get "/:id/discount" => "discounts#index" get "/:id/discount" => "discounts#index"
post "/:id/discount" => "discounts#create" post "/:id/discount" => "discounts#create"
get "/:id/remove_all_discount" => "discounts#remove_all_discount"
post "/:id/remove_discount_items" => "discounts#remove_discount_items"
post "/:id/request_bills" => "request_bills#print",:as => "request_bill" ,:defaults => { :format => 'json' } post "/:id/request_bills" => "request_bills#print",:as => "request_bill" ,:defaults => { :format => 'json' }
get '/:sale_id/reprint' => 'payments#reprint' ,:defaults => { :format => 'json' } get '/:sale_id/reprint' => 'payments#reprint' ,:defaults => { :format => 'json' }