From 8c47371fa7a1af392a470a4f971f51f8518d4ef8 Mon Sep 17 00:00:00 2001 From: Min Zeya Phyo Date: Tue, 6 Jun 2017 12:04:56 +0630 Subject: [PATCH 01/22] seed generator --- Gemfile.lock | 2 -- 1 file changed, 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5dce67dc..e2c1dd73 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -119,7 +119,6 @@ GEM nokogiri (1.7.2) mini_portile2 (~> 2.1.0) pdf-core (0.7.0) - pg (0.20.0) prawn (2.2.2) pdf-core (~> 0.7.0) ttfunk (~> 1.5) @@ -253,7 +252,6 @@ DEPENDENCIES kaminari! listen (~> 3.0.5) mysql2 (>= 0.3.18, < 0.5) - pg prawn prawn-table puma (~> 3.0) From d2373f2f2494bbd65243d0720c4dc3decb96c8c9 Mon Sep 17 00:00:00 2001 From: Yan Date: Fri, 9 Jun 2017 13:35:15 +0630 Subject: [PATCH 02/22] origami updating --- app/assets/javascripts/origami.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index 8ce3d0c4..61bff6e9 100644 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -18,6 +18,13 @@ $(document).ready(function(){ $(".orders").on('click', function(){ + $("#order-sub-total").text(''); + $("#order-food").text(''); + $("#order-beverage").text(''); + $("#order-discount").text(''); + $("#order-Tax").text(''); + $("#order-grand-total").text(''); + var zone_name=$(this).find(".orders-table").text(); var receipt_no=$(this).find(".orders-receipt-no").text(); var unique_id=$(this).find(".orders-id").text(); @@ -66,7 +73,8 @@ $(document).ready(function(){ //Receipt Charges sub_total += (parse_data.qty*parse_data.price); - discount_amount = parse_data.discount_amount; + + discount_amount = parse_data.discount_amount == null? '0.0' : parse_data.discount_amount; tax_amount = parse_data.tax_amount; grand_total_amount = parse_data.grand_total_amount; From 0b04e2d4ef5ce1ab82693c5ce7a82c2fd4ca15f5 Mon Sep 17 00:00:00 2001 From: Yan Date: Fri, 9 Jun 2017 13:35:41 +0630 Subject: [PATCH 03/22] add base report controller --- app/controllers/base_report_controller.rb | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 app/controllers/base_report_controller.rb diff --git a/app/controllers/base_report_controller.rb b/app/controllers/base_report_controller.rb new file mode 100644 index 00000000..77e38f2c --- /dev/null +++ b/app/controllers/base_report_controller.rb @@ -0,0 +1,8 @@ +class BaseReportController < ActionController::Base + include LoginVerification + + #before_action :check_installation + protect_from_forgery with: :exception + + +end From a100d742e6ed376d786f55a15f0cd10ca2c01a99 Mon Sep 17 00:00:00 2001 From: Yan Date: Fri, 9 Jun 2017 13:47:00 +0630 Subject: [PATCH 04/22] add crm order printer in seed --- db/seeds.rb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/db/seeds.rb b/db/seeds.rb index fc19164d..d763174d 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -136,13 +136,10 @@ zone_queue_station = OrderQueueProcessByZone.create({order_queue_station: zone_o #Create Adminstrator employee admin_employee = Employee.create({name: "Administrator", role: "Administrator", password: "99999", emp_id:"999", created_by: "SYSTEM DEFAULT"}) -#Account for Menu Item Type (eg: Food, Beverage) -food = Account.create({title: "Food", account_type: "0"}) -beverage = Account.create({title: "Beverage", account_type: "1"}) - order_station1=PrintSetting.create({name: "OrderItemPdf", unique_code: "OrderItemPdf", printer_name: "EPSON-TM-T82-S-A"}) order_station2=PrintSetting.create({name: "Order Summary", unique_code: "OrderSummaryPdf", printer_name: "EPSON-TM-T82-S-A"}) request_bill_printer=PrintSetting.create({name: "Receipt Bill", unique_code: "ReceiptBillPdf", printer_name: "EPSON-TM-T82-S-A"}) +crm_order_printer=PrintSetting.create({name: "CRM Order", unique_code: "CrmOrderPdf", printer_name: "EPSON-TM-T82-S-A"}) # shop = Shop.create( # {name: "Beauty In The Pot", address: "address", township: "Yangon", city: "Yangon", state: "Yangon", From f83491158702f81c3077d3d26293874fdd824c23 Mon Sep 17 00:00:00 2001 From: Yan Date: Mon, 12 Jun 2017 00:45:26 +0630 Subject: [PATCH 05/22] to do req_bill_format and status changed after pay --- app/assets/javascripts/OQS.js | 33 +-- app/assets/javascripts/origami.js | 52 +++-- app/assets/stylesheets/origami.scss | 31 ++- app/controllers/oqs/home_controller.rb | 12 +- app/controllers/oqs/print_controller.rb | 34 ++-- .../origami/discounts_controller.rb | 36 ++-- app/controllers/origami/home_controller.rb | 38 +++- .../origami/request_bills_controller.rb | 14 +- app/models/order.rb | 32 ++- app/models/printer/order_queue_printer.rb | 2 +- app/models/printer/receipt_printer.rb | 7 +- app/models/sale_item.rb | 26 +++ app/pdf/order_item_pdf.rb | 51 +++-- app/pdf/order_summary_pdf.rb | 51 +++-- app/pdf/receipt_bill_pdf.rb | 127 ++++++------ app/views/origami/discounts/index.html.erb | 62 +++--- app/views/origami/home/index.html.erb | 190 +++++++++++++++--- config/routes.rb | 13 +- ...=> 20170608105644_create_dining_queues.rb} | 4 +- 19 files changed, 567 insertions(+), 248 deletions(-) rename db/migrate/{20170608105644_create_crm_dining_queues.rb => 20170608105644_create_dining_queues.rb} (59%) diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js index 7df365ec..2cddf699 100644 --- a/app/assets/javascripts/OQS.js +++ b/app/assets/javascripts/OQS.js @@ -40,31 +40,36 @@ $(document).ready(function(){ // complete for queue item $('.order-complete').on('click',function(){ - var _self= $(this); + var _self = $(this); // To know in ajax return var assigned_item_id=$(this).attr('id').substr(15); var params = { 'id':assigned_item_id }; - var station=$(this).parent().parent(".queue_station").parent().parent().attr('id'); $.ajax({ type: 'POST', url: '/oqs/update_delivery', data: params, dataType: 'json', - success: function(data){ - var queue_station=_self.parent().parent(".queue_station"); + success: function(data){ + for (i = 0; i < data.length; i++) { + var queue_station = $('#assigned_queue_' + data[i]).parent().parent(".queue_station"); + var station = queue_station.parent().parent().attr('id'); - // Remove a queue card from current station - queue_station.remove(); + // Remove a queue card from current station + queue_station.remove(); - // Remove a queue card from current station - queue_station.children('.card-footer').remove(); - - // Add removed queue card from station to completed - $("#completed").children('.card-columns').append(queue_station); + // Remove a queue card from current station + queue_station.children('.card-footer').remove(); + + // Add removed queue card from station to completed + $("#completed").children('.card-columns').append(queue_station); - // update queue item count in station - $("#"+station+"_count").text(parseInt($("#"+station+"_count").text())-1); - $("#completed_count").text(parseInt($("#completed_count").text())+1); + // update queue item count in each station + var station_count=parseInt($("#"+station+"_count").text()) - 1; + $("#"+station+"_count").text(station_count); + } + + // update queue item count in completed station + $("#completed_count").text(parseInt($("#completed_count").text()) + data.length); alert("updated!"); } diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index 61bff6e9..14d0bf6c 100644 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -17,10 +17,13 @@ //= require cable $(document).ready(function(){ + // Enable/Disable Button + control_button("disabled"); + $(".orders").on('click', function(){ $("#order-sub-total").text(''); - $("#order-food").text(''); - $("#order-beverage").text(''); + // $("#order-food").text(''); + // $("#order-beverage").text(''); $("#order-discount").text(''); $("#order-Tax").text(''); $("#order-grand-total").text(''); @@ -53,10 +56,10 @@ $(document).ready(function(){ // AJAX call for order $.ajax({ - type: "GET", - url: "origami/" + unique_id, - data: { 'id' : unique_id }, - success:function(result){ + type: "POST", + url: "/origami/" + unique_id, + data: { 'booking_id' : unique_id }, + success:function(result){ for (i = 0; i < result.length; i++) { var data = JSON.stringify(result[i]); var parse_data = JSON.parse(data); @@ -67,7 +70,7 @@ $(document).ready(function(){ receipt_date = result[i].receipt_date; $("#receipt_no").text(receipt_no); - $("#cashier").text(cashier==null?"":cashier); + $("#cashier").text(cashier == null ? "" : cashier); $("#receipt_date").text(receipt_date); @@ -79,8 +82,8 @@ $(document).ready(function(){ grand_total_amount = parse_data.grand_total_amount; $("#order-sub-total").text(sub_total); - $("#order-food").text(''); - $("#order-beverage").text(''); + // $("#order-food").text(''); + // $("#order-beverage").text(''); $("#order-discount").text(discount_amount); $("#order-Tax").text(tax_amount); $("#order-grand-total").text(grand_total_amount); @@ -106,7 +109,7 @@ $(document).ready(function(){ $('#request_bills').click(function() { var order_id=$(".selected-item").find(".orders-id").text(); if(order_id!=""){ - window.location.href = '/origami/request_bills/'+ order_id + window.location.href = '/origami/' + order_id + '/request_bills' } else { alert("Please select an order!"); @@ -118,7 +121,7 @@ $(document).ready(function(){ $('#discount').click(function() { var order_id=$(".selected-item").find(".orders-id").text(); if(order_id!=""){ - window.location.href = '/origami/discount/'+ order_id + window.location.href = '/origami/' + order_id + '/discount' } else { alert("Please select an order!"); @@ -130,21 +133,27 @@ $(document).ready(function(){ // Pay Discount for Payment $("#pay-discount").on('click', function(){ var sale_id = $('#sale-id').text(); + var sale_item_id = $('.selected-item').attr('id'); var sub_total = $('#order-sub-total').text(); var grand_total = $('#order-grand-total').text(); var discount_type = $('#discount-type').val(); var discount_value = $('#discount-amount').val(); var discount_amount = discount_value; + if(sale_item_id == null){ + alert('Please select item row to discount!'); + return; + } + // For Percentage Discount if(discount_type == 1){ discount_amount=(sub_total*discount_value)/100; } - var params = {'sale_id': sale_id, 'grand_total' : grand_total, 'discount_type':discount_type, 'discount_value':discount_value, 'discount_amount':discount_amount}; + 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: "/origami/discount", + url: "/origami/" + sale_item_id + "/discount", data: params, success:function(result){ } }); @@ -192,8 +201,9 @@ $(document).ready(function(){ case 'add': var input_value = $(this).attr("data-value"); - amount = parseInt(input_value) + parseInt(original_value); + amount = parseInt(input_value); $('#discount-amount').val(amount); + $('#discount-type').val(1); update_balance(); break; @@ -215,6 +225,11 @@ $(document).ready(function(){ } }); + $('.discount-item-row').on('click',function(){ + $('.discount-item-row').removeClass('selected-item'); + $(this).addClass('selected-item'); + }); + }); /* Button Control by Status */ @@ -222,12 +237,17 @@ function control_button(order_status){ if(order_status=="billed"){ $("#request_bills").prop('disabled', true); $("#discount").prop('disabled', false); - $("#pay").prop('disabled', false); + $("#pay-bill").prop('disabled', false); } else if(order_status=="new") { $("#request_bills").prop('disabled', false); $("#discount").prop('disabled', true); - $("#pay").prop('disabled', true); + $("#pay-bill").prop('disabled', true); + } + else { + $("#request_bills").prop('disabled', true); + $("#discount").prop('disabled', true); + $("#pay-bill").prop('disabled', true); } } diff --git a/app/assets/stylesheets/origami.scss b/app/assets/stylesheets/origami.scss index 0be16266..51f0c16a 100644 --- a/app/assets/stylesheets/origami.scss +++ b/app/assets/stylesheets/origami.scss @@ -8,9 +8,13 @@ // padding-top: 4.5rem; // } +.orders-table { + cursor: pointer; +} + .cashier_number{ - height:76px; - line-height:80px; + height:60px; + line-height:60px; text-align:center; background:#54A5AF; float:left; @@ -25,15 +29,20 @@ } .long{ - width:100% + width:100%; } .sold { background-color: red; } +.paid { + background-color: green; +} + .selected-item { - background-color: blue; + color: #fff !important; + background-color: blue !important; } /* Reciept Style */ @@ -76,3 +85,17 @@ select.form-control { height: inherit !important; } + +.form-horizontal .form-group { + margin-right: 0px !important; +} + +/* Discount */ + +.discount-item-row { + cursor: pointer; +} + +tr.discount-item-row:hover { + background-color: #e3e3e3 !important; +} \ No newline at end of file diff --git a/app/controllers/oqs/home_controller.rb b/app/controllers/oqs/home_controller.rb index 2b676f21..7af42166 100644 --- a/app/controllers/oqs/home_controller.rb +++ b/app/controllers/oqs/home_controller.rb @@ -27,10 +27,18 @@ class Oqs::HomeController < BaseOqsController # update delivery status when complete click def update_delivery_status + removed_item = [] assigned_item_id = params[:id] assigned_item=AssignedOrderItem.find(assigned_item_id) - assigned_item.delivery_status=true - assigned_item.save + assigned_items=AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); + + # update delivery status for completed same order items + assigned_items.each do |ai| + ai.delivery_status=true + ai.save + removed_item.push(ai.assigned_order_item_id) + end + render :json => removed_item.to_json end # Query for OQS with status diff --git a/app/controllers/oqs/print_controller.rb b/app/controllers/oqs/print_controller.rb index 8a12e439..1731f69c 100644 --- a/app/controllers/oqs/print_controller.rb +++ b/app/controllers/oqs/print_controller.rb @@ -1,31 +1,39 @@ class Oqs::PrintController < ApplicationController + # Print Order Item def print unique_code="OrderItemPdf" assigned_item_id=params[:id] - assigned_order_item=AssignedOrderItem.select("order_id, item_code").where("assigned_order_item_id='" + assigned_item_id + "'") + assigned_item=AssignedOrderItem.find(assigned_item_id) + assigned_items=AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); + # print when complete click print_settings=PrintSetting.find_by_unique_code(unique_code) order_queue_printer= Printer::OrderQueuePrinter.new(print_settings) - order_queue_printer.print_order_item(print_settings,assigned_order_item[0].order_id, assigned_order_item[0].item_code ) - - # update print status when complete click - assigned_item=AssignedOrderItem.find(assigned_item_id) - assigned_item.print_status=true - assigned_item.save + order_queue_printer.print_order_item(print_settings,assigned_item.order_id, assigned_item.item_code ) + + # update print status for completed same order items + assigned_items.each do |ai| + ai.print_status=true + ai.save + end end + # Print Order Details def print_order_summary unique_code="OrderSummaryPdf" assigned_item_id=params[:id] - assigned_order_item=AssignedOrderItem.select("order_id").where('assigned_order_item_id='+assigned_item_id) + assigned_item=AssignedOrderItem.find(assigned_item_id) + assigned_items=AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); + # print when complete click print_settings=PrintSetting.find_by_unique_code(unique_code) order_queue_printer= Printer::OrderQueuePrinter.new(print_settings) - order_queue_printer.print_order_summary(print_settings,assigned_order_item[0].order_id) + order_queue_printer.print_order_summary(print_settings,assigned_item.order_id) - # update print status when complete click - assigned_item=AssignedOrderItem.find(assigned_item_id) - assigned_item.print_status=true - assigned_item.save + # update print status for completed same order items + assigned_items.each do |ai| + ai.print_status=true + ai.save + end end end diff --git a/app/controllers/origami/discounts_controller.rb b/app/controllers/origami/discounts_controller.rb index daf68918..e80ca348 100644 --- a/app/controllers/origami/discounts_controller.rb +++ b/app/controllers/origami/discounts_controller.rb @@ -2,7 +2,7 @@ class Origami::DiscountsController < BaseOrigamiController #discount page show from origami index with selected order def index - sale_id = params[:id] + sale_id = params[:id] if Sale.exists?(sale_id) @sale_data = Sale.find(sale_id) end @@ -11,30 +11,32 @@ class Origami::DiscountsController < BaseOrigamiController #discount for selected order def create sale_id = params[:sale_id] + sale_item_id = params[:sale_item_id] discount_type = params[:discount_type] - discount_value = params[:discount_value] - discount_amount = params[:discount_amount] - grand_total = params[:grand_total] + discount_value = params[:discount_value] + discount_amount = params[:discount_amount] + grand_total = params[:grand_total] - if discount_type == 0 - remark="Discount " + discount_amount + " as net" - else - remark="Discount " + discount_amount + " as percentage" - end + if discount_type == 0 + remark="Discount " + discount_amount + " as net" + else + remark="Discount " + discount_amount + " as percentage" + end - #update discount for sale - sale = Sale.find(sale_id) - sale.total_discount = discount_amount - sale.grand_total = grand_total - sale.save + #update discount for sale + sale = Sale.find(sale_id) + sale.total_discount = sale.total_discount + discount_amount.to_f + sale.grand_total = grand_total + sale.save #save sale item for discount + origin_sale_item = SaleItem.find(sale_item_id) sale_item = SaleItem.new #pull sale_item.sale_id = sale_id - sale_item.product_code = 0 - sale_item.product_name = "Discount" + sale_item.product_code = origin_sale_item.product_code + sale_item.product_name = origin_sale_item.product_name + " Discount" sale_item.remark = remark sale_item.qty = 1 @@ -45,7 +47,7 @@ class Origami::DiscountsController < BaseOrigamiController sale_item.price = sale_item.qty * sale_item.unit_price sale_item.save - redirect_to origami_root_path + redirect_to origami_path(sale_id) end end diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb index 9733e488..83c6bd81 100644 --- a/app/controllers/origami/home_controller.rb +++ b/app/controllers/origami/home_controller.rb @@ -1,28 +1,48 @@ class Origami::HomeController < BaseOrigamiController def index + if params[:booking_id] != nil + type=params[:booking_id].split('-')[0]; + # Sale + if type == "SAL" + @selected_item = Sale.find(params[:booking_id]) + @selected_item_type="Sale" + # Booking + else + @selected_item = Order.find(params[:booking_id]) + @selected_item_type="Order" + end + end + + @completed_orders = Order.get_completed_order() @booking_orders = Order.get_booking_order_table() @booking_rooms = Order.get_booking_order_rooms() @orders = Order.get_orders() - end + end - def show - str = [] - type=params[:id].split('-')[0]; + def item_show + selection(params[:booking_id],1) + end + def selection(selected_id, is_ajax) + str = [] + type=selected_id.split('-')[0]; # Sale if type == "SAL" - @order_details = SaleItem.get_order_items_details(params[:id]) + @order_details = SaleItem.get_order_items_details(params[:booking_id]) @order_details.each do |ord_detail| str.push(ord_detail) end - render :json => str.to_json # Booking else - @order_details = OrderItem.get_order_items_details(params[:id]) + @order_details = OrderItem.get_order_items_details(params[:booking_id]) @order_details.each do |ord_detail| str.push(ord_detail) - end - render :json => str.to_json + end end + if is_ajax == 1 + render :json => str.to_json + else + str + end end end diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb index d1aa9e61..4e884aaf 100644 --- a/app/controllers/origami/request_bills_controller.rb +++ b/app/controllers/origami/request_bills_controller.rb @@ -14,17 +14,23 @@ class Origami::RequestBillsController < BaseOrigamiController @sale_items = SaleItem.where("sale_id=?",@sale_id) else @sale_data = Sale.find_by_sale_id(check_booking.sale_id) - @sale_items = SaleItem.where("sale_id=?",@sale_id) + @sale_items = SaleItem.where("sale_id=?",@sale_data.sale_id) end unique_code = "ReceiptBillPdf" - customer_name = Customer.select("name").where('customer_id=' + @sale_data.customer_id) + customer= Customer.where('customer_id=' + @sale_data.customer_id) print_settings=PrintSetting.find_by_unique_code(unique_code) + # find order id by sale id + sale_order = SaleOrder.find_by_sale_id(@sale_data.sale_id) + + # Calculate Food and Beverage Total + food_total, beverage_total = SaleItem.calculate_food_beverage(@sale_items) + printer = Printer::ReceiptPrinter.new(print_settings) - printer.print_receipt_bill(print_settings,@sale_items,@sale_data,customer_name) - redirect_to origami_root_path + printer.print_receipt_bill(print_settings,@sale_items,@sale_data,customer.name, food_total, beverage_total) + redirect_to origami_path(sale_order.sale_id) end end diff --git a/app/models/order.rb b/app/models/order.rb index 4817c3ce..f882e0a0 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -221,7 +221,7 @@ class Order < ApplicationRecord end #Origami: Cashier : to view booking order Table - def self.get_booking_order_table + def self.get_selected_order(id) booking_orders = Booking.select("sales.receipt_no,orders.status as order_status, bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name") .joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id") @@ -231,6 +231,32 @@ class Order < ApplicationRecord .where("booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true) .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") + end + + #Origami: Cashier : to view booking order Table + def self.get_completed_order + completed_orders = Booking.select("sales.receipt_no,orders.status as order_status, + bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name") + .joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id") + .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") + .joins("left join orders on orders.order_id = booking_orders.order_id") + .joins("left join sales on sales.sale_id = bookings.sale_id") + .where("sales.sale_status='complete'") + .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") + + end + + #Origami: Cashier : to view booking order Table + def self.get_booking_order_table + booking_orders = Booking.select("sales.receipt_no,orders.status as order_status, + bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name") + .joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id") + .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") + .joins("left join orders on orders.order_id = booking_orders.order_id") + .joins("left join sales on sales.sale_id = bookings.sale_id") + .where("sales.sale_status<>'complete' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true) + .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") + end #Origami: Cashier : to view order type Room @@ -242,7 +268,7 @@ class Order < ApplicationRecord .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sale_orders on sale_orders.order_id = orders.order_id") .joins("left join sales on sales.sale_id = sale_orders.sale_id") - .where("booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true) + .where("sales.sale_status<>'complete' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true) .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name") end @@ -271,7 +297,7 @@ class Order < ApplicationRecord left join order_items on order_items.order_id = orders.order_id left join sale_orders on sale_orders.order_id = orders.order_id left join sales on sales.sale_id = sale_orders.sale_id") - .where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to) + .where("sales.sale_status<>'complete' and dining_facilities.is_active=? and orders.date between ? and ?",true,from,to) .group("orders.order_id,order_items.order_items_id,dining_facilities.name,sales.receipt_no,bookings.booking_id,sales.sale_id") end diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb index 5a0eaf25..9c928593 100644 --- a/app/models/printer/order_queue_printer.rb +++ b/app/models/printer/order_queue_printer.rb @@ -40,7 +40,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker left join bookings AS b ON b.booking_id = bo.booking_id left join dining_facilities AS df ON df.id = b.dining_facility_id left join customers as cus ON cus.customer_id = orders.customer_id") - .where("orders.order_id='" + code.to_s + "'") + .where("orders.order_id='" + code + "'") .group("order_items.item_code") end diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index d203568f..a8a27db3 100644 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -63,12 +63,13 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker self.print(filename) end -#Bill Receipt Print - def print_receipt_bill(printer_settings,sale_items,sale_data, customer_name) + + #Bill Receipt Print + def print_receipt_bill(printer_settings,sale_items,sale_data, customer_name, food_total, beverage_total) #Use CUPS service #Generate PDF #Print - pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name) + pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, food_total, beverage_total) pdf.render_file "tmp/receipt_bill.pdf" self.print("tmp/receipt_bill.pdf") end diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb index 5d87ff13..f727d184 100644 --- a/app/models/sale_item.rb +++ b/app/models/sale_item.rb @@ -29,6 +29,32 @@ class SaleItem < ApplicationRecord # return false # end end + + def self.calculate_food_beverage(sale_items) + food_prices=0 + beverage_prices=0 + + sale_items.each do |si| + food_price = get_food_price(si.sale_item_id) + beverage_price = get_beverage_price(si.sale_item_id) + + food_prices += food_price + beverage_prices += beverage_price + end + return food_prices, beverage_prices + end + + def get_food_price(sale_item_id) + food_price=SaleItem.select("sale_items.price") + .joins("left join menu_items on menu_items.item_code = sale_items.product_code") + .where("sale_items.sale_item_id=? and menu_items.account_id=0", sale_item_id) + end + + def get_beverage_price(sale_item_id) + beverage_price=SaleItem.select("sale_items.price") + .joins("left join menu_items on menu_items.item_code = sale_items.product_code") + .where("sale_items.sale_item_id=? and menu_items.account_id=1", sale_item_id) + end private def generate_custom_id diff --git a/app/pdf/order_item_pdf.rb b/app/pdf/order_item_pdf.rb index 3044c578..f322de64 100644 --- a/app/pdf/order_item_pdf.rb +++ b/app/pdf/order_item_pdf.rb @@ -1,29 +1,46 @@ class OrderItemPdf < Prawn::Document - + attr_accessor :receipt_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:item_description_width def initialize(order_item, print_settings) - super(:margin => [10, 5, 30, 5], :page_size => [200,400]) + self.page_width = 300 + self.page_height = 400 + self.margin = 10 + self.price_width = 50 + self.qty_width = 50 + self.item_width = self.page_width - (self.price_width + self.qty_width) + self.item_height = 15 + self.item_description_width = self.page_width - (self.price_width + self.qty_width) + self.receipt_width=130 + + super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + # super(:margin => [10, 5, 30, 5], :page_size => [200,400]) # font "public/fonts/#{font_name}".to_s + ".ttf".to_s # font "public/fonts/Zawgyi-One.ttf" - # font "public/fonts/padauk.ttf" - font_size 9 - text "#{order_item.dining}", :size => 15 + # font "public/fonts/padauk.ttf" + self.header_font_size = 12 + self.item_font_size = 10 + + text "#{order_item.dining}", :size => self.header_font_size,:align => :center stroke_horizontal_rule move_down 5 #order_info - order_info(order_item.order_by,order_item.order_at, order_item.customer) + order_info(order_item.order_by,order_item.order_at) # order items order_items(order_item) end # Write Order Information to PDF - def order_info(order_by, order_at, customer) + def order_info(order_by, order_at) y_position = cursor - bounding_box([0,y_position], :width => 200, :height => 15) do - text "OrderBy:#{order_by} Customer:#{customer} Date:#{order_at.strftime("%Y-%m-%d")}", :size => 7,:align => :left + bounding_box([0,y_position], :width => self.item_width - 50, :height => self.item_height) do + text "OrderBy:#{order_by} ", :size => self.item_font_size,:align => :left + end + + bounding_box([self.item_width - 50,y_position], :width => self.item_width + 50, :height => self.item_height) do + text "Date:#{order_at.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left end stroke_horizontal_rule @@ -35,12 +52,12 @@ class OrderItemPdf < Prawn::Document def order_items(order_item) y_position = cursor - bounding_box([0,y_position], :width => 180, :height => 15) do - text "Item", :size => 7,:align => :left + bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do + text "Item", :size => self.item_font_size,:align => :left end - bounding_box([160,y_position], :width => 20, :height => 15) do - text "Qty", :size => 7,:align => :right + bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do + text "Qty", :size => self.item_font_size,:align => :right end stroke_horizontal_rule @@ -56,12 +73,12 @@ class OrderItemPdf < Prawn::Document move_down 5 - bounding_box([0,y_position], :width => 180, :height => 20) do - text "#{order_item.item_name}", :size => 7,:align => :left + bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do + text "#{order_item.item_name}", :size => self.item_font_size,:align => :left end - bounding_box([160,y_position], :width => 20, :height => 20) do - text "#{order_item.qty}", :size => 7,:align => :right + bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do + text "#{order_item.qty}", :size => self.item_font_size,:align => :right end move_down 5 diff --git a/app/pdf/order_summary_pdf.rb b/app/pdf/order_summary_pdf.rb index 8a7a1ad9..63d75a78 100644 --- a/app/pdf/order_summary_pdf.rb +++ b/app/pdf/order_summary_pdf.rb @@ -1,19 +1,30 @@ class OrderSummaryPdf < Prawn::Document - + attr_accessor :receipt_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:item_description_width def initialize(order, print_settings) - super(:margin => [10, 5, 30, 5], :page_size => [200,400]) + self.page_width = 300 + self.page_height = 400 + self.margin = 10 + self.price_width = 60 + self.qty_width = 60 + self.item_width = self.page_width - (self.price_width + self.qty_width) + self.item_height = 15 + self.item_description_width = self.page_width - (self.price_width + self.qty_width) + self.receipt_width=130 + + super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) # font "public/fonts/#{font_name}".to_s + ".ttf".to_s # font "public/fonts/Zawgyi-One.ttf" # font "public/fonts/padauk.ttf" + self.header_font_size = 12 + self.item_font_size = 10 - font_size 9 - text "#{order[0].dining}", :size => 15 + text "#{order[0].dining}", :size => self.header_font_size,:align => :center stroke_horizontal_rule move_down 5 #order_info - order_info(order[0].order_by,order[0].order_at, order[0].customer) + order_info(order[0].order_by,order[0].order_at) # order items order_items(order) @@ -21,11 +32,15 @@ class OrderSummaryPdf < Prawn::Document end # Write Order Information to PDF - def order_info(order_by, order_at, customer) + def order_info(order_by, order_at) y_position = cursor - bounding_box([0,y_position], :width => 200, :height => 15) do - text "OrderBy:#{order_by} Customer:#{customer} Date:#{order_at.strftime("%Y-%m-%d")}", :size => 7,:align => :left + bounding_box([0,y_position], :width => self.item_width - 20, :height => self.item_height) do + text "OrderBy:#{order_by} ", :size => self.item_font_size,:align => :left + end + + bounding_box([self.item_width - 20,y_position], :width => self.item_width + 20, :height => self.item_height) do + text "Date:#{order_at.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left end stroke_horizontal_rule @@ -37,12 +52,12 @@ class OrderSummaryPdf < Prawn::Document def order_items(order_item) y_position = cursor - bounding_box([0,y_position], :width => 180, :height => 15) do - text "Item", :size => 7,:align => :left + bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do + text "Item", :size => self.item_font_size,:align => :left end - bounding_box([160,y_position], :width => 20, :height => 15) do - text "Qty", :size => 7,:align => :right + bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do + text "Qty", :size => self.item_font_size,:align => :right end stroke_horizontal_rule @@ -59,13 +74,13 @@ class OrderSummaryPdf < Prawn::Document move_down 5 order_item.each do|odi| - bounding_box([0,y_position], :width => 180, :height => 20) do - text "#{odi.item_name}", :size => 7,:align => :left - end + bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do + text "#{odi.item_name}", :size => self.item_font_size,:align => :left + end - bounding_box([160,y_position], :width => 20, :height => 20) do - text "#{odi.qty}", :size => 7,:align => :right - end + bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do + text "#{odi.qty}", :size => self.item_font_size,:align => :right + end end move_down 5 diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index 5853b946..f91aebe1 100644 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -1,30 +1,36 @@ class ReceiptBillPdf < Prawn::Document - attr_accessor :receipt_width,:price_column_width,:p_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_column_width,:item_description_width - def initialize(printer_settings, sale_items, sale_data, customer_name) - self.p_width = 200 + attr_accessor :receipt_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width + def initialize(printer_settings, sale_items, sale_data, customer_name, food_total, beverage_total) + self.page_width = 300 self.page_height = 1450 self.margin = 10 - # self.price_width = self.p_width / 2 - self.price_width=80 - self.item_width = self.p_width - self.price_width - self.item_height = self.item_height - self.qty_column_width = self.p_width / 2 - self.item_description_width=self.p_width - self.price_width - self.receipt_width=130 + self.price_width = 50 + self.qty_width = 30 + self.total_width = 50 + self.item_width = self.page_width - (self.price_width + self.qty_width + self.total_width) + self.item_height = 15 + self.item_description_width = self.page_width - (self.price_width + self.qty_width + self.total_width) + self.receipt_width=100 - @item_width = self.p_width.to_i / 2 - @qty_width = @item_width.to_i / 3 - @double = @qty_width * 1.3 - @half_qty = @qty_width / 2 + # @item_width = self.page_width.to_i / 2 + # @qty_width = @item_width.to_i / 3 + # @double = @qty_width * 1.3 + # @half_qty = @qty_width / 2 #setting page margin and width - super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.p_width, self.page_height]) - self.header_font_size = 10 - self.item_font_size = 9 + super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + + # font "public/fonts/#{font_name}".to_s + ".ttf".to_s + # font "public/fonts/Zawgyi-One.ttf" + # font "public/fonts/padauk.ttf" + self.header_font_size = 12 + self.item_font_size = 10 header( printer_settings.printer_name, printer_settings.name) - stroke_horizontal_rule + + stroke_horizontal_rule + cashier_info(sale_data, customer_name) - line_items(sale_items) + line_items(sale_items, food_total, beverage_total) all_total(sale_data) @@ -38,71 +44,66 @@ class ReceiptBillPdf < Prawn::Document move_down 5 stroke_horizontal_rule - end def cashier_info(sale_data, customer_name) - move_down 5 - move_down 2 + move_down 7 + # move_down 2 y_position = cursor - bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do + bounding_box([0,y_position], :width =>self.receipt_width, :height => self.item_height) do text "Receipt No:", :size => self.item_font_size,:align => :left end - bounding_box([self.price_width, y_position], :width =>self.receipt_width) do - text "#{sale_data.receipt_no}" , :size => self.item_font_size, :align => :left + bounding_box([self.receipt_width, y_position], :width =>self.receipt_width) do + text "#{sale_data.receipt_no}" , :size => self.item_font_size, :align => :left end move_down 5 y_position = cursor - bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do + bounding_box([0,y_position], :width =>self.receipt_width, :height => self.item_height) do text "Customer:", :size => self.item_font_size,:align => :left end - bounding_box([self.price_width,y_position], :width =>self.price_width) do + bounding_box([self.receipt_width,y_position], :width =>self.receipt_width) do text "#{customer_name}" , :size => self.item_font_size,:align => :left end move_down 5 y_position = cursor - bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do + bounding_box([0,y_position], :width =>self.receipt_width, :height => self.item_height) do text "Date:", :size => self.item_font_size,:align => :left end - bounding_box([self.price_width,y_position], :width =>self.price_width) do + bounding_box([self.receipt_width,y_position], :width =>self.receipt_width) do text "#{sale_data.receipt_date.strftime('%Y %m %d %h:%m')}" , :size => self.item_font_size,:align => :left end # stroke_horizontal_rule move_down 5 end - def line_items(sale_items) + def line_items(sale_items, food_total, beverage_total) y_position = cursor - qty_column_width = self.p_width * 0.2 - item_description_width = self.p_width * 0.5 - price_column_width = self.p_width * 0.3 - - stroke_horizontal_rule move_down 5 - y_position = cursor + pad_top(15) { # @item_width.to_i + @half_qty.to_i - text_box "Items", :at =>[0,y_position], :width => @item_width.to_i - @half_qty.to_i , :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size - text_box "Price", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right - text_box "Qty", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right - text_box "Total", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @double, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + text_box "Items", :at =>[0,y_position], :width => self.item_width - 20, :height =>self.item_height, :size => self.item_font_size + text_box "Price", :at =>[self.item_width-20,y_position], :width => self.price_width, :height =>self.item_height, :size => self.item_font_size, :align => :right + text_box "Qty", :at =>[self.item_width+self.price_width,y_position], :width => self.qty_width, :height =>self.item_height, :size => self.item_font_size, :align => :right + text_box "Total", :at =>[self.item_width+self.price_width+self.qty_width,y_position], :width => self.total_width, :height =>self.item_height, :size => self.item_font_size, :align => :right } move_down 5 stroke_horizontal_rule - add_line_item_row(sale_items) + add_line_item_row(sale_items, food_total, beverage_total) end - def add_line_item_row(sale_items) + def add_line_item_row(sale_items, food_total, beverage_total) + item_name_width = self.item_width-20 y_position = cursor move_down 5 sub_total = 0.0 @@ -119,53 +120,67 @@ class ReceiptBillPdf < Prawn::Document pad_top(15) { # @item_width.to_i + @half_qty.to_i - text_box "#{product_name}", :at =>[0,y_position], :width => @item_width.to_i - @half_qty.to_i , :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size - text_box "#{price}", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right - text_box "#{qty.to_i}", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right - text_box "#{total_price}", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @double, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + text_box "#{product_name}", :at =>[0,y_position], :width => item_name_width, :height =>self.item_height, :overflow => :shrink_to_fix, :size => self.item_font_size + text_box "#{price}", :at =>[item_name_width,y_position], :width => self.price_width, :height =>self.item_height, :size => self.item_font_size, :align => :right + text_box "#{qty.to_i}", :at =>[item_name_width+self.price_width,y_position], :width => self.qty_width, :height =>self.item_height, :size => self.item_font_size, :align => :right + text_box "#{total_price}", :at =>[item_name_width+self.price_width+self.qty_width,y_position], :width =>self.total_width, :height =>self.item_height, :size => self.item_font_size, :align => :right } move_down 3 end + stroke_horizontal_rule + move_down 5 y_position = cursor - bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do + bounding_box([0,y_position], :width =>(item_name_width+self.price_width+self.qty_width), :height => self.item_height) do text "Sub Total", :size => self.item_font_size,:align => :left end - bounding_box([self.price_width,y_position], :width =>self.price_width) do + bounding_box([(item_name_width+self.price_width+self.qty_width),y_position], :width =>self.total_width) do text "#{sub_total}" , :size => self.item_font_size,:align => :right end + + # Food and Beverage + food_beverage_total = food_total.to_s + '/' + beverage_total.to_s + move_down 5 + y_position = cursor + bounding_box([0,y_position], :width =>(item_name_width+self.price_width+self.qty_width), :height => self.item_height) do + text "Food/Beverage Total", :size => self.item_font_size,:align => :left + end + bounding_box([(item_name_width+self.price_width+self.qty_width),y_position], :width =>self.total_width) do + text "#{ food_beverage_total }" , :size => self.item_font_size,:align => :right + end end def all_total(sale_data) + item_name_width = self.item_width-20 move_down 5 - y_position =cursor + y_position = cursor - bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do + bounding_box([0,y_position], :width =>(item_name_width+self.price_width+self.qty_width), :height => self.item_height) do text "Discount", :size => self.item_font_size,:align => :left end - bounding_box([self.price_width,y_position], :width =>self.price_width) do + bounding_box([(item_name_width+self.price_width+self.qty_width),y_position], :width =>self.total_width) do text "( " +"#{sale_data.total_discount}" +" )" , :size => self.item_font_size,:align => :right end move_down 5 - y_position =cursor + y_position = cursor - bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do + bounding_box([0,y_position], :width =>(item_name_width+self.price_width+self.qty_width), :height => self.item_height) do text "Total Tax", :size => self.item_font_size,:align => :left end - bounding_box([self.price_width,y_position], :width =>self.price_width) do + bounding_box([(item_name_width+self.price_width+self.qty_width),y_position], :width =>self.total_width) do text "( " +"#{sale_data.total_tax}" +" )" , :size => self.item_font_size,:align => :right end move_down 5 y_position = cursor move_down 5 - bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do + bounding_box([0,y_position], :width =>(item_name_width+self.price_width+self.qty_width), :height => self.item_height) do text "Grand Total", :size => self.item_font_size,:align => :left end - bounding_box([self.price_width,y_position], :width =>self.price_width) do + bounding_box([(item_name_width+self.price_width+self.qty_width),y_position], :width =>self.total_width) do text "#{sale_data.grand_total}" , :size => self.item_font_size,:align => :right end move_down 5 diff --git a/app/views/origami/discounts/index.html.erb b/app/views/origami/discounts/index.html.erb index e95bdcc3..65b376d8 100644 --- a/app/views/origami/discounts/index.html.erb +++ b/app/views/origami/discounts/index.html.erb @@ -4,22 +4,22 @@
-
- +
+

Receipt No: <%=@sale_data.receipt_no rescue ' '%>

-

Cashier: <%=@sale_data.cashier_name rescue ' '%>

+

Date: <%=@sale_data.receipt_date.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%>

- +
@@ -31,7 +31,7 @@ <% sub_total = 0 %> <% @sale_data.sale_items.each do |sale_item| %> <% sub_total += sale_item.qty*sale_item.unit_price%> - + > @@ -52,23 +52,23 @@ - + - + - + @@ -84,7 +84,7 @@
-
Pay Discount
+
Overall Discount
@@ -108,68 +108,68 @@
+
+
5%
+
1
2
3
-
-
-
500
-
+
+
+
10%
+
4
5
6
-
-
-
1000
-
+
+
+
20%
+
7
8
9
-
-
-
5000
-
+
+
+
30%
+
0
.
00
-
-
-
10000
-
+
+
+
50%
+
DEL
CLR
-
-
-
50000
-
+
diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb index fa521d6c..350b9538 100644 --- a/app/views/origami/home/index.html.erb +++ b/app/views/origami/home/index.html.erb @@ -4,6 +4,9 @@ -
+
+ +
+
+ <% + @completed_orders.each do |cpo| + # Assigned Id for new Order? Sale? + unique_id="" + # For CSS- Class for Order? Sale? + sale_status="" + if cpo.order_status == 'new' + unique_id=cpo.booking_id + # check selected item and assign + if @selected_item != nil + if cpo.order_id == @selected_item.order_id + sale_status = sale_status + " selected-item" + end + end + else + unique_id=cpo.sale_id + sale_status="paid" + # check selected item and assign + if @selected_item != nil + if unique_id == @selected_item.sale_id + sale_status = sale_status + " selected-item" + end + end + end + %> +
+
+ +

<%= cpo.table_name %>

+

+ Receipt No : + + <%= cpo.receipt_no %> + +

+

+ Order Status : + + <%= cpo.order_status %> + + +

+
+
+ <% + end + %> +
+
- +
<% - @booking_orders.each do |bko| - # Assigned Id for new Order? Sale? - unique_id="" - # For CSS- Class for Order? Sale? - sale_status="" - if bko.order_status == 'new' - unique_id=bko.booking_id - else - unique_id=bko.sale_id - sale_status="sold" - end + @booking_orders.each do |bko| + # Assigned Id for new Order? Sale? + unique_id="" + # For CSS- Class for Order? Sale? + sale_status="" + if bko.order_status == 'new' + unique_id=bko.booking_id + # check selected item and assign + if @selected_item != nil + if bko.order_id == @selected_item.order_id + sale_status = sale_status + " selected-item" + end + end + else + unique_id=bko.sale_id + sale_status="sold" + # check selected item and assign + if @selected_item != nil + if unique_id == @selected_item.sale_id + sale_status = sale_status + " selected-item" + end + end + end %>
@@ -59,8 +126,8 @@
- -
+ +
<% @booking_rooms.each do |rmo| @@ -69,10 +136,22 @@ # For CSS- Class for Order? Sale? sale_status="" if rmo.order_status == 'new' - unique_id=rmo.booking_id + unique_id=rmo.booking_id + # check selected item and assign + if @selected_item != nil + if rmo.order_id == @selected_item.order_id + sale_status = sale_status + " selected-item" + end + end else unique_id=rmo.sale_id sale_status="sold" + # check selected item and assign + if @selected_item != nil + if unique_id == @selected_item.sale_id + sale_status = sale_status + " selected-item" + end + end end %>
@@ -100,25 +179,38 @@
- -
-
+ +
+
<% @orders.each do |odr| # Assigned Id for new Order? Sale? unique_id="" # For CSS- Class for Order? Sale? - sale_status="" + sale_status="" + if odr.order_status == 'new' unique_id=odr.booking_id + # check selected item and assign + if @selected_item != nil + if odr.order_id == @selected_item.order_id + sale_status = sale_status + " selected-item" + end + end else unique_id=odr.sale_id - sale_status="sold" - end + sale_status="sold" + # check selected item and assign + if @selected_item != nil + if unique_id == @selected_item.sale_id + sale_status = sale_status + " selected-item" + end + end + end %>
- +

<%= odr.table_name %>

Receipt No : @@ -155,11 +247,11 @@

-

Receipt No:

-

Cashier:

+

Receipt No: <%=@selected_item.receipt_no rescue ' '%>

+
-

Date:

+

Date: <%=@selected_item.receipt_date.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%>

@@ -172,7 +264,39 @@
- + <% + # For Sale Items + sub_total = 0 + if @selected_item_type == "Sale" + @selected_item.sale_items.each do |sale_item| + sub_total += sale_item.qty*sale_item.unit_price + %> + + + + + + <% + end + end + %> + + <% + # For Order Items + sub_total = 0 + if @selected_item_type == "Order" + @selected_item.order_items.each do |order_item| + sub_total += order_item.qty*order_item.unit_price + %> + + + + + + <% + end + end + %>
Items
<%=sale_item.product_name%>@<%=sale_item.unit_price%> Sub Total: <%=sub_total%>
Discount: (<%=@sale_data.total_discount rescue 0%>)
<%= sale_item.product_name %><%= sale_item.qty %><%= sale_item.qty*sale_item.price %>
<%= order_item.item_name %><%= order_item.qty %><%= order_item.qty*order_item.price %>
@@ -180,27 +304,27 @@ - + - + - + - + - +
Sub Total:<%=sub_total%>
Discount:(<%=@selected_item.total_discount rescue 0%>)
Tax:<%=@selected_item.total_tax rescue 0%>
Grand Total:<%=@selected_item.grand_total rescue 0%>
diff --git a/config/routes.rb b/config/routes.rb index 6d43e260..f16b8f09 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -72,14 +72,17 @@ Rails.application.routes.draw do #--------- Cashier ------------# namespace :origami do root "home#index" - get "/:booking_id" => "home#show" do #origami/:booking_id will show - resources :discounts, only: [:index,:new, :create ] #add discount type + get "/:booking_id" => "home#index" do #origami/:booking_id will show + # resources :discounts, only: [:index,:new, :create ] #add discount type resources :customers, only: [:index,:new, :create ] #add customer type end - get "/request_bills/:id" => "request_bills#print" - get "/discount/:id" => "discounts#index" - post "/discount" => "discounts#create" + post '/:booking_id' => 'home#item_show' + + get "/:id/discount" => "discounts#index" + post "/:id/discount" => "discounts#create" + + get "/:id/request_bills" => "request_bills#print" #--------- Payment ------------# get 'sale/:sale_id/payment' => 'payments#show' diff --git a/db/migrate/20170608105644_create_crm_dining_queues.rb b/db/migrate/20170608105644_create_dining_queues.rb similarity index 59% rename from db/migrate/20170608105644_create_crm_dining_queues.rb rename to db/migrate/20170608105644_create_dining_queues.rb index 3929719e..3cf26418 100644 --- a/db/migrate/20170608105644_create_crm_dining_queues.rb +++ b/db/migrate/20170608105644_create_dining_queues.rb @@ -1,6 +1,6 @@ -class CreateCrmDiningQueues < ActiveRecord::Migration[5.1] +class CreateDiningQueues < ActiveRecord::Migration[5.1] def change - create_table :crm_dining_queues do |t| + create_table :dining_queues do |t| t.string :name t.string :contact_no t.string :queue_no From 137267514b4e4c56ac47573e9e37fdfdb76bac53 Mon Sep 17 00:00:00 2001 From: Min Zeya Phyo Date: Mon, 12 Jun 2017 07:21:09 +0630 Subject: [PATCH 06/22] bundle gemlock --- Gemfile.lock | 2 -- 1 file changed, 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index fbf61a33..8780a375 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -257,8 +257,6 @@ DEPENDENCIES jquery-rails kaminari! listen (~> 3.0.5) - pg - mysql2 (>= 0.3.18, < 0.5) prawn prawn-table puma (~> 3.0) From 7eaea8f08d3299c058cc6df70323415a0736fd5d Mon Sep 17 00:00:00 2001 From: Min Zeya Phyo Date: Mon, 12 Jun 2017 07:40:40 +0630 Subject: [PATCH 07/22] fixed jsonb to json to support both mysql and postgres --- db/migrate/20170611084537_create_membership_actions.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/migrate/20170611084537_create_membership_actions.rb b/db/migrate/20170611084537_create_membership_actions.rb index 74695871..c980ceac 100644 --- a/db/migrate/20170611084537_create_membership_actions.rb +++ b/db/migrate/20170611084537_create_membership_actions.rb @@ -8,7 +8,7 @@ class CreateMembershipActions < ActiveRecord::Migration[5.1] t.string :auth_token t.string :merchant_account_id t.string :created_by - t.jsonb :additional_parameter + t.json :additional_parameter t.timestamps end From 3f3d37756dade885abf6d0b462dc0627f6e8b28f Mon Sep 17 00:00:00 2001 From: Nweni Date: Mon, 12 Jun 2017 09:20:38 +0630 Subject: [PATCH 08/22] update --- app/models/sale_payment.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 8dea66a3..6609a28e 100644 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -222,7 +222,7 @@ class SalePayment < ApplicationRecord end def rebat - + end private From 121fb92b9b35d924f666f1b938c412d8ba938199 Mon Sep 17 00:00:00 2001 From: Yan Date: Mon, 12 Jun 2017 10:12:55 +0630 Subject: [PATCH 09/22] update orgami js --- app/assets/javascripts/origami.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index 0838e1a2..5626634f 100644 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -56,17 +56,16 @@ $(document).ready(function(){ // AJAX call for order $.ajax({ -<<<<<<< HEAD type: "POST", url: "/origami/" + unique_id, data: { 'booking_id' : unique_id }, success:function(result){ -======= - type: "GET", - url: "origami/" + unique_id, - data: { 'id' : unique_id }, - success:function(result){ ->>>>>>> 5ee3ae257a59269b651dcc5c0232b95d7f41fb77 +// ======= +// type: "GET", +// url: "origami/" + unique_id, +// data: { 'id' : unique_id }, +// success:function(result){ +// >>>>>>> 5ee3ae257a59269b651dcc5c0232b95d7f41fb77 for (i = 0; i < result.length; i++) { var data = JSON.stringify(result[i]); var parse_data = JSON.parse(data); @@ -250,14 +249,11 @@ function control_button(order_status){ $("#request_bills").prop('disabled', false); $("#discount").prop('disabled', true); $("#pay-bill").prop('disabled', true); -<<<<<<< HEAD } else { $("#request_bills").prop('disabled', true); $("#discount").prop('disabled', true); $("#pay-bill").prop('disabled', true); -======= ->>>>>>> 5ee3ae257a59269b651dcc5c0232b95d7f41fb77 } } From e1481eb591723dbb6cc45ece4b23db3b2454bbf6 Mon Sep 17 00:00:00 2001 From: Yan Date: Mon, 12 Jun 2017 10:27:53 +0630 Subject: [PATCH 10/22] update route after merge with crm --- config/routes.rb | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/config/routes.rb b/config/routes.rb index 8fe3992f..4fd158b8 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -72,15 +72,9 @@ Rails.application.routes.draw do #--------- Cashier ------------# namespace :origami do root "home#index" -<<<<<<< HEAD - get "/:booking_id" => "home#index" do #origami/:booking_id will show - # resources :discounts, only: [:index,:new, :create ] #add discount type - resources :customers, only: [:index,:new, :create ] #add customer type -======= get "/:booking_id" => "home#show" do #origami/:booking_id will show - resources :discounts, only: [:index,:new, :create ] #add discount type + # resources :discounts, only: [:index,:new, :create ] #add discount type resources :customers #add customer type ->>>>>>> d65882ac5bcdce934116e65b66a8a3cb34965ba3 end post '/:booking_id' => 'home#item_show' @@ -96,12 +90,10 @@ Rails.application.routes.draw do post 'paypar_payment_process' => 'paypar_payments#create' get 'sale/:sale_id/payment/credit_payment' => "credit_payments#index" get 'sale/:sale_id/payment/others_payment' => "others_payments#index" -<<<<<<< HEAD # get 'sale/:sale_id/payment/others_payment/:payment_method' => "redeem_payments#index" get 'sale/:sale_id/payment/others_payment/MPU' => "mpu#index" post 'create_mpu_payment' => "mpu#create" get 'sale/:sale_id/payment/others_payment/REDEEMREBATE' => "redeem_payments#index" -======= #---------Add Customer --------------# #resources :customers @@ -109,7 +101,6 @@ Rails.application.routes.draw do get '/:customer_id/get_customer' => 'home#get_customer' post '/:sale_id/update_sale' , to: "home#update_sale_by_customer"#update customer id in sale table ->>>>>>> d65882ac5bcdce934116e65b66a8a3cb34965ba3 end #--------- Waiter/Ordering Station ------------# From b6bba9ecd416d47cd880bb89d52160669c6863be Mon Sep 17 00:00:00 2001 From: Yan Date: Mon, 12 Jun 2017 10:55:04 +0630 Subject: [PATCH 11/22] merge conflict --- app/controllers/origami/home_controller.rb | 5 ---- app/views/origami/home/index.html.erb | 29 +++++++--------------- 2 files changed, 9 insertions(+), 25 deletions(-) diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb index 4c97c80e..669c8a7f 100644 --- a/app/controllers/origami/home_controller.rb +++ b/app/controllers/origami/home_controller.rb @@ -17,12 +17,7 @@ class Origami::HomeController < BaseOrigamiController @booking_orders = Order.get_booking_order_table() @booking_rooms = Order.get_booking_order_rooms() @orders = Order.get_orders() -<<<<<<< HEAD end -======= - - end ->>>>>>> d65882ac5bcdce934116e65b66a8a3cb34965ba3 def item_show selection(params[:booking_id],1) diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb index 426d0533..394d494b 100644 --- a/app/views/origami/home/index.html.erb +++ b/app/views/origami/home/index.html.erb @@ -25,6 +25,7 @@
<% @completed_orders.each do |cpo| + # ToDo no need check new # Assigned Id for new Order? Sale? unique_id="" # For CSS- Class for Order? Sale? @@ -50,13 +51,9 @@ %>
- -<<<<<<< HEAD -

<%= cpo.table_name %>

-======= + -

<%= bko.table_name %>

->>>>>>> d65882ac5bcdce934116e65b66a8a3cb34965ba3 +

<%= cpo.table_name %>

Receipt No : @@ -162,14 +159,10 @@ %>

-<<<<<<< HEAD -

<%= rmo.room_name %>

-======= - - -

<%= rmo.room_name %>

->>>>>>> d65882ac5bcdce934116e65b66a8a3cb34965ba3 + +

<%= rmo.room_name %>

+

Receipt No : @@ -222,14 +215,10 @@ %>

-<<<<<<< HEAD - -

<%= odr.table_name %>

-======= - + -

<%= odr.table_name %>

->>>>>>> d65882ac5bcdce934116e65b66a8a3cb34965ba3 +

<%= odr.table_name %>

+

Receipt No : From ca2dc181d62c8c15e0072d7ad01720fb19d28531 Mon Sep 17 00:00:00 2001 From: Yan Date: Mon, 12 Jun 2017 12:04:12 +0630 Subject: [PATCH 12/22] add receipt no report and bug fixing --- app/controllers/reports/receipt_no_controller.rb | 9 +++++++++ app/models/order.rb | 6 +++--- app/models/sale_item.rb | 14 +++++++------- app/views/reports/receipt_no/index.html.erb | 3 +++ config/routes.rb | 13 +++++++------ 5 files changed, 29 insertions(+), 16 deletions(-) create mode 100644 app/controllers/reports/receipt_no_controller.rb create mode 100644 app/views/reports/receipt_no/index.html.erb diff --git a/app/controllers/reports/receipt_no_controller.rb b/app/controllers/reports/receipt_no_controller.rb new file mode 100644 index 00000000..05065fee --- /dev/null +++ b/app/controllers/reports/receipt_no_controller.rb @@ -0,0 +1,9 @@ +class Reports::ReceiptNoController < BaseReportController + def index + @hi = "hi" + end + + def show + + end +end \ No newline at end of file diff --git a/app/models/order.rb b/app/models/order.rb index 5e123060..a165b7b4 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -241,7 +241,7 @@ class Order < ApplicationRecord .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id") - .where("sales.sale_status='complete'") + .where("sales.sale_status='completed'") .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") end @@ -254,7 +254,7 @@ class Order < ApplicationRecord .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id") - .where("sales.sale_status<>'complete' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true) + .where("booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true) .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") end @@ -268,7 +268,7 @@ class Order < ApplicationRecord .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sale_orders on sale_orders.order_id = orders.order_id") .joins("left join sales on sales.sale_id = sale_orders.sale_id") - .where("sales.sale_status<>'complete' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true) + .where("booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true) .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name") end diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb index f727d184..0aed9a23 100644 --- a/app/models/sale_item.rb +++ b/app/models/sale_item.rb @@ -35,22 +35,22 @@ class SaleItem < ApplicationRecord beverage_prices=0 sale_items.each do |si| - food_price = get_food_price(si.sale_item_id) - beverage_price = get_beverage_price(si.sale_item_id) - - food_prices += food_price - beverage_prices += beverage_price + food_price = self.get_food_price(si.sale_item_id) + beverage_price = self.get_beverage_price(si.sale_item_id) +puts food_price + # food_prices = food_prices + food_price.price + # beverage_prices = beverage_prices + beverage_price.price end return food_prices, beverage_prices end - def get_food_price(sale_item_id) + def self.get_food_price(sale_item_id) food_price=SaleItem.select("sale_items.price") .joins("left join menu_items on menu_items.item_code = sale_items.product_code") .where("sale_items.sale_item_id=? and menu_items.account_id=0", sale_item_id) end - def get_beverage_price(sale_item_id) + def self.get_beverage_price(sale_item_id) beverage_price=SaleItem.select("sale_items.price") .joins("left join menu_items on menu_items.item_code = sale_items.product_code") .where("sale_items.sale_item_id=? and menu_items.account_id=1", sale_item_id) diff --git a/app/views/reports/receipt_no/index.html.erb b/app/views/reports/receipt_no/index.html.erb new file mode 100644 index 00000000..0bae50e7 --- /dev/null +++ b/app/views/reports/receipt_no/index.html.erb @@ -0,0 +1,3 @@ +

+ <%= @hi %> +
\ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 4fd158b8..0666e0c4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -197,12 +197,13 @@ Rails.application.routes.draw do #--------- Reports Controller Sections ------------# namespace :reports do - resources :sales, :only => [:index, :show] - resources :orders, :only => [:index, :show] - resources :customers, :only => [:index, :show] - resources :products, :only => [:index, :show] - resources :inventory, :only => [:index, :show] - resources :employees, :only => [:index, :show] + resources :receipt_no, :only => [:index, :show] + # resources :sales, :only => [:index, :show] + # resources :orders, :only => [:index, :show] + # resources :customers, :only => [:index, :show] + # resources :products, :only => [:index, :show] + # resources :inventory, :only => [:index, :show] + # resources :employees, :only => [:index, :show] end #mount_compendium at: '/report' #, controller: 'reports' From ee208a5dcdd9401bc7ba13b9cc04e2c53b7f5772 Mon Sep 17 00:00:00 2001 From: Nweni Date: Mon, 12 Jun 2017 13:26:09 +0630 Subject: [PATCH 13/22] Update --- app/assets/stylesheets/origami.scss | 13 ++--- app/controllers/api/orders_controller.rb | 5 +- app/models/dining_facility.rb | 5 +- app/models/order.rb | 16 +++--- app/models/sale_payment.rb | 4 +- app/views/origami/discounts/index.html.erb | 62 +++++++++++----------- app/views/origami/payments/show.html.erb | 9 ++-- 7 files changed, 60 insertions(+), 54 deletions(-) diff --git a/app/assets/stylesheets/origami.scss b/app/assets/stylesheets/origami.scss index 9e886d87..5e361f7e 100644 --- a/app/assets/stylesheets/origami.scss +++ b/app/assets/stylesheets/origami.scss @@ -21,8 +21,9 @@ } .cashier_number{ - height:60px; - line-height:60px; + width: 33%; + height:70px; + line-height:70px; text-align:center; background:#54A5AF; // float:left; @@ -34,8 +35,8 @@ .pay{ width: 98%; - height:210px; - line-height:210px; + height:211px; + line-height:211px; text-align:center; font-size:20px; color:white; @@ -46,7 +47,7 @@ } .long{ - width:100%; + width:49%; } .sold { @@ -121,4 +122,4 @@ select.form-control { tr.discount-item-row:hover { background-color: #e3e3e3 !important; -} \ No newline at end of file +} diff --git a/app/controllers/api/orders_controller.rb b/app/controllers/api/orders_controller.rb index df9b1542..8bd348e2 100644 --- a/app/controllers/api/orders_controller.rb +++ b/app/controllers/api/orders_controller.rb @@ -38,9 +38,8 @@ class Api::OrdersController < Api::ApiController #Create Table Booking or Room Booking - if !params["booking_id"].nil? && params[:booking_id].to_i > 0 - #@order.new_booking = false - @order.new_booking = true + if !params["booking_id"].nil? + @order.new_booking = false @order.booking_id = params[:booking_id] end diff --git a/app/models/dining_facility.rb b/app/models/dining_facility.rb index 9a4f7a75..a3f8948f 100644 --- a/app/models/dining_facility.rb +++ b/app/models/dining_facility.rb @@ -9,10 +9,11 @@ class DiningFacility < ApplicationRecord scope :active, -> {where(is_active: true)} def get_current_booking - booking = Booking.where("dining_facility_id = #{self.id} and booking_status ='occupied' and checkin_at between '#{DateTime.now.utc - 5.hours}' and '#{DateTime.now.utc}' and checkout_at is null").limit(1) + puts "enter booking" + booking = Booking.where("dining_facility_id = #{self.id} and booking_status ='assign' and checkin_at between '#{DateTime.now.utc - 5.hours}' and '#{DateTime.now.utc}' and checkout_at is null").limit(1) if booking.count > 0 then - return booking[0] + return booking[0].booking_id else return nil end diff --git a/app/models/order.rb b/app/models/order.rb index 5e123060..9dcd6949 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -28,11 +28,13 @@ class Order < ApplicationRecord booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking", :checkin_at => Time.now.utc, :checkin_by => self.employee_name, :booking_status => "assign" }) + table = DiningFacility.find(self.table_id) + table.status = "occupied" + table.save else if (self.booking_id.to_i > 0 ) booking = Booking.find(self.booking_id) end - end booking.save! @@ -226,7 +228,7 @@ class Order < ApplicationRecord bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name") .joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id") .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") - .joins("left join orders on orders.order_id = booking_orders.order_id") + .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id") .where("booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true) .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") @@ -239,10 +241,10 @@ class Order < ApplicationRecord bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name") .joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id") .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") - .joins("left join orders on orders.order_id = booking_orders.order_id") + .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id") .where("sales.sale_status='complete'") - .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") + .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.customer_id") end @@ -252,7 +254,7 @@ class Order < ApplicationRecord bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name") .joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id") .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") - .joins("left join orders on orders.order_id = booking_orders.order_id") + .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id") .where("sales.sale_status<>'complete' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true) .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") @@ -269,7 +271,7 @@ class Order < ApplicationRecord .joins("left join sale_orders on sale_orders.order_id = orders.order_id") .joins("left join sales on sales.sale_id = sale_orders.sale_id") .where("sales.sale_status<>'complete' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true) - .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name") + .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.customer_id") end #Origami: Cashier : to view order type Room @@ -298,7 +300,7 @@ class Order < ApplicationRecord left join sale_orders on sale_orders.order_id = orders.order_id left join sales on sales.sale_id = sale_orders.sale_id") .where("sales.sale_status<>'complete' and dining_facilities.is_active=? and orders.date between ? and ?",true,from,to) - .group("orders.order_id,order_items.order_items_id,dining_facilities.name,sales.receipt_no,bookings.booking_id,sales.sale_id") + .group("orders.order_id,order_items.order_items_id,dining_facilities.name,sales.receipt_no,bookings.booking_id,sales.sale_id,orders.customer_id") end diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 6609a28e..27ddafa6 100644 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -211,18 +211,18 @@ class SalePayment < ApplicationRecord sObj.sale_payments.each do |spay| all_received_amount += spay.payment_amount.to_f end - if (self.sale.grand_total <= all_received_amount) self.sale.payment_status = "paid" self.sale.sale_status = "completed" self.sale.save! + #TODO: table status rebat() end end def rebat - + end private diff --git a/app/views/origami/discounts/index.html.erb b/app/views/origami/discounts/index.html.erb index 65b376d8..4f6b7c9a 100644 --- a/app/views/origami/discounts/index.html.erb +++ b/app/views/origami/discounts/index.html.erb @@ -4,7 +4,7 @@
-
@@ -13,10 +13,10 @@

Receipt No: <%=@sale_data.receipt_no rescue ' '%>

-
+

Date: <%=@sale_data.receipt_date.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%>

-
+
@@ -75,7 +75,7 @@
-
+
@@ -88,7 +88,7 @@
-
+
- -
-
+ +
+
-
+

-
+
5%
-
+
1
-
2
-
3
+
2
+
3
-
+
@@ -125,12 +125,12 @@
10%
-
+
4
-
5
-
6
+
5
+
6
-
+
@@ -138,12 +138,12 @@
20%
-
+
7
-
8
-
9
+
8
+
9
-
+
@@ -151,12 +151,12 @@
30%
-
+
0
-
.
-
00
+
.
+
00
-
+
@@ -166,13 +166,13 @@
-
DEL
-
CLR
+
DEL
+
CLR
-
+
- + - + diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb index 198b9518..e8d35206 100644 --- a/app/views/origami/payments/show.html.erb +++ b/app/views/origami/payments/show.html.erb @@ -130,7 +130,7 @@
00
-
+
Nett
Del
Clr
@@ -195,6 +195,10 @@ $(document).on('click', '.cashier_number', function(event){ $('#cash').text("0.0"); update_balance(); break; + case 'nett': + $('#cash').text($('#amount_due').text()); + update_balance(); + break; } event.handled = true; } else { @@ -216,7 +220,6 @@ $( document ).ready(function() { }); $('#pay').click(function() { - if($('#balance').text() > 0){ alert(" Insufficient Amount!") }else{ @@ -230,7 +233,7 @@ $( document ).ready(function() { data: "cash="+ cash + "&sale_id=" + sale_id, success:function(result){ alert("Thank you") - window.location.href = '/origami'; + // window.location.href = '/origami'; } }); } From a96444518a7526fbb342bc7abba4870e986d9f79 Mon Sep 17 00:00:00 2001 From: Nweni Date: Mon, 12 Jun 2017 13:28:16 +0630 Subject: [PATCH 14/22] fixed conflict --- app/models/order.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/models/order.rb b/app/models/order.rb index 27fa8247..a76159be 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -243,13 +243,10 @@ class Order < ApplicationRecord .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id") -<<<<<<< HEAD - .where("sales.sale_status='complete'") - .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.customer_id") -======= + .where("sales.sale_status='completed'") .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") ->>>>>>> ca2dc181d62c8c15e0072d7ad01720fb19d28531 + end From c6b72a112b73616bc323391a8dd7d3ec047d88cf Mon Sep 17 00:00:00 2001 From: Moe Su Date: Mon, 12 Jun 2017 13:31:01 +0630 Subject: [PATCH 15/22] For Pull --- dump.rdb | Bin 20156 -> 20365 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dump.rdb b/dump.rdb index ebdb6db6aa4a16a1abe03b56aaa0c4d4053ff704..0e6392847a8e41d0312e82639916e8eec64d12a8 100644 GIT binary patch delta 394 zcmWm7y=qiJ6ae74yF?dO1-H>6cvp!a$SiYa&Y3f_5O4!_VlNhE=FSX)#6n{uglJ_I zFx)gE`Dw%;Tnoic8w;Pqi%(!BSOm=reBamoYUi+etuB7Lv3l?C=-Jbp!**z!fQYJc_-j>(yC;31c;QQB5*bYY9`+Nr-z1T_SQ{7r_Ja2;Q5`=!R{Lz9K5{y E4{QT>lmGw# delta 159 zcmV;Q0AT-(p8>p`0gx~ep&C6|`UrJ%Wn?XFWo^RnW066d5;-fi51C3;}49wE`an17c=3F_Ta+C6m1Y3zIA@FhXFU7cwwrWj8oAF*GzaWnwTj zF*r71VKrkpGa!@~V{&C-bY)~;VRRxoF*G?hF*i0hGdC_aKq~+>AZq|_V71^2vkL=y NOb9(%2Jyx?=AoT9F%|#- From 917ccd0294737ae459dc180240022471024568e0 Mon Sep 17 00:00:00 2001 From: Nweni Date: Mon, 12 Jun 2017 13:48:54 +0630 Subject: [PATCH 16/22] booking update --- app/models/order.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/order.rb b/app/models/order.rb index a76159be..4526ce35 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -25,6 +25,7 @@ class Order < ApplicationRecord booking = nil if self.new_booking + puts "a" booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking", :checkin_at => Time.now.utc, :checkin_by => self.employee_name, :booking_status => "assign" }) @@ -32,9 +33,10 @@ class Order < ApplicationRecord table.status = "occupied" table.save else - if (self.booking_id.to_i > 0 ) + puts "b" + booking = Booking.find(self.booking_id) - end + end booking.save! @@ -243,7 +245,6 @@ class Order < ApplicationRecord .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id") - .where("sales.sale_status='completed'") .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") @@ -272,7 +273,6 @@ class Order < ApplicationRecord .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sale_orders on sale_orders.order_id = orders.order_id") .joins("left join sales on sales.sale_id = sale_orders.sale_id") - .where("sales.sale_status<>'complete' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true) .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.customer_id") From a2111f16355607559c3de5ce07e0c555e0227378 Mon Sep 17 00:00:00 2001 From: Moe Su Date: Mon, 12 Jun 2017 13:58:16 +0630 Subject: [PATCH 17/22] For Pull --- app/models/order.rb | 2 -- dump.rdb | Bin 20365 -> 20467 bytes 2 files changed, 2 deletions(-) diff --git a/app/models/order.rb b/app/models/order.rb index a76159be..702855cc 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -243,7 +243,6 @@ class Order < ApplicationRecord .joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id") .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id") - .where("sales.sale_status='completed'") .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status") @@ -272,7 +271,6 @@ class Order < ApplicationRecord .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sale_orders on sale_orders.order_id = orders.order_id") .joins("left join sales on sales.sale_id = sale_orders.sale_id") - .where("sales.sale_status<>'complete' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true) .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.customer_id") diff --git a/dump.rdb b/dump.rdb index 0e6392847a8e41d0312e82639916e8eec64d12a8..9a81a61e209e6152e39a6f20ab56fb2fd13d5afc 100644 GIT binary patch delta 324 zcmV-K0lWT;_R`UrJ%Wn?XFWo^PRYLP*l5t&B7AHW6x01yQL00aO4 zL8p^}E)$bQ15T4q0V5?5H!(G4HaIjeEn;LeWi2#jIW-^&4l*+>GBIUiG-PFCVq`fm zlTa}wlf3~8lPoPTPhg-IWH>oCIAUfwH!)%|VrDZpGiEU~Wiw(oAe0zma%Ew3Wn^Dr zbRs%2G&wgiH8C|dH!d(VAP4|4AZq|_V71^29|kuuF@6530pX~vlX3wjM;+2NDGU0Ad3G03ZS% zL8p_EDjow2bY+v#L}Zgk0wt4LMJ1EG0SlAJJTOjRpci9hHDNJkH!v_VVrDR6WjA3r zHa0Y5Gch2P9Ak22VRU6=Utx42Ix#dkH!(LhH#IOWGdMFfHaQ?`0B&Hl;0qrHH!w1N z{;C1tsFSk-DFk5m;Wd-q0y8`XGBh)N{;ol-0I1`oTOVRHF*P Date: Mon, 12 Jun 2017 14:11:13 +0630 Subject: [PATCH 18/22] updated for food and beverage bugs --- app/assets/javascripts/origami.js | 34 ++++++++++-------------- app/models/sale_item.rb | 17 ++++++------ app/views/origami/payments/show.html.erb | 1 - config/routes.rb | 2 +- 4 files changed, 24 insertions(+), 30 deletions(-) diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index 14f9fbe9..d3ac9e76 100644 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -64,12 +64,6 @@ $(document).ready(function(){ url: "/origami/" + unique_id, data: { 'booking_id' : unique_id }, success:function(result){ -// ======= -// type: "GET", -// url: "origami/" + unique_id, -// data: { 'id' : unique_id }, -// success:function(result){ -// >>>>>>> 5ee3ae257a59269b651dcc5c0232b95d7f41fb77 for (i = 0; i < result.length; i++) { var data = JSON.stringify(result[i]); var parse_data = JSON.parse(data); @@ -191,20 +185,20 @@ $(document).ready(function(){ }); function show_customer_details(customer_id){ - $('.customer_detail').removeClass('hide'); - //Start Ajax - $.ajax({ - type: "GET", - url: "origami/"+customer_id+"/get_customer/", - data: {}, - dataType: "json", - success: function(data) { - $("#customer_name").text(data.name); - $("#customer_name").text(data.name); - } - }); - //End Ajax -} + $('.customer_detail').removeClass('hide'); + //Start Ajax + $.ajax({ + type: "GET", + url: "origami/"+customer_id+"/get_customer/", + data: {}, + dataType: "json", + success: function(data) { + $("#customer_name").text(data.name); + $("#customer_name").text(data.name); + } + }); + //End Ajax + } /* For Receipt - Calculate discount or tax */ $('.cashier_number').on('click', function(event){ diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb index 0aed9a23..25b37178 100644 --- a/app/models/sale_item.rb +++ b/app/models/sale_item.rb @@ -36,24 +36,25 @@ class SaleItem < ApplicationRecord sale_items.each do |si| food_price = self.get_food_price(si.sale_item_id) - beverage_price = self.get_beverage_price(si.sale_item_id) -puts food_price - # food_prices = food_prices + food_price.price - # beverage_prices = beverage_prices + beverage_price.price + beverage_price = self.get_beverage_price(si.sale_item_id) + food_prices = food_prices + food_price + beverage_prices = beverage_prices + beverage_price end return food_prices, beverage_prices end def self.get_food_price(sale_item_id) - food_price=SaleItem.select("sale_items.price") + food=SaleItem.select("sale_items.price") .joins("left join menu_items on menu_items.item_code = sale_items.product_code") - .where("sale_items.sale_item_id=? and menu_items.account_id=0", sale_item_id) + .where("sale_items.sale_item_id=? and menu_items.account_id=1", sale_item_id.to_s) + food_price = food[0].price rescue 0 end def self.get_beverage_price(sale_item_id) - beverage_price=SaleItem.select("sale_items.price") + beverage=SaleItem.select("sale_items.price") .joins("left join menu_items on menu_items.item_code = sale_items.product_code") - .where("sale_items.sale_item_id=? and menu_items.account_id=1", sale_item_id) + .where("sale_items.sale_item_id=? and menu_items.account_id=2", sale_item_id.to_s) + beverage_price = beverage[0].price rescue 0 end private diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb index 198b9518..f52c99a1 100644 --- a/app/views/origami/payments/show.html.erb +++ b/app/views/origami/payments/show.html.erb @@ -216,7 +216,6 @@ $( document ).ready(function() { }); $('#pay').click(function() { - if($('#balance').text() > 0){ alert(" Insufficient Amount!") }else{ diff --git a/config/routes.rb b/config/routes.rb index 0666e0c4..ddb6e3ff 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -72,7 +72,7 @@ Rails.application.routes.draw do #--------- Cashier ------------# namespace :origami do root "home#index" - get "/:booking_id" => "home#show" do #origami/:booking_id will show + get "/:booking_id" => "home#index" do #origami/:booking_id will show # resources :discounts, only: [:index,:new, :create ] #add discount type resources :customers #add customer type end From dd5de68bc0769804de7fd9f4a19762a6b30cb453 Mon Sep 17 00:00:00 2001 From: Moe Su Date: Mon, 12 Jun 2017 14:16:31 +0630 Subject: [PATCH 19/22] Seed --- db/seeds.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/db/seeds.rb b/db/seeds.rb index fe7bdcc7..5cd38d12 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -51,6 +51,10 @@ menu_item_type = Lookup.create([{lookup_type:'menu_item_type', name: 'SIMPLE', v {lookup_type:'menu_item_type', name: 'Set Menu', value: 'setMenu'}, {lookup_type:'menu_item_type', name: 'DIY', value: 'diy'}]) +member_group_type = Lookup.create([{lookup_type:'member_group_type', name: 'Platinum', value: '1'}, + {lookup_type:'member_group_type', name: 'Silver', value: '2'} + ]) + #menu_item_attribute:[size|] menu_item_attribute_type = Lookup.create([{lookup_type:'menu_item_attribute_type', name: 'Size', value: 'size'}]) # {lookup_type:'menu_item_attribute_type', name: 'Spicy', value: 'spicy'}, @@ -141,7 +145,7 @@ order_station2=PrintSetting.create({name: "Order Summary", unique_code: "OrderSu request_bill_printer=PrintSetting.create({name: "Receipt Bill", unique_code: "ReceiptBillPdf", printer_name: "EPSON-TM-T82-S-A"}) crm_order_printer=PrintSetting.create({name: "CRM Order", unique_code: "CrmOrderPdf", printer_name: "EPSON-TM-T82-S-A"}) -member_setting = MembershipSetting.create({membership_type:"paypar_url",gateway_url: "192.168.1."}) +member_setting = MembershipSetting.create({membership_type:"paypar_url",gateway_url: "http//192.168.1.47:3006"}) member_actions= MembershipAction.create([{membership_type:"get_account_balance",gateway_url:"/api/membership_campaigns/get_correspond_account_data",additional_parameter:{campaign_type_id:1}}, {membership_type:"redeem",gateway_url:"/api/membership_campaigns/redeem",additional_parameter:{campaign_type_id:1}}, @@ -151,6 +155,7 @@ member_actions= MembershipAction.create([{membership_type:"get_account_balance", {membership_type:"rebate",gateway_url:"/api/membership_campaigns/rebate",additional_parameter:{campaign_type_id:1}}, {membership_type:"get_all_member_account",gateway_url:"/api/generic_customer/get_membership_data"} ]) +payment_methods = PaymentMethodSetting.create({membership_type:"REDEEMREBATE",gateway_url: "http//192.168.1.47:3006"}) # shop = Shop.create( # {name: "Beauty In The Pot", address: "address", township: "Yangon", city: "Yangon", state: "Yangon", From b0eb92b04323ad016aad7a8dd978e6b72f89b070 Mon Sep 17 00:00:00 2001 From: Moe Su Date: Mon, 12 Jun 2017 14:19:04 +0630 Subject: [PATCH 20/22] Seed --- db/seeds.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/seeds.rb b/db/seeds.rb index 5cd38d12..ae2d617d 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -155,7 +155,7 @@ member_actions= MembershipAction.create([{membership_type:"get_account_balance", {membership_type:"rebate",gateway_url:"/api/membership_campaigns/rebate",additional_parameter:{campaign_type_id:1}}, {membership_type:"get_all_member_account",gateway_url:"/api/generic_customer/get_membership_data"} ]) -payment_methods = PaymentMethodSetting.create({membership_type:"REDEEMREBATE",gateway_url: "http//192.168.1.47:3006"}) +payment_methods = PaymentMethodSetting.create({payment_method:"REDEEMREBATE",gateway_url: "http//192.168.1.47:3006"}) # shop = Shop.create( # {name: "Beauty In The Pot", address: "address", township: "Yangon", city: "Yangon", state: "Yangon", From c7ff5140d4929a8674e7b00baa4d59bf60a58db2 Mon Sep 17 00:00:00 2001 From: Phyo Date: Mon, 12 Jun 2017 14:22:45 +0630 Subject: [PATCH 21/22] Payment route change --- app/views/origami/mpu/index.html.erb | 2 +- app/views/origami/payments/show.html.erb | 2 +- config/routes.rb | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/origami/mpu/index.html.erb b/app/views/origami/mpu/index.html.erb index f082dc1a..7b483a75 100644 --- a/app/views/origami/mpu/index.html.erb +++ b/app/views/origami/mpu/index.html.erb @@ -13,7 +13,7 @@ Amount : var sale_id = "<%= @sale_id %>"; $.ajax({type: "POST", - url: "<%= origami_create_mpu_payment_path %>", + url: "<%= origami_payment_mpu_path %>", data: "amount="+ amount + "&sale_id="+ sale_id, success:function(result){ if(result){ diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb index e8d35206..7eb890f4 100644 --- a/app/views/origami/payments/show.html.erb +++ b/app/views/origami/payments/show.html.erb @@ -229,7 +229,7 @@ $( document ).ready(function() { var card = $('#card').text(); var sale_id = $('#sale_id').text(); $.ajax({type: "POST", - url: "<%= origami_payment_process_path %>", + url: "<%= origami_payment_cash_path %>", data: "cash="+ cash + "&sale_id=" + sale_id, success:function(result){ alert("Thank you") diff --git a/config/routes.rb b/config/routes.rb index ddb6e3ff..6337f4ee 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -82,17 +82,17 @@ Rails.application.routes.draw do get "/:id/discount" => "discounts#index" post "/:id/discount" => "discounts#create" - get "/:id/request_bills" => "request_bills#print" + get "/:id/request_bills" => "request_bills#print" #--------- Payment ------------# get 'sale/:sale_id/payment' => 'payments#show' - post 'payment_process' => 'payments#create' + post 'payment/cash' => 'payments#create' post 'paypar_payment_process' => 'paypar_payments#create' get 'sale/:sale_id/payment/credit_payment' => "credit_payments#index" get 'sale/:sale_id/payment/others_payment' => "others_payments#index" # get 'sale/:sale_id/payment/others_payment/:payment_method' => "redeem_payments#index" get 'sale/:sale_id/payment/others_payment/MPU' => "mpu#index" - post 'create_mpu_payment' => "mpu#create" + post 'payment/mpu' => "mpu#create" get 'sale/:sale_id/payment/others_payment/REDEEMREBATE' => "redeem_payments#index" #---------Add Customer --------------# @@ -167,7 +167,7 @@ Rails.application.routes.draw do resources :tax_profiles #lookups resources :lookups - #orders + #orders resources :orders #cashier_terminals resources :cashier_terminals From b12b52d75454d60003bbc7cbd513a21cd601c5c1 Mon Sep 17 00:00:00 2001 From: Nweni Date: Mon, 12 Jun 2017 14:23:18 +0630 Subject: [PATCH 22/22] update table status --- app/models/order.rb | 5 +---- app/models/sale_payment.rb | 6 +++++- config/routes.rb | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/models/order.rb b/app/models/order.rb index 4526ce35..40bfbcb7 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -33,10 +33,7 @@ class Order < ApplicationRecord table.status = "occupied" table.save else - puts "b" - - booking = Booking.find(self.booking_id) - + booking = Booking.find(self.booking_id) end booking.save! diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 27ddafa6..5dff91b9 100644 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -215,12 +215,16 @@ class SalePayment < ApplicationRecord self.sale.payment_status = "paid" self.sale.sale_status = "completed" self.sale.save! - #TODO: table status + table_update_status() rebat() end end + def table_update_status + + end + def rebat end diff --git a/config/routes.rb b/config/routes.rb index 0666e0c4..ddf7d9cd 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -82,7 +82,7 @@ Rails.application.routes.draw do get "/:id/discount" => "discounts#index" post "/:id/discount" => "discounts#create" - get "/:id/request_bills" => "request_bills#print" + get "/:id/request_bills" => "request_bills#print" #--------- Payment ------------# get 'sale/:sale_id/payment' => 'payments#show' @@ -167,7 +167,7 @@ Rails.application.routes.draw do resources :tax_profiles #lookups resources :lookups - #orders + #orders resources :orders #cashier_terminals resources :cashier_terminals